EMBER / pit monitor

Sign in

Check your eight probes from anywhere.

Demo build — any user / password works.

EMBER / pit monitor

Pit monitor

Live ·
--%--V
Get alerts when food is ready

The in-app beeps only work while this page is open. For alerts with your screen off or in another app, install the free ntfy app and subscribe to your private topic below — your logger will push "Brisket reached 95°C" straight to your phone. “Ready” and “over range” alerts are sent at max priority (they can override Do Not Disturb). For maximum loudness, open the topic in the ntfy app and set a loud ringtone + allow it to override silent mode.

Your topic:

Install the app, tap “Subscribe to topic”, and paste the topic above. Tip: turn on a probe’s Alert and its timer will also buzz your phone when it ends — even with the screen off.

Ember User Manual

1. Quick Start & Basic Operation

Wake device: press the main button. The white LEDs display WiFi signal strength (1 to 5 bars).
Plug in a probe: connecting a probe illuminates its red LED, adds the channel to the dashboard, and automatically starts a cook session.
Temperature thresholds: set Min, Target and Max per channel. The red LED flashes when the temperature exceeds your Max.
Mobile alerts: toggle Alert on a channel for push notifications via the ntfy app (subscribe once, see the alerts card).
Name your cook: tap the large title on the Live view (it reads "Unnamed cook \u270e" until you do), type a name, press Enter. Past cooks can be renamed from their History page.
Battery tab: live pack voltage and temperature, a 6 h / 24 h / 7 d voltage chart (green bands mark charging), and a permanent charge & discharge log with measured drain and estimated runtime.
Automatic sleep: after 10 minutes with no probes plugged in and not charging, the device sleeps. Press the button \u2014 or simply plug in the charger \u2014 to wake it. While asleep, the battery reading is a projection from the measured sleep drain, shown with a ~.

2. Cook Logic & Session Management

A cook session starts when the server first detects a connected probe.

Trigger / actionBehavior
Plug in probeStarts a cook session automatically.
Unplug & replug probeAlways a new cook session; the previous one is finalized under History.
Unplug all probes (10 min)Concludes the session, archives it under History, device sleeps.
End cook (probes plugged in)Bookkeeping only: recording stops while live temperatures keep showing.
Start a new cook (probes in)Press Start cook in the header after ending — or unplug and reinsert.

3. Charging & Battery Safety

Charging: connect via USB-C. The battery indicator switches to "Charging" and hides the percentage — while the charger holds the voltage up, a percentage would be fiction. The true level appears a few minutes after unplugging. A full charge takes ~10 hours.
The device stays awake while charging so the pack thermometer and the overheat alarm remain active during exactly the period that needs them; it returns to normal sleep once charging ends.
Overheat alert: if the battery exceeds 60 °C, an urgent push notification is sent. Unplug immediately and inspect.
Battery care: recharge around 20–30% rather than running to empty — deep discharge ages lithium cells, and "drain it fully first" is a myth from older chemistries. Unplug once the dashboard shows full; don't leave it on the charger for days. Never charge below 0 °C. In the Battery tab, a run appears in the log when it ends; the one in progress shows at the top marked running.

Safety protocol: if the case becomes hot to the touch or appears swollen, take the device outdoors immediately and replace the battery pack.

4. Setup Portal & Firmware Updates

1. Enter setup mode: press and hold the main button ~2 seconds.
2. Connect: join the WiFi network Ember-Setup from your phone or computer.
3. Open the portal: http://192.168.4.1.
There you can manage saved WiFi networks, calibrate each probe, run the LED test, and follow the full OTA firmware-update instructions.

Demo data. Sample cooks are generated so you can try the time machine. To go live, set API_BASE at the top of the script to your backend.