Chiming Clock

Clock that chimes on the hours, halves, quarters

Public Chat
Similar projects worth following
This clock has no display; it only chimes. It will chime on the hour and the count of the hour, or optionally the halves and quarters.
The clock runs on an ESP8266 NodeMCU to drive solenoids (or voice coils) to strike chimes. The ESP8266 keeps time and synchronizes via NTP servers.

The module has just one button to mute the clock, if desired.
The module hosts a web page for configuration and testing of the clock.
Configuration includes:
- Clock Mode - How many chimes, chime on halves, qtrs. etc.
- Mute Time - optionally can mute overnight
- NTP Server - server to get time
- Timezone
Actions include:
Test chime
Mute for next hour

This version of the clock is set to play Westminster chimes using Al tubes and Harddrive voice coils. It is installed in an old house in Tainan, Taiwan, in a semi-public place that holds events and exhibitions. Also for now the building has no glass in the windows so the chiming sound is heard out in the (albeit tiny) street!


Here are some videos of the sound after mounting the tubes better.

Here is a version using 3 gongs (steel bowls from a thrift store) ringing 6 o'clock. This is using the "All Quarters - 3" mode (see below).

Here is my test setup, with 2 bells set as "All Quarters - 2" (see below).

Web Interface

The page shows (from top to bottom):

  • Current time
  • Clock ID (also its multicast address)
  • Clock's IP address
  • Mute status (for over-night muting)
    • Enabled
    • Start Mute time
    • End Mute time
    • Buttons to mute now for 1 or more hours, or to reset to zero hours
    • Current mute status
  • Save all settings
  • Mode drop-down
  • Time zone drop-down
  • NTP server address
  • Parameter for how long to actuate the chimes
  • 4 test buttons to test the current chime mode
  • Software version info

  • Chiming Modes

The clock can chime with different modes depending on how many chimes you have connected.

The actuators used and the patterns played are defined in Chime.h

For instance if you have (at least) 2 bells attached, you could choose "Hour + Half 1-2" which will chime the hour (4 rings for 4 o'clock) and the half (one ring).

Westminster needs 4 bells (as in the project photos) and rings all quarters.

Ship's clock needs only one bell and rings hours and halves, as seen here:

Ship's bell


The ULN2003 is a set of transistors and fly-back diodes to power the inductive loads of the actuator coils.

Here are photos of the board.

I have connected all 7 ULN2003 inputs, but am not using them at this time.

The Button
The single button has 3 modes:

If you hold it down within 4 seconds of powering the clock up, it will reset the WifiManager so you can connect to the clock as an Access Point. This lets you setup the local Wifi configuration.

After the clock is running, the button works as a mute button, just like the one in the web interface. If you press it, it mute the clock for the next hour. If you press it a second time it will add an hour of muting, etc. The NodeMCU LED will blink the number of hours it will be muted.

If you hold the button (for more than 1/2 sec) it will cancel the current muting.

This temporary mute does not interfere with the over-night mute, if enabled.

Clock Address Detection

I used WifiManager to setup the network:

This work very well, but after you connect to the local Wifi, there is no way to find the IP since the clock has no display.

So I made a page with some simple JavaScript to test each of the 256 IPs in the local subnet for a particular URL "DETECT". If fount the web page will give you a link to connect to the clock.

The clock detection page is findClock.html

The Venue

This clock is located in an old house that is being renovated.,+Xinyi+Street,+West+Central+District,+Tainan+City,+700/@22.9994607,120.1943233,17z/data=!3m1!4b1!4m5!3m4!1s0x346e766658086991:0x5c1405a2e2df6a87!8m2!3d22.9994607!4d120.196512

Here are some photos of the house during an event:


Striking Quarter Hour

quicktime - 43.55 MB - 01/03/2020 at 05:00


  • 1 × ESP8266 NodeMCU
  • 1 × ULN2003 Semiconductors and Integrated Circuits / Misc. Semiconductors and Integrated Circuits
  • 4 × Actuators Harddrive voice coils or solenoids
  • 4 × Connectors

  • Enclosure and Button Extension

    Scoops02/13/2020 at 06:45 0 comments

    Here is a video showing the button actions, and since I was up on a scaffold I recorded the chiming from above.

    I printed a box for the NodeMCU and for a button. (My first ever 3D print!)

    The button has an LED to give some feedback about the mute state: one flash - muted for 1 hour, two flashes - two hours, etc.

    The button box has a magnet to stick on the steel frame of the old house. The button will be put on the column near the clock.

  • New Tube Hanging

    Scoops01/26/2020 at 14:15 0 comments

    One problem I had was with a single support point, the tubes would swing a bit after the striker hits it. This could cause a double hit or missed hit depending on the swinging and time of next strike.

    I decided to drill a 2nd pair of holes and run 2 wires to support the tube. The sound is still as good as before! And now the tubes are much more stable.

View all 2 project logs

Enjoy this project?



natalimarcelo wrote 07/25/2023 at 19:45 point

I really liked your chime project and wanted to replicate it, however I tried to compile it for the Node MCU, but several libraries are out of date and some variables are conflicting within the code. I'm not a skilled programmer and I was wondering if you could make the necessary updates for me to be able to compile in the Arduino IDE. Thanks for the help!

  Are you sure? yes | no

Evo Mayne wrote 07/19/2021 at 07:40 point

Awesome one!

  Are you sure? yes | no

18923 wrote 11/08/2020 at 15:38 point

I am trying to add a function to the clock but not having any luck.

I have the clock running perfectly with one large bell in the barn. I would like to use the same bell via the Chiming clock code to "ring it on command" so my wife can call me by ringing the bell (2X3 short rings) via a URL from her phone on the local network. 

Additionally the same URL could be called by another  ESP8266 with a PIR motion detector. 

Any suggestions?


  Are you sure? yes | no

Jon wrote 09/04/2020 at 21:56 point

So are the tubes from a reclaimed chime set or did you construct them with some understanding of their tone?

  Are you sure? yes | no

Scoops wrote 09/04/2020 at 22:01 point

I bought the tubing from a shop that sold aluminum handrails and other trim/molding. (The guy in the shop said it would never work!) Then I cut them wit the help of Lee Hite's amazing website:

  Are you sure? yes | no

Jon wrote 09/04/2020 at 22:49 point

What an amazing resource site; thanks for sharing!

  Are you sure? yes | no

Xasin wrote 09/02/2020 at 20:13 point

I am sooo definitely going to have to make time to build these.
I want to rework my Smart Home, and a cute chime like this, linked into the clock, maybe doorbell or other notifications, would be really nice.

Thanks a lot for the inspiration - and I really like the different variations of chime you have here!

  Are you sure? yes | no

richard.wenner wrote 08/05/2020 at 21:04 point

Have I missed something here?  How are the hard drives connected to actuate the head arm please?

  Are you sure? yes | no

Scoops wrote 08/05/2020 at 22:13 point

I guess it was not too clear. In the photo in the posting:

Enclosure and Button Extension

you can see sort of see where I cut the traces on the hard drive circuit board and soldered the red and black wires. You could also just remove the board and solder directly to the correct pins on the connector that comes out of the bottom of the drive.

The pair of wires are then connected to the ULN2003. That is the green section in the circuit diagram.

  Are you sure? yes | no

18923 wrote 07/24/2020 at 12:46 point

Hi, I have two problems I need help with:

1) Where/how do I run "findClock.html" from?

Running locally directly from the downloaded file location does not display any subnets, same if I copy the files to my Windows IIS and run remotely from there.

2) After configuring "wifiManager"

When I access the clock via my local network no web page is displayed, all I get is :

ON--  (404: Not Found)

ON--  (This is a Websocket server only!)

