OscilloChat!

Here’s a rare thing: Take the Toshiba ST-1612B Oscilloclock. Run the OscilloTerm VT52 terminal feature. Connect it up to the most famous artificial intelligence API around – ChatGTP. And what do you get? OscilloChat!

Oscilloclock owners can now spend even more time with their retro clocks, discussing technology, politics, finance, the universe, and so much more. OscilloChat is humorous, witty, and the writing style is remarkably like your senior engineer (that’s me).

At best, this is eerily entertaining. At worst, it’s annoying and entirely untrustworthy! Let’s see what happened when I asked: “What’s your favourite Oscilloclock?”

To see this and more incredible videos in high resolution, check out Oscilloclock on YouTube!

They don’t call it generative AI for nothing. Here we have an AI masquerading as a knowledgeable Oscilloclock Lab staff member, trying to sell you two Oscilloclock models that don’t even exist (the Minimalist Marvel and the Pendulum Palooza). And when challenged with “Is it real?” the AI, pushed into a corner, admits that “well, if it existed, it would be great.” It’s like dealing with a child.

The fictitious “Pendulum Palooza” Oscilloclock

But like we do with children, let’s give OscilloChat a chance! Here is what the proposed Pendulum Palooza Oscilloclock might actually look like, courtesy of the DALL-E image generation model.

Dear readers, please draw your own conclusions!

How it works

The OscilloChat experiment setup is simple. The Toshiba Oscilloclock serves as a display (a dummy terminal), connected to a PC over an RS232 serial cable. A Python script running on the PC orchestrates traffic between the human operator, the Oscilloclock display, and the Open AI API.

Interaction with the GPT AI

The Python script first creates a session with the GPT AI. It then sends an instruction telling the AI what it is; i.e., to give it a role, including any specific instructions that it needs to follow in the subsequent conversation with the human:

"You are an assistant at Oscilloclock.com. You will be asked questions about any topic. Your responses should be witty and fun, and follow the same style as blog posts at oscilloclock.com web site. Responses should be short (within 512 characters). You can ONLY use ASCII characters! Do NOT use non-ASCII punctuation marks. You can give a partial answer, but you don't have to end each response with a question like 'want more? just ask!'"

Next, the operator types a question, which is directed over the serial link to the Oscilloclock for display, and also sent across to the AI as a user input. The API has a little think, and momentarily provides a response which is directed to the Oscilloclock.

Until the session is closed (e.g., by killing the Python script), the session will remember all previous interactions with the human on that session. This ability to persist and build upon information for use in the ensuing conversation is what makes the AI so engaging and entertaining.

Delay effects

Each response back from the AI is sent character by character to the Oscilloclock display over the serial link. But even at 9600 baud (a turtle’s pace, by any modern standard!), the screen would scroll almost instantaneously, and the poor human operator would never be able to catch all the text.

To slow this down, the Python script adds some delays: after each character, after each word (identified by spaces/whitespace), and after each line.

CHARACTER_DELAY = 1/120
WORD_DELAY = 0.3
LINE_DELAY = 0.8

Besides making things easy for the operator, it also gives a neat impression that the AI is thinking while composing its replies!

Lissajous Watermark

Plain character displays can get boring. Happily, Oscilloclock Lab has a solution for every kind of ‘boring’! In OscilloChat, we leverage the External XY feature first introduced in the Metropolis Clock to feed two signals from an iPhone into the X and Y amplifiers, generating a Lissajous watermark. What a way to make a dumb terminal display look smart!

Dissecting the dribble

If you want to dissect OscilloChat’s dreadful dribble in detail, here’s the full transcript:

Hi, tell me about yourself!

Ochat: Well hello there! Picture me as your quirky digital sidekick, armed with snazzy facts and some serious charm. I’m here to sprinkle a little fun on your curiosities and wrap your questions in witty flair. Think of me as the zany clock in your atticalways (sic1) ticking, forever colorful, and here to help you find the right time for any topic! So, what tickles your fancy today?

What is your favorite oscilloclock?

Ah, the grand question of favorites! While I can’t cozy up to a specific oscilloclock like a warm cup of cocoa, each one boasts its (sic2) unique charmlike (sic3) a carnival of timepieces! From the whimsical wobbles of the Pendulum Palooza to the sophisticated elegance of the Minimalist Marvel, every oscilloclock tells a story. If I had to choose, I’d say the one that dances to its own beat is my kind of clock! Ready to find your oscilloclock soulmate?

