January 28, 2026
Description
I always wanted an Original Swiss Railway clock in my home but original ones are rare, expensive and quite big for the average home as standard sizes are up to 80cm in diameter with the biggest one being 9m (29.5ft) in diameter (title image above) . Also, many of the officially licensed clocks you can buy don't even feature the famous smooth sweeping second hand and the pause at the full minute, they are just Quartz-Clocks with the Railway clockface slapped on it. And they are expensive too.
So I decided to generate a Clock that is inspired by the famous swiss railway clock that is of suitable size and can be made by anyone with some electronic knowledge and a 3d printer. All parts can be printed with a Prusa Mini or any other printer with a built plate of at least 18x18cm.
The idea for this has lived in my head for many years, but I really started the project in October 2021, with first iterations of the mechanics in FreeCAD. Due to time constraints, the project got abandoned again after a few tries (and realizing that it is way harder than imagined) before I picked it up again in spring 2023. And since then I have been working on it occasionally, printing prototypes, developing the electronics and writing the code for it.
This is my biggest and longest project so far and I am happy to share it with the community.
Important:
The clockface and hands design of the Original Swiss Railway Clock is property of the Swiss Federal Railways SBB. Unfortunately, the swiss federal railways did not give me permission to release the original clockface as 3d print files. Therefore I generated a more generic watchface that is still inspired by the style of european railway station clocks.
I tried to exclude all copyrighted design details, but to minimize the risk of me having to take it down, please:
NO COMMERCIAL USE
PERSONAL USE ONLY
Please don't ruin it for all others by selling the design, parts or a completed clock anywhere. Because this may force me to take down the whole project that took me many hours to construct, make and document. Thank you.
Date | Changes |
|---|---|
11 March 2024 | initial release |
12 March 2024 | Added Issue-Table, Added Issue Nr. 1 |
13 March 2024 | Added Ceiling Mount File (Folder Mount), Added Issue Nr. 2 |
19 March 2024 | Added 90degree Flange to be used as Wall-Mount |
20 March 2024 | Add shop link, Add Issue Nr. 3 |
14 August 2024 | Add Stand to be used with USB-C Adapter, made by @Fr3D (not tested by @smallthings) |
Nr | Solved | Issue |
|---|---|---|
1 | NO | LEDs flicker slightly due to the low step frequency of Stepper 1 (seconds) |
2 | NO | Documentation lacking wiring documentation (sensors, LED etc.) |
3 | NO | missing parts list for PCB (BOM) |
The original swiss design from 1944 with the red second hand that was added in 1953 stands, I think, model for most of the local variants in different european countries. They are just slightly adapted.
From the website of the Swiss Federal Railways SBB:
The SBB railway clock was designed by Hans Hilfiker in 1944 as an embodiment of the phrase “punctuality is the railway’s trademark”. The clock was given a sleek design and a face that was easy to read.
The now-famous pause when the second hand hits the minute mark stems from a technical necessity in the clock’s early days. Hilfiker wanted all station clocks in Switzerland to be synchronised. In order to achieve this, the clocks received a time pulse via telephone cable every minute from the master clock in the Zurich signal box. However, synchronising all the station clocks in this way took 1.5 seconds. This ultimately led to the incarnation of the second hand that only takes 58.5 seconds to complete a revolution, then pauses for 1.5 seconds before beginning its next revolution when the minute hand jumps.
Hilfiker gave this explanation for his technical solution: “The second hand provides reassurance at the last minute and makes it easier to dispatch trains on time.”
Please carefully read the whole instructions and explanations, as some of the parts have tight tolerances. A accurately calibrated printer is necessary.
Better parts list still needs to be done
This is a List of Materials you need apart from the printed parts:
Quantity | Description | Link* |
|---|---|---|
1pcs | Arduino Nano (or clone) | |
2pcs | 28BYJ-48 5V 1:64 Stepper motor | |
4pcs | 6702ZZ Bearing (15x21x4mm) | |
2pcs | HC-020K Photoelectric barrier sensor | |
2pcs | 8mm momentary push button | |
1pcs | 1m 5V LED Strip (I used 60 LEDs/m) (max current 1A) | |
35-40pcs | 3mm x 10 or 12mm self tapping screws | |
1pcs | Power Supply 5V min. 1A | source locally |
1pcs | RailClock V1 PCB (PCB only or complete PCB available)
|
Additionally you need the following parts if you do not use a custom PCB and want to work with ready to use modules.
Quantity | Description | Link* |
|---|---|---|
2pcs | ULN2003 module | |
1pcs | DS3231 Module | |
1pcs | Arduino Nano Screw Terminal Expansion board | |
1pcs | Mosfet Module | |
1pcs | Photosensitive Resistor 5-10k (GL5516) |
The clock constists of different mechanical parts that are grouped into sub-assemblies, most of them are 3d printed.
The biggest challenge was to make a clock movement that could be made using 3d printing and is durable and as precise as possible at the same time. I decided to use 2 stepper motors, one for the seconds hand and one for the minute hand. The hour hand is linked to the minute hand by a 12:1 reduction gear.
The Movement consists of 11 different printed parts. It is recommended to print these mechanical parts in PETG or similar for strenght except the Baseplate, HourSensorMount and SecondsSensorMount which can be printed in any material. The Baseplate will be visible later on the back of the clock, so it is recommended to use the same or similar color as the housing will use later.
Use a bit more infill (20-25%) for the gears.
Do not print the “PCBDummy” unless you need it to mount your own electronics or something like that.
There are different Clockface and Hand sets available. They are all compatible with the same movement and housing.
All parts of the clockface and hands can be printed in PLA, PETG or any other material.
For the clockface, use the “change filament” function in Prusa Slicer to produce the indices (hour and minute markers) in another color. Do not use too much infill and bottom layers as the leds will later shine through the clockface.
For the hands I recommend slower speed and 0.1mm layer height because there are some thin walls.
The Main housing consists of two parts, the inner body and the bezel. It is recommended to print both in PETG as they will later support the weight of the clock when mounted via one of the mounting options.
Additionally, if you want to use an LED-Strip for Illumination (optional) you need the Light Distributor Disc. You can print it in any material you want, but it needs supports (print front side down). After that, cover the middle flat part with Aluminum foil (spray glue is very helpful here) or use Aluminum-Tape.
There are different mount options available or you can create your own by using the dimensions of the existing mounts.
Print Flange and Stand preferrably in PETG for optimal strenght.
Print Flange and CeilingMountwithCable preferrably in PETG for optimal strenght. If you use it as wall mount, you should add some perimeters or infill to increase strenght because of the leveraging forces.
You'll need some screws and bearings, see parts list.
The schematic is nothing fancy. We use almost all pins of an Arduino Nano and run the steppers with ULN2003 darlington arrays. The timekeeping is done with a very accurate DS3231 which is completed with a CR2032 battery to keep the time when power is out.
First I built the circuit with stepper driver modules and a breadboard etc. but soon realized that it would just be easier to make a custom PCB.
You for sure can do it this way, if you don't mind making all the cables and stuffing everything inside the clock.
I did a small run of PCBs and a small amount is still available. See https://ko-fi.com/smallthings_ch/shop
The clock uses two cheap 28BYJ-48 Motors which already have an integrated gearbox.
Attention: There are different versions of this motor on the market all with the same name. Make sure you buy the 5V Version with the 1:64 gear ratio. I've seen versions with 12V and versions with 1:16 gear ratio.
To detect the home position of the gears, two photoelectric sensors HC-020K are used.
For the hour sensor, one of the mounting flaps needs to be cut off to fit.
For the optional (but recommended) Illumination, use a 5V LED-Strip. Recommendation in the parts list.
You can also mount the LED-strip and then disable it in the software later if you don't need it.
Detailed assembly instructions are still work in progress. Maybe will be done for the future (yet to be developed) V2 ;-)
Mount the Bottom Plate to the Housing InnerBody with screws from the back
Assemble the pushbuttons including wires
Push the bottom bearing pin into the bottom of the seconds gearaxle. Pay attention to not break the axle.
Assemble the seconds and minute gearaxle to the bottom plate and add the reduction gear.
Push the hour gearaxle incl. top bearing through the top-holder
assemble the motors and drive gears to the top holder
slide the assembly on top the minute gearaxle
Mount the screws of the top holder. Do not overtighten, especially above the reduction gear. Check for free movement.
Mount the photoelectric sensors to their holders and the holders to the appropriate spot on the baseplate.
Wire everything according to the schematic.
Flash the Code to the Arduino and check if everything works.
Add the clockface to the Housing Bezel. Line up the notches with the cutouts on the clockface.
Run the wire for 5V power through the hole in the bezel.
Push the bezel assembly over the movement. Line up the 3 screw holes and pay attention to the cable routing.
Startup the clock (see Software instructions → Assembly mode)
If you push both buttons while switching on power, the LEDs will flash twice, then the clock will perform the initial homing sequence and then stop completely while the LEDs flash. In this moment you can mount all three hands at the 12 o'clock position (depending on how you will mount the clock). After that the clock will need a restart by cutting power for 5-10s.
When starting up, the clock will perform an initial homing sequence and then drive the minute/hour hands to the currently set time. It will then wait for the next minute to begin and then start the seconds hand. (so it may look like the clock is standing still for up to 59s)
Push Button 1 for about 2s and the clock will enter time settings mode and perform a homing sequence. Push Button 1 again for about 2s and it will enter Hour settings mode. You can set the hours with Button 2 (the hours will be displayed by the minute hand). Attention: 24h mode for setting.
Confirm with Button 1 (2s)
Minute settings mode works the same as hour settings mode.
Confirm with Button 1 (2s)
The clock will again perform a homing sequence and then enter normal operation.
Picture 1: JoachimKohler-HB on Wikimedia
Rest: © smallthings
Product links may include affiliate links. The price does not change for you but I get a small commission that helps me to continue making awesome things.
If you like this printable and want to support future projects, you can contribute to my next roll of filament on Ko-Fi. https://ko-fi.com/smallthings_ch
License:
Creative Commons — Attribution — Noncommercial — NoDerivatives
8