Do the orihalcon Soarers have pull ups?

User avatar
Inxie

13 Sep 2020, 18:05

No not diapers, resistors. The eBay seller orihalcon has been Soarers converters for a while now and seemingly the only authorized one. While it worked, I always had one problem with another with it. Missed key strokes, phantom keys if you even wiggle or touch the USB send of the adapter, just oddities that kept pointing to the keyboard.

Then came when I made my own Soarers on a Teensy 2.0 and built it into the case itself and plugging into an internal USB header. Now I did use pull up resistors for clock and data when I built it. And now I'm finding that my own converter is flawless, not one issue whatsoever. So I tried the orihalcon one again, and sure enough, some issues just come back if you touch the wire at all.

Do the orihalcon's not have pull ups at all? I know it's only supposed to matter on long cords, but on coiled cords there can be issues as well due to the build up of capacitance on the wire, and I think that's what's happening and the pull ups help.

Is there even a way to look inside one of these orihalcon's? I assume the converter is on the USB side do the over sized plug. I'm not even sure they implement reset either, which I made sure to make an option on my home grown one should I ever require it.

User avatar
fohat
Elder Messenger

13 Sep 2020, 21:01

Inxie wrote:
13 Sep 2020, 18:05

seemingly the only authorized one
Soarer abruptly went dark about 5 years ago (or was it more?) to the chagrin of the community.

Orihalcon has been making his cables for years and is a member here. You should just ask him directly, but my guess is that the answer is no, since the circuitry had to be shrunk so small.

User avatar
Inxie

13 Sep 2020, 21:16

fohat wrote:
13 Sep 2020, 21:01
since the circuitry had to be shrunk so small.
I highly doubt 2x 1k SMD resistors are going to take up much more space. :lol:
As for Soarer, it's a shame he disappeared, and all I can hope is that he's ok. But I understand if people need a change of life.

User avatar
Weezer

13 Sep 2020, 21:58

Why would you need a pullup resistor in a circuit that has no components that would cause an indeterminate voltage? The circuit has a constant connection to Vcc and Gnd. As you stated, the cable is also too short to be a factor.

From the symptoms you describe it seems likely that you actually have a bad connection somewhere in the cable or connectors in the Orihalcon converter.

On an anecdotal level, I haven't ever heard of anyone else having this issue, which kind of reaffirms that its not a circuit level issue you're experiencing.

If I were in your situation I would contact Orihalcon and request a replacement adapter and see if that helps.

gianni

13 Sep 2020, 21:58

If it's true that orihalcon's could be better, what alternatives are there for the model f at and xt?

User avatar
Weezer

13 Sep 2020, 22:10

gianni wrote:
13 Sep 2020, 21:58
If it's true that orihalcon's could be better, what alternatives are there for the model f at and xt?
Alternatives that readily come to my mind are xwhatsit, DMA CommonSense, and the "through the hole" (xwhatsit) converter.

Soarer's is the easiest to get ahold of though because there's always a stable supply of plug and play ones from Orihalcon or the TinkerBoy site.
Last edited by Weezer on 13 Sep 2020, 22:11, edited 1 time in total.

User avatar
Inxie

13 Sep 2020, 22:11

Weezer wrote:
13 Sep 2020, 21:58
Why would you need a pullup resistor in a circuit that has no components that would cause an indeterminate voltage? The circuit has a constant connection to Vcc and Gnd. As you stated, the cable is also too short to be a factor.
Perhaps you're not familiar with this effect:
https://geekhack.org/index.php?topic=14 ... #msg296052
This can happen even on short coiled cables as well as the coil acts like a capacitor.

Also don't forget that not all gates/MCU's, etc are created equal in what is considered "high" or "low".

Image

All this comes together with the issue I did describe. I even did a test, I pulled up in the DIN socket on the ebay converter with 1k pullups, guess what, the issue went away.

I knew I didn't take EE courses and get into ham radio for nothing.

In addition to that, not all MCU's used in the keyboard themselves are created equal. My Model F XT has a very old ceramic package with the UV window on it. However, another F with a plastic MCU that my friend has, had no issues either way with or without resistors. So it's not just cable length.