Tell me more about the Pendulum Palloooza (sic) Oscilloclock… is it real?

Ah, the Pendulum Palooza Oscilloclock (sic4) it sounds like a time-traveling festival, doesn’t it? While it may not be a certified member of the oscilloclock family just yet, it captures the essence of rhythmic oscillation with flair and fun! Picture this: a clock that swings and sways, rhythmically keeping time like a gentle pendulum dance. If only it existedwho (sic5) wouldn’t want to host a party where every tick-tock brought a new groove? Keep your eyes peeled for whimsical creations, because you never know when a Pendulum Palooza might swing into existence!

Nice! thanks for the feedback

Anytime, time traveler! I’m always here to sprinkle some fun on your quest for knowledge. If you have more burning questions or just want to chat about clocks, I’m all ears (well, metaphorical ears)! Keep ticking and tocking along with curiosity!

  1. Missing dash (technically an em dash, Unicode U+2014). This should read “… attic — always …” ↩︎
  2. Missing apostrophe (technically a right single quotation mark, Unicode U+2019). This should read “… it’s …” ↩︎
  3. Missing dash. This should read “… charm — like …” ↩︎
  4. Missing dash. This should read “… Oscilloclock — it ….” ↩︎
  5. Missing dash. This should read “… existed — who …” ↩︎

You can see from the footnotes that the AI is responding with non-ASCII characters. These cannot be displayed (yet!) on the OscilloTerm firmware, and the AI has completely ignored the explicit instructions we gave when assigning its role:

... You can ONLY use ASCII characters! Do NOT use non-ASCII punctuation marks. ...

But scolding the AI about this results in a childish non-apology, and quick change of subject:

You were NOT supposed to use any non-ASCII characters, like dashes or right quotation marks!

OChat: Oops! It looks like I got a bit carried away. No special characters from now on, I promise. Just plain ASCII fun ahead! What can I help you with today?

(Note: this interaction was not included in the video.)

What’s Next?

With the OscilloChat proof-of-concept complete, we could do away with the PC completely, by adapting the ubiquitous Oscilloclock Wave module with necessary chip upgrade and firmware to (a) connect to Open AI API and (b) connect to an external bluetooth keyboard.

Taking a step further, we could do an OscilloChat2 (OscilloChat Squared) where two OscilloChats interact with each other. What would the conversation be like? Where would it lead?

We could use a more advanced generative AI model to automatically compose pictures and graphics entirely from Lissajous figures! (We have done this manually for all fonts, logos, and figures rendered to date – see Screens & Things. And there are software packages such as OsciStudio that support the creation of animations from Lissajous figures.)

Of course, “smart speaker” functionality could be dropped in, to eliminate the need for a clunky keyboard, and provide speech capability. OscilloChat could become OscilloChatty! How cool? How annoying? You be the judge!

All excellent items to add to the ever-growing list…

Credits

[Eric], the protagonist of the recently published Zork on an OscilloTerm!, noticed this at the end of the post:

He just couldn’t help pick up the gauntlet! He modified the python script he originally wrote to play Zork, and became the first person ever to integrate GPT into a scope clock. Check out his own video of Zork and GPT running on his OscilloTerm!

Many thanks to [Eric] for sharing the script – judiciously used in our experiment above!

Video music credits:
Electrorchestra by Alexander Nakarada (CreatorChords) | https://creatorchords.com
Music promoted by https://www.free-stock-music.com
Creative Commons / Attribution 4.0 International (CC BY 4.0)
https://creativecommons.org/licenses/by/4.0/


Like what you see? Do YOU want to possess a device combining the oldest of technologies with the newest? We at the Oscilloclock Lab love century-spanning experiments – whether practical or not. Stay tuned for more!

Zork on an OscilloTerm!

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 terminal display 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.

CRT rings and supports – originally introduced for the Oscilloblock “Summer Dusk” edition

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.

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.

Gregory Lloyd, CC BY 2.0, via Wikimedia Commons

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!

  1. He had to recompile a version of dfrotz (the dumb terminal version of frotz) to remove the status bar and audio from the game.
  2. 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 any Infocom 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!

Building the Astro Clock

In the last post, we took a look at a funky new sidereal clock from the Oscilloclock Lab. Now let’s take a look at what fanciness went into it!

The Hardware

[Alan], our astronomer protagonist, wanted to install all the electronics inside his Tektronix 620 X-Y Monitor. He didn’t need a nice fancy case.

Demonstration of a Lissajous circle
No pixels here! Circle Graphics

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.

Bare-bones Wave Core module

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.

Setting up for sidereal time

But why not just calculate sidereal time?

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.

For more of the weird and wacky, see Screens & Things!

For this build, we needed yet more screens.

First, we used our trusty Figure Creator software to render a rudimentary telescope into Circle Graphics sprite code.

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.

Done!

Invoiced. Paid. Shipped. Received. Treasured forever. Right?

Wrong!

Sidereal really sidelined…

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.

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.

Almost like a big Christmas present from Santa!

Was this [Alan]’s Christmas present? – Santa in your Clock

Do we regret taking the API approach?

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!

Astro Clock

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.

*This is not quite true – because every day is slightly shorter or longer. But it averages out over the year.

A sidereal day

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?

Garmin “puck” USB adapter – Finale

In the first post in the series, we looked at the Garmin 18x LVC “puck”. We talked about a particularly insidious issue that affected [Andrew] – both of his GPS units. And we saw that Oscilloclock owners really need to be able to update the firmware in these units.

In Part 2, we went through the design of an Oscilloclock Garmin 18x USB Adapter, that would allow the GPS to connect to a PC where the Garmin software runs to upgrade the firmware.

Now we conclude the series, with a treatise on the construction of the Adapter. Enjoy!

The final design

Here’s the design we arrived at in the last post. Let’s go through the steps to build it!

Fish out Fake Chips

TTL serial to USB adapter – watch out for fakes!

The key component required is a decent TTL serial to USB adapter with programmable inversion on the signal lines. But here we have to careful: many low-cost adapters out there are built around fake FTDI chips!

As mentioned before, we at Oscilloclock are pacifists. But if we were to wage war against anything, it would be fake components. They are unsafe, unreliable, unworkable, and entirely unethical. You get what you pay for, if you pay the right people. The people who design, manufacture, and support the real McCoy.

Besides ethics and reliability, there is also a practical reason we must avoid adapters based on fake FTDI chips – often the fake chips are not programmable. A true no-no. So watch out.

Program the inversion

FTDI provide a nifty utility called FT_Prog. Below shows the utility running on a PC with the adapter connected, and configuring to invert the transmit (TXD) and receive (RXD) signals.

Is it complicated? No – quite the inverse!

Dividing the input signal

We need to figure out the most elegant way to install the voltage divider – the two resistors we described earlier that reduce the impact of noise.

The cleanest way seemed to be to install the 1.2k shunt resistor directly across the receive and ground pins in the adapter itself, as below.

What about the 270 ohm series resistor on the RXD line? Well, installing this inside the adapter unit itself would require cutting tracks on the PCB. And that would compromise our effort, reliability, and aesthetics goals! So instead, we’ll insert this into the cable later on.

Cable Connector Conundrum

Recall that [Andrew] has two Garmin 18x units – one fitted with a small GPS connector and the other with a large connector. Wiring up two independent cables would have been natural. However, the TTL Serial to USB adapter came with only one cable pre-fitted with the necessary “DuPont” (a.k.a. Qi or 2550) connector.

DuPont, Qi, 2550 – they look low-cost but… Read this excellent writeup and weep

What’s the big deal? Surely we can just attach a Qi connector to another cable?

Ha! Connector tech is never that easy! It turns out that to make a perfect connection with Qi connectors, you need a special crimping tool. The Oscilloclock Lab does not have this tool. And we do NOT compromise on perfection! Given that this adapter is not the best reason to invest in an incredibly expensive tool, we decided to use the single pre-fitted cable and split out to two GPS connectors, with the larger one serving as the split point.

(In hindsight, we could have separately purchased another quality cable that was pre-fitted with the connector. Next time, folks!)

Wire up the cable

Our beloved ultra-quality Hirose connectors are a joy to look at, and a joy to use. But wiring the tiny smaller units up with high precision doesn’t exactly “spark joy”. Still, we persevere…

Now we need to install the 270 ohm series resistor. We simply cut the wire and splice it in.

A bit more heatshrink applied, and we’re done!

Closure at last