ON--  (clock-85a02e.local

PS: I have tried Chrome, Safari, IE and Edge browsers.



  Are you sure? yes | no

18923 wrote 07/25/2020 at 00:36 point

For problem 2 I was missing the Filesystem Uploader Plugin to upload files in the DATA subdirectory within the Sketch

All OK now

Great project, I live on a farm and this will "ding" a loud single bell in the barn.

Thank you


  Are you sure? yes | no

Scoops wrote 08/05/2020 at 22:19 point

Liam, sorry I didn't see you questions sooner!

The clock detection got broken in recent updates of browsers. (They removed the ability to discover your local IP address that I was using to scan the local net). I need to make a workaround.

I'm glad you got it working! Let me know if you have any other questions.

  Are you sure? yes | no

18923 wrote 08/07/2020 at 23:23 point

Scoops, thank you for your reply...

FYI,  No action required.

1) All was well for a week until we got a power failure, the clock did not reconnect when power came back. Seems if the router is slower to come up the NodeMCU web server does not restart/connect or try to reconnect later. OR it may be related to (2) below.

2) The barn is run off a TP Link Power extender and I am finding that when I unplug the Clock and plug it back in, it's a hit or miss with the Clock starting properly in the barn, the TP Link is slow due to distance. If the clock is in the house it starts up fine every time.

3) One more thing, since I am only using one bell, I modified the code slightly to run off an ESP-01 relay module. The relay controls the bell instead of using the ULN2003. 

Thanks again

Liam in Canada

  Are you sure? yes | no

Magnus Lindhé wrote 01/11/2020 at 10:37 point

Could you post some images of how you mounted the pipes, to get such a pure tone?

  Are you sure? yes | no

Scoops wrote 01/22/2020 at 08:16 point

Magnus, at first I temporarily wrapped some twine in a clove hitch around in the tubes at the hanging point and that actually worked pretty well, and the tubes never slipped down. But later I drilled some holes. I will get photos later this week.

  Are you sure? yes | no

Scoops wrote 01/26/2020 at 14:18 point

Magnus, I added some pictures of the tube mounts.

  Are you sure? yes | no

Magnus Lindhé wrote 01/26/2020 at 15:10 point

Thanks! I would have thought that the double wire would silence the tubes some more, but apparently not. Nice to get that extra stability!

  Are you sure? yes | no

Charles Pearman wrote 01/08/2020 at 17:41 point

This rather lovely project has inspired me to resurrect my 82. 87% complete ESP8266 chiming clock. It uses metal platters from 2" and 3.5" HDD (which give a wonderfully sweet tone) and car central locking solenoids (which are a bit bulky and rather noisy). The code here is more feature-rich than mine so will definitely be 'borrowed'! 

  Are you sure? yes | no

Chris Knight wrote 01/08/2020 at 18:33 point

Was thinking the same thing, use platters! (Would be even cooler to use a tile saw to cut the platters to tune them.)

  Are you sure? yes | no

Scoops wrote 01/10/2020 at 04:18 point

The platters would be more compact, and the old 5" ones have a nice ring, but I'm not sure how you could tune them.

Theses aluminum tubes have a very nice sustain.

  Are you sure? yes | no

Randy Walker wrote 01/08/2020 at 16:55 point

I must find a use for this!!

  Are you sure? yes | no

Mike Szczys wrote 01/06/2020 at 20:16 point

Epic use of the HDD parts. Well done!

  Are you sure? yes | no

Dan Maloney wrote 01/03/2020 at 17:05 point

At first I thought it was "AI" tubes and I wondered how artificial intelligence  came into clock design. 

Nice sound. And I like the idea of hard drives for clappers.

  Are you sure? yes | no

Scoops wrote 01/10/2020 at 04:18 point

Haha those lousy sans-serif fonts.

  Are you sure? yes | no

kristina panos wrote 01/03/2020 at 16:54 point

What a cool clock!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates