๐Ÿ“„ Rendered from QUICKSTART.md in jettyd-firmware-template ยท last synced from commit 4d96601 on 2026-05-22

QuickStart โ€” jettyd firmware template

Connect an ESP32 device to jettyd.com in under 10 minutes.


Prerequisites

Requirement Notes
ESP-IDF v5.2+ Installation guide
Python 3.9+ For build.py codegen
Git To clone this template
jettyd account Sign up free โ†’

Supported targets: ESP32-S3, ESP32-C3, ESP32-C6


1. Clone the template

git clone https://github.com/jettydiot/jettyd-firmware-template my-device
cd my-device

2. Get your fleet token

  1. Log in to app.jettyd.com
  2. Navigate to Fleet โ†’ Tokens โ†’ New token
  3. Copy the ft_โ€ฆ token

3. Configure your device

Open device.yaml and fill in the required fields:

jettyd:
  fleet_token: "ft_YOUR_TOKEN_HERE"   # from step 2
  mqtt_uri: "mqtt://mqtt.jettyd.com:1883"

wifi:
  ssid: "YourNetworkName"
  password: "YourNetworkPassword"

name: "my-device"
target: "esp32s3"   # esp32s3 | esp32c3 | esp32c6

โš ๏ธ Never commit real tokens. Add device.yaml to .gitignore or use environment variable substitution before committing.


4. Set up the SDK

make setup

This clones jettydiot/jettyd-firmware into jettyd-sdk/ โ€” the SDK that ships your device's telemetry and command handling to jettyd.


5. Build and flash

idf.py build flash monitor

Or use the Makefile shortcuts:

make build           # compile only
make flash           # compile + flash
make flash-monitor   # compile + flash + open serial monitor

On first run, build.py auto-generates:


6. Verify the connection

Once the device boots you should see in the serial monitor:

I (1234) jettyd: Connected to WiFi
I (1456) jettyd: MQTT connected โ†’ mqtt.jettyd.com
I (1460) jettyd: Device registered: my-device
I (1462) jettyd: Telemetry heartbeat sent

Head to app.jettyd.com โ†’ Devices โ€” your device should appear online within a few seconds.


7. Add drivers

Edit the drivers: section in device.yaml to map your hardware:

drivers:
  - name: led
    instance: "status"
    config:
      pin: 8
      active_high: true

  - name: button
    instance: "btn"
    config:
      pin: 0
      active_low: true

Re-run idf.py build flash after every device.yaml change โ€” codegen runs automatically.


8. Run checks before committing

make check

Runs codegen validation, format checks, and the SDK unit test suite. All three must pass before pushing.


Telemetry defaults

defaults:
  heartbeat_interval: 60    # seconds between telemetry pushes
  report_metrics:
    - "system.rssi"
    # - "system.chip_temp"
    # - "system.free_heap"

Troubleshooting

Device doesn't appear online

Build fails with "sdkconfig mismatch"

make setup fails


Next steps

Built with ๐Ÿฆž by jettyd โ€” the IoT middleware for AI agents