‹ cd ~/work/cinderclockmanual.html
ENDOTHERMAL// manualfw v2.2.1

CinderClock v2 — User Manual

Firmware v2.2.1. This manual covers every feature in the shipped firmware, how to use it, and why it works the way it does.



1. What this device is

CinderClock is a desk alarm clock with a wide monochrome display, a real-time clock backed by a battery, a speaker, and a microSD card for your own alarm sounds.

Beyond telling the time it does five things:

Everything runs on the device. There is no app, no account, and no internet connection. The only network feature is a temporary local WiFi hotspot used to copy sound files onto the card, and it turns itself off.


2. Hardware

PartWhat it isWhy it is there
Display256 × 64 monochrome OLED (SSD1322), 3.12"Wide aspect fits a large clock and a side panel at once. OLED means unlit pixels are genuinely off, so a dark room stays dark.
ProcessorESP32-S3, 16 MB flash, 8 MB PSRAMTwo cores. Audio runs on one, the interface on the other, so playback never stutters when you press a button.
Clock chipDS3231 with coin cellKeeps time when unplugged, and is temperature-compensated, so it drifts far less than a bare microcontroller.
AudioMAX98357A amplifier + speakerPlays real WAV files off the card, not just beeps.
StoragemicroSD, SPIYour sound files.
Light sensorBH1750Automatic brightness and night dimming.
EnvironmentBME280Temperature, humidity, air pressure.
InputAnalog joystick with push, plus four buttonsSee below.

Both sensors are optional. If either is absent the clock detects that at power-on and simply hides the features that depend on it — nothing errors out.


3. Controls

Four buttons and a joystick. The joystick pushes in as a fifth button.

ControlUsual meaning
Joystick up / downMove through a list, or change the value under the cursor
Joystick left / rightMove between fields, or step a value up/down
Joystick clickSame as C in most places; opens the main menu from standby
ADo the thing — start, dismiss, confirm the primary action
BBack / cancel. Never destructive.
CConfirm, save, or toggle the highlighted item
DMenu from standby; snooze while an alarm rings; lap on the stopwatch

The rule to remember: B always goes back and never loses more than the current edit. Anything that deletes asks first.

The 2-minute rule

Any menu or editor left untouched for 2 minutes returns to standby. This prevents screen burn-in and lets the clock go back to sleep.

Screens that are doing something are exempt and stay up indefinitely: a ringing alarm, a running game, a running timer or Pomodoro, the stopwatch, Ambient, the SD portal, and the display calibration screen.


4. The standby screen

Standby is the clock face. From it:

InputResult
D or joystick clickMain menu
UpQuick Access (see §22)
DownNext watch face
RightJumps to whatever is currently running — a snoozed alarm, Pomodoro, stopwatch, or timer, in that order

The face strip

Faces are arranged as a vertical strip, like a smartwatch:

  -1   Quick Access
   0   Home face
  +1   Alternate face
  +2   (future faces)

Up walks toward Quick Access and only opens it from position 0. Down walks deeper into the face list and stops at the last one. This is why Up does not always open Quick Access — the strip has one consistent direction of travel rather than a mode-dependent shortcut.

Two faces ship: Center (large centred clock) and Left (clock on the left, alarm and status panel on the right). The face you leave it on is remembered across a power cycle.

The face switch is written to storage 3 seconds after you stop changing it, not on every press, so flicking through faces does not wear the memory.

What the face shows

Depending on your settings: time, seconds, date, next alarm summary, temperature and humidity, battery indicator, and a callout row reminding you which joystick direction does what. Each of these can be turned off in Settings — the display is small, and a clock you actually want on your desk is one that shows only what you use.


5. Sleep and waking

On standby the clock sleeps between seconds. It wakes once per second, updates the time, and goes back to sleep. This is why the device is cool and quiet.

To wake it, press any button — including the joystick click. After that the joystick responds immediately.

This matters because the joystick's direction axes are analog. The processor cannot be woken by an analog signal, only by a button. So a joystick nudge on a sleeping clock is not seen until the next one-second wake-up, which feels laggy and inconsistent. Pressing any button first wakes the loop, and from then on directions are read at full speed.

