• Please review our updated Terms and Rules here

Has anyone worked with the Model I keyboard circuits?

Hi, Just saw this post. I had been thinking about the topic also for the model 1 but haven't started anything yet.
Have you made an progress or willing to share schematics/software or anything if you have made progress. Im interested in the fun of building it. would have lots of potential being wireless too.
Yes, I have made some progress. Short story is that positive results look like they'll be coming but are probably a month or so away.

I have fabbed the board shown here. Boy, looks like I need to dust more often.

1720390824959.png 1720391331908.png

I have verified that it will fit in the Model III - the black connector plugs onto the keyboard, and then the keyboard cable plugs onto the gold pins.

The MT8808 works as expected, and I have managed to connect to my XBox controller, sort of. (The USB connection shown is just for initial programming. My software includes a WifiUpdater package, so you can flash it over the air after the initial flash, thus enabling wireless reprogramming while installed in the host system.) I haven't actually demonstrated "pressing keys" with it yet, but every indication is that it will work fine.

The "sort of" is that the XBox controller Bluetooth spec isn't really published, and although I can talk to it, it never seems to fully consummate the pairing and eventually drops the connection. I then stumbled across the Bluepad32 library, which looks like it will solve all my problems. I am close - it very nearly builds successfully. I have since been waylaid with things at my job and have had to back-burner this.

I am open-sourcing the hardware and software. When I bought the parts I bought enough to make 5 of these boards, so can share with someone else if they want to be a guinea pig. The current board has one blue wire on it which I intend to fix with a quick circuit board rev once everything is fully checked out.

I have also considered doing a surface mount version. The parts are a little easier to come by and the board would be smaller, but then you'd have to do SMT assembly.

I have this schematic but it's in Altium. I haven't been able to figure out how to export to Kicad, but I haven't tried very hard. J2 is a single-pin Dupont pin to bring in 5V power , because there's no power on the keyboard cable. (There's GND but no power.) Note that the 74HCT244 is just being used as a level shifter between the 3.3V ESP32-C3 and the 5V MT8808.

1720391531124.png

The software isn't ready for posting yet - it doesn't even build at this moment in time.

Brad
 
  • Like
Reactions: cjs
Hi,
This is great!
I don't have a model 3, but this looks to mostly all apply to the model 1 also. (Other than a few things like the plug lay out.)
The model 1 has power on the plug which should I would think mean that could be used.
The model 1 also doesn't have the Reset line, so I would think that part of the circuit I'll just remove and I could switch to surface mount it sounds like.
The model 1 I would think would also need to use the KYBD EN line for maybe OE.
I like the level shifters there too. I've read several articles debating if they are needed or not for an Arduino vs the pi's, saying pi's need them and Arduinos don't.
I've used pi's in the past for stuff and they need them. I look forward to seeing the code. I wish I could help more, but I don't have a model 3.
Are you planning to do one for the model 1 also that I should wait for?

Todd Garber
 
Hi,
This is great!
I don't have a model 3, but this looks to mostly all apply to the model 1 also. (Other than a few things like the plug lay out.)
The model 1 has power on the plug which should I would think mean that could be used.
The model 1 also doesn't have the Reset line, so I would think that part of the circuit I'll just remove and I could switch to surface mount it sounds like.
The model 1 I would think would also need to use the KYBD EN line for maybe OE.
I like the level shifters there too. I've read several articles debating if they are needed or not for an Arduino vs the pi's, saying pi's need them and Arduinos don't.
I've used pi's in the past for stuff and they need them. I look forward to seeing the code. I wish I could help more, but I don't have a model 3.
Are you planning to do one for the model 1 also that I should wait for?

Todd Garber
I wasn't particularly planning on doing one for the Model 1. But I'd certainly be willing to write the software so that it would be a simple compile switch to handle any differences in key matrix mapping.

I'd be willing to work on the Model 1 circuit but I don't have a Model 1 to test with. I assume there's not really room inside the keyboard of the Model 1 the way that there is room inside the Model 3. So it'll probably end up being a small external box that fits in between the keyboard and the main unit?

One other question is just how similar the two keyboard circuits are. I did a fairly deep dive into the keyboard schematics of the Model 3 and studied the logic thresholds of the various chips and the pull-up resistor sizes and all that. It's kind of important because the MT8808 has quite a high on resistance - a few hundred ohms - when powered from 5 volts. That turns out to be good enough for the Model 3.

You can get much lower on resistance from the part if you operate at a higher power supply voltage. Which works be practical if the device is external.

So there are a number of variables involved that could make it different enough that it would require a good hard look at it to see how common the circuit can really be. The short of that is, I'm probably not a dependable path for you to get a solution for the Model 1 on any reasonable timescale, but I'd certainly be willing to collaborate with somebody to make it a common code base and/or a common open source project.

That said, if it's going to be an external box, the incentive to make it 100% wireless is a little less. Wireless is still nice of course, but perhaps not as essential in that case. So there could be a simpler path.
 
based on your schematic, i'll take a look at it for the model 1 for fun.
Im sure I'll be quite slow at it (a long with a few other things taking my time).
Did you do your code for yours in C, or CircuitPython, or micropython?
 
based on your schematic, i'll take a look at it for the model 1 for fun.
Im sure I'll be quite slow at it (a long with a few other things taking my time).
Did you do your code for yours in C, or CircuitPython, or micropython?
C++. The NimBLE library I was using initially (prior to finding BluePad32) is written in C++. Plus C++ is really my native tongue. Although I also like Python, but have never actually written in CircuitPython or micropython.

I think Bluepad32 is pure C but I am using PlatformIO (kind of a more universal version of Arduino) as the dev environment, which is C++-y. I may yet switch to ESP-IDF because I have a lot of familiarity with FreeRTOS and ESP-IDF is built on top of FreeRTOS. The PlatformIO implementation for ESP32 is also built on FreeRTOS but they try to hide it from you so that everything is Arduino-easy. I think ESP-IDF can be accessed from straight C but am not sure.

But I don't have much interest in writing a pure C library. That would just be too tedious at this point in my life. So C++.

But if somebody wants to hook it to some flavor Python, that would be interesting to think about supporting. Python is relatively pleasurable to program in.
 
Just a reminder that there is -


For the Model I it fits between the MI and EI. I have a newer version than whats there, its a single board -

452236246_780612477301319_3936524565617863399_n.jpg
450442681_1615081495730354_7199198506003711778_n.jpg
 
Very cool.
I have seen it listed on your site, but it only said model 3 or 4 I thought. And I like the newprint add on also. I guess I didn't know it worked with the model 1 also, or is it a different board and I just didnt see the listing for a model 1?
 
Very cool.
I have seen it listed on your site, but it only said model 3 or 4 I thought. And I like the newprint add on also. I guess I didn't know it worked with the model 1 also, or is it a different board and I just didnt see the listing for a model 1?
Hi,

Not my site, I'm just a customer. :) Yea, he's not updated the site recently. His original version was for Model III/4, and it ever so briefly mentions there is an additional board for the Model I. When I got that he seemed motivated to make a single board version, which is what I posted above, but hasn't put it up to sell. (Works perfectly) I just contacted him to nudge him to update the site. If you're on the TRS-80 Discord, he's @kwadsten.

Tuc
 
Back
Top