-
Notifications
You must be signed in to change notification settings - Fork 1
Mag*NET BLE Service Definition
Any device can offer/advertise/implement a MagNET service. The purpose of specifying BLE services in a standard way is to give the MagNET client a way to dynamically create UIs and connect to a variety of services, regardless of the platform, or even the existence of a formal application. The device should be able to provide enough details to generate a reasonably good UI experience, and an easier way to consume services of unknown devices. Other protocols exist to try to solve the silo / proprietary approaches of big tech, however, this project isn't focused on building a consortium of big tech players. It intends to provide easy interoperability of personal IoT device, DIY maker devices, and any company hoping to reduce costs and get to market.
NOTE: This needs to be moved to a versioned document.
Follow the design approach for nRF UART service (https://developer.nordicsemi.com/nRF_Connect_SDK/doc/v1.7-branch/nrf/libraries/bluetooth_services/services/nus.html) ... how that gets specified. We need:
- a service UUID
- some characteristics
- v0.0.1 : 10/25/2024 Initial spec service details
- v0.0.2: 3/23/2025 Add Advertisement updates.
Note: all of our services are going to be following the prefix: e529dbf6-8968-43e3-9930-xxxxxxxxxxxx Note2: all of our characteristics will number based off the service UUID associated, incrementing the MSB.
Overview: this provides the core indications the device implements the MagNET protocols. At a high level, it must be found to enable libraries and apps to interact with MagNET devices.
- id: com.iotone.jp.magnet.service.info
- uuid: e529dbf6-8968-43e3-9930-000000000001
- id: com.iotone.jp.magnet.characteristic.info.version
- uuid: e529dbf6-8968-43e3-9930-100000000001
- attributes: READ
- value: SEMVER M.m.p
- datatype: BYTES
- id: com.iotone.jp.magnet.characteristic.info.msg
- uuid: e529dbf6-8968-43e3-9930-200000000001
- attributes: READ
- value: Company Info / Mfg Date
- datatype: STRING
- id: com.iotone.jp.magnet.characteristic.info.deviceid
- uuid: e529dbf6-8968-43e3-9930-300000000001
- attributes: READ
- value: UUID
- datatype: BYTES
- 48bits : advertisement address
- 22 bytes Manufacturer data. Unspecified by this specification. It is up to the device maker to choose what goes into this section.
- MagNET Accelerometer Service : optional
- MagNET Barometer Service : Optional
- MagNET Thermometer Service : Optional
- MagNET Camera Service : Optional
- MagNET Config Service : Required
- MagNET GenUI Service : Required
- MagNET Datasheet Service : Required
- MagNET Specs Service : Required
- MagNET DFU Service : Optional
- MagNET Info Service : Required, the indicator this is a MagNET service
- MagNET Fleet Service : Optional, define a fleet of devices controlled by X and owned by Y
This service will provide the common characteristics for all MAG*NET BLE services. For devices without BLE, we will provide other approaches.
TODO
- MAG*NET CLASSES (what kinds of things does it do)
Probably we have a way to write to it Probably we have a way to read from it Probably we need a way to configure certain things
TODO