• Please review our updated Terms and Rules here

RS232 cable speed issues. 9 pin vs 25 pin?

Torch

Experienced Member
Joined
Sep 7, 2018
Messages
169
Location
Indiana
Sort of a strange problem...
Equipment- Tandy 1000EX, Arcanebyte wifi modem, WiRSa wifi modem and Telix software.

About a year ago I got back into the BBS scene using my 1000EX and an Arcanebyte modem set to 9600 baud. I attach the two with an old 25 pin cable that I've probably had since the 80s. I've spent countless hours on it and it's always fast and flawless.

Recently I built a WiRSa modem. This one has a 9 pin connector, so I simply used a 9 to 25 adapter with the same cable. Works perfect just like the Arcanebyte.
The WiRSa has a case and really cool screen so I wanted to mount it to a shelf next to my monitor where it's visible. I ordered a 9 pin serial cable in black to match and streamline the looks (25 to 9 adapter on back of EX). With the new 9 pin cable, it operates painfully slow and locks up Telix every so often. If I drop to 4800, Telix no longer locks up, but it's still slow. Hook the 25 pin cable back up and WiRSa is blazing fast again.

I figure it's a bad cable, so I send it back to Amazon and order a different brand. New one is a bit faster than the last and it no longer locks up Telix at 9600, but it's still noticeably slower than the 25 pin. Arcanebyte also runs slower with this cable so I know it's nothing else with my setup.

I don't quite understand how a cable can affect speed? If the modem and serial port are set to 9600 baud, wouldn't that be a fixed output no matter what, and a poor cable would result in missed characters/garbage?
Cables are 6' and supposedly 28 gauge. I've also tried moving the cable away from CRT monitor and home router with no change.

Is it possible the extra wires in the 25 pin cable are acting as a shield and giving better performance?
At this point, I'm thinking of building my own and using shielded twisted pair (yes, I know it's technically not required) to see if it makes a difference.
 
Hey Torch! This is the guy who created the WiRSa project.. :)

I've never seen what you're describing - that sounds so weird! I wonder if it's something with your computer/BIOS expecting hardware handshaking or something like that? Though in theory the pins hitting the computer should be the same regardless if you're using a 9-pin cable or 25-pin with adapter.

I was able to make DOS happier to do things like COM transfers at the command line by hacking in "loop back handshaking" onto one of my WiRSa's. Will take a little soldering, see my post here describing the wiring: https://forum.vcfed.org/index.php?threads/help-with-dos-serial-pipe-transfers.1240005/post-1275437

Basically you just need to connect pins 1, 4, 6 all together and connect 7 & 8 together. I just ran some small wires connecting the pins on the bottom of the RS232 converter board DB9 connector.

Not saying this will fix it for sure, but worth a shot. Overall DOS seemed to like the device much more after doing that.
 
Hi Aron, hope your holidays were good.

I don't think it has anything to do with the modem itself as even the Arcanebyte runs slower with the 9 pin cable.
For fun, I did some experimenting tonight with both modems and different cables on a P70, and every combination seemed fast on that computer.
Next, I did file transfers from the SD card to the EX using X-Modem. Between 950 to 1000 CPS on both cables! :unsure:
I even tried with the cable across the monitor and wifi router and still got the same excellent speeds.
Yet the difference is noticeable on a BBS, especially while ansi art is loading or in door games like TW.
Since wifi isn't used during file transfers, I wonder if the cheap cable is interfering with my router signal? I'll play around with that more tomorrow.


Since I have no issues with file transfers, do you still recommend that mod? The top row of pins on my DB9 weren't soldered and I left them as is. I assumed they are unused as everything works fine?

wirsa.jpg

Another question...I can't connect to BBSs that use an IP address with no port, such as 68.45.58.15
The WiRSa automatically adds :23 If I add just : or :0 I still can't connect. Is there a way around this?
 
That may be your problem. CTS and RTS are some of the signals on bottom (and DSR) row of the 9 pin connector. Solder them in to see if that helps.
 
What the heck!?? haha no that should not be like that. Man I guess I need to start paying closer attention to the parts that go out in the kits.

Oh, regarding the BBS's with no port: when there is no port specified the default for telnet is 23, so that makes sense. I'll do some testing though.
 
