Need help with go-serial?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

jacobsa
515 Stars 101 Forks Apache License 2.0 70 Commits 26 Opened issues

Description

A Go library for dealing with serial ports.

Services available

!
?

Need anything else?

Contributors list

# 38,802
C++
Go
oauth2
oauth2-...
40 commits
# 44,481
Ruby
Go
drone-p...
Rails
7 commits
# 73,527
loadbal...
nat-tra...
C
k8s
3 commits
# 306,706
Shell
elm-lan...
elm
golang
3 commits
# 314,192
Shell
cloudfo...
kuberne...
Amazon ...
2 commits
# 555,020
Go
1 commit
# 360,847
Shell
golang
ssd1306
Raspber...
1 commit
# 11,904
Shell
logrus
pyinsta...
python-...
1 commit
# 102,887
C++
C
Shell
1 commit
# 2,876
Go
golang
gRPC
proto
1 commit
# 43,602
C
sed
golang
client-...
1 commit

go-serial

This is a package that allows you to read from and write to serial ports in Go.

OS support

Currently this package works only on OS X, Linux and Windows. It could probably be ported to other Unix-like platforms simply by updating a few constants; get in touch if you are interested in helping and have hardware to test with.

Installation

Simply use

go get
:
go get github.com/jacobsa/go-serial/serial

To update later:

go get -u github.com/jacobsa/go-serial/serial

Use

Set up a

serial.OpenOptions
struct, then call
serial.Open
. For example:
    import "fmt"
    import "log"
    import "github.com/jacobsa/go-serial/serial"

...

// Set up options.
options := serial.OpenOptions{
  PortName: "/dev/tty.usbserial-A8008HlV",
  BaudRate: 19200,
  DataBits: 8,
  StopBits: 1,
  MinimumReadSize: 4,
}

// Open the port.
port, err := serial.Open(options)
if err != nil {
  log.Fatalf("serial.Open: %v", err)
}

// Make sure to close it later.
defer port.Close()

// Write 4 bytes to the port.
b := []byte{0x00, 0x01, 0x02, 0x03}
n, err := port.Write(b)
if err != nil {
  log.Fatalf("port.Write: %v", err)
}

fmt.Println("Wrote", n, "bytes.")

See the documentation for the

OpenOptions
struct in
serial.go
for more information on the supported options.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.