Coeus

14 Sep 2020, 18:34

Inxie wrote:
13 Sep 2020, 18:05
Is there even a way to look inside one of these orihalcon's? I assume the converter is on the USB side do the over sized plug. I'm not even sure they implement reset either, which I made sure to make an option on my home grown one should I ever require it.
Yes, the converter is inside the moulding of the USB A plug. Here are some pictures:
20200914_160707_7706.jpg
20200914_160707_7706.jpg (337.64 KiB) Viewed 15177 times
20200914_162022_7708.jpg
20200914_162022_7708.jpg (336.72 KiB) Viewed 15177 times
20200914_162022_7708_01.jpg
20200914_162022_7708_01.jpg (950.99 KiB) Viewed 15177 times
ignore the damage to the wires - the encapsulation is not easy to get into.

Coeus

14 Sep 2020, 19:14

Inxie wrote:
13 Sep 2020, 18:05
No not diapers, resistors. The eBay seller orihalcon has been Soarers converters for a while now and seemingly the only authorized one.
Authorised by Soarer? I thought he just disappeared but could, of course, have been in private conversation.
Inxie wrote:
13 Sep 2020, 18:05
While it worked, I always had one problem or another with it. Missed key strokes, phantom keys if you even wiggle or touch the USB send of the adapter, just oddities that kept pointing to the keyboard.
That's very nearly my experience of trying to use it with an IBM Model F XT. At the very beginning it seemed to be completely reliable but then there was a bout of acting up when the host would receieve a string of spurious keystrokes or the keyboard would stop working. Usually this would be fixed by unplugging and re-plugging the converter into the PC. Then it was fine for a day or two and then started acting up again in the same way. This time I discovered it would maflunction when touching the cable that was part of the converter near the USB A plug and also sometimes the USB A plug itself. Sometimes one unplug/replug would not be enough to get it working again.

It seemed to me that there must be a poor connection somewhere. As it had become unsusable by then I sent a message to orihalcon via eBay hoping to exchange what appeared to be a defective item with another one without the fault. To his credit, he didn't quibble but was out of stock and so issued me a refund without asking for the malfunctioning one back.

In the meantime I had learned more about the teensy and found I could get one within 24h and, as I had got used to the Model F by then, I went that route instead.
Inxie wrote:
13 Sep 2020, 18:05
Then came when I made my own Soarers on a Teensy 2.0 and built it into the case itself and plugging into an internal USB header. Now I did use pull up resistors for clock and data when I built it. And now I'm finding that my own converter is flawless, not one issue whatsoever. So I tried the orihalcon one again, and sure enough, some issues just come back if you touch the wire at all.
That's been my experience except that I didn't build it into the PC and I didn't use pull up resistors. What I did do, though, is connect the protective earth connection from the keyboard, i.e. the outer shell of the 5 pin DIN plug, to the ground connection. Inside the keyboard the protective earth connection is the extra wire connected to the metal plate at the very bottom, with the cork feet on it.

At first, as I could not get a little box and a chassis mount 5 pin DIN socket quite so quickly I cut the cable from the orihalcon converter a bit closer to the DIN end than half-way and then soldered those wires to the teensy. That worked fine so if there was a bad connection in the converter it was at the USB end.
Weezer wrote:
13 Sep 2020, 21:58
From the symptoms you describe it seems likely that you actually have a bad connection somewhere in the cable or connectors in the Orihalcon converter.
That was my assumption too.
Weezer wrote:
13 Sep 2020, 21:58
On an anecdotal level, I haven't ever heard of anyone else having this issue, which kind of reaffirms that its not a circuit level issue you're experiencing.
Until now.

User avatar
Inxie

14 Sep 2020, 21:44

