Skip to main content
A board adapter connects the Device SDK to a board it doesn’t support yet. The SDK includes adapters for the Arduino UNO R4 WiFi and GIGA R1 WiFi. For any other Arduino board with USB, Wi-Fi and enough memory, you write a class that derives from ed::BoardAdapter in BoardAdapter.h. The adapter only handles the platform: USB, Wi-Fi, TLS, storage and a timer. The SDK’s shared client keeps handling setup messages, MQTT, discovery and Game and Test rules. boards/UnoR4Board.cpp and boards/GigaBoard.cpp are complete adapters to copy from. The UNO’s is the better model for a board with little RAM. Listing architectures=* in the library doesn’t mean every board is supported or tested.

Check the board first

Find these facts in the board’s and core’s documentation before you start: Setup uses USB plus Wi-Fi. An Ethernet-only board could speak the MQTT protocol, but the app’s setup doesn’t support it yet.

Write the adapter

Include BoardAdapter.h, derive from ed::BoardAdapter, and implement every method in that header. Keep the adapter alive for the whole sketch. Keep MQTT topics, prop descriptions, signal rules and Game and Test permissions out of the adapter. They belong to the shared client. The bundled adapters keep two checksummed pairing records. Stream the record to and from storage instead of buffering it, and check whether the storage API erases a whole block for each byte written. The UNO R4’s EEPROM.update does.

Use the adapter in a sketch

Pass the adapter to room.begin(). Nothing else in the sketch changes:
room.begin(board) starts the adapter’s timer, which reads ed::Input, ends room.pulse() outputs and enforces Test deadlines while networking blocks. The adapter doesn’t take over your pins.

Verify the port

  1. Compile the train door example and check RAM and flash headroom. A compile alone doesn’t prove the network stack, memory or outputs.
  2. Pair over USB with Your own firmware (SDK). Check scanning, joining, station checks and clear errors, without showing credentials.
  3. Check that the pinned certificate accepts the right Room Station and rejects a different one.
  4. In Test mode and a practice game, check state, commands and signals. Test effects must end even if networking blocks. Expired or repeated commands must not move outputs, and signals outside a game must not complete Puzzles.
  5. Reset and power-cycle the board. It must keep its pairing and reconnect. Turn off Wi-Fi and restart Room Connector; the board must never replay missed commands.
  6. Interrupt a pairing save and check the last valid record survives.
  7. Write down the core and library versions, wiring, limits and results you tested.

Next

Troubleshoot SDK firmware