back
66 comments
Author here! :) This article is me sharing something that made me really happy, wanting to show others how they can do the same.

I see some comments pointing out that the clock wouldn't need to run in the browser. I picked this option to make it simple for folks around me to quickly prototype their own clock faces. This isn't supposed to be the cheapest or most efficient implementation, either; feel free to build your own LCD clock and then blog about how you did it!

Indeed. Don't be dissuaded by Hacker News commenters. All the naysayers here doesn't seem to have published their own blog posts about how they built circular LCD clocks with Arduino ESP32 and low level programming or whatever they fancy as "good enough".

Browser based rendering that allows people to easily make new watch faces with JS and SVG is a perfectly reasonable platform for a nifty project like this. I think your watch faces look neat.

Its a genuinely nice idea, I do love the second clock face you've done, the sort of "fuel gauge" one. I think a great next step would be some sort of gallery of clock faces that people can use and contribute to, based on whatever code you've used to create them
Can it display the time on a set of scrollbars? :)
Next project: Dali circular clock (flexible OLED)
Impressive cable lacing. Nobody talked about that yet.
Really nice visuals!

Could you give a little more information about the 'stack' you're using to display the clock?

From this:

> This minicomputer will power the clock. The Pi 3B+ seems just enough to render some simple animations.

> I also tried with a Raspberry Pi Zero 2, but 512 MB of RAM were too little to run a modern browser, sadly. I think a Pi 4 might be a good sweet spot between processing power and price, currently.

...are you essentially displaying a full-screen browser window in the default Raspbian window manager and then running local Javascript for the clock itself?

It goed to show how negative HN is
Beat project, but

> I also tried with a Raspberry Pi Zero 2, but 512 MB of RAM were too little to run a modern browser,

You don't need a browser to display graphics. And you don't need to be a programming whiz either. I'm sure Claude could write some python to render these clock faces.

512mb or RAM to show the time, what a time we live in.
People tend to use LVGL for this kind of projects. Seems adequate. No X server, direct framebuffer write, good tooling.
Yeah, there's loads of really cool visualizations you can do with really limited specs, demo scene stuff. Of course, that's an art of its own, it's probably easier to look at c++ and its graphics libraries, or even game engines.
Or TCL/Tk with even less RAM and CPU usage than Python.
I just want to point out I think the project is still cool, if maybe inefficient. I love the idea of a clock that can do what a smart watch can do.
I came here to say the same thing. Why on earth do we need a "modern browser" to show a clock?
Dude is literally showing the Pebble watchfaces in a screenshot (64 kB limit for both code and data).
> The Pi 3B+ seems just enough to render some simple animations.

> I think a Pi 4 might be a good sweet spot between processing power and price,

I know this isn't exactly a serious product and more of a gadget/gimmick but man we are off by a factor of like 3-4 here :D

If they didn’t use an entire browser to render the clock face this seems like it could be an Arduino/ESP32-esque project.
This. I've recently been porting my ECS-based 3d game/app engine for my 256MB Raspi Zero AND ESP32-S3, so reading that you need gigabytes to comfortably render a clock appears just ... stupid.
Maybe you'll love my minimalist clock design https://euclid.tulv.in/
Nice, is there a physical clock that works this way?
How to build a circular LCD clock, step 1: buy a circular LCD that looks like a clock.

I'm not kidding, that's the extent of the build. They simply connect that display to a computer over HDMI. The only hacking here is browser-based JS for clock animations.

There's a Kickstarter project to make a round phone.[1] That had potential as a female fashion accessory. But the site hasn't updated since 2025.[2]

[1] https://www.kickstarter.com/projects/dtoor/the-cyrcle-phone-...

[2] https://www.cyrclephone.com

you can also do this with an esp32 as long as you don't insist using a browser to draw a clock
That's what i wanted to say also. The raspberry is a total overkill here.

Nice implementation though!

Yeah, LVGL is probably what you'd want in that environment.
> I also tried with a Raspberry Pi Zero 2, but 512 MB of RAM were too little to run a modern browser, sadly.

I found that the surf browser was efficient enough to run fine on my Raspberry Pi Zero W. YMMV with animations and such, but it's much better than any chromium alternative in my experience.

I’ve previously used luakit browser [1] with cage WM [2] on a Pi Zero 2 W for my clock build, and it worked quite well.

[1]: https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/by-na...

[2]: https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/appli...

https://hackaday.com/2025/02/11/its-always-pizza-oclock-with...

Interesting, surf is based off WebKit2.

https://surf.suckless.org/

$159 quite expensive for the LCD
It's an unconventional shape, and not subsidised by ads, etc..
There's a multitouch function
I am currently building a project (http://www.screenwall.app) that tries to reuse old phones and tablets (that some people have in the drawer unused) as widget displays. Seeing such cool widgets always tempt me to buy it, although I know that my old Samsung A6 is perfectly capable for such things as well. :D
A 256MB Raspi Zero can comfortably drive a HDMI-connected display at 1080p60, and not even drop frames when rendering textured+shaded 3d if you just reasonably account for overdraw.

Drawing something as simple as this with a browser is peak overkill. If the watch had a unreal-like PBR graphics diorama for example, gigabytes would at least be argued for.

Are there epaper versions of those round displays? Maybe I'm old fashioned.
> At first, I used some random phone chargers, but the Pis would always complain about undervoltage, and throttle their CPU

This is a real annoyance with raspberry pi's. At first you think that you can run them off of USB power, but then you realize that they start throttling at 4.75V, which is still within USB spec (especially when you consider the voltage drop across the USB cable). The point of a spec is that compliant stuff should work, so you shouldn't need a "high-quality" power supply and cable, just compliant ones.

Did you have any issues with screen orientation? I have a waveshare round display in one of my projects too, they are great looking. Mine had an issue with wire orientation where I needed to have the wire emerge from the bottom of the display, but then I needed to rotate the picture to properly handle the rotation. It was tricky to get that working smoothly.

Also the display cuts off the corners on mine. Does it do the same for you? I'm not too bothered by it but it's only good for running custom SW where it's okay to be missing the corners.

> White USB-A to USB-C cable > White HDMI to micro HDMI cable

Why do they need to be ...white :)

Oh i see the cables now and cant unsee them.

I guess next step is to 3D print a back case mount that encloses the RPi and plugs into a wall socket for power.

I would love to find a circular LCD (even down to 1 or 2 inches across) that has a hole in the center, to be able to use it with a needle/stepper motor.
It's cool I like it, but seems a little overkill on the HW. no matter. One thing though, how is the screen 1080px1080 ? Is it a 1080p square, with the visible pixles a circle cut out of that ? I doubt it's a non rectilinear pixel grid. i guess it's x y coords, rather than cartesian ?
I wish you used banana for scale. I love the circular screens but man are they pricey compared to just square ones.
man it sucks that waveshare doesnt sell a 7 incher w/ integrated esp32 like they do with every single other round display, could've had the whole package ready to go.
I wonder how smooth the animations are and how much energy it uses.
The cartoony clock looks a bit weird in terms of typography when the time is 10:29, the font kind of squeezes and becomes hard to read
That modak font looks similar to one in Pixel phones clock. But Nice thing you made there :)