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 e453c4d3f9
Add Linux support
Very much experimental, no BLE service support yet and BLE LocalName in
advertisement packet doesn't seem to work. So rather useless at the
moment.
2019-11-09 17:55:19 +01:00
examples Add Linux support 2019-11-09 17:55:19 +01:00
s132_nrf52_6.1.1 Initial commit 2019-11-08 10:58:02 +01:00
.gitattributes Initial commit 2019-11-08 10:58:02 +01:00
adapter.go gap: implement basic event handling: connect/disconnect 2019-11-09 13:50:00 +01:00
adapter_linux.go Add Linux support 2019-11-09 17:55:19 +01:00
adapter_sd.c Initial commit 2019-11-08 10:58:02 +01:00
adapter_sd.go Add Linux support 2019-11-09 17:55:19 +01:00
error_sd.go Initial commit 2019-11-08 10:58:02 +01:00
gap.go Add Linux support 2019-11-09 17:55:19 +01:00
gap_linux.go Add Linux support 2019-11-09 17:55:19 +01:00
gap_sd.go Add Linux support 2019-11-09 17:55:19 +01:00
gatts.go gatts: implement write event for characteristics 2019-11-09 13:55:34 +01:00
gatts_sd.go gatts: implement write event for characteristics 2019-11-09 13:55:34 +01:00
LICENSE Initial commit 2019-11-08 10:58:02 +01:00
README.md Initial commit 2019-11-08 10:58:02 +01:00
uuid.go Initial commit 2019-11-08 10:58:02 +01:00
uuid_sd.go Initial commit 2019-11-08 10:58:02 +01:00

Go Bluetooth

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