Skip to main content
This guide walks you through creating an account, registering your first device, and seeing live telemetry in the dashboard.
Prerequisites
  • A supported device board (see Libraries)
  • Your firmware toolchain installed
  • A firmngin.dev account (sign up here)

Step 1: Create a workspace

  1. Go to firmngin.dev/register and create your account.
  2. Once logged in, create a workspace from the dashboard.
  3. Give your workspace a name — this is your project’s home for devices, automations, and billing.
A workspace isolates all resources: devices, merchants, rules, and API keys.

Step 2: Register a device

  1. In the dashboard, navigate to Devices and click Add Device.
  2. Select your board type.
  3. Provide a device name and optional description.
  4. Once created, you will receive:
    • Secret ID — your device identifier
    • Secret Key — authentication key
  5. Download the keys.h file from your device page — this contains your mTLS credentials.
Never commit keys.h to a public repository. Add it to .gitignore to prevent accidental exposure.

Step 3: Install the SDK

  1. Download the library from firmngin/Firmngin-Arduino.
  2. In Arduino IDE, go to Sketch → Include Library → Add .ZIP Library…
  3. Select the downloaded ZIP file.
  4. The library will be added to your Arduino libraries automatically.
Add the library to platformio.ini:

Step 4: Connect your device

Place the downloaded keys.h next to your sketch. It provides DEVICE_ID and DEVICE_KEY, so you never paste credentials into the code. See the Arduino library for the full lifecycle.
  1. Select your board and port in Arduino IDE.
  2. Click Upload.
  3. Open the Serial Monitor at 115200 baud.
  4. You should see WiFi connection messages and device status.
  5. Go to your Dashboard — the device should appear as Online with live data.
[image:device detail page showing availability and live entity updates]

Step 5: See it live

Once your device is connected:
  • Status — Online/offline indicator updates in real time
  • Entities — GPIO states, sensor readings, and custom entities are synced via pushEntity()
Use Entity objects to define typed keys for your data, and pushEntity() to send state updates to the dashboard.

Next steps

Devices

Learn how device identity, availability, entities, and public visibility work.

Device Billing

Create service catalogs, integrated payments, sessions, and public pages for guests.

Firmware & OTA

Track firmware artifacts and plan controlled OTA rollouts for your fleet.
Device Billing is currently only available for the Indonesia region.