ThingPlusBLEOSC is an Arduino-compatible library that enables SparkFun Thing Plus (ESP32) devices to send and receive Open Sound Control (OSC)-styled messages via Bluetooth Low Energy (BLE). It is designed for creative coding, interactive installations, and sensor-actuator projects that benefit from wireless communication with minimal setup.
- BLE GATT server using custom UUIDs
- OSC message parsing and routing
- Simple API for sending/receiving values
- Lightweight in-memory serialization
- Built for the ESP32 Thing Plus board
ThingPlusBLEOSC/
├── src/
│ ├── BLEHandler.cpp/h
│ ├── OSCHandler.cpp/h
│ └── MemoryStream.h
├── examples/
│ ├── ioPin/
│ ├── readPin/
│ └── writePin/
├── library.properties
├── LICENSE
└── README.md
You can install manually by cloning this repo into your ~/Documents/Arduino/libraries folder, or install via the Arduino Library Manager.
Each example includes a config.h file:
#define DEVICE_NAME "Thing"
#define SERVICE_UUID "00000000-0000-0000-0000-000000000000"
#define CHARACTERISTIC_UUID_RX "00000000-0000-0000-0000-000000000000"
#define CHARACTERISTIC_UUID_TX "00000000-0000-0000-0000-000000000000"Generate your own UUIDs using uuidgenerator.net.
ioPin: Combined read/write interface using OSC.readPin: Reads digital or analog pins via OSC.writePin: Sets pin values (digital or analog PWM) via OSC.
Checkout the python sister library BLEOSC that allows you to send and receive OSC-styled messaged via BLE (to ThingPlusBLEOSC devices).
Make sure the following libraries are installed via the Library Manager:
OSCby Adrian FreedESP32 BLE Arduinoby Neil Kolban (usually pre-installed)
This project is licensed under the MIT License.
© 2025 Cesar Torres