Coeus wrote:
14 Sep 2020, 18:34
Inxie wrote:
13 Sep 2020, 18:05
Is there even a way to look inside one of these orihalcon's? I assume the converter is on the USB side do the over sized plug. I'm not even sure they implement reset either, which I made sure to make an option on my home grown one should I ever require it.
Yes, the converter is inside the moulding of the USB A plug. Here are some pictures:
20200914_160707_7706.jpg20200914_162022_7708.jpg20200914_162022_7708_01.jpg
ignore the damage to the wires - the encapsulation is not easy to get into.
Yea, I see no resistors there only capacitors, it has no pull ups. This explains everything. Luckily the eBay one for mine did have the shield connected properly so that wasn't it, and it's the same exact MCU as the Teensy 2.0. So the pullups really were the problem then. There's a lot of ground fill that could be used for a space for pullups so there's no problem with space here.
EDIT: Photoshopped an easy way to add pullups to it.
Image
That's what I'd do at least. It would help reliability for certain.

I'd also like to point out that IBM's own 1981 Tech Ref for the 5150 shows pullups used on clock and data as well. It isn't a case of if you should or shouldn't use it, it's that you really should, even IBM used it on the PC.

Image

User avatar
Weezer

14 Sep 2020, 22:27

Inxie wrote:
14 Sep 2020, 21:44
Coeus wrote:
14 Sep 2020, 18:34
Inxie wrote:
13 Sep 2020, 18:05
Is there even a way to look inside one of these orihalcon's? I assume the converter is on the USB side do the over sized plug. I'm not even sure they implement reset either, which I made sure to make an option on my home grown one should I ever require it.
Yes, the converter is inside the moulding of the USB A plug. Here are some pictures:
20200914_160707_7706.jpg20200914_162022_7708.jpg20200914_162022_7708_01.jpg
ignore the damage to the wires - the encapsulation is not easy to get into.
Yea, I see no resistors there only capacitors, it has no pull ups. This explains everything. Luckily the eBay one for mine did have the shield connected properly so that wasn't it, and it's the same exact MCU as the Teensy 2.0. So the pullups really were the problem then. There's a lot of ground fill that could be used for a space for pullups so there's no problem with space here.
EDIT: Photoshopped an easy way to add pullups to it.
Image
That's what I'd do at least. It would help reliability for certain.

I'd also like to point out that IBM's own 1981 Tech Ref for the 5150 shows pullups used on clock and data as well. It isn't a case of if you should or shouldn't use it, it's that you really should, even IBM used it on the PC.

Image
:lol:

Coeus

15 Sep 2020, 02:18

Inxie wrote:
14 Sep 2020, 21:44
...Luckily the eBay one for mine did have the shield connected properly so that wasn't it.
It turns out my orihalcon does have the shield connected. To my naked eye it appeared to go to a pad that was otherwise n/c but looking at the photos I can see it goes via a plated through hole to a narrow track that connects to the metal shield of the USB plug.
Inxie wrote:
14 Sep 2020, 21:44
I'd also like to point out that IBM's own 1981 Tech Ref for the 5150 shows pullups used on clock and data as well. It isn't a case of if you should or shouldn't use it, it's that you really should, even IBM used it on the PC.
As each of these lines can be pulled low from either end, i.e. from both keyboard end and host end the outputs must be open collector so some form of pull-up is needed for reliable operation. However I am sure I read that the MCU has internal pull-ups on those lines which is why, in many configurations, no other pull-ups are required for reliable operation.

However, if the cable has a high capacitance the rise time for any given value of pull-up will be slowed compared to a cable with less capacitance. As capacitance increases there will come a point where the high value is not safety above the threshold at the moment it is sampled. When it's right on the threshold, extra noise could cause it to be read as either 0 or 1 seemingly at random.

So with a cable with extra capacitance it is worth adding a 2nd pull-up in parallel with the internal one. With lower overall resistance the rise time will be faster.

That does not explain why my model F works on the teensy with no external pull-ups and not on the orihalcon.

User avatar
Inxie

15 Sep 2020, 03:56

