Common failures
Debug from the wire up
Most failures are one of four things: wrong module type, swapped TX/RX, channel mismatch, or a sketch expecting the old protocol.
Symptoms and likely causes
| Symptom | Most likely cause | What to check |
|---|---|---|
| The app cannot find the module | The module is not BLE or advertises a different service UUID. | Use HM-10 style BLE hardware and confirm service UUID FFE0 in Device Center. |
| Connected, but the Arduino never reacts | TX/RX swapped, baud mismatch, or a legacy-only sketch paired with the modern app. | Check UART wiring, use 9600 baud, and make sure the sketch is on the default modern protocol. |
| One control works, another does nothing | The component's channel does not match the channel your sketch reads. | Compare the channel in the component's inspector with the id in your sketch call. |
| Uploads fail when the module is wired | The BLE module is holding pins 0 and 1 on Uno-style boards. | Disconnect the module while uploading, or use a board with a separate hardware UART. |
| A display or gauge never changes | Wrong channel, or the value is outside the component's configured range. | Match the channel and confirm setGauge values fall within the gauge's min/max. |
A reliable debug order
- Confirm the app is running on a physical iPhone or iPad.
- Confirm the BLE module advertises and the app can connect.
- Open the Arduino Serial Monitor with verbose mode enabled.
- Tap a button and look for
BS received: `B0:D`. - Open the app's Console to watch the exact lines sent and received.
- If raw data appears but a control is ignored, double-check its channel.