Looking for help converting a FLS Epson
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
Hello everyone! I recently acquired an Epson QX-10 system off of eBay with the keyboard seemingly in pristine condition. I am looking to convert it to USB, but I have 0 experience with even soldering and have no equipment.
People in a local discord suggested that instead of inserting diodes into the traces and replacing the controller, the board could he handwired by connecting the new MCU straight to the switch pins. Not sure if this sounds about right, I really have no idea.
So I was hoping I would be able to find someone who is willing to take on a project like this, to convert a FLS board to USB with NKRO. An added bonus would be preserved compatibility with the existing system, although I anticipate this would be extremely difficult. Obviously I would he paying for this service. Thanks for your help!
People in a local discord suggested that instead of inserting diodes into the traces and replacing the controller, the board could he handwired by connecting the new MCU straight to the switch pins. Not sure if this sounds about right, I really have no idea.
So I was hoping I would be able to find someone who is willing to take on a project like this, to convert a FLS board to USB with NKRO. An added bonus would be preserved compatibility with the existing system, although I anticipate this would be extremely difficult. Obviously I would he paying for this service. Thanks for your help!
- Attachments
-
- Screenshot_20201201-122629.png (1.79 MiB) Viewed 4439 times
- DMA
- Location: Seattle, US
- Main keyboard: T420
- Main mouse: Trackpoint
- Favorite switch: beamspring
- DT Pro Member: NaN
- Contact:
IIRC it uses fairly standard RS232 protocol. The thing is - most of the keys don't generate release codes, making those useless as modifiers, plus (IIRC, again) emitted codes are different depending on active modifiers (and modifiers themselves are not exposed).
-
- Location: Canada
- Main keyboard: Focus FK-9000, heavily modded
- Main mouse: MX Master 3
If you don't have experience reverse engineering protocols and writing firmware to convert said protocol, just map the matrix and wire it to a Teensy running QMK.
-
- Location: San Francisco
- Main keyboard: Das Keyboard
- Main mouse: Logitech
- Favorite switch: MicroSwitch Hall Effect
- DT Pro Member: 0240
Here is a high-level description, matching what DMA remembered:
https://archive.org/details/bitsavers_e ... 3/mode/1up
Even though there's a separate clock line, it looks like it was still 1200 baud async.
Schematics: https://web.archive.org/web/20080502002 ... /qx10/doc/
The relevant part of the main system is page 4 of tm1_A3.
The keyboard schematic is page 11 of tm1_A2.
Datasheet for the chip used to decode the keyboard serial line: http://www.datasheet-pdf.com/PDF/UPD720 ... EC-1098405
You can get an annotated listing of the boot ROM from links here: https://fjkraan.home.xs4all.nl/comp/qx10/detail.html
In particular showing how the registers in the uPD7201 were initialized.
https://archive.org/details/bitsavers_e ... 3/mode/1up
Even though there's a separate clock line, it looks like it was still 1200 baud async.
Schematics: https://web.archive.org/web/20080502002 ... /qx10/doc/
The relevant part of the main system is page 4 of tm1_A3.
The keyboard schematic is page 11 of tm1_A2.
Datasheet for the chip used to decode the keyboard serial line: http://www.datasheet-pdf.com/PDF/UPD720 ... EC-1098405
You can get an annotated listing of the boot ROM from links here: https://fjkraan.home.xs4all.nl/comp/qx10/detail.html
In particular showing how the registers in the uPD7201 were initialized.
- Jesseg
- Location: Australia
- Main keyboard: AEK1 - SKCM Salmon
- Main mouse: m720
- Favorite switch: Capacative buckling spring, Linear space invader
If you're going to do a controller swap, use pin headers and IC sockets so it's reversible, really cool to see a full system, would be a shame if it never ran together again.
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
Yeah, I would love to be able to use it with the old system still, especially since I probably won't be able to sell the rest of the system. Being that they would need anothwr QX-10 keyboard. If anyone thinks they could do this and want to give it a shot I'm all ears.
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
You know, I was just thinking that. And I would definitely be interested if it wasn't operational, but it seems to be. Unless it croaks in shipping
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
But at this point I just nees to find someone willing to do the conversion!
-
- Location: Texas
- Main keyboard: Kinesis Model 130
- Main mouse: Logitech M-S48, Razer Viper
- Favorite switch: MX Browns
- DT Pro Member: -
Making a protocol adaptor of some kind is the easiest way to preserve original functionality. That do what @Jesseg said remove the chip that scans the matrix, replace it with a socket, and put the original controller back when you want to use it with original hardware.
I'm not sure if this protocol has been reverse engineered yet. If it has then making a convertor is as easy as soldering some resistors and a socket to a pro micro.
I'm not sure if this protocol has been reverse engineered yet. If it has then making a convertor is as easy as soldering some resistors and a socket to a pro micro.
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
That'd be great, although I can't do that myself. Would it basically be like making a soarer's then?
- jsheradin
- Location: USA
It'd be pretty similar to Soarer's converter but there's a good chance this KB doesn't operate on 5V so you might need some logic level converters. Even with a fully implemented protocol it might lack functionality making it hard to use on a modern computer. Your best bet would be to socket a converter board that interfaces directly with the matrix and provides USB/Bluetooth.
If you want to fully preserve the computer, a text shell is easy to get going.
You connect a USB serial adapter between the epson and a modern computer. On the newer computer start a getty shell on the serial connection and it will act like a mainframe. All you'd need is the right boot floppy with software to emulate a terminal. I think that computer ran CP/M so there's definitely some VT terminal emulators out there. Set your terminfo codes to match and you have a text shell running on a modern computer but you interact with it through the epson.
If you want to fully preserve the computer, a text shell is easy to get going.
You connect a USB serial adapter between the epson and a modern computer. On the newer computer start a getty shell on the serial connection and it will act like a mainframe. All you'd need is the right boot floppy with software to emulate a terminal. I think that computer ran CP/M so there's definitely some VT terminal emulators out there. Set your terminfo codes to match and you have a text shell running on a modern computer but you interact with it through the epson.
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
Thanks! Although I'm way out of my depth here, if you'd be willing to take this on as a project I would really appreciate it. I have no way of doing anything with the board, not even desoldering.
- jsheradin
- Location: USA
I'd be glad to help you learn!
You'd need either a DB9 or DB25 (depending on what the epson has) RS232 to USB adapter and a computer running Linux. You can probably get a DOS/powershell prompt with a Windows PC but I've never tried it.
On the Linux PC you set the serial configuration either on boot through grub config or with a separate command. You then set up a getty service on the adapter to provide a shell prompt over serial. You'll have to set the terminfo config to match whatever emulator you end up running on the epson. If it's a common terminal being emulated, it should be as simple as setting the TERM environment variable.
The challenging part is going to be finding and configuring the terminal emulator to run on the epson. There's plenty of info online about these. A quick google showed IMP, MEX, or BYE may be good options. You'll want something that can talk to the serial connection and act like a dumb/smart terminal such as a DEC VT series.
I'd be glad to go into more detail if you get stuck on any of the steps but figuring stuff out is most of the fun!
There's some other threads about reverse engineering the protocol if you want to use the keyboard by itself but I usually just go for a full matrix replacement for my stuff.
You'd need either a DB9 or DB25 (depending on what the epson has) RS232 to USB adapter and a computer running Linux. You can probably get a DOS/powershell prompt with a Windows PC but I've never tried it.
On the Linux PC you set the serial configuration either on boot through grub config or with a separate command. You then set up a getty service on the adapter to provide a shell prompt over serial. You'll have to set the terminfo config to match whatever emulator you end up running on the epson. If it's a common terminal being emulated, it should be as simple as setting the TERM environment variable.
The challenging part is going to be finding and configuring the terminal emulator to run on the epson. There's plenty of info online about these. A quick google showed IMP, MEX, or BYE may be good options. You'll want something that can talk to the serial connection and act like a dumb/smart terminal such as a DEC VT series.
I'd be glad to go into more detail if you get stuck on any of the steps but figuring stuff out is most of the fun!
There's some other threads about reverse engineering the protocol if you want to use the keyboard by itself but I usually just go for a full matrix replacement for my stuff.
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
Okay, so would going with this approach make the keyboard as functional as a modern one on a Windows machine? It would probably be my only board for a while, and handle work and gaming activities. Also, this would preserve NKRO and just be something plugged into a modern computer via USB, like a Soarer's? If so, I can maybe find someone local with a lot of programming experience and a Linux machine.
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
Actually, looking back through old posts it seems that people have already tried to reverse-engineer the protocol, but it didn't work well (1KRO). So snacksthecat and others were forced to revert to their approach of cutting the PCB traces and soldering diodes and then handwiring a matrix (I think?). Unfortunately this would ruin the compatibility with the original system but there doesn't seem to be much of a choice.
- jsheradin
- Location: USA
I was describing using the whole computer as a way to access a text terminal running on a modern PC. If you are only interested in using the KB you have a few options:
1. A protocol adapter will work with significant limitations (no held key detection, 1kro, etc.) but will keep functionality with the epson. This would be a simple serial adapter similar to Soarer's converter.
2. A reversible controller swap (keeping matrix intact) will remedy the held key detection but will still have major kro limitations/ghosting. This would involve desoldering the controller, adding a socket so it can be replaced, making a header adapter for a new controller, and running something like Soarer's controller.
3. An irreversible controller swap (full diode matrix replacement) will give the full functionality of a modern KB but would require a protocol adapter to make it usable with the old computer. This would involve removing the PCB/cutting the traces, soldering a ton of diodes, connecting rows and cols to a new controller, and running something like a Soarer's controller.
I'd go for #3 since making a protocol adapter from USB to serial the other direction is pretty easy. It would basically be a reverse Soarer's converter going from any USB KB to the epson's serial.
1. A protocol adapter will work with significant limitations (no held key detection, 1kro, etc.) but will keep functionality with the epson. This would be a simple serial adapter similar to Soarer's converter.
2. A reversible controller swap (keeping matrix intact) will remedy the held key detection but will still have major kro limitations/ghosting. This would involve desoldering the controller, adding a socket so it can be replaced, making a header adapter for a new controller, and running something like Soarer's controller.
3. An irreversible controller swap (full diode matrix replacement) will give the full functionality of a modern KB but would require a protocol adapter to make it usable with the old computer. This would involve removing the PCB/cutting the traces, soldering a ton of diodes, connecting rows and cols to a new controller, and running something like a Soarer's controller.
I'd go for #3 since making a protocol adapter from USB to serial the other direction is pretty easy. It would basically be a reverse Soarer's converter going from any USB KB to the epson's serial.
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
Ah, so it is option #3 then. Unfortunate too, as the whole system is in great condition with all of the software and accessories, and without its keyboard the system is useless, unless a potential buyer can get another QX-10 keyboard. So I better try the keyboard and see if it feels as nice as they say first. Maybe a collector would still want it regardless. Or if I can't sell it maybe it would make for a dope case mod PC.
But anyways, this helps a lot and narrows it down. Now I know exactly what to tell people what needs to be done. Thank you!
But anyways, this helps a lot and narrows it down. Now I know exactly what to tell people what needs to be done. Thank you!
- jsheradin
- Location: USA
I've always thought that retro-modding tech is worth it. IMO as long as you keep the character of the original, there's nothing wrong with tastefully adding functionality.
Thinking about it, there might be an option 3.5. It'd still entail a full matrix replacement but there's no reason you couldn't make the firmware output to both the original serial via FTDI/LLC while also outputting to a modern USB/Bluetooth connection. You'd have all the modern goodies without loosing functionality with the epson.
I change my answer, I'd go with option 3.5. This could be a neat project!
Thinking about it, there might be an option 3.5. It'd still entail a full matrix replacement but there's no reason you couldn't make the firmware output to both the original serial via FTDI/LLC while also outputting to a modern USB/Bluetooth connection. You'd have all the modern goodies without loosing functionality with the epson.
I change my answer, I'd go with option 3.5. This could be a neat project!
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
Oh thats cool! But now my issue is finding someone to path the traces, cut them, solder in all those diodes, wire it all up to a new controller and program it. Then later maybe I can figure out how to make it work with the old system as well. Not that I know any programming but at least it doesn't involve a few hundred in tools and supplies. Also, doesn't changing the voltage to 5V make it also imcompatible with the old system?
-
- Location: Ohio
- Main keyboard: Leading Edge DC-2014
- Main mouse: CM MM720
- Favorite switch: Capacitive buckling spring
I can take the time to learn the programming at my leisure while the board is functional on my PC, but I just can't justify the purchase of a soldering kit when I would maybe use it this one time. God forbid I also ruin the PCB from noobish mistakes!
- jsheradin
- Location: USA
As far as voltage goes, the controller and matrix would still operate on 3.3/5V (depending on the controller). Most project boards can easily take in the epson's 12V supply and regulate it down to what they need. The FTDI chip or logic level converters is what would convert the data signals between what the epson's serial likes and what the controller can handle. If it's in USB mode, none of that circuitry is used.
As far as actually doing it, there's always time to learn! There's tons of material out there.
As far as actually doing it, there's always time to learn! There's tons of material out there.