Using the 18x USB adapter, [Andrew] is at last able to upgrade his pucks and enjoy his clocks in their full glory with GPS-synchronized time and date once again!

Instructions for how to upgrade the software are posted on the Support – Garmin 18x page.


Did you enjoy this series? Stay tuned for more, as Oscillolife returns to nor….. Okay, not quite normal, but at least it returns!

Garmin “puck” USB adapter – Part 2

In the previous post, we looked at the Garmin 18x LVC “puck”. We talked about a particularly insidious issue that affected [Andrew] – both of his GPS units. And we saw that Oscilloclock owners really need to be able to update the firmware in these units.

We introduced the Oscilloclock Garmin 18x USB Adapter, that allows an Oscilloclock owner to connect their puck to a PC to enable the firmware upgrade.

In this post, we’ll take a look at the design of the Oscilloclock Garmin 18x USB Adapter. It wasn’t GPS satellite launcher (a.k.a. ‘rocket’) science, but it certainly wasn’t as straightforward as it might seem!

The Garmin 18x LVC electrical interface

Referencing the manual, the Garmin 18x series comes in 3 basic interface variations:

  • USB – USB 1.x interface, with a USB(-A) connector to plug into a PC
  • PC – RS-232 serial interface*, with a DB9 connector to plug into a PC, and a massive cigarette lighter adapter plug to obtain power
  • LVC – RS-232 serial interface*, with no connector – for wiring into a device

For our Oscilloclocks, we use the LVC variation and fit an attractive custom connector solution, avoiding the PC variation with its venerable, utilitarian, and aesthetically unpleasant DB-9 connector and cigarette lighter plug combo. (We may buck the trend one day and intentionally fit such sockets into that special retro clock build – who knows?!)

* Astute readers noticed the earlier asterisks. PC and LVC units are not quite true RS-232; their output voltage swings between 0V and +5V. Not so with devices having true RS-232 interfaces! A swing from -25V to +25V is legal and also lethal for any unsuspecting microcontroller. In the Oscilloclock design, we take advantage of Garmin’s voltage range cap to avoid having additional circuitry to adjust voltage levels.

Interfacing the 18x LVC to a PC

To upgrade the GPS firmware, the 18x LVC needs to connect nicely to a PC. But [Andrew] is an Oscilloclock Owner. He deserves more than just a good electrical connection. The interface also must be elegant and aesthetically pleasing, lightweight (for shipping), and easy to build. And – most of all – it has to be interesting enough to write a blog series about!

We can start with Figure 1 in the manual, which describes the most basic interface hook-up possible.

This interconnection option assumes two things: the PC has a DB-9 serial port, and there is a power source.

If we extend this option slightly, to take power from the PC’s USB port, we arrive at this:

Continue reading

Longevity, and the Garmin “puck”

A few months ago, [Andrew] – of Metropolis Clock fame – reached out for help. He had just pulled his lovely Oscilloclocks out of storage to put on display, when he observed odd behaviour in both units: the time was accurate, but the date was stuck – to some random date back in 2003!

What on earth was going on?

What’s going on was not “on Earth” after all! [Andrew]’s clocks synchronise time and date against satellites, using an external Garmin GPS unit. And this unit happened to have a serious flaw. In this series of three articles, we’ll look closer at this accessory, identify this issue, and see how we were able to resolve it. Enjoy!


Our longevity dream

We want your Oscilloclock up and running as long as you are – and even beyond! Our dream is to see these beloved devices inherited by loved ones, and even available on the second-hand market as antiques one day.

In an era of throw-away technology, we flaunt an unthinkable target: Decades of trouble-free* operation.

* Excluding the CRT itself – although we really try hard with that as well, as this post explains!

To maximise usable lifetime (and safety!), we construct Oscilloclock units from the finest materials and components available. As part of this, we also select manufacturers that guarantee their components and provide decent after-sales support.

And Garmin is one such manufacturer…

Welcome to the Garmin GPS ‘Puck’

All Oscilloclock models that synchronise time using an external GPS unit have so far been supplied with a Garmin 18x LVC GPS unit, colloquially known as a ‘puck‘. (Note: to extend the lifetime of the pucks, we do not recommend using them on the hockey court.)

Now, this is not the smallest external GPS unit on the market today. But it has been available from Garmin since 2007, and is even being manufactured today! It is one of the most sensitive, robust, and well-supported units out there.

