For Rhythm owners

A new Rhythm, for the one you already have.

Version 2 is a rewrite of the software inside your Sunlight Generator: a new interface, faster and more accurate dial control, and usage history. If you choose to connect it to Wi-Fi, it can also sync its clock, follow sunrise and sunset, and work with Apple Home and Home Assistant. It runs fully offline if you’d rather.

Free for every owner. We’ll fit it in person where we can reach you. Try it below first — this is the real software, running in your browser.

Version 2.4-m14, running in your browser. The same software that would be on your generator.

1.0.02.4-m14

What your generator does now, and what it will do

Every generator we’ve shipped runs version 1.0.0. Anything below marked optional stays off unless you turn it on.

  • Brightness

    Now

    Turn the encoder. Long press for on/off.

    After

    Same controls. 1% steps instead of coarse ones, and a fade between levels rather than a jump. The encoder is decoded in hardware now, so fast turns don't drop steps or reverse.

  • Schedules

    Now

    Two on/off times per day, set on the device.

    After

    Still two, still set on the device. They can optionally follow sunrise or sunset with an offset, which needs a network connection to know where you are. A 24-hour ring shows the day.

  • Clock

    Now

    Set by hand. Drifts, and is lost when the unit is unplugged.

    After

    Kept through a power cut either way. If you connect it to a network it sets itself; if you don't, you set it by hand as before.

  • Wi-Fi

    Now

    Not supported.

    After

    Optional. The generator runs fully offline and every function above works without it. Connecting it is what enables clock sync, sunrise/sunset, home apps and updates.

  • Home apps

    Now

    Not supported.

    After

    Optional, and requires Wi-Fi. Apple Home and Home Assistant, over Matter. Google Home and Amazon Alexa require CSA Matter certification, which is pending.

  • Usage data

    Now

    Not recorded.

    After

    Time on and average level, per hour and per day, kept for 14 days. Stored on the device. Nothing is uploaded.

  • Updates

    Now

    Open the enclosure and connect to the internal port.

    After

    Downloaded and installed over Wi-Fi if the generator is connected. Offline units still need the internal port.

Getting it

Let us fit it

Version 2 is loaded through a port inside the enclosure, so the generator has to be opened to reach it. We’d rather do that than have you risk it. Onsite upgrades are complimentary, subject to availability in your area.

Recommended

We’ll come to you

Tell us roughly where you are and we’ll confirm whether we can reach you, then arrange a time. We bring the tools, open the unit, load version 2, reassemble it and check it works. We can set up Wi-Fi and a home app while we’re there if you want them — neither is required.

No charge. We only use this to arrange your visit.

For the technically inclined

Do it yourself

This one carries real risk.

You have to take the enclosure apart to reach an internal USB‑C port. If the write is interrupted, or the wrong image is loaded, the generator can be left unusable and will have to come back to us. Nothing was shipped in the box for this.

  • You’ll need a Mac with Apple Silicon, your own USB‑C cable, and the tools to open the enclosure.
  • Unplug the generator from the wall and let it sit before you open it.
  • The installer handles the rest once it recognises the unit. Don’t disconnect it while it’s writing.
Download the installer

macOS · Apple Silicon

The installer writes the firmware packaged inside it, which is not always the newest version listed on this page (currently 2.4-m14). It does not check for anything newer before it writes. Once the generator is on version 2 it can pick up later versions over Wi-Fi on its own, if you connect it.

Either way, this is the last time your generator needs opening. From version 2 on, updates arrive over your Wi-Fi on their own.

Roadmap

What shipped, and what hasn’t

Planned items are things we have started, not dates we are promising.

Version 1

What every generator in the field does today.

  • Brightness on the encoder1.0 — shippedWith gamma correction and fades.
  • Two daily schedules1.0 — shippedOn and off times, set on the device.
  • On-device clock1.0 — shippedSet by hand; lost on unplug.
  • Fan control1.0 — shippedDuty tracks brightness, with a cooldown hold.

Version 2

Included in this upgrade.

  • New interface2.0 — shippedPage carousel, cross-fades, antialiased type and rings.
  • Hardware encoder decoding2.0 — shippedFast turns stop dropping steps.
  • 24-hour schedule ring2.0 — shippedThe day at a glance.
  • Usage history2.0 — shippedPer hour and per day, 14 days, stored on the device.
  • First-run tour2.0 — shippedReplayable from Settings.
  • Wi-Fi2.1 — shippedOptional. On-device setup or from your phone by scanning a code.
  • Clock sync and persistence2.1 — shippedSets itself when online; survives a power cut regardless.
  • Sunrise and sunset schedules2.1 — shippedWith offsets. Requires a connection to resolve location.
  • Apple Home and Home Assistant2.2 — shippedOver Matter. Requires Wi-Fi.
  • Multiple home apps at once2.4 — shippedA fresh setup code per home.
  • Updates over Wi-Fi2.4 — shippedStaged, with automatic rollback if an image fails to boot.
  • Opt-in crash reports2.4 — shippedNever sent without an explicit yes.