Coeus wrote:
15 Sep 2020, 02:18
Inxie wrote:
14 Sep 2020, 21:44
...Luckily the eBay one for mine did have the shield connected properly so that wasn't it.
It turns out my orihalcon does have the shield connected. To my naked eye it appeared to go to a pad that was otherwise n/c but looking at the photos I can see it goes via a plated through hole to a narrow track that connects to the metal shield of the USB plug.
Inxie wrote:
14 Sep 2020, 21:44
I'd also like to point out that IBM's own 1981 Tech Ref for the 5150 shows pullups used on clock and data as well. It isn't a case of if you should or shouldn't use it, it's that you really should, even IBM used it on the PC.
As each of these lines can be pulled low from either end, i.e. from both keyboard end and host end the outputs must be open collector so some form of pull-up is needed for reliable operation. However I am sure I read that the MCU has internal pull-ups on those lines which is why, in many configurations, no other pull-ups are required for reliable operation.

However, if the cable has a high capacitance the rise time for any given value of pull-up will be slowed compared to a cable with less capacitance. As capacitance increases there will come a point where the high value is not safety above the threshold at the moment it is sampled. When it's right on the threshold, extra noise could cause it to be read as either 0 or 1 seemingly at random.

So with a cable with extra capacitance it is worth adding a 2nd pull-up in parallel with the internal one. With lower overall resistance the rise time will be faster.

That does not explain why my model F works on the teensy with no external pull-ups and not on the orihalcon.
The 32u4 does indeed have an internal pullup. It's selectable (so it can be disabled or enabled), no idea if they are enabled though, I'd assume it was. But yes, like I had mentioned my coiled cable has a lot of capacitance and has slow rise times. The pull ups absolutely were required because the orihalcon simply was just a bit too unreliable. Even things like the AC kicking on would set it off. The one I built? Nothing whatsoever, and the house ground is even good and the computer is well grounded and shielded. I just feel that these pullups should be standard on the orihalcon because you simply don't know what the user is going to be using, straight cable, coiled cable, long cable. So it should just be installed in my opinion.

orihalcon

15 Sep 2020, 17:01

