In an earlier rambling, I introduced the Metropolis Oscilloclock, themed after the classic 1927 science fiction movie. The clock seems to have garnered some attention, and thanks to the kind folks over at Hackaday, I now have two additional facts to relate:
- The “Maria” robot in Metropolis inspired the design for C-3PO in Star Wars!
- Some folks have considered the Workers’ clock to be Decimal !
The first point stands without dispute, but let’s take a closer look at this “Decimal” aspect, as I’d never considered it before.
Decimal Time vs. Metropolis Time
Below is what got folks interested – the 10 hour clock face. The Masters used this to dupe the Workers into believing they were working short shifts, when in fact they were slaving away for a full 12 hours. Ingenious!
But this is not Decimal Time, where time is divided into units that are purely decimally related. Yes, there are 10 hours on the face, but there are 20 hours per day, and 60 minutes to the hour. And, if you bother to count the dots around the edge, you can see there are 72 seconds per minute. None of these are decimally related.
Speaking of decimal time, I fondly remember a Metric Clock article in the April 1987 edition of Electronics Australia. Being but a wee lad at the time, I was gullible enough to believe that true Decimal Time was going to be introduced in Australia imminently. I ‘convinced’ my father (he led me on) that it was really happening, and I was just about to purchase the kit to build my own Metric Clock… when in the following month’s edition, the magazine came clean that it was actually an April Fool’s joke!
But enough fooling around – let’s now take a closer look at the Oscilloclock implementation of Metropolis Time…
Metropolis Time vs. Regular Time
The two clocks in Metropolis differ only in one way: the length of an ‘hour’. This is easy to grasp, since there are 20 hours per day in one, versus 24 hours per day in the other.
But from here, Metropolis messes with your mind! Below are some revelations that [Andrew] and I battled over numerous e-mails to come to terms with:
- The hour hands on the 10h face and the 12h face must always be exactly aligned (they must go around at the same speed).
- Since an M-time hour is 20% longer, the minute hand must go around slower.
- To make the M-time minute hand go around slower, the second hand must also go around slower.
Even if this makes sense so far, the crunch comes when you think about how to implement it. If it were a physical clock, the tick speed could be slowed and the gears could be modified to make the seconds and minutes go slower but the hour hand itself move at the same speed. Easy!
But it’s not a physical clock, and in the current Control Board design, the tick speed is NOT readily adjustable as it is derived from the MCU clock, which all the critical display routines are optimised around. So essentially, the length of a second cannot be changed.
Without changing the length of a second, how can we make the minute hand go around 20% slower? Well, there are only two options:
- Have 72 seconds per minute, with 60 minutes per hour
- Have 60 seconds per minute, with 72 minutes per hour
We decided on the first option, and you can see from the video below that the second hand indeed moves through 360 degrees in 72 steps (actually half that, since there is a half-tick).
An interesting tweak here is the shape of the hands. Note that they have triangular outlines, to more accurately mimic the hands in the film. But computing the angles and projecting these outlined hands using Circle Graphics was a true challenge – especially as the current Oscilloclock firmware is written 100% in PIC18F assembly code! Assembly is great for optimizing timing, but with no maths related processor instructions or functions to leverage, this feature was a huge effort…
Why assembly code? Just because I can!
Digital Metropolis Time
Everything was now all fine and dandy for the analogue 10h clock face, but what about all those nice digital faces that are stock standard in every Oscilloclock? Could I make Metropolis Time make sense in a digital format as well?
Of course! Except there was one hitch. Since we have 72 seconds per minute, the clock would show times like 09:16:65. This would look odd. Andrew wanted to keep the seconds in the range 0-59, like in a normal clock. Something would have to give… but what?
The answer was to simply ‘ignore’ one second in every six; i.e. the 5th second shows for 2 seconds before incrementing. This is easiest illustrated with another video (note what happens at the 10:57:55 mark):
But easiest of all is to see this in Excel. The duplicate second is highlighted:
Switching between Metropolis and Regular Time
Now, let’s face it: Metropolis time is really not very useful in day-to-day life; not for us Masters. Andrew wanted to be able to revert all faces at will to show Regular time instead of Metropolis time (except the 10h analogue clock face).
This was duly implemented during production of the 2nd Metropolis Oscilloclock – which will be presented in an upcoming post.
If, like me, you are hopeless at simple time zone conversions but you’ve actually managed to fully get your head around the above, Congratulations! Stay tuned for more posts in the Metropolis series.