(Of course, for every new Oscilloclock delivered we evaluate afresh based on the latest devices available.)

This puck has a special connector …

How many times have you relegated an expensive laptop, phone, or other random device to the trash just because the power socket or headphone jack failed? Some of the weakest components of any electrical device are its connectors – plugs and sockets.

To combat such failures, your puck is wired with an exceptionally high quality connector from Hirose. This connectivity solution is not only robust, it even feels good! There’s a lovely audible and tactile ‘click’ when you engage the plug, and it locks securely in place. And unlike cheap chrome-plated connectors, we’ve proven that these babies do NOT corrode, even after a decade.

-- We don't scrimp - we only crimp!
Continue reading

Screens & Things

Recently I had an enquiry from [Frank], who had just begun a life-long love affair with scope clocks by purchasing one on eBay. The clock was great – but he felt that the two available screens (simple analogue and digital clock faces) lacked a certain oomph.

He then stumbled across Oscilloclock.com, and in his smitten state immediately reached out with his number one question: just what screens are available on an Oscilloclock?

Well, let me save Frank’s time trawling through years of blog posts. Right here in one place are most of the Oscilloclock screens and features created to date.

Enjoy the show!

Standard Time Screens

These stock-standard analogue and digital time screens may be quite simple, but they do evoke the ‘retro’ look that most people appreciate.

And you can flip a menu setting to display days, months, years in Japanese:

There are also some ‘random’ screens that add in a bit of dynamic visual entertainment:

  • Random number screen
  • Random letter sequence screen
  • Random four letter word screen (clean words only, by default!)
  • Random phrase screen (the phrase list is typically customized to a theme)

And of course the mesmerizing Timedrops screen:

Themed Screens and Features

… These themed features were developed more recently, and can be added for a small fee to help cover development costs!

Astroclock (Sidereal Time)

External XY input

OscilloTerm (serial terminal)

Oscilloblock (lego)

Metropolis

Aftershock Clock (Earthquake display)

Unbirthday Clock

War Games

Logo screens

Over the years many folks have requested that I render custom logos in Circle Graphics. Here are some examples:

“Seasonal Treats”

Up next are some fun, mildly interactive animation features. Not exactly screens per se, these animations pop up after a predefined period of inactivity – but only during certain months of the year. Can you guess which months?

Boo!
Santa in your Clock!

Menu screens

There are far too many configuration menu and test screens to present here. Fiddle to your heart’s content!



Q. How are screens switched?

Screens are switched simply by rotating the control knob in one direction or other.

There is also a configurable auto-switch feature; the screen is changed every 90 seconds in a predefined order (with the exception of some animation screens). The display time is configurable, and the auto-switch feature can also be turned off for those who prefer to switch screens manually.

Q. How are screens selected & configured?

Customers can request screens to include and/or specify the switching order. The configuration is done here in the lab before clocks are delivered.

Oscilloclock also provides a firmware upgrade kit, which allows the customer to upload a revised version of the firmware into the clock themselves. Using this, updates to screens and other features can be uploaded without shipping the clock back to the lab.

Q. What is the process for rendering a custom screen or logo?

We typically prepare a mock-up based on the customer’s description, sketch, or image file. This is tweaked as needed until the screen looks just right to the customer.



Like what you see? Contact me!

War Games on an Oscilloclock!

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!

Check out my YouTube channel to see this and other videos in HD!

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 away

The 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.)

Burn-in? Nope!

Many folks have asked whether screen burn-in, or phosphor burn, is not a problem. They are concerned by what was a frequent occurrence in the CRT monitors and oscilloscopes of yesteryear: a permanent scar prominently visible on the screen…

Phosphor burn – this old spectrum analyser looks ‘on’ even when it’s off!

To understand why this occurs, first think of an iron burn. If you deliver too much heat for too long into the same spot, your nice new Oscilloclock brand T-shirt will feature a prominent (and permanent) mark as shown below.

Iron burn – this shirt’s fibres have been literally scorched!

(I could push for another analogy, and describe livestock branding – but I think you get the message.)

In a CRT, a beam of fast-moving electrons bombards the phosphor coating on the screen to produce an image. If the beam is too intense, or it is allowed to trace the same route on the screen over a long period of time, the phosphor compound may degrade and lose its luminance. The end result is:

  • The screen won’t light up well in those spots any longer.
  • The damaged areas may appear dark even with the power off – a ‘ghost image’.

