The AL60 is designed with open standards in mind. While it works perfectly as a standalone clock, its true potential is revealed when you dive into its firmware and integration options. At its core, the AL60 uses a powerful ESP32 C3 microcontroller running firmware built with ESPHome.
Open Hardware and Software
Section titled “Open Hardware and Software”We believe in the Right to Repair and the freedom to customise. Almost every aspect of the AL60's behaviour can be modified, from the way it renders the clock hands to the sounds its buzzer makes. You can:
- Modify the Firmware: Change the ESPHome YAML configuration to adjust existing features and preferences, or extend the C++ external component to add new features.
- Extend the Hardware: The internal I²C bus is accessible for adding additional sensors.
Source Code Structure
Section titled “Source Code Structure”The AL60's firmware is modular. It consists of a core ESPHome YAML configuration, additional package files, and a custom external component. You can find the full source code on the GitHub project.
- al60.yaml Main device configuration
- al60_factory.yaml Factory firmware configuration
Directorycomponents/ring_clock/ Ring Clock external component
__init__.py- ring_clock.h
- ring_clock.cpp
Directorypackages/
- al60_core.yaml ESP and Wi-Fi setup
- al60_inputs.yaml Button and mode logic
- al60_light.yaml LED ring and effect definitions
- al60_sensors.yaml Environmental and motion sensor setup
- al60_time.yaml SNTP and RTC management
Directoryblueprints/ Templates for Home Assistant automations
- …
The Ring_Clock Component
Section titled “The Ring_Clock Component”The ring_clock custom component is the "brain" of the display. It handles:
- Dual Ring Rendering: Mapping 108 LEDs into two concentric rings.
- State Machine: Managing the transitions between time, timer, stopwatch, and sensory modes.
- Physics-based Fading: Smooth animation logic for "Hands".
Compiling Your Own Firmware
Section titled “Compiling Your Own Firmware”While the AL60 comes ready to use, you may wish to modify and compile the firmware yourself to unlock advanced customisations or manage the device entirely offline.
This method allows you to make small changes to the clock's configuration. It uses remote packages, meaning your clock will automatically pull the latest NIX labs features and fixes.
Ensure you have the ESPHome Device Builder installed and open your Dashboard.
Look for a new device card labelled
al60under the "Discovered" section. Click Adopt.Give your device a permanent name and enter your Wi-Fi credentials.
ESPHome will perform an initial "Install." This links the device to your dashboard for future wireless (OTA) updates.
Once finished, the device card will turn green, indicating it is online and managed by your local dashboard.
Choose this method for total control. By downloading the source files locally, you can modify the underlying YAML and ring_clock component, or build your firmware without an internet connection.
Clone the Repository: Obtain the source code from the GitHub project.
Move Files to ESPHome: Copy the relevant YAML and component files into your local ESPHome configuration directory.
Customise Substitutions: Modify the
substitutionsblock in the YAML files to match your device names.Flash the Firmware: Use the ESPHome command line or dashboard to compile and install the firmware.
Adding Features
Section titled “Adding Features”Bluetooth Proxy
Section titled “Bluetooth Proxy”To add bluetooth functionality in Home Assistant add the followin lines to your al60.yaml file:
esp32_ble_tracker:
bluetooth_proxy: active: true