Close

2017 - Road to Genius

A project log for V-Tech Genius Leader / PreComputer Hacking

Turning a toy into a hardware tinkering platform

Bernhard Bernhard "HotKey" Slawik 08/03/2019 at 14:390 Comments

So, another late night I searched eBay for "learning notebooks" and instantly got dozens of hits for notebooks by manufacturer V-Tech (well known for its Disney licensed/branded learning notebooks - there are thousands of them on eBay!). I narrowed down my search to the most "serious" and "boring" looking ones, not the colorful and whimsical ones. And that's when I got hooked on the vintage V-Tech Genius Leader series of learning notebooks (known in the US as V-Tech PreComputer or sometimes YENO MisterX)

Those things go for about 5 Euros on eBay, are available in vast quantities and seem to have big similarities among the different models - there seems to be some sort of proprietary V-Tech "platform" shared among  those devices, and most of them even come with a parallel printer port and/or a mouse!

I wand to know more!

I bought all of them.

"Now this is going to be a real challenge", I thought. Proprietary devices which -I suspect- have only a single "magic" chip-on-die inside them and no official documentation available whatsoever. This could be very challenging, but also very interesting!

Spoilers: It was 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 like a hoarder. And so did my friends. But my brother simply called it Nerdophilia :-) Thanx for the understanding, bro!

I found out that most of the models share the exact same cartridge port design. 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 (or more)? It's pure logic.

The most common physical form of cartridge port consists of an edge connector with 2 rows, 18 pins each, so 36 pins in 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 cutting knife and made the slot wider on one side. Fortunately, 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 that's obvious. I eBayed some more and finally bought a Super Speicher 32K -- a cartridge that does not contain a program, but is instead used to store data (BASIC programs or text files from the word processor). So there is no ROM chip inside this cartridge, but must either contain an EEPROM, FLASH or SRAM+battery to be able to hold information. And it was the latter: A coin cell battery and a 32 kilobyte SRAM chip. Lo and behold: Finally, a non-V-Tech branded chip! It's marked LGS GM76C256CLLFW55W and that means it is a Hynix 32K x 8Bit CMOS SRAM. Wonderful! By looking at the 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, and 8 data bits). That should do for a first test. I used my odd cable contraption, connected it to the notebook and the Arduino and dumped all bits to the Arduino serial monitor. I was prepared to see activity when I pressed the "CARTRIDGE" button, 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 so to speak. It is now possible that I can see the computer thinking through that port - that is something that was completely unexpected and absolutely satisfactory for me. :-D Now I knew that it was not crazy to have so many of those notebooks - it all seemed to have 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 of it. Although the Z80 processor is relatively slow in today's standards, it still ticks through its memory at a speed of up to several million steps a second. That is a lot of bits to print to a serial console...

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 vs 20 MHz). Also, the serial port can handle much higher baud rates (theoretically up to 480 MBit/s). That should suffice :-D

I could now clearly see certain memory regions lighting up according to different events (keyboard input, running BASIC, writing long texts, playing games) - that was truly mesmerizing! :-D

But even though I did get a glimpse of the address layout, the speed was still not fast enough to read from (not even talking about writing to) the Z80 bus quickly enough without using some completely different hardware: Either "new school" FPGAs or "old school" 74 logic.

It was clear to me that I had to dive deeper into hardware development and start creating my own expansion cartridge that could correctly handle the Z80 bus. That was what I did next.

Discussions