Very interesting. I could implement this on a future batch of AT/XT converters. The pull ups noted could be added from within the keyboard for those that have the issue (basically just a short jumper cable that goes between the cable and the motherboard (for a solderless solution) , or by soldering those 1k resistors to the controller.

It must be a relatively small percentage of boards that are sensitive because the main reason I get returns are those ordering 240 degree DIN instead of the 180 Degree AT/XT version as the pins aren't the same/don't fit understandably. I would have to guess that there's a maybe 5% or less group of keyboards this affects?

Is it only for the AT/XT that the phantom keypresses have been observed? From the description above, the XT being the oldest I assume would have the most potential variance from board to board perhaps?

orihalcon

15 Sep 2020, 18:49

I actually just tried adding some 1k resistors between +5V to Clock and +5V to Data on an XT Model F that was working fine unmodified.

Adding those two 1K resistors caused it to stop working altogether. Of note, there was already about 2K resistance between +5V and the clock and data lines while unplugged without any modifications. Adding the 1K resistors brought that down to around 650 ohms (because the resistors are in parallel which reduces the overall resistance). Taking the 1K resistors back out made the keyboard work fine again.

The above findings that adding 1k resistors can stop keyboards that do work without them (which is the majority) makes me think that these should not be added in future revisions. Resistors can always be added externally within the keyboard or in a short jumper cable between the cable and controller, but they can't be removed from within the adapter.

On the boards that aren't working reliably without resistors with my converters, what is the resistance you get when you measure between +5V and clock and +5V and data?

This really makes me think that older revisions of XT may not have had internal pull up resistors, but that the majority do. Maybe also post a picture of the controller that these finicky ones have and maybe we'll be able to spot some missing resistors or a different controller design in those?

User avatar
Willy4876

15 Sep 2020, 19:12

orihalcon wrote:
15 Sep 2020, 18:49
I actually just tried adding some 1k resistors between +5V to Clock and +5V to Data on an XT Model F that was working fine unmodified.

Adding those two 1K resistors caused it to stop working altogether. Of note, there was already about 2K resistance between +5V and the clock and data lines while unplugged without any modifications. Adding the 1K resistors brought that down to around 650 ohms (because the resistors are in parallel which reduces the overall resistance). Taking the 1K resistors back out made the keyboard work fine again.

The above findings that adding 1k resistors can stop keyboards that do work without them (which is the majority) makes me think that these should not be added in future revisions. Resistors can always be added externally within the keyboard or in a short jumper cable between the cable and controller, but they can't be removed from within the adapter.

On the boards that aren't working reliably without resistors with my converters, what is the resistance you get when you measure between +5V and clock and +5V and data?

This really makes me think that older revisions of XT may not have had internal pull up resistors, but that the majority do. Maybe also post a picture of the controller that these finicky ones have and maybe we'll be able to spot some missing resistors or a different controller design in those?
My go to value for pull up resistors has always been 10k (I don't have specific reason for this value it's just what I have tend to start with). It might be worth trying a weaker pull up than 1k so the total resistance is less affected.

On one device that I worked on we tried several different values of pull ups on an I2C interface. What I found was that if the value was too low then it could actually pull Vcc below the 1.8 V that it should have been when the data line was low for several consecutive bits. I doubt that is happening in this case but just thought that I'd share one of the ways that pull ups can effect a system.

edit:
I just noticed that the schematic that was posted of the IBM keyboard interface uses 4.7k ohm pull up resistors. That might be a good value to try too.

User avatar
Inxie

15 Sep 2020, 20:08

orihalcon wrote:
15 Sep 2020, 18:49
On the boards that aren't working reliably without resistors with my converters, what is the resistance you get when you measure between +5V and clock and +5V and data?
Give me just a second, I'll find out right now for you.

Coeus

15 Sep 2020, 20:12

orihalcon wrote:
15 Sep 2020, 18:49
Adding those two 1K resistors caused it to stop working altogether. Of note, there was already about 2K resistance between +5V and the clock and data lines while unplugged without any modifications...
Where did you measure this? At the keyboard, unconnected to the MCU? I had not considered the KB also having pull-ups.

According to the data sheet for the ATMEGA32U4, the pull-up resistors there are between 20K and 50K. Might it be the case that 20K works fine and 50K does not?

User avatar
Inxie

15 Sep 2020, 20:23

orihalcon wrote:
15 Sep 2020, 18:49
On the boards that aren't working reliably without resistors with my converters, what is the resistance you get when you measure between +5V and clock and +5V and data?
Data and clock are almost identical (they are 1 meg ohm off from each other), and I used the 1k ohm resistor I used just to test the meter to make sure it is working.

Image
(I know in this pic my finger is touching the paper clips, but the reading was the same without my finger touching, probably because I have severely dry skin.)
Image

The converter mostly works as is so it makes a decent backup should my Teensy 2.0 in my PC ever decided to quit. The phantom keys were particularly random (like when the central air in my house kicked on). On a laptop I haven't even tried yet to see what it does, but I assume it'll work better since the laptop has a battery.
Last edited by Inxie on 15 Sep 2020, 20:26, edited 1 time in total.

User avatar
Inxie

15 Sep 2020, 20:25

Coeus wrote:
15 Sep 2020, 20:12
orihalcon wrote:
15 Sep 2020, 18:49
Adding those two 1K resistors caused it to stop working altogether. Of note, there was already about 2K resistance between +5V and the clock and data lines while unplugged without any modifications...
Where did you measure this? At the keyboard, unconnected to the MCU? I had not considered the KB also having pull-ups.

According to the data sheet for the ATMEGA32U4, the pull-up resistors there are between 20K and 50K. Might it be the case that 20K works fine and 50K does not?
Wait what? Mine just read meg ohms.

Coeus

15 Sep 2020, 20:29

Inxie wrote:
15 Sep 2020, 20:25
Wait what? Mine just read meg ohms.
If they are enabled in software then presumably they are not actually resistors at all but transistors used to behave a like a resistor and are only turned on when power is applied.

User avatar
Inxie

15 Sep 2020, 20:31

Coeus wrote:
15 Sep 2020, 20:29
Inxie wrote:
15 Sep 2020, 20:25
Wait what? Mine just read meg ohms.
If they are enabled in software then presumably they are not actually resistors at all but transistors used to behave a like a resistor and are only turned on when power is applied.
Funny you mention that, I was having a weird MOSFET feeling based on how the resistance kept going up and down and not really settling on anything (I thought it was the paperclips but I also tried a DIN socket with the same weird up and down resistance). That seems a lot like a FET.
orihalcon wrote:
15 Sep 2020, 17:01
Is it only for the AT/XT that the phantom keypresses have been observed? From the description above, the XT being the oldest I assume would have the most potential variance from board to board perhaps?
Unfortunately I only have 2 other PS/2 boards but no AT adapter to plug it in. And my AT keyboard was lost in my move, so I can really only test this Model F XT (which is a Type 2, but has a Type 1 cable on it for some reason. I had even replaced the DIN connector on the keyboard thinking that was the issue).

User avatar
Inxie

15 Sep 2020, 20:43

Oh shoot you wanted a picture of the MCU as well in the keyboard. I don't feel like taking it apart, but the eBay auction I bought it from took a pic of the inside.

Image

Coeus

15 Sep 2020, 20:48

Here are some pics:
20200801_025007_1008.jpg
20200801_025007_1008.jpg (179.3 KiB) Viewed 14918 times
20200801_025007_1008_01.jpg
20200801_025007_1008_01.jpg (260.33 KiB) Viewed 14918 times
the second one is just a crop of the first by focuses in on what I think may be the circuit driving the cable. It's hard to tell because am unable to decode the chip numbers.

Coeus

15 Sep 2020, 20:53


User avatar
Inxie

15 Sep 2020, 20:55

Interesting, you have an 8049, mine has an 8749. Generally the same but mine is technically erasable and reprogrammable. Maybe they are slightly different in their high/low thresholds?

Coeus

15 Sep 2020, 21:07

Inxie wrote:
15 Sep 2020, 20:55
Interesting, you have an 8049, mine has an 8749. Generally the same but mine is technically erasable and reprogrammable. Maybe they are slightly different in their high/low thresholds?
I assume you're basing that on the fact that mine is in a plastic package because I can't read a part number on it. Now here's the interesting part of the schematic:
driver.png
driver.png (35.4 KiB) Viewed 14883 times
So here we can see pull ups within the keyboard. Also interesting is that the pull-up on the clock is weaker (higher resistance) than that on the data line.

User avatar
Inxie

15 Sep 2020, 21:11

Coeus wrote:
15 Sep 2020, 21:07
Inxie wrote:
15 Sep 2020, 20:55
Interesting, you have an 8049, mine has an 8749. Generally the same but mine is technically erasable and reprogrammable. Maybe they are slightly different in their high/low thresholds?
I assume you're basing that on the fact that mine is in a plastic package because I can't read a part number on it. Now here's the interesting part of the schematic:
driver.png
So here we can see pull ups within the keyboard. Also interesting is that the pull-up on the clock is weaker (higher resistance) than that on the data line.
Correct, the 8049 is plastic, the 8749, identical, runs the same code, is ceramic with a UV window on it (like mine). I wonder if there's some sensitivity differences as well (I don't see why that would be but hey, I've seen weirder).

Yea, I'm seeing it has pullups in the keyboard itself, and the 5150 also had pullups on the mainboard as well.

User avatar
Inxie

15 Sep 2020, 21:13

Pull up is different on clock in the keyboard because if you look closely, clock is going to INT and DB5, while data only goes to DB6.

Coeus

15 Sep 2020, 21:38

Inxie wrote:
15 Sep 2020, 21:13
Pull up is different on clock in the keyboard because if you look closely, clock is going to INT and DB5, while data only goes to DB6.
It looks like DB5 and DB6 are being used as outputs here. The open collector buffers in IC2 are drawn so the signal goes through them as if they are an arrow, i.e. the same way the symbol for an amplifier is drawn. So DB5 does not represent a load on the clock line.

The resistors I was talking about were R3 and R6. When sending, keyboard to host, the rising edge of the clock follows very soon after the data line is asserted. There is almost no scope for the data line to be delayed relative to the clock and the unequal value of those two resistors seem me to be doing the opposite, i.e. delaying the clock relative to the data.

Post Reply

Return to “Keyboards”