The clock will not sleep while: an alarm is active or snoozed, audio is playing, a file upload is in progress, the web portal is on, a Pomodoro is running, or the thermal screensaver is drawing.


6. Alarms

Main menu → Set New Alarm, then pick a type. View Alarms lists what you have; select one to edit, delete, or toggle it on/off.

The five types

TypeFires
SimpleOnce, at a set time, then stops
RepeatingOn a recurring pattern (below)
On/OffA duty cycle — some units armed, then some units silent, repeating forever
SunriseAt local sunrise, recalculated daily
SunsetAt local sunset, recalculated daily

Sunrise and Sunset are set up under Sun Follow (§11), not here.

Recurrence: the one idea to understand

Repeating and On/Off alarms each have a Cycle setting with two values, and it changes what everything below it means:

Cycle: WeeksCycle: Days
RepeatingFires on the days you tick, every Nth weekFires every N days counting from the start date. Day of week is ignored.
On/OffN weeks armed, M weeks silent, on the days you tickN days armed, M days silent, counting from the start date

When you set Cycle to Days the day-of-week row disappears, because it no longer applies.

Worked examples:

The alarm list writes these back in plain language — "Daily", "Weekdays", "Weekends", "Every 3 days", "3d on/2d off" — rather than showing a raw pattern, because the single biggest source of confusion with this kind of clock is not knowing what you actually set.

The Starts row

Every recurring alarm has a Starts date. It is the anchor the cycle counts from, and it is the only thing that shifts the cycle's phase.

