USB cable
Pick the port once. After that the board reconnects by itself whenever you plug it in, and the dashboard names the chip it found: CP2102, CH340, native ESP32 USB.
Plug in an Arduino or ESP32 over USB, Bluetooth or Wi-Fi. Seelie Dash finds the fields in its output, and you click an empty box to graph them. Every reading is kept, so you can scroll back through last night.
Nothing to install on your computer. Add the Seelie Dash library to your sketch, or just print JSON.
Temperature and humidity
The browser talks to the board directly, or the board posts to Seelie Dash on its own. Either way the dashboard shows how it’s connected.
Pick the port once. After that the board reconnects by itself whenever you plug it in, and the dashboard names the chip it found: CP2102, CH340, native ESP32 USB.
An ESP32 advertises the Nordic UART service and prints the same lines over the air. Good for boards on a battery or inside an enclosure.
For boards that run on their own. They post readings with a device key, and you watch them from any browser, including your phone.
The Seelie Dash library does the formatting. Add each reading with dash.add(), then dash.send(). It names the board after your sketch and tells the dashboard what it is, so the board is recognised by itself.
USB works on any board. Bluetooth and Wi-Fi need an ESP32, S3, C3 or C6.
#include <SeelieDash.h>
SeelieDash dash;
void setup() {
dash.beginSerial(); // Bluetooth: SeelieDashBluetooth, Wi-Fi: SeelieDashWiFi
}
void loop() {
dash.add("temp", readTemp());
dash.add("hum", readHumidity());
dash.send();
delay(500);
}
No library needed: print one reading per line. Each name becomes a field you can graph. Nested objects work too: {"imu":{"x":1}} becomes imu.x.
Lines that aren’t readings, like boot messages, still show in the serial monitor with a note saying why they weren’t graphed, which makes a missing comma easy to spot.
void loop() {
Serial.print("{\"temp\":");
Serial.print(readTemp(), 2);
Serial.print(",\"hum\":");
Serial.print(readHumidity(), 1);
Serial.println("}");
delay(500);
}
// prints {"temp":23.41,"hum":51.2}
// or keep temp:23.41,hum:51.2
Readings from USB and Bluetooth are uploaded as they arrive, so they’re saved exactly like Wi-Fi ones.
Switch any dashboard from Live to the last 15 minutes, a day, a month or a year. Long ranges are averaged so graphs stay quick, and gaps show as gaps instead of a line drawn across the time the board was off.
Drag across a graph to zoom in. Download any device’s readings as CSV. Raw readings are kept for 30 days and per-minute averages for a year.
A web page can only reach USB and Bluetooth where the browser allows it. Wi-Fi works everywhere.
| Browser | USB | Bluetooth | Wi-Fi |
|---|---|---|---|
| Chrome, Edge, Opera (computer) | Yes | Yes | Yes |
| Chrome on Android | No | Yes | Yes |
| Firefox 151 or newer (computer) | Yes | No | Yes |
| Brave | Off, enable in brave://flags | Off, enable in brave://flags | Yes |
| Safari, iPhone and iPad | No | No | Yes |
There are no ads, trackers or third-party scripts. Passwords are salted and hashed, and device keys are stored only as fingerprints. Delete a device and its readings go with it. Delete your account and everything goes.