Skip to main content
The Pinecil V2 has hardware support for Bluetooth Low Energy (BLE), allowing you to read and write parameters to the device during runtime. This enables remote monitoring of telemetry data and adjustment of settings through the BLE interface.

Overview

Pinecil devices advertise themselves on BLE as Pinecil-XXXXXXX and include the UUID 9eae1000-9d0d-48c5-AA55-33e27f9bc533 in the advertisement packet for filtering.
All data is sent and received as Little-Endian format.
As of the current version, notifications are not fully implemented, so data will need to be polled. Notification/Indication support will be added in future updates.

Implementation Guidelines

When developing a BLE integration for IronOS, follow these recommended practices:
  1. Device Filtering: Filter by UUID 9eae1000-9d0d-48c5-AA55-33e27f9bc533 rather than device name when possible
  2. Service Validation: Upon first connection, verify that the three expected services exist to confirm correct device selection
  3. Efficient Reading: Use the bulk endpoint for reading multiple data points (one read vs ~15 individual reads)
  4. Unknown Settings: Handle settings you don’t recognize gracefully, as new firmware versions may add new settings
  5. Version Checking: Read the device firmware revision to handle version differences cleanly
  6. Stay Updated: Monitor the IronOS repository for release notifications about BLE changes

BLE Services

The BLE interface provides three main services for accessing device data and settings.

Live Service

UUID: d85ef000-168e-4a71-AA55-33e27f9bc533 Provides real-time telemetry data with one characteristic per reading. All values are encoded as unsigned 32-bit numbers.
ReadingDescription
1Live temperature (°C)
2Live set point
3DC input voltage
4Handle temperature (°C)
5Power level
6Power source
7Tip resistance
8Uptime
9Time of last movement
10Maximum temperature settable
11Raw tip reading
12Hall sensor
13Operating mode
14Estimated wattage

Settings Service

UUID: f6d80000-5a10-4eba-AA55-33e27f9bc533 Provides access to device settings with read/write capabilities. All settings use the UUID format:
f6d7ZZZZ-5a10-4eba-AA55-33e27f9bc533
Where ZZZZ is the setting number from Settings.h.
All data is read and written as fixed unsigned 16-bit numbers.

Save Settings

To save settings to flash memory:
UUID: f6d7FFFF-5a10-4eba-AA55-33e27f9bc533
Write: 0x0001
Avoid saving settings on each change. Instead, provide a save button or save after a timeout to reduce flash write cycles.

Reset Settings

To reset all settings to factory defaults:
UUID: f6d7FFFE-5a10-4eba-AA55-33e27f9bc533
Write: 0x0001
Settings will reset immediately upon writing this value.

Bulk Service

UUID: 9eae1000-9d0d-48c5-AA55-33e27f9bc533 Provides efficient access to large data sets through single-read operations.

Live Data Bulk Endpoint

Returns all live service data as a single binary blob, ideal for applications displaying multiple data points simultaneously.

Build ID

Encodes the current firmware build ID to allow version detection and handling when the BLE format changes.

Device Serial Number

Provides the device CPU serial number (or MAC address on Pinecil V2) for unique device identification.

Device Unique ID

Pinecil V2 Only: A random factory-burned ID used by the online authenticity checker tool.

Code References

For detailed implementation information, refer to:

Example Applications

The BLE interface enables various use cases:
  • Real-time temperature monitoring dashboards
  • Remote settings adjustment tools
  • Data logging and analysis applications
  • Mobile companion apps for device control
  • Integration with automation systems

Build docs developers (and LLMs) love