hardware, hacking, toy, upgrade, notebook, vintage, midi, z80
About
Oh, I love vintage notebooks from the 1990s so much...
Once upon a late night, I stumbled upon a "children's learning notebook" by german board game company Ravensburger. For only a few Euros I gave in to my curiosity and just bought it. Maybe as a fancy Raspberry Pi notebook caseusing its original components (screen, keyboard)?
It arrived, I switched it on and was happily greeted by a friendly female voice, inviting me to a commence a round of math quizzes. Cute! I played some rounds, tried out one program after the other, but then stumbled upon something more geeky: Some productivity programs! There seems to be more to that device than just leisure learning games!
The fact that it has a word processor with a "PC-Link" function made me curious - Could I connect it to another computer? An Arduino? Raspberry Pi? ESP8266? Well, I did not find any information about the "PC-Link feature" on the internet, not even by asking the company's support directly (although they scanned the original manual for me and sent it to me as a PDF! Kudos, Ravensburger support!). There is no cable or software available these days.
But since the computer has a standard 6-pin DIN jack, I searched and found the original ink jet printer (eBay ~10 Euros) which also connects to that port. So I just shoved some wires into the DIN-port and connected an Arduino between the notebook and the printer and watched the bits flow by... I quickly saw that it was some kind of SPI protocol. That was fun.
So this showed me that serial data transmission is possible, and there is some level of hackability to that device. But what about running my own code? I could not find other cartridges (it has a cartridge slot) so there is no way of finding some data to play with. So first I stopped there.
But wait! There are so many other "learning notebooks" out there! All hands on the eBays...!
So I searched for learning notebooks and instantly got dozens of hits for notebooks by V-Tech (well known for its Disney licensed/branded learning notebooks - there are thousands of them!). So I narrowed it down to the "serious" or "boring" looking ones... and that's when I got dragged deep into the world of the vintage "V-Tech Genius Leader" series...
Those things go for 1 Euro on eBay, are available in vast quantities and seem to have big similarities among the different models - there seems to be some sort of V-Tech proprietary "platform" for those devices and most of them come with a parallel printer port and/or a mouse! I wand to know more!
I bought them all.
Some even twice so I can dissect and analyse them. (These ARE learning notebooks after all!)
Now THIS is going to be a real challenge! Such proprietary devices which -I suspect- have only a single "V-Tech chip" inside them (not to be confused with the "V-Chip" from South Park). So: No official documentation whatsoever. I would have to become "Sherlock HotKey" and work myself through a long trace of sparse clues... This could be challenging and interesting!
It was mostly interesting :-D
For days the mail man brought one "Genius Leader" after the other: 2000, 4000, 4004 Quadro L, 5000, 5005 X, 6000 SL, 8000 CX, ... I started feeling a little crazy. And so did some of my friends. My brother called it "Nerdophilia" :-)
I found out that most of the models share the exact same cartridge port. You normally put new programs in there or add additional memory for the word processor and the built-in BASIC interpreter (yes, they can run BASIC! <3 <3 <3). So the cartridge port is the place I have to put my focus on: When cartridges can transfer data (and maybe program code) to the computer, why shouldn't I be able to do the same? It's pure logic.
The most common form of cartridge port consists of an edge connector with 2 rows with 18 pins each, so 36 pins total. The cartridges have the female connector on them, the main board exposes a card edge. Physically, the cartridge side almost resemble an old 5.25" floppy drive connector, except the floppy cable misses 2 pins (1 pin per row), so it is shorter. But that didn't stop me from trying it anyway ;-) I used a hot cutter and made the slot wider on one side. Fortuately, by opening up 3 cartridges, I saw that the first 2 pins (pin 1 and 36 by the V-Tech labeling) are not used! So I can just put in my own cable and do not need to care about pins 1 and 36.
The plan was to hook up an Arduino and watch what kind of data flows through those 36 (or 34 if you want) wires. There is NO documentation available, so what should I do? Also, the cartridges I opened only contained one single V-Tech branded chip (some proprietary ROM chip), so no information on what the pins could mean. Well, some of the outer pins are usually GND and +5V, but that's all.
I eBayed some more and finally bought a "Super Speicher 32K" - a cartridge that does not contain a program, but instead is used to store data. So there is no ROM chip inside, but either an EEPROM, FLASH or SRAM+battery. Tadaa! It was the latter: A coin cell battery and an 32 kilobyte SRAM chip. Lo and behold: Finally, a non-V-Tech chip! It is marked "LGS GM76C256CLLFW55W" and that means it is a "Hynix 32K x 8Bit CMOS SRAM". Wonderful!
By looking at its data sheet of that chip and how it was connected to the cartridge port, I could easily find out what each pin meant. Or at least 24 of them (GND, 15 address bits, 8 data bits). That should do for a first test!
I used my odd cable contraption, connected it to the notebook and watched the bits on the lines... Wow!
I prepared to see activity when I pressed the button "CARTRIDGE", but in fact there was activity ALL THE TIME. That means: I just tapped into the internal bus of the computer - the "spinal cord" of the notebook! It is now possible that I can see it thinking through that port - that is something that was completely unexpected and absolutely satisfactory for me.
No I knew that it was not crazy to have so many of those notebooks - it all has purpose now! :-D
First I used an Arduino MEGA (I needed up to 36 input pins) to catch all the data, but quickly found out that it's too slow to catch a reasonable amount of data without missing too much.
Luckily, I still had an unused Arduino DUE somewhere, which has the same amount of pins and runs at a much higher speed (84 MHz). Also, the serial port can use much higher speeds (theoretically up to 480 MBit/s). That should suffice :-D
Yes it did suffice.
I can clearly see certain memory regions lighting up according to different events (keyboard input, running BASIC, writing long texts, playing games) - that is mesmerizing! :-D
...
Some months later I have created a DIY debugging cartridge! It allows for bidirectional I/O to the outside world. I successfully hooked it up to a Raspberry Pi as a serial terminal. Also, there is a MIDI interface plug-in :-)
News
- 2018-09-19_13-30: Uploaded all files to thingiverse.com
- 2017-09-14_11-54: Got in touch with the Z88DK community for compiler support. It is working as a proof-of-concept!
- 2017-02-09_14-30: Started designing a cartridge PCB in KiCAD
- 2016-09-01_12-30: Bought a Ravensburger Champion Notebook XXL
- 2016-10-11_18-00: Bought a "Super Speicher 32K" - a cartridge which I suspect to contain non-V-Tech branded chip(s)...!
- 2016-10-12_18-00: Trying to understand the cartridge port pinout by comparing ROM cartridge to SRAM cartridge ("Super Speicher 32K"), which has a well known chip!
- 2016-10-22_15-30: Built a cartridge-to-cartridge break out "harness" and hooking it up to an Arduino MEGA to stare at bits...
- 2016-10-23_18-30: Receiving data, although slow and weird!
- 2016-10-25_15-00: Starting a bus visualization tool to look at the bits in a fancy way
- 2016-10-25_18-00: Switched to Arduino DUE with 84 MHz for more data to look at.
- 2016-10-29_01-00: Yass! Can view 130 000 bus cycles per second now. Things start to make sense!
- 2016-10-29_04-00: I need to look at the remaining 13 pins to find some "chip select" lines or something. I need to figure out the exact memory address layout! I can somewhat separate ROM from RAM, but there seems to be more...
- 2016-11-08-00_30: