Epson Q703C-AA Clean up and conversion

User avatar
snacksthecat
✶✶✶✶

17 Feb 2019, 03:00

I bought this keyboard off ebay because I thought it looked awesome. I've heard these Fujitsu boards have really nice keycaps.

It's definitely not what I'm accustomed to using, that's for sure.

Here's a photo dump. I tried to get a little bit of everything, but none with the plate detached for now. I'm sure I'll have a chance to open it up in the next few days.

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

User avatar
PlacaFromHell

17 Feb 2019, 06:10

Looks like you get another awesome keyboard every day. I love the way it combines vintage looking keycaps with a more modern case.

User avatar
snacksthecat
✶✶✶✶

18 Feb 2019, 03:44

I recognize already that this is a 9V or 12V device by the voltage regulator. So the first thing I did was remove it and jumper the in/out lines so that the whole board is getting 5V.

ImageImage
I found some documentation on bitsavers that I'll post soon but for now it helped me figure out the pinout.

Telling by the lights, the keyboard appears to power on.

"It's alive!!!!"... Quite the devious appearance it has with all the lights lit up.

User avatar
snacksthecat
✶✶✶✶

18 Feb 2019, 04:51

Okay, so I read in the docs that if the lights come on but don't blink, that could indicate a voltage issue.

Image

So I went back and looked at the wiring a bit more. I think that this jumbo resistor thing could be responsible for pulling the voltage down so I removed it and jumpered the gap. I also removed the capacitor under it. I have a feeling that other tweaks will be needed but I think this is a step in the right direction.

ImageImage

Now when I plug the keyboard in, it does this mini light show thing.

This is also covered in the docs.

Image

Seems to be part of some power on self-check mechanism.

User avatar
Sangdrax

18 Feb 2019, 13:38

I have one of these I've been seeing about converting for awhile. I collected a bunch of documentation when I first got it to help out. The actual technical manual has all the scancodes and everything.

http://www.mediafire.com/file/rowr246ph ... d.pdf/file

It is a 12V main power line dropped down to 5V internally to power the chips. I just used an alligator clip to shove 5V to the 5V line directly on the other side of the power resistor instead of from the plug and got the startup light sequence like you did.

EDIT:I used a +12VDC power supply originally to do the power up directly from the plug and got the same result. And I have 1 spare genuine old stock DIN8 female plug if you need one.

This is also the pinout for the plug and PCB connector.

Image


Figured this would save you some work and let you get down to the business of actually converting the thing. Because I want mine to run too :lol:

User avatar
snacksthecat
✶✶✶✶

19 Feb 2019, 01:30

Wow thanks Sangdrax! I think I got complacent figuring all the surfaced documentation was available on bitsavers. This is definitely going to be helpful. In particular, I'd like to test out this command:

Image

But what does "X" mean? Does that mean those bits are ignored?

Going to take a while for me to digest all this info but thanks again!

User avatar
Sangdrax

19 Feb 2019, 06:54

I think it's just saying that those 3 are the only ones that matter. The reason the other 0's in the string are represented as x's is likely so there's no confusion in the instructions regarding "Bit 0" that 1100000 is inhibit and 1110000 is enable.

User avatar
Noobmaen

19 Feb 2019, 09:37

Haata wrote a converter for this a few years ago, based on its documentation the keyboard can't detect held keys except for the modifiers, so I would just replace the controller straight away https://github.com/kiibohd/controller/b ... can_loop.c

User avatar
Sangdrax

19 Feb 2019, 10:11

There's no diodes on this board. Replacing the controller makes it like 1KRO. While it claims NKRO natively with the buffer.

Also, I remember trying to use that scan module originally and IIRC it's not compatible with the modern version of the firmware. I never got anything but error press codes with it flashed to a convertor and I've made working Haata convertors for stuff like Pingmasters before.

But maybe I did something wrong. If you know where there's a full compiled version I could flash to an Atmel 90USB to test (Spare teensy 2.0++ is all I got laying around), I could give it another shot and see what it does.

User avatar
snacksthecat
✶✶✶✶

20 Feb 2019, 00:28

Well I've poked around this thing for way too many hours already. And not a peep out of the board.

The troubleshooting guide says to check and make sure you're getting a clock signal, which I'm not. I think this might just turn into a giant time sink for me (been there way too many times before :oops: ).

Right now I think what I'd like to do is retrofit the board with diodes by carefully cutting the traces and soldering them into place. The matrix is fortunately very simple so I think this should be quite doable. And that would open the door for doing a controller replacement, which is tedious but at least there's a light at the end of that tunnel.

Sorry guys :(

User avatar
snacksthecat
✶✶✶✶

20 Feb 2019, 01:36

By the way, has anyone ever tried replacing the o-rings with something thinner? These seem like they could be nice switches but the shallow bottom out makes them feel very abrupt and not at all satisfying. They don't really go very well with the tall keycaps.

Image

User avatar
Sangdrax

20 Feb 2019, 07:53

I know your pain. If it was simple, I would have bruteforced mine long ago too.

I would leave the dampeners alone though. Second gen fujitsus like this are rare. Best solution would probably be just straight swapping in some 3rd gen sliders from another board. But then I don't mind them stock at all. They still have more actuation distance than a keytronic with hard foam.

User avatar
snacksthecat
✶✶✶✶

24 Feb 2019, 18:41

I carved a little bit of time out of the weekend to trace the pcb. I tried to do all of the columns in red and the rows in different colors since I'd like to place the diodes in the rows. Probably not perfect but I'll work out the kinks as I go.

Image

User avatar
snacksthecat
✶✶✶✶

27 Feb 2019, 22:10

In terms of the controller replacement mod, I've made a little bit more progress. I got everything wired up to the teensy.
Spoiler:
Image
Then I tested each key with my little arduino matrix testing sketch. All keys registered so I feel pretty good at this point.

Now for making it NKRO, I did a small trial run cutting the traces between switches. Luckily because of the simple matrix design, this was fairly straightforward. Here's one of the chopped traces (used a blade):
Spoiler:
Image
I cut four of the traces and soldered diodes to bridge those gaps. Here's a photo of that (please excuse my sloppy handywork):
Spoiler:
Image
I retested with my sketch and everything continues to work so I'll do the remainder of the board sometime when I have time.

Big thank you to Quartz64 for sharing his Magnavox VideoWriter NKRO mod. Retrofitting diodes onto a keyboard is something that never even crossed my mind and seeing someone else pull it off successfully gave me more confidence to try this out.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I also have some potentially exciting news in regards to the native conversion. I've decided to continue working on that. I'll explain why later (hopefully sometime today). I'm really hoping that this new development opens the door to decoding the protocol. What I'll say for now is that I do have another one of these keyboards (one that has not modified in any way :D ).

As a side note (and as previously mentioned by Sangdrax above), the technical guide says that this keyboard indeed does support NKRO. Does anyone have an idea of how they achieved that without diodes? I mean in layman's terms; I'm too dumb to understand the documented explanation.
Spoiler:
Image

User avatar
snacksthecat
✶✶✶✶

02 Mar 2019, 22:35

This other board is unfortunately filthy disgusting. I don't even want to think about what those clumps of junk between the keys are.

Image

Wait, what's that in the background?

Image

User avatar
Noobmaen

02 Mar 2019, 22:40

The way I interpret the document about NKRO, the keyboard is actually 2kro except for the modifiers. It doesn't accept further non-modifier keypresses until at most only 1 other key is pressed.

User avatar
snacksthecat
✶✶✶✶

02 Mar 2019, 22:42

Noobmaen wrote:
02 Mar 2019, 22:40
The way I interpret the document about NKRO, the keyboard is actually 2kro except for the modifiers. It doesn't accept further non-modifier keypresses until at most only 1 other key is pressed.
Now that I read it again I think you're probably right.

User avatar
snacksthecat
✶✶✶✶

03 Mar 2019, 16:11

Well it's come to my attention that I may not know what I'm doing :lol:

I've revised my approach and put the diodes in the correct configuration instead of whatever I was thinking would work originally. It's going to be a bit more time consuming that I had thought initially but at least it will work. I'll try to do the other rows neater than this first one. I soldered and removed the diodes several times, losing patience each time and doing it sloppier and sloppier. Today I can come back with the confidence of someone who now has a basic grasp of how electronics are supposed to work. Banking on that instilling me with more fortitude and mindfulness.

Image

User avatar
snacksthecat
✶✶✶✶

03 Mar 2019, 18:17

Ooof. This other keyboard SMELLS.

I'm not an expert but I'm pretty sure that's usually a bad sign.

Image

Image

Image

User avatar
snacksthecat
✶✶✶✶

03 Mar 2019, 19:30

Ah-ha! Signs of life at last.

I plugged in the unit and attached the keyboard. Got everything wired up to the logic analyzer to take a look at the communication between the board and the computer.

Image

After powering up the machine, this is what is going on between the two.

Image

If you zoom in you see this first message that gets sent:

Image

Then after that, this message that gets sent at periodic intervals.

Image

Now that I think about it, it's likely that a switch on the board is stuck/shorted. Gonna go investigate that after I have some more coffee.

User avatar
snacksthecat
✶✶✶✶

04 Mar 2019, 01:14

Back to the controller replacement...

Cleaning off the flux from the pcb. Here's a photo of all the diodes wired in.

Image

User avatar
Sangdrax

05 Mar 2019, 05:22

Good work, man. I'm watching closely.

User avatar
snacksthecat
✶✶✶✶

07 Mar 2019, 02:35

What do you guys make of this?
Image

Here's a keypress of 'A'
Image

And a keypress of 'L'
Image

User avatar
snacksthecat
✶✶✶✶

08 Mar 2019, 21:42

Cleaning the surface dirt off the case with a Mr Clean magic eraser / rubbing alcohol + toothbrush (for the narrow cracks). Well, at least I thought it was just surface dirt (watch the end of the video)

User avatar
snacksthecat
✶✶✶✶

12 Mar 2019, 22:11

Image

Finally got a chance to finish up the wiring on this. Here's the current state with all the LEDs lit up.

User avatar
Sangdrax

24 Mar 2019, 00:18

So Snacks, after watching your work, I decided to go ahead and bruteforce mine and just desolder everything and jam a Teensy 2++ in there. I just needed one bit of clarification. You basically chopped every row connect on all rows, kept the columns, then made new rows with the diodes, right?

Can I get a higher res shot of the matrix trace and the board with the chopped traces if it's possible? Also a screenshot of the QMK layout for the matrix in the firmware would be really helpful. Really excited to bring the old girl back to life.

Also for anyone else looking at these. LED's are 1.6V standards so easy to calculate out the needed resistor values for stuff.

User avatar
snacksthecat
✶✶✶✶

24 Mar 2019, 17:06

Hey Sangdrax, that's correct, I chopped the rows and left the columns intact.

Here are some better photos:

Image

Image

I haven't yet started programming it in QMK so I don't have that to share. But hopefully I'll get to that soon. I've just been testing it with a little arduino sketch I wrote that outputs the row/col of each keypress.

I'm not exactly an electronics wizz, what resistors should I be using for the LEDs? I think I just matched the original value, which I believe was 560(?)

User avatar
Sangdrax

24 Mar 2019, 17:43

Max current is about 20mA for a standard LED. So 12V supply where V=IxR you get 12/560 is 21mA. So for a 5V supply you want 5/.020 or about 250 ohms. You should get some light past 6mA or so which is why they're still lighting up now, but not at max brightness.

1.6 is the drop voltage. It's only a concern if you're doing something in series (with 5V supply you could only wire 3 in series before you run out of voltage (4.8V) In this case, I'd just wire in parallel. I'm going to use the top 3 led's as standard locklights and put the Capslock parallel with the upper bank capslock and the insert light parallel with the numlock light.

Otherwise you need to calculate the total current draw and recalculate your current resistor to that value (ie 2 LED's in series draw 40mA so 125ohms for the current resistor)

EDIT: These are the ones I'm using https://www.arrow.com/en/products/rn60d2490fre6/vishay

RN60's are honestly overkill but I use them in pretty much all my electronics stuff. Got into the habit when I made electrostatic amps. Plus only a quarter apiece and free overnight shipping.

EDIT 2: I forgot the atmel at90usb1286 can only do -20mA per pin normally or +10mA. This is why the firmware is geared to go low on those pins from Vcc instead of high to Ground. So there's not enough current to hook up more than one on the same line without dropping the total current down. Might try 250ohm resistor with two LED's in series. See how they do with 10mA apiece. They won't be as bright as I would want, but might still be bright enough. Have to see it with the caps on to be sure.
Last edited by Sangdrax on 25 Mar 2019, 03:01, edited 2 times in total.

User avatar
Sangdrax

24 Mar 2019, 18:05

Almost forgot to say thanks for the new pictures. Much appreciated, man!

User avatar
Sangdrax

31 Mar 2019, 22:00

Hey snacks, just wanted to say thanks again for your work with this. I have a copy of the QMK settings I used in the thread I put up for my Epson, and it should probably work for your one with a new controller after you reassign the pins to match up. Might save you a bit of time. These really are great boards, and it's nice to finally be able to use it after having it sit in a closet since Thanksgiving.

Post Reply

Return to “Workshop”