How To Hack Your Own Infoglobe

Hello! I'm going to give y'all the technical rundown so you too can hack your own Infoglobe.

Amazon.com : Olympia OL 3000 Infoglobe Digital Caller ID with Real-Time  Clock : Digital Caller Id Globe : Office ProductsThis is Olympia's promo pic of the Infoglobe, which can usually be found for sale on eBay for around $40. This device plugged into a landline phone to display CallerID (the contacts app before apps were a thing), and also showed the time and custom messages when not being called. Oh, it also took voicemails for you!

I relied a lot on the wisdom of the ancients to learn how this thing works in hardware and software, and I'll link all of them below

Wait, but who cares about infoglobe? / Didn't GreatScott already do this?

While makers have done fan-based spinning displays in the past, they always warp letters from top to bottom in a way I didn't like. By mounting the LEDs tangent to the spin direction, we can achieve warp-less letters that also look like they float!


Hardware Implementation

The Infoglobe creates a cool, floating display by using a rapidly spinning PCB arm with LEDs vertically mounted on it. The taped-over infrared LED in the Infoglobe's base (pic below) communicates with one in the spinning arm to give the top arm a way to measure its own rotation speed as it spins. 

Underneath the central, circle-ish region of the spinning arm, there is a small cavity with another infrared LED which corresponds to its own IR receiver in the arm. This is the data LED, and it's always being picked up by the top arm since the inner cavity is flooded with light. 

Software

I originally just trusted [1] when they wrote that the IR data protocol was just 0s represented as 1ms of 38kHz infrared, and 1s represented as nothing for 1ms. However, this is what killed my project in high school: I did not realize that all crystal clocks have some error, and that the ```delay()``` function is a terrible way to time such a precise process. 

I ended up measuring it myself using my scope. Turns out, they were right! It does communicate using 1ms timings. I ended up using my scope to calibrate the microcontroller delays to its clock error.

To send my own messages to the Infoglobe, I hooked up a little ESP8266 to the IR LED after cutting the previous connections. Following [1], I made a little message generator that parses and displays Serial messages.

Here the Infoglobe is even retrieving the local time from the internet + IP localization. Thank goodness for http://worldtimeapi.org/!

I'll post the code when it's a bit more done, I need to add all messages types first!. Thanks for reading!

Elders:

OG source on Infoglobe. Lists all modes, gives messages examples, and gives walkthrough of different parameters. The only problem is it's a bit confusing to read.
[1] https://web.archive.org/web/20110425234300/http://www.linux-hacker.net/InfoGlobe/

A blog post reproducing [1], with more photos and some code. Appears to answer questions/comments rapidly.
[2] https://hanixdiy.blogspot.com/search?q=infoglobe&max-results=20&by-date=true

Manual of the infoglobe. I didn't really use this at all, but y'all might find it helpful: https://www.manualslib.com/manual/1076904/Wave-Olympia-Info-Globe-Ol3000.html?page=1#manual