These beautiful vintage British* CRTs have travelled the world over the last half century. And like homing pigeons, they have found their way at last to the Oscilloclock Lab!
Here, each piece of glorious glassware will receive the attention they have craved for years. They will be cleaned, rejuvenated, and start their latter-day lives performing retro electronic miracles for loving new owners from all over the world. * In fact, one of these CRTs was not made by a British manufacturer. Can you spot which?
From Unloved to Loved
This SE4DP31 is brand new, complete with protective paper sticker that was attached at the factory to protect the front glass. It’s never been loved. Such a waste, and we will certainly rectify that, as we have done previously for similar CRTs:
Two is better than One
These bad boys are dual-beam CRTs. They have two electron guns and two sets of deflection plates, meaning they can display two completely independent figures at the same time.
Valvo E10-12GPGEC DHM9-11
We used one of these in the custom Aftershock Clock, to overlay standard clock faces against a map hewn entirely from Lissajous figures. The intensity (brightness) and positioning of each beam can be independently adjusted to get the overlay effect just right!
But importantly – the innards look so cool!
Feeling Blue?
We’ve talked before about rare blue phosphor finds. The newly landed Brimar SE5F/P7 will one day boast both presence and persistence:
Presence. A strong physicality, tempered by a dappled blue light ambiencePersistence. A visual expression of impactful new, awash with memories and traces of old
With thanks…
We dedicate this post and the promise of seeing these CRTs reincarnated to [Atif]. Many thanks for helping these pigeons find their roost!
Are you in a state of cathode-ray rapture? Check out other CRT related posts, and see the Gallery to see examples of vintage glassware objects given new leases on life!
Today’s story began with a mail from [Eric], who’d read up on the Oscilloclock 3-inch VGA Assembly and wondered if it could be used to create an old-school serial terminaldisplay on a vintage oscilloscope CRT.
Yes it could! In fact, the Oscilloclock Lab did one better. Instead of just a VGA display controlled by an external device, we developed native terminal firmware that accepts DEC VT52 compatible commands over a serial port, and renders all text and graphics using beautiful, curvy Lissajous figures.
The stuff of dreams. The OscilloTerm Exo B7S4.
Demonstrating basic terminal features, connecting to a PC via serial cable Oh, did I mention? It’s a clock as well!
Zork, anyone?
Ultimately, [Eric] just wanted to play Zork. And together we made it happen.
The CRT. The Case.
[Eric] wanted a sleek ‘skeleton’ look. His choice of a gorgeous B7S4 CRT, mounted in custom-machined cast acrylic supports, exposes all glassware and allows for a titillating rear viewing experience.
And with a high-transparency cast acrylic case housing the electronics, the OscilloTerm Exo can be enjoyed from every angle!
Astute readers may wonder about the 2.1 kilovolts of high voltage coursing through their innocent-looking device. Rest assured! All internal wiring is sealed off, and Oscilloclock CRT harnesses are hand-crafted with heavy insulation and precautions taken against dust, prying fingers, rats, and even salivating cats.
Safety in action! Mil-spec connector (left); custom-designed acrylic cap on the CRT connector (right) An O-ring blocks dust from entering the CRT/socket gap (picture from the Oscilloblock)
This case and CRT mounting variation is branded the Oscilloclock Exo, and has proven its wow-factor at several public exhibits to date. We certainly love it, and [Eric] did too!
The Terminal.
This post would never be complete without showing you what real serial terminals from the 1970’s looked like, and explaining what they actually did! Here goes…
Terminals such as the above were physical input/output console devices, back when computers were the size of massive refrigerators, and the operator would sit remotely – at a desk in a separate area, or even a different room.
The terminal and the remote computer were connected via a cable, and would communicate each other by sending data back and forth across the cable; mainly terminal commands and ascii encoded text. Most commonly, a serial communication protocol was used to get the data safely from one end to the other – and hence the devices were known as serial terminals or even serial consoles.
Amusingly, they were also called dumb terminals, because they had no computing power of their own; they were only extensions of the computer to which they were connected.
The OscilloTerm Terminal.
[Eric] wanted a special Oscilloclock that he could also operate as a terminal, connecting it to a remote computer via cable. The remote computer would control the display, using the same serial protocol and commands as an ancient dumb terminal.
But an Oscilloclock is anything but dumb. [Eric] wanted to keep all the standard exciting screens and features of his Oscilloclock active, and only display the special Terminal screen when the remote computer started to send commands. Then, when the commands stopped, the Oscilloclock should go back to the screen it was on!
His wish was our command! Here’s a demo of smart screen switching in the final product:
Some technical Comments
Naturally, the terminal emulator firmware was written entirely in assembly language.
PIC18F2680 – the Oscilloclock workhorse.
We use assembly mainly because the minimalist PIC microcontroller used in the current Control Board revision has only 64K ROM, and an unbelievable 3328 bytes (yes, BYTES!) of RAM. To squeeze all the lovely Oscilloclock features in, while driving Circle Graphics real-time processing, the code and memory space has to be clean, tight, and heavily optimized at the machine code level.
Assembly. It’s the ONLY way to squeeze it all in!
For even more technical details, such as the list of VT52 (and VT100) commands supported by the OscilloTerm, and the various configuration parameters that can be tweaked to make the terminal emulator more ‘friendly’ when connecting to a specific device, check out the Support page. Worth a visit!
Why Zork? And HOW?
Zork is an interactive adventure game. But it’s old. And it’s text-based, because it was run on computers long before fancy graphics capabilities were widely available. The player explores mysterious locations, solves puzzles, and collects treasures while avoiding various hazards and creatures. All by reading text and typing commands and responses!
[Eric] was able to play Zork by loading the game’s Z-code into a Z-machine interpreter known as Frotz, on a PC connected to the OscilloTerm. But there was trickery involved!
He had to recompile a version of dfrotz (the dumb terminal version of frotz) to remove the status bar and audio from the game.
He needed to wrap the dfrotz output with a custom Python script to support the OscilloTerm’s 16×8 screen and simulate the required baud rate.
But now that’s done, he can play anyInfocom game that runs in dfrotz on his OscilloTerm!
What’s next?
Readers would probably agree that adding a generative AI feature would be incredibly cool. For example, the War Games feature is great, but the text on the screens is all pre-programmed. What if you could interact more naturally with your Oscilloclock?
Another one for the list!
Are you a serial serial terminal collector? Do you want to play Zork on the oddest device imaginable? Or, you fancy a clock in the Oscilloclock Exo range? Contact us and let us know!
No problem! We supplied the Oscilloclock Bare – our stand-alone controller board that generates images and text rendered in smooth and silky Lissajous figures.
The board ships on a cast acrylic mount to make it easy to test externally, prior to installation into the host piece of equipment.
Next, we added the Oscilloclock Wave. This is a Wi-Fi adapter that allows an Oscilloclock to pull (Solar) time from NTP servers over the internet, keeping accurate time indefinitely.
For [Alan], we left the cabling and aesthetics options open, and shipped the basic Wave Core module instead of the stand-alone type pictured above.
Finally, we included a decent quality power pack, to allow running the assembly prior to installation.
This would eventually be eliminated by powering the unit from the Tek 620’s internal supply itself.
The software – Sidereal time enhancements
To transform the Oscilloclock Bare into the astronomically great Astro Clock that it is today, we needed sidereal time.
Querying the sidereal API. Easy as pie!
Easy! The US Naval Observatory Astronomical Applications Department provides a publicly available API for querying sidereal time, given a location.
The Oscilloclock Wave already had features to pull earthquake data from a similar API and push it to the Oscilloclock for display. Extending this for another API wasn’t astronomically difficult.
The Wave sports a bunch of advanced settings for particularly tweak-loving oscillofans out there. We just needed to add a few more! These are to enable querying and sending sidereal time to the Oscilloclock, and to set the location.
Some readers may have guessed that formulae and code libraries for calculating sidereal time are readily available. Why didn’t we just implement the calculation in code, and avoid depending on an external API?
Our minimalist PIC 18F2680 even had a terrible bug at one point…
Well, I’ve mentioned before that the current revision Oscilloclock Control Board uses a minimal-specification microcontroller with very limited capabilities, and is heavily optimized by coding in assembly language.
Sadly, this chip was already jam-packed to the hilt, and there simply wasn’t any more space left for the code and run-time memory needed to calculate sidereal time internally.
And writing the necessary floating-point calculations in assembly would be no mean feat!
Why Assembly Code?
Because We Can.
But, it sure ain’t easy…
So NO – we couldn’t easily calculate sidereal time, and it was API Option full steam ahead!
Astro Screens!
Even with its minimalist microcontroller chip, we’ve managed to squeeze some amazing stuff into the Oscilloclock Control Board firmware.
First, we used our trusty Figure Creator software to render a rudimentary telescope into Circle Graphics sprite code.
From a sketch … to … assembly code! Voila!Astro Clock splash screen
We then crafted a simple Astro Clock splash screen, by adding some random circles for stars and laying out basic text around the telescope.
Finally, we added some basic digital and analog clock screens, using the same telescope figure as a centrepiece. This was mostly straightforward, but the existing clock hand drawing code did need some tweaking, to reference either solar time or sidereal time depending on the active screen.
A year after [Alan] received his lovely Astro Clock, the unhappenable happened. The Astronomical Applications API was taken down!
“undergoing modernization”… a harbinger of API death! Jan 2020 snap courtesy archive.org
The site was taken offline for a planned six months, for “modernization”. [Alan]’s sidereal clock was relegated to a normal solar Oscilloclock, albeit temporarily.
Astro Clock features relegated. Utter sidereal sadness
But as lovers of electron beams striking phosphor, we always look at the bright side! Six months is still relatively short in astronomical terms! We resignedly marked “X” on the calendar, and bided our time.
But then… the unfathomable fathomed. The COVID-19 pandemic struck. The USNO site modernisation was completely halted – very likely deprioritised in the midst of indiscriminate illness, clinical chaos, and staff shortages.
Halted… 2 years later, still no luck… Mar 2022 snap courtesy archive.org
We waited, and waited, and waited. There were no fingernails remaining to chew when, after two and a half years, a revised API was finally made available at the end of 2022. Hooray! Thank the stars!
API resurrected
Fresh API documentation in hand, we set about modifying the Wave to use the fresh fruits of the USNO modernisation machine.
Fortunately, there were only minor changes to the API – a few more mandatory data fields, a change in date format and such. These required a relatively small amount of rework in the Wave’s firmware.
And … we were back in the amateur astronomy business.
It’s a good question. API death could happen at any time – possibly rendering the Astro Clock lifeless, listless, or lethargic yet again.
But, no. The decision not to calculate internally was valid, based on the known constraints. And we did our veritable utmost to revive poor [Alan]’s Astro Clock as soon as possible.
By the way, we at the Oscilloclock Lab certainly can’t complain about USNO’s API shutdown. We, too, have been heavily impacted by pandemic and other worldly events. As of this posting, our formal activities, too, remain on pause…
… for now!
Curious about other Oscilloclocks that use APIs? Check out the AfterShock Clock, which taps into an earthquake API to display earthquakes in (almost) real-time on a lissajous-rendered map!
A few years ago, we introduced Metropolis Time, a time system based on the 20-hour, two-shift days featured in Fritz Lang’s iconic movie Metropolis.
Since then, we’ve received a few requests to craft clocks that display some other calendar and time systems – from the ancient and archaic, to the religious, to the scientific.
That’s Astronomical!
Today’s exciting story began with a request from [Alan], a prominent amateur astronomer. He happened to have a lovely Tektronix 620 X-Y Monitor lying around, and wanted to turn it into a clock.
Well, that would be easy – the Oscilloclock Bare is a bare-bones controller assembly that can be used to drive an oscilloscope or XY monitor that meets certain requirements (for the techies: a DC coupled Z-axis amplifier). And the Tek 620 is perfect – wonderfully performant, and perfectly compatible. Job done! Right?
Oscilloclock Bare + Tek 620 + scientific passion = Astro Clock!
No way! [Alan] didn’t want just any old clock. The custom splash screen above was pretty cool, but could his clock display something called “sidereal time“?
Yes! Anything is possible, and here’s what we ended up delivering: several custom clock faces showing sidereal time (in both analog and digital formats), in addition to all the standard screens that are based on solar time.
The shipped Astro Clock assembly!
But what is sidereal time?
A Solar day
Well, most normal human beings and their clocks like to measure a 24 hour day by using the Sun as a reference point. One solar day is the time it takes for the Earth to spin on its axis enough and see the Sun at the same height in the sky as the previous day.
For example, let’s say it’s 1 May 2023. It’s lovely weather out, and you happen to notice that the Sun reached its highest point in the sky at 12:30 pm. The next day, 2 May, you would find the Sun at its highest point at — you guessed it! — 12:30 pm. And if you ignore man-made tweaks such as daylight savings, you find the Sun is always at its highest point at 12:30 pm*, year-round, looking from the same location.
Sidereal time, on the other hand, uses the distant stars as a reference point to measure 24 hours. One sidereal day is the time it takes for the Earth to spin on its axis enough to see the same distant star at the same height in the sky as the previous day.
Because the Sun is so close, and a distant star is so (relatively) far, there is a difference in the length of a sidereal day compared to a solar day. A sidereal day turns out to be approximately 23 hours, 56 minutes, and 4.0905 seconds.
Confused? I don’t blame you. This video should help:
History and Sidereal clocks
According to this brilliant post, the concept and utility of sidereal time has been around a very long time. The length of a sidereal day was even calculated to a surprisingly high level of accuracy some 1,500 years ago!
Here are two surviving sidereal clocks that were made “recently” – just a few centuries ago.
But who on Earth would use sidereal time?
Astronomers would.
Most people don’t look at the boring old Sun all the time. We look out to the stars and galaxies far, far beyond our solar system. If an astronomer wants to track the position of Betelgeuse day after day, she can record the sidereal time that she saw it, and know that it’ll be at the same ascension at the same sidereal time the following day. Brilliant!
Mariners and Astronauts would.
They can fix their location even when the Sun is not visible, by observing the position of the stars and calculating their position back from the current sidereal time. Life-saving!
Oscilloclock Labs would.
Because we can.
In the next post, we’ll take a look at the build. What hardware went into this Astro Clock? How on earth does it tick? Can you figure it out?
As I’ve hinted before, your friendly Oscilloclock gang is entirely pacifistic. We abhor the thought of actual military activity in this modern day and age. BUT we love games just as much as anyone – and we also love light-hearted movies with happy endings!
So when [Ian] (of Bunker Club Clock fame) came up with the idea of a feature based on the iconic 1984 flick “War Games“, I pounced on the chance!
Now, this may look like a simple animation. But Ian’s Oscilloclock is powered by a tiny processor with minimal specifications, and 100% of the code is written in assembly language. Implementing this baby in assembly and keeping within just 3K of RAM was quite an accomplishment!!
About the host clock
The gorgeous model shown here is a painstakingly-retrofitted Heathkit CO-1015 Engine Analyzer. It’s the perfect play-toy for any serious motor-head who grew up during the Cold War!
First up on the custom build list is the original meter fitted with amber LED lighting and ticking audibly each second. (And yes, the tick intensity can be easily adjusted.)
Next up, there is the optional External X-Y input feature. Normally, this is used for plain and simple Lissajous figures like the below…
… but by tweaking some settings, we can get some segments of Jerobeam Fenderson’s incredible Oscilloscope Music Kickstarter video to display quite nicely!
Peeking inside the Engine Analyzer Oscilloclock is also a must-do! Not only is this visually appealing, but you also get a significant olfactory kick from the sweet smell of vintage electronic components…
Attractive Oscilloclock boards and cabling, neatly tucked awayThe original circuit is completely bypassed – but still looks awesome!
Tech Talk – Strategies, Maps, and Missiles
The War Games feature uses the Oscilloclock’s Sprite Engine module to display the world map and up to 9 missiles when the W.O.P.R. system is simulating various war strategies.
32 of the 130+ strategies seen in the movie are implemented. For each strategy, a random number of missiles are launched along a predefined Primary trajectory, followed by a random number of missiles along a predefined Retaliatory trajectory. If any of the 9 missiles remain, they are launched along randomly selected (but predefined) trajectories.
Trajectories are predefined because computing them using 8-bit arithmetic would consume a huge number of cycles! At least, a small amount of randomness is added to the launch position and velocity parameters at run-time, to make things more interesting.
As the simulation progresses through the strategies, the speed of the launches increases and the delay between launches decreases. This gives a similar effect to that in the move, where WOPR moves through strategies at warp speed until it realises that there is no winning this game…
A Joint Effort
Creating a huge number of realistic trajectories (68 in total), translating start and end X and Y coordinates from latitude and longitude into the Oscilloclock’s Cartesian plane was a task of mind-blowing proportions! Here we see our 2nd junior technician eagerly earning his room and board.
Like what you see?
Are you a petrol-head? You need an Engine Analyzer ticking over at your bedside or in your office! Were you brought up during the Cold War, perhaps in the Soviet Union or in the US? Get the War Games feature and fry the world safely! Contact me if you like what you see.
(Disclaimer: Oscilloclock.com hopes that no-one is offended by the deliberately light-hearted tone of this post, in referring to the decidedly serious topic of nuclear warfare.)