BLE Generic Attribute Profile (GATT)

See this Microchip Developer page: The Generic Attribute Profile (GATT) establishes how data will be organized and exchanged over a Bluetooth® Low Energy (BLE) connection.Certain use-case-specific profiles (GATT-Based Profiles) are standardized by the Bluetooth Special Interest Group (SIG): - Heart Rate Profile - Proximity Profile - ...GATT uses the Attribute…

Continue ReadingBLE Generic Attribute Profile (GATT)


A UUID is a Universally Unique Identifier. For BLE devices, the 128 bit UUID represents a specific profile, service or data type. It is guaranteed to be unique across all space and all time according to the Bluetooth 4.2 spec. Each UUID is a 128 bit value. Some examples are:…

Continue ReadingBLE UUIDs

Pair HC05 BT Modules

Steps taken from comments on an Amazon listing for DSD devices: I bought two of these to allow me to communicate between 2 arduinos. I had googled a little and it seemed simple enough from the examples I had seen, but once I got the chips I discovered none of…

Continue ReadingPair HC05 BT Modules

Arduino Nano 33 BLE – LSM9DS1 Magnetometer

Inside the LSM9Ds1 IMU on the Nano 33 BLE board is a three axis magnetometer. Although it is packaged inside the same chip as the accelerometer/gyro, it is a physically distinct device with its own address and registers. The purpose of a magnetometer is to measure magnetic field strength. It can be used as the basis for a compass that will allow you to get a pretty good estimate of magnetic North.


Continue ReadingArduino Nano 33 BLE – LSM9DS1 Magnetometer

Syntax Highlighting

Prism.js Code fragments can be displayed with automatic syntax highlighting Simply use the normal fence ticks in markdown and add the language like this. ```cpp void loop(void) { MDNS.update(); server.handleClient(); } ``` Many languages are supported here but not all that are available from the full set available. This installation…

Continue ReadingSyntax Highlighting

Arduino 33 BLE pins


The Arduino 33 BLE uses the NRF52840 chip as its core processor. The Arduino core software is implemented over the top of the Mbed OS. While this allows you to use (all?) the Mbed functions, it can cause confusion over the naming of the pins.

For normal Arduino stuff, just use the familiar pin names. When using Mbed fuctions and features though, you will want to use the actual pin names.


Continue ReadingArduino 33 BLE pins