Last edited:
Sort of a strange problem...
Equipment- Tandy 1000EX, Arcanebyte wifi modem, WiRSa wifi modem and Telix software.

About a year ago I got back into the BBS scene using my 1000EX and an Arcanebyte modem set to 9600 baud. I attach the two with an old 25 pin cable that I've probably had since the 80s. I've spent countless hours on it and it's always fast and flawless.

Recently I built a WiRSa modem. This one has a 9 pin connector, so I simply used a 9 to 25 adapter with the same cable. Works perfect just like the Arcanebyte.
The WiRSa has a case and really cool screen so I wanted to mount it to a shelf next to my monitor where it's visible. I ordered a 9 pin serial cable in black to match and streamline the looks (25 to 9 adapter on back of EX). With the new 9 pin cable, it operates painfully slow and locks up Telix every so often. If I drop to 4800, Telix no longer locks up, but it's still slow. Hook the 25 pin cable back up and WiRSa is blazing fast again.

I figure it's a bad cable, so I send it back to Amazon and order a different brand. New one is a bit faster than the last and it no longer locks up Telix at 9600, but it's still noticeably slower than the 25 pin. Arcanebyte also runs slower with this cable so I know it's nothing else with my setup.

I don't quite understand how a cable can affect speed? If the modem and serial port are set to 9600 baud, wouldn't that be a fixed output no matter what, and a poor cable would result in missed characters/garbage?
Cables are 6' and supposedly 28 gauge. I've also tried moving the cable away from CRT monitor and home router with no change.

Is it possible the extra wires in the 25 pin cable are acting as a shield and giving better performance?
At this point, I'm thinking of building my own and using shielded twisted pair (yes, I know it's technically not required) to see if it makes a difference.
Hi - the placement of the wired used for transmit and receive can have a huge effect on reliability - what you do NOT want are TXD and RXD on adjacent conductors - and preferably opposite, or at least with a ground between them, assuming a cable with the conductors in an approximate circle around a central spacer...

The other thing that effects cross-talk is the thickness of the insulation, so a thinner cable is less good than a thicker one (within reason!) for a longer cable length.

Also - some RS232 receivers put less load on the signal lines, especially when powered off, and this can cause spurious echo / corrupted loopback effects when a terminal is turned off - like a repeating login prompt that receives garbage and repeats again and again, typically slowing old unix systems down a LOT...

Of course - all this assumes you have the wiring and any required handshaking signals wired correctly...
 
If you have cables of substantial length and high speeds, low-capacitance cable is a must. Beyond that, if both ends are set to the same speed, there's no variation without kicking up a transmission error indication (I assume you've checked for that). That leaves handshaking issues.
 
Folks some older technology actually expects the RS232 voltages to be in a certain range. +/- 25, 15, 12, etc. What you probably need is something that will boost that signal to higher voltages. Find or build something with a 1488/1489 and the proper voltages.
 
If the OP doesn't get error indications, it's not the RS232C voltage levels or cable per se. If the OP is getting errors, it might be useful to know what they are.
 
As I said, there are no errors. The first cable I ordered was a Star Tech and it was next to useless. It was drastically slower while loading ansi graphics (like 2400 baud slow), and Telix would often lock up while at 9600 baud requiring me to exit and reload the program. 4800 baud seemed to run at the same slower speed, but no lock up. 25 pin cable is PERFECT @ 9600 baud with no lock ups.

New 9 pin cable is a YCS. It's faster and causes no lock ups @ 9600, yet it's still not quite as good as the 25 pin. It's fully functional, and in the grand scheme of things it's perfectly fine.

I'm mainly curious as to why different cables can cause different data rates, yet not display any garbage or missing characters. Back in 1983, I'd get a screen full of trash and a few seconds later hear "get off that damn computer, I need to use the phone."

I ordered some new db9 ends and will build a new quality cable later this week for the fun of it.
 
@Torch did you try soldering up that row of db9 connector pins?

Yup, I got that soldered up. The Arcanebyte also performs better with the 25 pin cable, so I don't think it's the modem.
I have a 56K dial up, I may give it a try and see how it reacts.
I just don't get why the P70 worked great with either cable while on a BBS, and I can get 950+ CPS during a file transfer off the SD card to the EX with either cable, yet the EX works better with the 25 pin while on a BBS. :unsure:
 