Planned

Committed to in the firmware, not yet dated. We will not list anything here we have not started.

  • Google Home and Amazon Alexa — plannedBoth require CSA Matter certification, which is pending. The pairing path is already built and tested; the generator shows these as coming soon in the meantime. No firmware change is needed once certification completes — they get switched on.

Wanted

Where this is going. Not started, so no date and no promise — kept apart from Planned for exactly that reason.

  • A desktop app that updates over the air — plannedCheck for new firmware and install it from a laptop over Wi-Fi, rather than opening the enclosure. Today's installer only writes the version packaged inside it and never checks for anything newer. The generator would keep its own on-device update either way — this would be a second route to the same thing, for when the dial is out of reach or you would rather drive it from a bigger screen.

Release notes

Every version since yours

Upgrading installs all of it at once. Open a version to read what it brought.

    • Updates install over Wi-Fi

      Connected generators check for new firmware and install it, showing progress on screen. Rollouts are staged and can be stopped centrally. An image that fails to boot is rolled back to the previous one automatically. Offline generators are unaffected and keep working.

    • More than one home app at a time

      Adding a second app re-offered the original setup code, which some apps reject. The generator now issues a fresh code per home.

    • Fixed: Apple Home brightness did not update

      The level reported to Apple Home was sent with the wrong value type and silently rejected, so the tile showed a stale percentage while on/off worked. The tile now tracks the dial.

    • Fixed: Wi-Fi reconnection

      A dropout after a router restart could be misread as a wrong password and stop retrying. Also fixed on networks that only assign IPv6 local addresses.

    • Fixed: wrong-password feedback

      A mistyped password retried indefinitely instead of reporting the failure. It now stops and says so, and a rejected password is not saved.

    • Fixed: factory reset left pairings behind

      Reset cleared the device's own settings but not its Matter fabrics, so a reset generator still reported itself as paired. It now clears both.

    • Fixed: non-ASCII characters

      Wi-Fi names containing curly apostrophes or accents rendered as empty boxes. Text is now mapped to characters the font contains.

    • Opt-in crash reports

      After an unexpected restart the generator can send us a diagnostic report. It asks first, every time, unless you choose otherwise. Declining erases it.

    • Antialiased arcs, rings and curved text

      Previously drawn with hard pixel edges.

    • Per-unit identity stored on the device

      Serial, model and colourway, in a partition a factory reset does not touch, so a reset unit still knows what it is.

    • Pairing screen reports fabric count accurately

      It previously overstated how many apps were connected.

    • Matter pairing

      The generator is a Matter dimmable light. Pair it with Apple Home or Home Assistant to control brightness and on/off from an app, a voice assistant or an automation. Requires Wi-Fi.

    • Guided pairing, with a conflict warning

      A home automation and the generator's own schedules both drive the light with no priority between them — last change wins. The pairing flow says so and offers to turn the schedules off.

    • Cross-fades between screens

      Pages previously cut straight from one to the next.

    • Optional Wi-Fi

      Set up on the device with a touch keyboard, or from your phone by scanning a code on screen. Everything the generator did before still works without it.

    • Clock sync, and a clock that survives a power cut

      Time is taken from the network when connected, and checkpointed to the hardware clock and to storage either way. Previously the time was lost on unplug.

    • Sunrise and sunset schedules

      A schedule can anchor to sunrise or sunset with a minute offset instead of a fixed time. Location is resolved approximately from the network connection.

    • Updates over the local network

      From this version the firmware can be pushed to the generator over Wi-Fi. This upgrade is the last one that requires opening the enclosure.

    • Rewritten from a single file

      Version 1 was one 2,391-line source file driving a menu. Version 2 is 193 files: a page carousel, a compositor that fades between pages, and a text renderer for the round display.

    • Encoder decoded in hardware

      Version 1 sampled the encoder once per loop, so a fast turn aliased — dropped steps, and sometimes registered the wrong direction. Counting now happens in the ESP32's pulse counter, which cannot miss an edge. Turn response is also eased and velocity-aware.

    • 24-hour schedule ring

      Shows the whole day and where the light falls in it.

    • Usage history

      Time on and average level, per hour and per day, kept for 14 days on the device. Nothing is uploaded.

    • First-run tour

      Walks through turning, pressing and swiping on first power-on. Replayable from Settings.

    • Screen sleep

      Press and hold to sleep the screen, touch to wake, and an automatic sleep after five idle minutes. The light is unaffected.