It is stamped once when you first save the alarm. Editing anything else — volume, sound, the game toggle — leaves it alone. (An earlier firmware re-stamped it on every save, which silently reset an On/Off alarm's phase whenever you touched its volume.)

The row slides within a one-week window, today through today + 6. That covers every practical re-phasing without needing a full date picker.

The Next ring line

Both editors show a live preview at the bottom: -> Mon 3 Aug.

It is computed by the same code the scheduler uses to decide whether to fire. They cannot disagree. If the preview looks wrong, the alarm genuinely is wrong — so use it as your check before saving, rather than waiting a week to find out.

Per-alarm sound and volume

Each alarm carries its own sound file and its own volume (1–10). Set the sound by selecting the Sound row, which opens the card browser: pick a folder, then a file.

Volume is linear and absolute: 1 is 10% amplitude, 10 is 100%. The per-alarm slider is capped at the master volume when you edit it, so an alarm can never be louder than the master setting.

Alarms are never silent. If the file is missing, unreadable, or there is no card, the clock falls back to a built-in siren. Muting sound effects does not mute alarms — those are two separate settings, deliberately.

If you ignore it

A ringing alarm gives up after 5 minutes, logs itself as MISSED, and returns to standby. The missed time is shown on the clock face until you acknowledge it.


7. Pre-alarm

Settings → Pre-Alarm. One global setting, not per-alarm.

When enabled it plays a quieter, separate sound a set number of minutes before any alarm fires. It has its own sound file and its own volume.

The point is a gentle heads-up — surfacing you out of deep sleep a few minutes early so the real alarm is less of a shock. Press A to dismiss it; the main alarm still fires on time.


8. Snooze

Settings → Snooze Opts. Three settings: on/off, mode, and length in minutes.

Snooze is capped at 3 per alarm. After that, D dismisses instead. The cap exists because an uncapped snooze is just a slower missed alarm.

The three modes

ModeWhat you do
SinglePress D once
TriplePress D three times, at least 0.5 s apart
JoystickFollow a sequence of randomly chosen joystick directions shown on screen

Triple and Joystick exist to make snoozing require enough attention that you cannot do it half-asleep, without making it impossible.

In Joystick mode each move must be fully released before the next one counts, and a new random direction is drawn every time. Holding the stick in one direction does nothing.

A snoozed alarm is reachable from standby by pushing the joystick right — you can dismiss it early or snooze again from there.


9. Wake-up games

Any alarm can have Game: ON. When it rings, A starts a game instead of dismissing. You have to win to stop the alarm.

Game losses have their own budget of 3, separate from the snooze budget. The third loss dismisses the alarm outright. This is a mercy rule: being trapped by a game you cannot beat at 6 a.m. is a worse outcome than getting up late.

The wake streak counts consecutive alarm games won, and the best streak is kept.

Which game and which difficulty is set in Games → Game Settings. Setting it to Random picks a different one each time, which stops you from learning to beat one game on autopilot.


10. History

Main menu → History. The last 10 alarm events, newest first, each showing the time, the alarm type, and what happened: DONE, SNOOZED, MISSED, CANCELLED, or a failure reason (SD_OFF, NO_FILE, MUTED).

It exists to answer "did it actually go off?" — the most common question after oversleeping, and one you otherwise cannot answer. Timers log here too.


11. Sun Follow

Main menu → Sun Follow. Calculates sunrise and sunset from your coordinates and lets you set alarms that track them through the year.

RowMeaning
Sunrise alarmOn/off
Sunset alarmOn/off
LocationYour latitude and longitude, in degrees / minutes / seconds
DateToday's date (needed for the calculation)
Sunrise OffsetMinutes before or after sunrise to fire
Sunset OffsetMinutes before or after sunset to fire
UTC OffsetYour time zone, auto-derived from longitude but editable

Times are recalculated every day, so the alarm drifts with the season exactly as the sun does — the point being that "wake at first light" is a different clock time in January than in June.

In the Location editor, left/right moves between degrees, minutes, seconds, and the hemisphere sign; clicking switches between latitude and longitude while staying on the same sub-field, so editing seconds and clicking lands on seconds.

Accuracy note: the calculation degrades above roughly 65° latitude, where the sun may not rise or set at all on a given day.


12. Calendar

Main menu → Calendar. A month at a glance: grid on the left, summary on the right.

The alarm marks come from the same code that decides whether an alarm fires, so the calendar is a visual check on your recurrence settings. Set "every 3 days" and the marks should march across the month in threes. If they do not, the alarm is misconfigured.

There are no gridlines — at 27 pixels per column the row and column rhythm is enough, and lines would cost legibility.


13. Timer

Main menu → Set Timer, or Quick Access. Set hours, minutes and seconds; A starts it.

The timer runs in the background. Leave the screen and use the clock normally; it keeps counting. Push the joystick right from standby to jump back to it.

The full-screen timer also runs the checker saver on your screensaver interval, since it can be on screen for a long time.


14. Saved Timers and Pomodoro

Main menu → Saved Timers. Durations you use often, plus the Pomodoro editor at the top.

Saving a timer that you loaded from a slot overwrites that slot rather than creating a duplicate.

Pomodoro

A repeating work/rest cycle. Set Work and Rest in minutes (1–999); left/right switches field, up/down changes the value. Durations of 60 minutes or more display as H:MM.

While running: the phase name is at the top, the countdown in the middle, and a tomato (work) or cup (rest) on each side.

At each phase change there is a 4-second window with a countdown and a tone before the next phase starts, so you get a warning rather than being switched silently.

Phase changes are handled centrally, so they happen on time even if you are somewhere else in the menus. C stops the cycle; left or right returns to standby without stopping it. Push right from standby to get back.

The clock will not enter sleep while a Pomodoro is running, because the phase timing needs to be accurate.


15. Stopwatch

Main menu → Stopwatch, or Quick Access.

ButtonAction
AStart / stop
DLap while running (up to 4); reset when stopped
CShow/hide centiseconds
BBack

Like the timer, it keeps running in the background and laps survive until you reset. Right from standby returns to it.

Centiseconds can be turned off because a fast-changing display is distracting when the stopwatch is just sitting on your desk.


16. Ambient

Main menu → Ambient. Loops a sound with a slow full-screen animation. Intended for falling asleep, focusing, or just leaving on.

RowOptionsNotes
SoundAny file on the cardOpens the card browser. Any folder, not a fixed one.
AnimationNone, Fire, Rain, Blobs, Life, WavesSee below
ReactiveOn / OffTies the animation to the audio
Time15 / 30 / 45 / 60 / 90 min, or Endless
Volume1–10Independent of alarm volume
Fade outOn / OffFades audio over the final minutes
Auto-dimOn / OffDims the screen while running
StartAlso A from anywhere in this menu

Rows change with left/right, or click to cycle forward.

The animations

All of them run at a deliberately slow ~10 frames per second. Anything faster reads as busy rather than calm, which defeats the purpose.

Reactive mode

With Reactive on, the animation is driven by the sound:

AnimationSustained levelSudden sound
FireEmber temperature and flame heightSeeds a bright spark — a crackle you can see
RainDrop count and fall speedA splash
BlobsMorph speed and brightnessA surge
LifeBirth rateInjects a glider
WavesWave amplitudeA new wavefront

Reactive is optional and off by default; every animation is designed to look right without it.

While it runs

When the timer expires the audio stops and the screen goes nearly dark. Any key brings it back. With Auto-dim on, the light sensor is tracked so the screen calms down as the room does.


17. Games (free play)

Main menu → Games. Eight games, playable any time, plus Game Settings at the bottom for the alarm game type and difficulty.

GameGoalLose by
Ping PongReach the rally target (7 / 12 / 20 by difficulty)Running out of lives (5 / 3 / 1)
MazeReach the goal before time runs out (90 / 60 / 30 s)Timeout
Fly BirdPass 5 / 10 / 15 pipe pairsHitting a pipe or the floor
Space DudesClear the formation (1 / 2 / 3 rows)Losing all lives, or letting them reach you
FrankGrow to length 8 / 12 / 16Hitting yourself or a wall
Bricked OutClear 10 / 16 / 24 bricksDropping the ball
Wild RunnerSurvive 25 / 35 / 45 secondsHitting an obstacle
MeltdownHold the reactor in band for 30 / 60 / 90 seconds3 s continuously out of band, or 1.5 s pegged

Difficulty is a single global setting and changes both the challenge and, for the survival games, the duration.

High scores are kept per game and per difficulty, so an easy-mode score never overwrites a hard-mode one.

B pauses. From the pause screen, A resumes and B quits.

Meltdown

Worth calling out because it works differently. A reactor gauge drifts; you push the joystick up to heat and down to cool, keeping the needle inside a moving safe band for the full countdown. The stick direction matches the needle direction on screen.

It is scored by survival time, and the clicking is a Geiger counter — short dry impulses, irregularly spaced, whose rate climbs steeply as you approach the edges of the band. The irregular spacing is deliberate: real radiation counts are random in time, and evenly spaced clicks read as a buzzer instead.


18. Environment sensors

If a BME280 is fitted, the clock reads temperature, humidity and air pressure.

Pressure trend is measured over about 3 hours (logged every 10 minutes into an 18-slot history). More than 1.5 hPa of change reads as rising or falling; less reads as steady. Falling pressure generally precedes worse weather, which is the practical use.

Daily highs and lows reset at midnight.

Sensors are read once per second (light) and once every 5 seconds (temperature, humidity, pressure) in the clock's normal 1 Hz tick, never inside drawing code — so adding sensors does not slow the display down. The 5-second interval also avoids the sensor heating itself and reading high.


19. Display

Brightness

Settings → Brightness sets levels 1–6 manually.

Settings → AutoBright hands it to the light sensor instead. Six levels map to measured brightness thresholds (roughly: under 2, 10, 50, 150, 400 lux and above). A change has to hold for 3 seconds before it is applied, so a passing shadow or a hand over the sensor does not make the screen pulse.

Night dim: below 1 lux for 10 continuous seconds, the screen drops below the manual minimum. A clock bright enough to read in daylight is far too bright in a dark bedroom.

While auto-brightness is on, the Brightness row reads AUTO.

Screensavers

Settings → Saver sets the idle interval (off, 1, 5, or 10 minutes); SaveMode picks the method.

MethodWhat it does
CheckerCycles plain → checkerboard → opposite checkerboard
DistributeShifts which pixels carry the image
JumpMoves the clock between three horizontal positions
ThermalReplaces the face with the animated thermal field and a small clock

OLED pixels age with use, so a clock face left in one position for years leaves a permanent ghost. All four methods address that; they differ in how noticeable they are.

Checker replaced a plain whole-frame invert. Inversion lit nearly every background pixel at once, which was both a hard brightness step and the worst case for the row-uniformity effect described below. Checker instead knocks the text out of a 50% checkerboard, and runs the two complementary halves on successive steps. Over a full plain/A/B cycle every pixel on the panel spends one step in three lit — more even than inversion's one in two, at roughly half the instantaneous load. The text keeps a one-pixel dark outline so it reads as a hole in the pattern rather than part of it.

Row uniformity and the Display Test

This panel lights one row at a time, and all the lit pixels in a row share a supply rail that sags under load. A row with many lit pixels is therefore dimmer than a sparse one. On an inverted screen the blank areas are fully lit and the text rows are not, which shows up as horizontal banding.

The firmware corrects this by giving each row its own grayscale level, so sparser rows are driven down to match the densest one. That needs one number calibrated for your panel.

Settings → Display Test shows four solid blocks, each lighting a different number of pixels per row. They are left-aligned, so all four overlap in a column down the left edge — compare them there.

KeyAction
Left / RightAdjust D — the correction strength
Up / DownOverall brightness
ClickChange the panel refresh rate (affects flicker, not banding)
ASave
CCompensation on/off
DInvert (test pattern only)
BExit

Press C to turn compensation off and confirm the blocks look unequal — that is the uncorrected panel, and it shows you roughly how many times dimmer the solid block is. Turn it back on, raise D until all four look equally bright, and press A. On the prototype panel the answer is D = 1.

Only 16 brightness levels exist, so the correction lands on whole steps and a few percent of mismatch remains. Aim for "nothing stands out", not a perfect match.

Because correction works by dimming down to the worst row, a fully inverted screen ends up noticeably dimmer than a normal one. That is unavoidable — there is no headroom to raise the dense row into.

Full technical detail is in docs/display-and-scheduling.md.

Other display settings

Theme switches between two font sets: A is BoldPixels, B is Gumball. Time switches 12/24 hour. Secs, Date, Env, Battery and Callout each toggle an element of the clock face.


20. Sound

Settings → Master Vol (0–10) is the ceiling for everything. Settings → Sound FX toggles button clicks and menu tones.

These are separate on purpose: Sound FX off does not silence alarms. A clock that can be accidentally muted is not an alarm clock.

Adjusting master volume plays a sample click at exactly the level an alarm would use, so you can set it by ear rather than by number.

Sound files

WAV only: PCM, 16-bit, mono, 44100 Hz. Convert with:

ffmpeg -i input.wav -ar 44100 -ac 1 -acodec pcm_s16le output.wav

Files live in folders on the card. The browser shows folders first, then files.

Built-in sounds

A folder called Built-in always appears at the top of the browser, whether or not a card is present. It contains four synthesised tones — Chime, Pulse, Climb, Siren — and they work on a clock that has never had a card in it.

They behave like any other sound: selectable for alarms, the pre-alarm, and Ambient.

Each melody ends with a deliberate pause. That gap is what makes a repeating melody read as an alert rather than a continuous drone.


21. SD card and the web portal

Browsing the card

Main menu → SD Card opens the card for listening rather than for picking. Folders first, then files. Moving the highlight previews the file under it; C stops the current file or replays it; B steps back out. Nothing you do here is assigned to an alarm — it is the same browser the sound pickers use, opened in listen-only mode, so you can audition what is on the card without editing anything. Playback uses the master volume.

The web portal

Main menu → SD Portal turns on a temporary WiFi hotspot for copying files.

  1. Set Portal: ON.
  2. Connect to the network CinderClock, password 12345678.
  3. Open http://192.168.4.1 in a browser.
  4. Browse folders, upload WAV files, delete files.

This manual is on the clock itself. With the portal on, open http://192.168.4.1/manual — or click MANUAL at the bottom of the portal page. It is stored in the firmware, so it works with no card, no internet, and no app.

The portal turns itself off after 5 minutes of not being on the portal screen. It is a transfer tool, not a service — leaving a hotspot running costs power and is one more thing to secure. Uploads in progress are not interrupted by the timeout.

If an upload dies halfway (browser closed, card pulled), the clock notices after 5 seconds and cleans up on its own rather than staying stuck.

You can also just take the card out and copy files to it directly.


22. Firmware updates

CinderClock updates over WiFi. There is no USB port on the outside of the case, and that is deliberate — the update path is designed so the enclosure never has to be opened.

The clock is offline by default. It does not phone home, does not check for updates on its own, and has no internet connection unless you give it one. New releases are announced by email; updating is something you decide to do, not something that happens to you at 3am.

Installing an update from your phone

This is the normal path. It needs no internet connection on the clock.

  1. Download the .pcu firmware file from endothermalsystems.com on your phone.
  2. On the clock: Settings > Update, then turn Portal: ON.
  3. Join the CinderClock WiFi network and open 192.168.4.1.
  4. Scroll to FIRMWARE, pick the .pcu file, press INSTALL.
  5. Watch the clock. It shows a progress bar, then restarts on its own.

Firmware files end in .pcu. They are not .wav files and do not go in the sound folders. If you hand the clock the wrong file it refuses it immediately rather than half-installing it — the file is checked before anything is written.

Installing an update over your home WiFi

Optional, and only worth setting up if you would rather not move files around by hand. Enter your home network name and password in the portal's ONLINE UPDATE box, then press CHECK NOW (or use Settings > Update > Online on the clock).

Two things to know. Your WiFi password is stored unencrypted on the device, so anyone who can physically open the clock can read it; there is a Forget button for when you are done. And the clock's radio cannot serve its own network and join yours at the same time, so the moment a check starts, the portal page disconnects. That is expected — the clock's own display takes over as the status readout.

If an update goes wrong

It is designed to be survivable, because a clock in a sealed case cannot be recovered with a cable.

If an update fails, the message on the screen says why. Press B to dismiss it. Your alarms, settings, history and saved timers are not touched by an update.

What an update will not do

Updates cannot start while an alarm is ringing — dismiss it first. An update does not erase your SD card, and it does not reset your settings.


23. Chime and ticking

Two separate things that both make the clock feel mechanical. The chime is always-on and lives in Settings; the ticking is a session you start from Ambient.

The hourly chime

Settings > Chime. A bell strike on the turn of the hour, like a clock tower.

There is one setting with five values, not a pile of overlapping switches:

ModeWhen it strikes
Offnever
Every hourevery hour, all night included
Daytimeonly between the From and To hours you set
Sun Followonly between sunrise and sunset, from your location
Customonly the hours you tick in Choose Hours

It ships on Daytime, 08:00 to 22:00, because a clock that strikes twelve times at midnight the day you unbox it is not a charming clock.

Both ends of the window are included, so To: 22 does strike at 22:00. The window is also allowed to run backwards: From: 22 / To: 06 means chimes overnight only, which is a perfectly reasonable thing to want.

Sun Follow uses the sunrise and sunset it already calculates from your coordinates. If you have never set a location — or you live somewhere the sun does not set that week — it quietly falls back to the From/To window and the menu shows Window: no location so you are not left guessing.

Strike: Count rings the hour the way a tower does: three at three o'clock, three again at 15:00. That means noon and midnight ring twelve times and take about eighteen seconds. That is correct, not a bug. If you would rather have a marker than a performance, set Strike: Single.

Press A to stop a chime at any point. You will not have to sit through all twelve.

The chime always gives way. It will not start, and it stops immediately, if an alarm or pre-alarm is ringing, if you are snoozed, if you are in a wake-up game, or if a firmware update is running. A skipped hour is skipped — it is never replayed late.

Test plays one strike so you can set the volume without waiting for the hour.

Ticking

Ambient > Sound > Pendulum. A tick and a tock on alternate seconds, like a grandfather clock.

Set it with LEFT or RIGHT on the Sound row. It uses a built-in sound, so unlike every other ambient sound it needs no SD card. It is locked to the same second the clock displays, so it will never drift out of step no matter how long you leave it running.

Two animations are built for it, on the Animation row. Both show the time large and centred, the same size as the standby face — these are clock faces first and effects second.

Either can be paired with any other sound if you like the look.

Ticking is a session like any other ambient session: it runs for the duration you set, then dims and stops. Set Time: Endless if you want it to keep going.


24. Quick Access

Push the joystick up from standby. Four items, chosen with left/right, opened with C or click:

ItemGoes to
New AlarmThe alarm type picker
TimerThe running Pomodoro or timer if one exists, otherwise the timer editor
StopwatchThe stopwatch
EnvironmentThe sensor detail screen

B or down returns to standby.

These four are the things you reach for without wanting to navigate a menu. B from an item opened here returns here, not to the main menu, so the shortcut stays a shortcut.


25. Settings reference

Main menu → Settings. Twenty items.

#ItemValuesPurpose
1Sound FXON / OFFButton and menu tones. Does not affect alarms.
2Master Vol0–10Ceiling for all audio; previews on change
3Pre-AlarmsubmenuEnable, minutes before, sound, volume
4Snooze OptssubmenuEnable, mode, minutes
5Set TimeeditorManual clock set
6Set DateeditorManual date set
7FaceCenter / LeftHome clock face
8SecsON / OFFSeconds on the face
9DateON / OFFDate on the face
10ThemeA / BFont set — A: BoldPixels, B: Gumball
11Time12H / 24HTime format
12SaverOFF / 1m / 5m / 10mScreensaver idle delay
13SaveModeChecker / Distribute / Jump / ThermalScreensaver method
14Brightness1–6 (or AUTO)Manual brightness
15AutoBrightON / OFFLight-sensor brightness + night dim
16EnvON / OFFTemperature and humidity on the face
17BatteryON / OFFBattery indicator
18CalloutON / OFFJoystick hint row on the face
19Display TestscreenRow-uniformity calibration (§19)
20AboutscreenVersion, brand info and font credits

The two built-in manuals

Main menu → How to use is a short manual on the clock's own screen — 17 sections covering every feature, five lines at a time, scrolled with up/down. It teaches; it does not go into the depth this document does. Sections: Buttons, Clock Face, Alarms, Repeat Cycles, Snooze, Wake Games, Sun Follow, Calendar, Timer, Pomodoro, Stopwatch, Ambient, Games, Sensors, Screen, Sound & SD, History.

The full manual — this document — is also in the firmware. Turn on the SD Portal and open http://192.168.4.1/manual. No card and no internet required.


26. What is stored and what is not

Kept across power loss (in the processor's internal storage, not the card):

Kept by the clock chip's battery: the time and date.

Kept on the card: your sound files. Nothing else. The card is not required to boot, keep time, or ring an alarm.

Not kept: stopwatch laps and a running timer or Pomodoro do not survive a power cut, since a countdown that resumes hours later is not useful.


27. Troubleshooting

An alarm did not ring. Check History — it distinguishes MISSED (it rang and you ignored it for 5 minutes) from failures. Then check the alarm is toggled on, and that its Next ring line says what you expect.

An alarm rang on the wrong day. Open it and read the Next ring line and the Calendar. The most common cause is a Repeating alarm in Cycle: Weeks with the wrong days ticked, or Cycle: Days with a Starts date that is not what you assumed.

No sound, or a siren instead of my file. The card is missing or unreadable, the file is not where the alarm expects, or it is not the right WAV format (PCM, 16-bit, mono, 44100 Hz). The siren is the deliberate fallback. Built-in sounds always work.

Buttons feel slow on the clock face. That is sleep. Press any button first, then use the joystick (§5).

Horizontal banding, especially on a dense screen. Run Display Test (§19). If it bothers you regardless, switch SaveMode from Checker to Jump or Thermal.

Screen too bright at night. Turn on AutoBright, which includes night dimming below the manual minimum.

Cannot find the WiFi hotspot. It shuts off 5 minutes after you leave the SD Portal screen. Go back and turn it on again.

A menu jumped back to the clock. The 2-minute idle timeout. Screens that are actively doing something are exempt.

Time is wrong after unplugging. The clock chip's coin cell is dead or missing. Replace it and set the time again.


28. Known limits

This is the manual the device serves from its own firmware at 192.168.4.1/manual, published here for reading before you own one.
endothermal systems llc · home · cinderclock · field notes · © 2026
↑ TOP