Goserial is a simple go package to allow you to read and write from the serial port as a stream of bytes. It aims to have the same API on all platforms, including windows. As an added bonus, the windows package does not use cgo, so you can cross compile for windows from another platform. Unfortunately goinstall does not currently let you cross compile so you will have to do it manually: Currently there is very little in the way of configurability. You can set the baud rate. Then you can Read(), Write(), or Close() the connection. Read() will block until at least one byte is returned. Write is the same. There is currently no exposed way to set the timeouts, though patches are welcome. Currently all ports are opened with 8 data bits, 1 stop bit, no parity, no hardware flow control, and no software flow control. This works fine for many real devices and many faux serial devices including usb-to-serial converters and bluetooth serial ports. You may Read() and Write() simulantiously on the same connection (from different goroutines). Example usage:
Goserial is a simple go package to allow you to read and write from the serial port as a stream of bytes. It aims to have the same API on all platforms, including windows. As an added bonus, the windows package does not use cgo, so you can cross compile for windows from another platform. Unfortunately goinstall does not currently let you cross compile so you will have to do it manually: Currently there is very little in the way of configurability. You can set the baud rate. Then you can Read(), Write(), or Close() the connection. Read() will block until at least one byte is returned. Write is the same. There is currently no exposed way to set the timeouts, though patches are welcome. Currently all ports are opened with 8 data bits, 1 stop bit, no parity, no hardware flow control, and no software flow control. This works fine for many real devices and many faux serial devices including usb-to-serial converters and bluetooth serial ports. You may Read() and Write() simulantiously on the same connection (from different goroutines). Example usage:
Package hid provides an idiomatic interface to HIDAPI, a simple library for communicating with USB and Bluetooth HID devices on FreeBSD, Linux, macOS, and Windows. See https://github.com/libusb/hidapi for details. The following example was adapted from the HIDAPI documentation to demonstrate use of the hid package to communicate with a simple device.
Package bluetooth provides a cross-platform Bluetooth module for Go that can be used on operating systems such as Linux, macOS, and Windows. It can also be used running "bare metal" on microcontrollers such as those produced by Nordic Semiconductor. This package can be use to create Bluetooth Low Energy centrals as well as peripherals. Code generated by bin/gen-characteristic-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:13.563222488 +0100 CET m=+0.007308013 using the list of standard characteristics UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/characteristics_uuids.json Code generated by bin/gen-service-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:12.31511038 +0100 CET m=+0.005731522 using the list of standard service UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/service_uuids.json
Package bluetooth provides a cross-platform Bluetooth module for Go that can be used on operating systems such as Linux, macOS, and Windows. It can also be used running "bare metal" on microcontrollers such as those produced by Nordic Semiconductor. This package can be use to create Bluetooth Low Energy centrals as well as peripherals. Code generated by bin/gen-characteristic-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:13.563222488 +0100 CET m=+0.007308013 using the list of standard characteristics UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/characteristics_uuids.json Code generated by bin/gen-service-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:12.31511038 +0100 CET m=+0.005731522 using the list of standard service UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/service_uuids.json
bluetooth is a gokrazy helper that loads Bluetooth kernel modules on boot. Example:
Package bluetooth provides a cross-platform Bluetooth module for Go that can be used on operating systems such as Linux, macOS, and Windows. It can also be used running "bare metal" on microcontrollers such as those produced by Nordic Semiconductor. This package can be use to create Bluetooth Low Energy centrals as well as peripherals. Code generated by bin/gen-characteristic-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:13.563222488 +0100 CET m=+0.007308013 using the list of standard characteristics UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/characteristics_uuids.json Code generated by bin/gen-service-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:12.31511038 +0100 CET m=+0.005731522 using the list of standard service UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/service_uuids.json
Package bluetooth provides a cross-platform Bluetooth module for Go that can be used on operating systems such as Linux, macOS, and Windows. It can also be used running "bare metal" on microcontrollers such as those produced by Nordic Semiconductor. This package can be use to create Bluetooth Low Energy centrals as well as peripherals. Code generated by bin/gen-characteristic-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:13.563222488 +0100 CET m=+0.007308013 using the list of standard characteristics UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/characteristics_uuids.json Code generated by bin/gen-service-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:12.31511038 +0100 CET m=+0.005731522 using the list of standard service UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/service_uuids.json
Package bluetooth provides a cross-platform Bluetooth module for Go that can be used on operating systems such as Linux, macOS, and Windows. It can also be used running "bare metal" on microcontrollers such as those produced by Nordic Semiconductor. This package can be use to create Bluetooth Low Energy centrals as well as peripherals. Code generated by bin/gen-characteristic-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:13.563222488 +0100 CET m=+0.007308013 using the list of standard characteristics UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/characteristics_uuids.json Code generated by bin/gen-service-uuids; DO NOT EDIT. This file was generated on 2021-02-01 14:19:12.31511038 +0100 CET m=+0.005731522 using the list of standard service UUIDs from https://github.com/NordicSemiconductor/bluetooth-numbers-database/blob/master/v1/service_uuids.json