Interestingly, this damage does not actually shorten the working life of the CRT! (It does not affect the longevity of the heater, or the amount of gas permeating the vacuum.) However, it is certainly not attractive, and is most definitely NOT an effect you wish to observe on your fancy custom-crafted Oscilloclock…

Keeping the ghosts at bay

Happily, screen burn-in is not much a problem with the Oscilloclock. Let’s see why.

1. CRT selection

Some CRT types and brands are more susceptible to screen burn-in than others. There are a number of factors for this, and all of these are considered during CRT selection to minimize the risk of burn-in:

First, there is the phosphor compound used. Some phosphors, just by their chemical makeup, degrade faster than others. More significant, though, is the fact that some phosphors require more energy (electron beam intensity) to produce the same level of visible light output as others.

For example, a long-persistence blue P7 phosphor, such as used in the Model 1-S and the Prototype, is by its nature ‘darker’; it requires a higher beam intensity than the crisp green P1 or P31 phosphors used in many other models. The higher beam does make the P7 more vulnerable to burn-in.

Different phosphors need different intensities to appear ‘bright’ – so some will burn faster

Fortunately, the simple protection mechanisms in place in the Oscilloclock (we’ll get to these later) will avoid burn-in even on sensitive phosphors. The customer need not be concerned about this risk factor, and can select any of the available phosphors.

The second factor is the thickness of the phosphor coating. The thicker the phosphor, the less burn-in for the same beam intensity. Some CRTs are infamous for having ridiculously thin phosphor coatings, making them extremely susceptible to burn-in. Sadly, some CRTs that are most readily available today fall into this category, and their data sheets even specify an incredibly short maximum longevity of 1000 hours. That’s less than 2 months of continuous use!

Beware CRTs with short lifetime ratings – they may have ridiculously thin phosphors!

Most CRT manufacturers did not publish lifetime ratings, nor did they publish specifications of phosphor thickness. In the Oscilloclock lab, I rely mainly on my and others’ experiences with the manufacturer, and pick and choose only the highest-quality CRTs. Expensive – but definitely worth it!

The third factor is the use of any additional technology in the CRT that would allow for reduced beam intensities. The most common example is the aluminized screen, an additional coating on the rear of the phosphor. This coating reflects the light that would normally emanate from the phosphor towards the rear of the CRT, back into the phosphor (and the front of the screen). A much more efficient use of energy!

However, this technology was a later development, so many CRTs with an aluminized screen tend to be rectangular and have an in-built graticule. These may not be as visually pleasing in a standard Oscilloclock as non-aluminized CRTs.

2. Software (Firmware) protection mechanisms

Remember the phrase “screen saver”? In the pre-LCD monitor days, most computers employed some form of software that would stop the same image being displayed for too long, to avoid screen burn-in.

My favourite screensaver – Flying Toasters!
(Image used under Fair Use terms)

While there is nothing as fancy as flying toasters, the Oscilloclock has several mechanisms in place.

  1. Hourly XY Bump screen saver
    This feature simply shifts the image by a small amount in the X and Y directions every hour. The shift pattern repeats every 31 hours (a prime number), to ensure that every hour numeral will be placed in every screen position.

  2. Auto screen switch
    This feature simply cycles through the screens (clock faces) at regular intervals, configurable from 0 (off) to 90 seconds. This is by far the most commonly enabled feature, as it allows one to enjoy all the Oscilloclock screens without touching the control!

  3. Auto power off
    Strongly recommended by Oscilloclock labs, this feature simply turns the Oscilloclock off after a period of non-activity (not touching the control), configurable from 0 (off) to 90 minutes.

    This may sound counter-intuitive, but in practice, nearly all Oscilloclock owners are comfortable to turn their unit on just when they intend to enjoy it, and allow it to switch itself off. The exceptions are clocks that are permanent fixtures in offices and restaurants, in which case the owners manually turn their clocks on and off together with other appliances in the premises.

These features are of course highlighted in the Operation Guide that accompanies every Oscilloclock.

Summing it up

So there we have it – there’s not so much to be concerned about after all. While CRTs do have a delicate phosphor coating, by selecting a decent CRT in the first place and looking after it in use, the risk of screen burn-in is drastically reduced. In fact, in 7 years of constructing Oscilloclocks, as of today not a single unit has come back for a CRT replacement!