Cross-platform Bluetooth API for Go and TinyGo. Supports Linux, macOS, Windows, and bare metal using Nordic SoftDevice or HCI
Find a file
Ayke van Laethem 22553053ff Add initial Windows support
Only scanning has been implemented so far. The most work was really just
understanding WinRT well enough to get to this point.
2020-05-30 21:51:27 +02:00
.circleci Add initial Windows support 2020-05-30 21:51:27 +02:00
examples Add support for scanning for devices 2020-05-28 11:57:02 +02:00
s132_nrf52_6.1.1 Initial commit 2019-11-08 10:58:02 +01:00
s140_nrf52_7.0.1 Port current codebase to S140 softdevice 2020-03-06 14:24:50 +01:00
winbt Add initial Windows support 2020-05-30 21:51:27 +02:00
.gitattributes Initial commit 2019-11-08 10:58:02 +01:00
.gitignore Add smoke tests that run in CI 2020-05-24 19:19:37 +02:00
adapter.go Add flag for debug printing 2020-05-25 17:26:24 +02:00
adapter_linux.go Add support for scanning for devices 2020-05-28 11:57:02 +02:00
adapter_s132.c softdevice: make code more flexible for other SoftDevices 2020-03-06 13:46:42 +01:00
adapter_s132.go softdevice: make code more flexible for other SoftDevices 2020-03-06 13:46:42 +01:00
adapter_s140.c Port current codebase to S140 softdevice 2020-03-06 14:24:50 +01:00
adapter_s140.go Port current codebase to S140 softdevice 2020-03-06 14:24:50 +01:00
adapter_sd.go Add support for scanning for devices 2020-05-28 11:57:02 +02:00
adapter_windows.go Add initial Windows support 2020-05-30 21:51:27 +02:00
error_sd.go softdevice: make code more flexible for other SoftDevices 2020-03-06 13:46:42 +01:00
gap.go Add support for scanning for devices 2020-05-28 11:57:02 +02:00
gap_linux.go Add support for scanning for devices 2020-05-28 11:57:02 +02:00
gap_sd.go Add support for scanning for devices 2020-05-28 11:57:02 +02:00
gap_windows.go Add initial Windows support 2020-05-30 21:51:27 +02:00
gatts.go gatts: implement write event for characteristics 2019-11-09 13:55:34 +01:00
gatts_linux.go Add Go module support 2020-05-25 00:10:28 +02:00
gatts_sd.go softdevice: make code more flexible for other SoftDevices 2020-03-06 13:46:42 +01:00
go.mod Add initial Windows support 2020-05-30 21:51:27 +02:00
go.sum Add initial Windows support 2020-05-30 21:51:27 +02:00
LICENSE Initial commit 2019-11-08 10:58:02 +01:00
mac.go Add support for scanning for devices 2020-05-28 11:57:02 +02:00
Makefile Add initial Windows support 2020-05-30 21:51:27 +02:00
README.md Add smoke tests that run in CI 2020-05-24 19:19:37 +02:00
uuid.go go fmt 2020-05-27 16:50:21 +02:00
uuid_sd.go softdevice: make code more flexible for other SoftDevices 2020-03-06 13:46:42 +01:00
uuid_test.go linux: add support for services 2019-11-16 19:11:59 +00:00

Go Bluetooth

CircleCI

Bluetooth API for embedded devices.

This package attempts to build a cross-system Bluetooth API written in Go. It specifically targets embedded devices that are supported by TinyGo.

At the moment, there is only support for the S132 SoftDevice (binary driver) on Nordic Semiconductors devices.

Flashing the SoftDevice

Flashing the SoftDevice can be tricky. If you have nrfjprog installed, you can erase the flash and flash the new BLE firmware using the following commands.

nrfjprog -f nrf52 --eraseall
nrfjprog -f nrf52 --program s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex

After that, don't reset the board but instead flash a new program to it. For example, you can flash the Heart Rate Sensor example using tinygo:

tinygo flash -target=pca10040-s132v6 ./examples/heartrate