Well, since it's modular, I'm going with #1 *and* #3! Preassembled boards, if I do any, will include a surface mount transistor, but kit boards will use a 2N2907. I've sourced several hundred 2N2907s in metal cans, so heatsinks could be added if loop voltage is near the limit.
As you can see, I've soldered 0.1" breakaway headers to this one and stuck it directly into a solderless breadboard. That was part of the design goal for modularizing. There's a 1 Ohm resistor in series with the loop converter for current measurement. The two 3.32 Ohm resistors in series are like that because I didn't have a 6.64 Ohm resistor on hand.
There's plenty of room for a "tophat" style heatsink on the 2N2905A. It gets warm at 24V loop voltage with basically the loop voltage directly across the receiver -- loop resistance equal to whatever the power supply's resistance is, plus the 1 Ohm sense resistor.
TTL output is provided by a NPN inverter, logic 0 is around 90 mV and logic 1 is around 4 V. Sources 3 standard TTL loads.
Did some frequency response testing today. My target bitrate was 9600 -- way more than you'd usually ever need for current loop. Personally, I'll be using the converters as the passive end of a current loop with my PDP-11/10, probably at 1200 or 2400 bps. With slow old 4N30 Darlington optocouplers, I was able to get to a very reasonable looking output waveform at 9600 bps with a few component value tweaks:
Fall time is 8 uS from when the input goes low, rise time is 20 uS, which should be just fine for 9600 bps current loop, if anyone ever needs to run it that high.
Here's a few pictures of the test setup. I used my Lambda power supply to power the breadboard, a Fluke 8842A for voltage and current measurements, a Tektronix CFG250 function generator for input, and a Tektronix 2432A oscilloscope:
Proper value resistors came in, current is right where I calculated: 22 mA! Temperature compensation seems to work just fine, of course the board has to warm up to operating temperature. Swing during warm-up is a few tenths of a milliamp.
The current loop transmitter, revised 24V supply, and a breadboard breakout module are off to OSH Park for fabrication.
OK, nearly done with the board layout for the base board! I think rather than put a DB9 or DB25 on the board, I'm going to put a 5-pin header so it can be assembled with whatever connector you like, or daisy chained onto the baudrate + USB converter I'll be designing to go with it. It would also make it easier to mount in a project box. Thoughts?
Went ahead and sent it off with the 5-pin header for RS-232 and two 4-pin headers for the current loops:
Had space to put all of the pinouts on the back side in the silkscreen! The images are OSH Park renderings, but the board is being manufactured in China -- cheaper to get 5 boards made in China (with shipping!) than three in the US, and the turnaround times are faster anyway.
The base board is also done in KiCad instead of EAGLE CAD. The modules will probably stay in EAGLE for now, but if there's major changes to be made I'll move them to KiCad too.
With the AUX and READER RUN loops, this converter can be either end of the console link for a PDP expecting paper tape control -- that is, it can simulate a Teletype, or it can be connected to a Teletype and control the reader relay.
Years ago, I worked at Intel, when they made systems.
While I was there, I learned some about specmanship.
We had problems getting serial current loops to work at
9600 and some times even 4800.
We traced the problem to the optical isolators.
The biggest problem was the darlington ones.
Two factors were involved.
First, the turn off spec was done with the higher
end of current flow, while the turn on spec was
done by the lower current flow. Both of the timings
where tested under their optimal condition for
They usually have the lead for the intermediate emitter
A resistor can be added there to optimize the circuit
for best turn on and turn off at the desired current
This only worked for a short time.
It seems, there is no spec for the gain of each separate
transistor. Form one manufacture to another there
is a large difference. In some,the photo transistor
has more or less gain and the difference is made up
by the output transistor.
The fix should have been to not use darlington optical
isolators but it was decided to only use one manufacture.
The conclusion I'm coming to is that if one needs
higher speeds, don't design using the darlington
Was this project put on ice? I'm more interested than ever now that I've got myself a minicomputer which requires a console terminal w/current loop.. I've got one of those, but the future plans involve a RPi3 w/wifi connected to the console port, for remote operations.
The XT-IDE rev 3 project kind of pushed it out of the way. Aside from the Slot 8 support board, that's pretty much out of the way. I'll try and dig this out today or tomorrow -- I have the prototype assembled, but haven't fully tested it.
Got everything assembled and tested it over the weekend:
Unfortunately something is not 100% right -- it works fine up to 1200 bps, gets flakey at 2400 bps, and doesn't work at 9600 bps. I haven't broken out the 'scope to look at it. Odd, since I tested the modules with a square wave at what would be 10 kbit/sec. Baseboard and power module fully tested though -- the baseboard had the same "silkscreen effectively wrong" LED issue as the XT-IDE rev 3 board, an artifact from importing from an old version of KiCad!