Sponsored by OpenELAB
You probably have been chasing the right focus timer for method too lengthy. You already know the sort one thing bodily that sits in your desk, helps you to twist a dial to set a timer, and triggers your complete workspace into “Do Not Disturb” mode with out ever touching your telephone. The concept is not new. There was even a Kickstarter undertaking known as TimeChi that promised precisely this. Spoiler: it by no means shipped.
After we got here throughout digital-Distraction-Blocker/?ref=adrelien.com”>this Instructables information, we have been excited, lastly, somebody had constructed it! However then we checked out what it truly required: 15+ elements from totally different suppliers, hours of soldering, 3D printing each FDM and resin components, mixing silicone rubber with titanium dioxide for a diffuser (sure, actually), and a firmware setup that regarded extremely complicated. The information was complete, however let’s be trustworthy, it was method an excessive amount of of a dedication.
Quick ahead to some months in the past when OpenELAB reached out with an inventory of merchandise they might sponsor. As quickly as we noticed the M5Stack Dial on that listing, the main focus dial concept instantly clicked. This was it, a 1.28″ spherical touchscreen, rotary encoder with a button, ESP32-S3 with WiFi and Bluetooth, USB-C connectivity, and it prices $45. All the things we wanted, already assembled.
This was our likelihood to lastly construct the main focus dial correctly, with out the weekend-consuming meeting course of.
A Phrase on Our Sponsor
OpenELAB is a Munich-based firm that distributes digital improvement modules in AIoT and robotics. Their on-line store is openelab.io. As an official European associate and trusted collaborator, they work with main IoT {hardware} producers corresponding to Seeed Studio, Ai-Thinker, M5Stack, LILYGO, and Waveshare to ship dependable, cutting-edge elements with aggressive pricing and reliable supply. OpenELAB empowers all builders, from newbies to professionals, serving to you flip concepts into actuality.
What Makes a Good Focus Dial Anyway?
Earlier than diving into code and automation, we wanted to determine what truly makes a spotlight dial helpful versus simply one other desk toy that collects mud after two weeks.
The core concept is easy: you want one thing bodily that begins a spotlight session with out touching your telephone. That is the entire level. Your telephone is the issue, it is each your productiveness instrument and your doom scroll machine. Utilizing your telephone to set off “Focus Mode” is like making an attempt to weight loss plan whereas dwelling in a bakery.
However it may possibly’t simply be a timer. If it solely does one factor, it’s going to find yourself in a drawer. So the M5Stack Dial wanted to be a clock, an alarm, a Pomodoro timer, and a spotlight set off, multi functional gadget that appears adequate to maintain in your desk.
The automation half was essential too. If you press that button, your MacBook ought to go into Do Not Disturb mode, lights to dim to a heat white, and a few background music to begin. When the timer ends, the whole lot reverses. No guide steps, no “bear in mind to show off notifications”, simply press the button and the workspace transforms.
And this is the kicker: it wanted to work on each macOS and Home windows. The unique DIY construct solely labored with iOS by shortcuts, which locked out half the potential customers.
The Growth Hell: 4 Failed Makes an attempt
Getting this to work took longer than we wish to admit. We tried 4 totally different approaches earlier than touchdown on the answer that really works.
Try 1: Bluetooth Audio Emulation
Our first concept was to make the ESP32-S3 fake to be a Bluetooth headphone. iOS Shortcuts can auto-trigger when particular audio gadgets join, so in principle, the dial may join by way of Bluetooth and iOS would acknowledge it and run the automation.
Besides the ESP32-S3 cannot emulate a Bluetooth audio gadget. It does solely BLE (Bluetooth Low Vitality) for information switch, however it may possibly’t fake to be AirPods. iOS by no means noticed it. Useless finish.
Try 2: HomeKit Integration
Subsequent, we tried utilizing the Arduino HomeKit library to register the dial as a HomeKit accent. Then we may set off automations by the Residence app like some other sensible house gadget.
This… didn’t go effectively. We spent days enhancing the library code, wrestling with certificates technology, and debugging errors that made no sense. When it lastly confirmed up within the Residence app as soon as, iOS instantly flagged it as “Not Suitable” and refused to pair. After that, it by no means appeared once more it doesn’t matter what we tried.
Lesson discovered: Apple’s sensible house protocols are landmines. Apple adjustments HomeKit consistently.
Try 3: NFC Tags
The M5Stack Dial has built-in NFC, so we figured we may use it to set off iOS Shortcuts by way of NFC automation. Besides the NFC module can solely learn or write NFC tags, it may possibly’t emulate one, which is what iOS must set off automations. You’d want to stay a bodily NFC tag on the gadget, which defeats your entire function of getting the NFC module within the first place.
Try 4: Bluetooth HID Keyboard
Getting determined, we tried making the ESP32 act as a Bluetooth keyboard and ship hotkeys wirelessly. The library documentation even warned that macOS assist was “very funky,” which ought to have been the primary crimson flag. In follow, key presses did not register constantly, the habits was unpredictable. It felt janky, precisely what we have been making an attempt to keep away from.
The Answer: USB HID (Or Why Wired Truly Works Higher)
After weeks of failed wi-fi experiments, we went again to fundamentals: what if the dial simply pretends to be a USB keyboard?
The ESP32-S3 has native USB assist. Utilizing the USB.h and USBHIDKeyboard.h libraries, we may make the M5Stack Dial emulate a wired keyboard that sends particular key combos when the timer begins or stops.
The implementation is surprisingly easy:
#embrace "USB.h"
#embrace "USBHIDKeyboard.h"
// When timer begins
Keyboard.press(KEY_LEFT_CTRL); // Maintain Management
Keyboard.press('1'); // Press '1'
delay(50);
Keyboard.releaseAll();
// When timer ends
Keyboard.press(KEY_LEFT_CTRL); // Maintain Management
Keyboard.press('2'); // Press '2'
delay(50);
Keyboard.releaseAll();
That is it. The dial sends Ctrl+1 when a spotlight session begins and Ctrl+2 when it ends.
And this is why this works so significantly better than we anticipated: there is not any pairing, no connection points, it is only a USB gadget. Plug it in and it really works. Each macOS and Home windows acknowledge USB keyboards immediately. You possibly can bind these key combos to something: macOS Shortcuts, Home windows PowerToys, AutoHotkey scripts, Alfred workflows, BetterTouchTool triggers. And it is rock-solid dependable, no dropped connections, no latency, no bizarre pairing bugs.
The pivot from wi-fi to wired turned what felt like a limitation into probably the most versatile function. Typically easy is best.
DIY vs M5Stack Dial: Not Even Shut
The unique DIY construct price round $80-100 in components and took 8-12 hours to assemble if you happen to have been quick and knew what you have been doing. You wanted soldering expertise, entry to a 3D printer (ideally two differing kinds), and endurance to debug inevitable points. The M5Stack Dial prices $45 from OpenELAB, takes 5 minutes to flash the firmware, and requires primary pc expertise at most.
The DIY model solely labored with iOS and even then, the Bluetooth automation was hit and miss. The M5Stack Dial with HFOS works on macOS, Home windows, and Linux with rock-solid USB HID reliability.
{Hardware}
All you want is one gadget, the M5Stack Dial v1.1
Software program
If you wish to construct this your self, you may want an M5Stack Dial V1.1, a USB-C information cable, and both Arduino IDE or VS Code with PlatformIO put in.
Set up Steps
Obtain HFOS Firmware:Â GitHub: HFOS M5Stack Dial
- Clone the repository:
git clone https://github.com/HarborScale/hfos-m5stack-dial.git
cd thos-m5stack-dial
- Open in your most well-liked IDE
- Add M5Stack board to Arduino IDEÂ
- Go to File → PreferencesÂ
- Add to “Extra Board Supervisor URLs”:
https://static-cdn.m5stack.com/useful resource/arduino/package_m5stack_index.json - Go to Instruments → Board → Board Supervisor
- Search “M5Stack” and set up “M5Stack by M5Stack”
- Choose board: Instruments → Board → M5Stack → M5Stack-DIAL
- Set up required libraries:
- Configure your settings inÂ
HFOS.ino:
const char* WIFI_SSID = "YOUR_SSID";
const char* WIFI_PASS = "YOUR_PASSWORD";
#outline TIME_ZONE_OFFSET_HRS +3 // Your UTC offset
- Construct and add to your M5Stack Dial
The gadget will boot, hook up with WiFi, and also you’re able to go. Navigate to Settings to sync the time by way of NTP and toggle 12/24-hour format if wanted.
As soon as HFOS is put in, the gadget acts as a USB Keyboard. Due to this, it could not come as a COM port once more
To repair this, you have to manually enter “Obtain Mode”:
- Find the 2 buttons on the again of the M5Stack Dial. One on the sticker labeled “BTN” and one on the aspect labeled with rotating arrow.
- Maintain down the button labeled BTN.
- Whereas holding BTN, press the RESET button as soon as.
- Launch the BTN button. The display will stay black, however the gadget will now seem as a COM port in your pc, prepared for a brand new add.
Setting Up the Automation
On macOS:
- Open the Shortcuts app
- Create your “Focus Begin” automation
- Click on the (i) information icon → Add Keyboard Shortcut →Â
Ctrl+1 - Create your “Focus Finish” automation
- AssignÂ
Ctrl+2Â hotkey
On Home windows:
- Use PowerToys Keyboard Supervisor or AutoHotkey scripts
- Assign your automation scripts toÂ
Ctrl+1Â andÂCtrl+2
If you wish to customise the firmware, change the hotkey combos or add options, it is all in HFOS.ino . Change the important thing definitions, rebuild, and add. The code is open supply and designed to be hackable.
HFOS: The Firmware
We constructed a customized firmware known as HFOS particularly for this undertaking. It is designed to be multi-functional, not only a focus timer, but in addition a clock, alarm, and visible indicator of your present state. The complete supply code is on GitHub.
If you first energy it on, the gadget connects to WiFi utilizing the credentials you have configured within the code. From the principle menu, you’ll be able to navigate between 4 apps by rotating the dial: Clock, Timer, Alarm, and Settings. Faucet the display or press the rotary button to enter an app, and press the rotary button to return to the menu.
Clock Mode
The clock shows the present time with a easy, clear interface. The date seems beneath in a smaller font. You possibly can change between 12-hour and 24-hour format within the Settings app.
Timer Mode
That is the place the main focus dial magic occurs. Rotate the dial to set your period (10 seconds to 59 minutes in 10-second or 1-minute increments relying on how briskly you flip). The display reveals your set time with a progress gauge across the edge. Faucet to begin the timer.
When the timer begins, the dial sends Ctrl+1 to your pc and begins monitoring. The gauge depend down with orange ring as time progresses, exhibiting precisely how a lot time stays. When the timer completes, it sends Ctrl+2 and performs an alert tone. The display shows “TAP TO STOP” till you acknowledge it.
You possibly can pause the timer mid-session by tapping as soon as, it remembers the place you left off.
Alarm Mode
Set an alarm by rotating the dial by hours and minutes. Faucet to cycle by setting the hour, setting the minute, or toggling the alarm on/off. When the alarm is enabled, the outer ring turns orange. When it rings, you may see the identical alert display because the timer with an audible tone. Faucet to Cease.
Settings App
The Settings app has two features. Faucet the highest half of the display to sync time by way of NTP over WiFi, this pulls the present time from web time servers and updates the clock. Faucet the underside half to toggle between 24-hour and 12-hour time format. A small indicator reveals which mode is lively.
The Stand: Making It Truly Usable
One factor we found fairly rapidly: the M5Stack Dial does not sit flat on a desk very effectively. We discovered this 3D-printable stand on Printables that props it up at an ideal angle for desk use.
However with one suggestion: laying the dial on its again (with the USB-C port pointing up) was truly extra secure than the everyday orientation. So you’ll be able to rotate the display 180 levels within the firmware (SCREEN_ROTATION 2) so the show reveals right-side-up despite the fact that the gadget is flipped. This manner, the cable is available in from behind, the stand retains the whole lot secure, and the dial sits on the good viewing angle in your desk.
Does It Truly Assist?
We have been utilizing this setup day by day for just a few weeks now, and actually, it is made a much bigger distinction than we anticipated. The physicality issues greater than we thought it might. Having a devoted gadget to begin focus periods creates a ritual. Twist the dial to 25 minutes, press the button, and the mind is aware of: “Okay, it is work time.” The lights dim, music begins, telephone goes silent, all with out touching the telephone.
The Pomodoro Method truly sticks when there is a bodily gadget imposing it. In case you are horrible at taking breaks, when the timer ends and the alert performs, it is tougher to disregard than a telephone notification you’ll be able to swipe away. The bodily gadget calls for acknowledgment.
There are some quirks. The USB cable is seen, which is not as clear as a wi-fi gadget can be. You might want to be at your pc because it emulates a USB keyboard, you’ll be able to’t set off focus mode from throughout the room. And sometimes on macOS, the system does not acknowledge the hotkey instantly after waking from sleep (unplugging and replugging fixes it, however it’s annoying).
However total? It really works. And it really works reliably, which is greater than we are able to say for any of the wi-fi makes an attempt.
We reside in a world drowning in productiveness apps. There is a browser extension for the whole lot, a telephone app for each drawback, a SaaS resolution for each workflow. However this is the factor: the gadget working these apps can be the supply of infinite distraction. Your telephone has each your todo listing and TikTok. Your pc has each your work paperwork and Reddit.
Utilizing the identical gadget to combat distraction is essentially damaged. Bodily separation works. The Focus Dial creates a boundary, it is a devoted instrument with one job. It does not have notifications. It does not have social media. It does not have “only one extra video.” It is a dial. You twist it, press it, and go to work.
In a bizarre method, it brings again the simplicity of analog productiveness instruments, kitchen timers, desk clocks, and bells, however with the ability of contemporary automation. It is the perfect of each worlds.
Last Ideas
The unique DIY Focus Dial was a stupendous concept trapped in a nightmare of execution. The M5Stack Dial with HFOS is that concept truly realized, a plug-and-play productiveness instrument that works out of the field.
For $45, you get a useful desk accent that is additionally a clock, alarm, and Pomodoro timer with actual automation that works throughout platforms. No soldering, no 3D printing, no weekends misplaced to debugging Bluetooth pairing points.
That is the Focus Dial that ought to have existed from the beginning. If you happen to’re uninterested in combating your telephone to remain targeted, if you happen to’ve tried each app and browser extension and nonetheless end up doom scrolling, if you happen to simply need a easy instrument that works, that is it.