And no change/improvement after that? I'm wondering if that DB25 adapter is wiring up the handshaking pins in some way. If the mood strikes you, I'd be really curious if that loopback handshake mod helps at all.
 
If cable length or type is effecting what speed you can use then there is either a bad wiring problem - like no correct signal ground end to end, or a bad crosstalk problem, which is aggravated by increased speeds...

Bear in mind that using the methods in my previous post, we could get 9600 baud comms working perfectly reliably at at least 50 metres and up to 100 metres (I said COULD! - it's not a great idea for many reasons) - so if you are seeing issues with much shorter cables, there is something else going on...

Have you checked the signals with a scope? - you should have at least +/- 3V and up to +/-12V on the signal lines - look for crosstalk between transmit and receive data...
 
And no change/improvement after that? I'm wondering if that DB25 adapter is wiring up the handshaking pins in some way. If the mood strikes you, I'd be really curious if that loopback handshake mod helps at all.

That mod was the cure-all. (y)

I still can't figure out why different cables had different results before connecting those pins? I even built a heavy duty cable using shielded #18 and it was the worst yet. It would lock up Telix after sending just a few characters, I couldn't even type in a full telnet address to see how the speed reacted on that one. After the mod, they're all equally fast with zero issues.
Now on the P70, everything worked fine with any cable while using the same version of Telix. Thought maybe it was the serial card in the 1000 EX, but I even tried a spare which made no difference.

More good news...that 1st WiRSa that I cracked the switch on is alive again. It was the RS232 to TTL board that got shorted and/or didn't survive my desoldering. I ordered a 5 pack for next to nothing on Amazon and none of those 5 had the top 4 pins soldered. Is that a QC thing from the factory or that way for a reason?
 
Ok cool, yeah there must be something about the hardware/BIOS in Tandy 1000EX that is expecting the handshaking signals. Thinking about it, I'm wondering if there is a MODE command would work to disable that.

Wow I can't believe you got some like that too, must have been a huge bad batch from the factory - all 9 pins should definitely be soldered.

Anyways I'm glad that got it sorted - if I release a V3 I'll probably switch to doing my own RS232 level conversion instead of relying on the daughter board. That way I could have some jumpers to easily enable/disable loopback handshaking.
 
What type of serial card are you using on the 1000EX? Are you using one of those ISA riser card adapters and then a "normal" ISA serial card, or one of those modern "3-in-1" cards made for an EX? Whichever it is, do you recall which UART it has (8250, 16450, 16550, etc?)? (I think the 8250 was a 1-byte buffer, the newer ones maybe 16 byte? a much-newer or modern equipment might have a larger buffer)


For any serial cable (or 9/25 adapter), maybe check the continuity between pins - especially on the adapters. They've possibly taken liberties to tie certain pins together.


A BBS host might not really be honoring the baud rate - it depends on their setup. If they're really a telnet host, they might not really know what speed you're connected at - so they can blast content up to whatever buffer is in your WiModem device (maybe 2KB or 36KB or several MB's, depends on the device) and your WiModem might do the work of throttling that to an "emulated baud rate." Generally a BBS will have pauses at it prompts for user inputs, so often "it just works out" if they don't go overboard with ANSI animation and stuff. Whereas File Transfer Protocols have a pretty specific data packet size and rate (control flow), that the host will probably honor in its implementation. That might be why things worked ok in your file transfers but went weird in the BBS connection (until you added the extra few signal pins).
 
What type of serial card are you using on the 1000EX? Are you using one of those ISA riser card adapters and then a "normal" ISA serial card, or one of those modern "3-in-1" cards made for an EX? Whichever it is, do you recall which UART it has (8250, 16450, 16550, etc?)? (I think the 8250 was a 1-byte buffer, the newer ones maybe 16 byte? a much-newer or modern equipment might have a larger buffer)

You may be on to something.
I have the original Tandy expansion board and two ISA adapters. One slot has a generic 2 port serial card and above that an XTIDE.
The serial card was 1 port, but expandable to two. I added a W86C450 to the open socket to enable port 2. I'm not sure what the soldered in IC is...I added double sided tape and a spacer on top of it to give support to the XTIDE above and I really don't want to peel that off. :)
I had even tried it without the XTIDE installed thinking it might have been causing interference being so close, but that wasn't the case.

A BBS host might not really be honoring the baud rate - it depends on their setup. If they're really a telnet host, they might not really know what speed you're connected at

I think you're correct. I'd get the Connect 9600 response when set to 9600, yet trying the modem and software set to 4800 did NOT appear to make things slower. I guess it could have been a handshaking issue falsely reporting back 9600 when it was really connecting at 4800 or 2400.

After doing that jumper mod, it's been working great.
 
Just as some old musings... I recalled that the old BBS host software had some strategy for determining a connected users baud rate. So, I poked around in the old Forum BBS Pascal source code (1988) and the later VisionBBS code that was based on Forum. In WAITCALL.PAS is a subroutine ReceiveCall (same file and function call shared in both baselines).

They both "guess" an initial baud rate and wait for the user to press ENTER. In VisionBBS, it shows a message:
...
setparam (cfg.usecom,baudrate,parity);
sendstring ('Hit <CR> ['+Strlong(baudrate)+']');
...

If the baud-rate guess is wrong -- then the users see's a little garbage on their screen and if the user happens to press ENTER (while at an "incorrect" baud rate), then the BBS host will also receive 1-character garbage (i.e. NOT decimal 13, ^M, or 0b1101). Since at "wrong" speeds, the serial-bit sequence just ends up getting interpreted into some other sequence.

So, the BBS software tries the next rate - with some number of seconds between retries (about 3 seconds), and some max retries (about 20) before giving up.


I don't really remember pressing ENTER every time I connected to a BBS - either it became such a habit, I did it without thinking. Or some terminal software maybe spammed ENTER on its own after a carrier was detected. Or, I recall in some more advanced software - it could use special ANSI codes to figure out the baud rate. There is an ANSI code to query (ask for) the current cursor position -- and the terminal with ANSI support is suppose to respond with an escape sequence of its own; if the BBS can send the query and get any reasonable response, then it has probably figured out the correct baud rate.

Both software (Forum and Vision) handle parity - they look for decimal 141, which is ^M/ENTER with a parity bit set up front (because 0b1011 has an odd number of bits). But I think this also assumes 7-bit data? 7-O-1 vs 8-N-1 kind of thing.

Other BBS software might use DEL, backspace, or spacebar as the identifying character (or some might use "ESCape twice" thing).


I also poked around in the "original" BBS software, CBBS on the S-100 systems by Ward Christensen from 1980, and check this out in cbbsmodm.asm which should still be 8080 assembly: ("C/R" in the comments means ENTER, carriage return)


Code:
;
...
;LOOK FOR C/R AT EACH SPEED
;
GOTCAR    MVI    A,10+1    ;10 TRIES FOR C/R
    STA    TRIES
;
;QUIT IF NO C/R HAS BEEN READ AFTER 10 TRIES
;
TRY1    LXI    H,TRIES
    DCR    M
    JZ    NOCAR    ;NO CARRIER
;
    CALL    CKCR    ;C/R OF LOSS OF CARRIER?
    RZ
    JMP    TRY1    ;TRY 10 TIMES
;
;TEST FOR C/R ENTERED, OR LOSS OF CARRIER
;
CKCR    CALL    KEYIN
    CPI    CR
    RZ
    INR    A    ;FF MEANS NO CARR
    RNZ
;
;NO CARRIER FOUND
;
NOCAR    LXI    H,NOCON
    JMP    PRDIS    ;PRINT MSG, EXIT TO PROM
NOCON    DB    CR,LF
    DB    '++NO C/R SEEN, OR LOSS OF CARRIER'
    DB    CR,LF,'    ',0
;
...

So that's neat, it originated that strategy of pressing ENTER to resolve the baud rate. [ the issue is that a host might support 9600 baud or higher, but it needs to correctly be throttled to support slower connections that might be 300/1200/2400/4800 - important back when UARTs were 1-byte buffers ]. Vision added a "lockout feature" where slow rates like 300 or 1200 needed a unique password to proceed with the connection (i.e. to discourage those kinds of slow connections from hogging the line).

People still use vintage systems to run a BBS - the Synchronet systems (that can run on modern Wintel platforms) seem to be able to tell you're on a modern telnet connection and go pretty high speed. Older ones still need ESC/ESC or some sequence to negotiate a baud rate (probably starting with their highest supported speed), to continue to support that vintage_to_vintage experience :D
 
Last edited:
Back
Top