Using eBay TTL Serial/USB Interface Modules

With most computers no longer having a serial port, a TTL Serial / USB interface is required for many microcontroller projects.

I have had good results with the low cost eBay modules based on the Silicon Labs CP2102 chipset.

These modules can cost as little as US$2 per module (often including postage) but there are a few things to be aware of:

Handware Handshaking

Most eBay advertisements say "All handshaking and modem interface signals." 

This is referring to the CP2102 chip but these signals may not be available on the module.  This can be a problem if your interface requires hardware handshake lines such as RTS and CTS.

The Z80 single board computer requires RTS handshaking and the initial modules I ordered did not support this.  If you need hardware handshaking (and most microcontroller projects do not) then invest the extra $1 required to get a module with these pins available.

A CP2102 based module with no handshaking signals.

RST shown on the pin header for these modules is not RTS misspelled..... it is the reset line for the CP2102 chip.

A CP2102 based module with handshaking signals - note the extra holes on the sides on the module.


Connect the module to your circuit as follows:

3.3V Do not connect if your circuit does not require 3V power
RST Do not connect
TXD Connect to the TXD output of your circuit
RXD Connect to the RXD input of your circuit
GND Connect to the GND of your circuit
5V Do not connect if your circuit does not require 5V power

Powering your Circuit from USB

If you require 3.3V or 5V at less then 500ma then it is possible to power your circuit from the 3.3V or 5V pins on the module.

Note that the default configuration for the CP2102 is to request a power budget of 100ma.  If you require more then 100ma (0x32 units @ 2ma) then you need to change the Max Power configuration setting using the CP210xSetIDs.exe utility from Silicon Labs (

Connecting Multiple USB Serial Devices to a single computer

If you want to connect multiple USB Serial Devices to a single computer at the same time then you need to change the serial number setting using the CP210xSetIDs.exe utility from Silicon Labs (  This allows you computer to distinguish between multiple connected USB devices and assign each device a unique COM port.

I don't want a Type A USB connector

All the low cost modules I have seen use the Type A USB connector which is intended to connect directly to the host machine.  

If you are building the module into a device this is not the connector you want and a Type B USB connector is a better choice.  It is easy to remove the Type A connector from the module, solder a Type B module to your PCB and then use short wires to connect the module to the Type B connector pins.


Home Built Z80 CP/M Computer - Part 3

The Z80 Single Board Computer is mostly (still needs front panel LED's for power and HDD access) complete and mounted in a Jaycar instrument case.

An interesting exercise was creating the front panel art for the case.  I tried using various paint programs (Paint.Net for Windows is a great application) but found that the best results could be had from Microsoft Word.  I spend plenty of time in Word in the day job but haven't really used the Word Art feature.  Word Art and the ability to position items on the page using cm or inches makes it really easy to ensure the printed results are the right size.    

The panel art is printed on plain white paper with a clear plastic cover.  The Jaycar instrument case is slightly recessed where the panel is mounted.  The end result looks very smart.

The two serial interfaces use CP2102 USB/TTL Serial interface adaptors purchased on eBay for a couple of dollars.  They work well in this application easily running at 115200 baud as required by the machine.  Silicon Labs provides configuration software so the boards can be given unique ID's and load as different ports on the host computer.  

I did make a mistake when ordering the mobiles.  Most eBay advertisements for CP2102 boards say "All handshaking and modem interface signals.".

Yes technically this is correct... the CP2102 does have these but on many boards they are not accessible.  Most really cheap boards have a 6 pin header with VCC3, VCC5, VSS, TX, RX and RST.  RST is reset not RTS spelled incorrectly!  It is the CP2102 Reset line.  

The Z80 SBC design uses RTS handshaking on the serial ports so I really needed boards that supported this.  Slightly more expensive (about US$3) boards have this, not necessarily on the 6 pin header but available on sockets on each side of the board.  

I have replacement boards on order and will replace the existing boards when they arrive.

An unexpected benefit of the USB interface is that the entire machine can be powered from a single USB port and doesn't need an external power supply.  Power consumption is in the region of 5V/250ma... easily supported but USB but something I hadn't even considered when I started down the USB track.

The next step (after replacing the serial boards and adding the extra LED's) is to install an updated CBIOS for CP/M that implements IOBYTE.  The use case for this is to run the Generic CP/M 2.2 Kermit software for file transfer from a PC.  While Grant has done a nice job writing a file transfer application, my preference is to go with Kermit.  It's command line interface makes bulk file transfer a bit easier.  

I have many 7 x 8mb drives to fill and so many different CP/M applications to get running.  Wordstar 3.3 on CP/M.... now that brings back some memories.


KY11-LB Programmers Panel - Part 4


With the 74175 replaced and the track fixed the front panel now correctly displays the values entered on the keypad.  
Small steps but I will take everything I can get.
I started testing the KY11-LB the following boards:
    GRANT   M9302 M9302
M7856 M7856 M7856 M7856 M7850 M7850
M7847 M7847 M7847 M7847 M7847 M7847
M7847 M7847 M7847 M7847 M7847 M7847
M7859 M7859 M7859 M7859 M9301 M9301
  • Setting the KY11-LB to maintenance mode (CTRL-1, 5) I tested loading and reading back the switch register (777570).
  • 123456 loaded into the switch register would display 123476 when the register was examined.
  • The DL11-W M7856 installed is configured as the system console so I tried reading from the four registers (777560, 777562, 777564 and 77566) on that board.  
  • All returned values but it was interesting that three were 60 octal.  
  • Loading 0 into the switch register would also display 60 octal when examined so the problem appeared to be stuck bits D05 and D04 on the bus.  
  • I removed the two M7847 memory cards and and problem remained. 
  • Removed the M7856 and the switch register displayed the correct value.  
  • Installed my "spare" M7856 configured as the console.  The switch register still worked OK and reading the four DL11-W registers displayed 0 for 777560, 777562 and 77566 and 337 for 777564.  
I haven't tested reading from and sending to a terminal yet but this seems a lot more reasonable.  



KY11-LB Programmers Panel - Part 3

Finally a step forward with the machine.... only a small one but it is significant in that the KY11-LB Programmers Panel is now operational.  That will be important in the testing of the remainder of the machine.
I concluded that debugging this machine with the cards in the backplane was not going to be a fun job so invested in a set of unibus extenders..... yes believe it or not you can still buy these from a company called Douglas Electronics (   Not cheap but what hobby is.  
I ordered a quad width and a dual width board which should let me work on any of the unibus boards (this machine is a mix of dual, quad and hex size).

Half an hour with the schematic and a logic probe traced the fault in the front panel display to a gate in a 74175.  
While replacing it I found one of the tracks down the side of the board was broken so repaired that also.  

The final result is that front panel how displays all entered values correctly.  
It hasn't solved the BUS ERROR problem when trying to halt the machine but I didn't expect that.  Small steps but it is now sufficiently operational to continue testing the machine.  
There is a good set of notes at on using the KY11-LB to test other Unibus boards which I am going to try.... particularly the memory and serial board.  

Home Built Z80 CP/M Computer - Part 2

Boots CP/M 2.2 off the compact flash card.... 8 x 8mb drives (luxury in 1980).

Rather than wire directly to the Compact Flash connector like Grant did on this prototype, I ordered a low cost Compact Flash to IDE Adaptor on eBay (approx US$ 2).  

I have been testing the board with 2 x MAX3232 based TTL to RS232 converter boards.  Replacing these with CP2102 based TTL to USB Serial boards as soon as these arrive from China.


CAT Interface for eBay AD9850 DDS Modules - Part 2

After changing from using the Yaesu FT-817 protocol I picked the ICOM IC-725 as a reference having never seen one.  It seemed fairly representative of the use case for the DDS module as a generic HF transceiver and HRD when configured for an IC-725 didn't add a lot of options that could not be implemented with just the DDS module.

Interestingly KA6BFB used the IC-725 as a reference for his IC-720A HRD Interface.


My first development step was to implement the IC-725 CAT protocol in VB and test communication with HRD to make sure I understood the message passing.

The following tools proved particularly useful in this process by allowing me to test the communication between HRD and my VB application without the need for serial splitter cables.

The ICOM CI-V protocol is really well documented, particularly on this website ( which really helps.

The good news from this execise was that HRD appears to only use CI-V documented commands when configured for the IC-725.  My VB app was able to pretend to be an IC-725 quite successfully... it could receive frequency changes from HRD, change between Memory and VFO modes and return HRD to the previous values when it was restarted.


The next step is to get the protocol implemented in PIC Assembler for the 16F628.


Home Built Z80 CP/M Computer

Replaced a 7417 open collector driver on the KY11-LB controller board hoping this would solve the display problem but not so.... time to work further back through the board.  

I think it is time to invest in some DEC Extender boards so I can use the logic analyser without having to solder wires to the back of the board.
Also retrocomputing but not minicomputer size... I built up the Z80 machine described on using parts recycled from some old telephone testing equipment.

I still need to install the compact flash drive but it runs and has Basic in ROM.
The design is quite a neat mixture of old and new technology.... the CPU and SIO chips being circa 1979 but combine this with 128K of Static RAM, 128K of Flash and a 128M compact flash drive, over clock it to over 7 mhz and you have a little CPM machine on a single board with capabilities that were just not possible back in the day.  A big step beyond development boards which typically had minimal RAM and only a monitor in ROM.
The other interesting bit of retrocomputing news is that I picked up a copy of "The Soul of a New Machine" by Tracy Kidder on Trade Me. A great book about the development of the DG MV/8000.

CAT Interface for eBay AD9850 DDS Modules

I converted the WB2V/AA0ED/AA0ZZ PIC 16F84 code for controlling the AD9850 to it runs on the PIC 16F628.

The 16F628 is a lot cheaper (especially on eBay in lots of 10), has an internal ooscillator, extra IO pins, an onboard USART and extra flash.

The free IO pins, USART and extra flash make it practical to implement a CAT interface.

My plan is to implement an interface using a well supported protocol so the DDS module can be used in a rig and powered by Ham Radio Deluxe.

I started by trying to implement the Yaesu FT-817 CAT protocol.  It seemed fairly simple and didn't require a pile of CAT commands be implemented that would not mean a lot on the DDS board.  My goal with it is to make HRD think it was talking to an FT-817.

This would be quite neat with the an old Codan I am rebuilding, as an external VFO for my FT_101ZD and for the BITX20 I am building.


I wrote a "simulator" for the FT-817 in VB so I could understand what HRD did when it talks to an FT-817 and came to the horrible realization that it reads many "undocumented" EEPROM locations to work out all sorts of things that the officially documented commands may not provide.


This has me rethinking the 817 CAT commands as the model.  I have downloaded the ICOM CI-V programming manual and this may be another option.

Some of the earlier ICOM radios such as the IC-725 have a fairly simple CAT interface that covers most of the functions that a DDS only interface could achieve.


My other pages on the eBay DDS Modules:


KY11-LB Programmers Panel - Part 2

I may have got to the bottom of the front panel problem.
Initially I thought that it was related to the scanning technique that is used to read the keypad and update the 7 segment displays given the keypad gave the wrong values and sometimes the display was missing segments.
After further research it appears not to be the case (which is good).
The scanning signals all look good on the scope.
The insight came when I looked at which keys on the number pad worked and which didn't.  I came up with the following table
Pressed = Displayed
1 = 1
2 = 0
3 = 1
4 = 4
5 = 5
6 = 4
7 = 5
0 = 0
If you convert this to binary it becomes pretty obvious where the problem lies.  The invalid display is for the items marked with * and all have the second bit set.  If you mask out the second bit you get the displayed value.
0 = 0000
1 = 0001
2 = 0010 *
3 = 0011 *
4 = 0100
5 = 0101
6 = 0110 *
7 = 0111 *
The front panel uses a 7447 BCD to 7 Segment decoder to drive the LED modules. If pin 1 (B) on this is not being set when required then the behaviour will be what I am seeing..... it isn't that the keypad is getting it wrong... but the display is showing the wrong value due to a missing bit.
Need to do a bit more digging here but given that this line is pulled to +5V via a resistor on the board (the controller board in the backplane pulls this to ground) I am hoping that the problem is either a connection problem on the front panel board with the line not being pulled up or the 7447 needs to be replaced.  If there was a break in the ribbon table to the controller board then the bit would always be set and a different set of incorrect values would be displayed.
Hopefully there isn't a fault on the controller board that is pulling the pin to ground.
The other odd display problems with odd segments missing on the 7 segment displays are due to them being socketed (clearly there was some concern about reliability in 1979) with dirty connections.  I need to pull each 7 segment display and clean the pins.  Pressing on a display that is missing segments will cause then to appear.... might need to solder joins touched up too.

So that is all very positive about the front panel and it's control board.
I still have the problem with the front panel Halt button causing a BUS Error.  The PDP11 unibus uses an interesting Bus Grant interrupt system that is chained through the 9 pin backplane.  Plugin boards can intercept one of the interrupt lines or must pass it through (two pins per Bus Grant per backplane socket).  This means empty sockets must include a bus grant card to join the pins.  All of these are in place and I have checked the continuity of the Bus Grant lines.  My suspicion is that the CPU is not actually running.  More to look at...

KY11-LB Programmers Panel - Part 1

The power supply modules are all back in the mounting box with the transformer and this is reattached to the chassis.

I powered up the machine from the front panel on the weekend.  This machine is equipped with a KY11-LB programmers console which connects to an M7859 Quad board in the backplane (interestingly this board is run by an Intel 8008 microprocessor).

When powered up the programmers console display came up with 000000 and the run light was lit.  Some of the keypad buttons are stuck or give the wrong value when pressed so I need to pull that apart and find out what is going on there.  Hopefully just something stuck behind the panel.  Using the keys that do work I was able to load an address into the Address register on the board and read it back which suggests the M7859 is generally working.

At the moment I am stuck with a Bus Error when I try to halt the CPU.

This generally means the Grant cards are not correctly installed but these are OK so it may be time to get the logic analyser out and start looking at the backplane.  Before I leap into that I will look further at the front panel.  It might also be the front panel buttons mean something other than HALT is being pressed.


PDP-11/04 - Power Supply Part 7

I am continuing to make progress with the power supply modules for the PDP 11/04.

This weekend I got a chance to test the modules.

One of the H7441 +5V supplies worked fine.

The output is a little high at 5.5v but I understand that these do not have great regulation when not under load so this will likely come down with 10 PC boards to power.

The other +5V supply didn't run.

The output went up to just over 1v as the AC comes up and then settles back to 0.5v.  The DC voltage after the rectifier and across the main input capacitor looks OK on the meter.  

After thinking about it overnight I took a small 25VAC plugpack out of the junk box to make comparative testing of the two 7441 supplies easier (i.e from the comfort of the house rather than the workshop with the 1 degree overnight temperatures we have been getting here).

When I tested the known working 7441 it worked fine with the plugpack.

When I tested the "faulty" 7441 it also worked fine.

Reconnecting the faulty 7441 to the main transformer and bringing the voltage up with the variac and it didn't work.  The problem is the rate of voltage increase. If I bring up the variac output slowly (say 0-240v over 5 seconds) then the 7441 will hang with the output under 1 volt.  If I increase the voltage quickly (within 1-2 seconds) then it powers up fine and shows a good 5v on the output.

I have had some discussions on this and it appears that this can be a common problem with switching supplies.

It was a case of being too conservative.

The H745 -15V supply works fine although the Power OK Bulb (not LED like the 7441) on the back has failed.

(The folded plastic bags between the connector pins are to provide some insulation during testing.  The -15V module requires both 20VAC and 15VDC to operate so there are two jumper cables bring power to the module).

I will replace the Bulb with an LED + resistor like the H7441. These LED's are visible at the back of the power supply box so failed supply modules can be easily identified.

I think it is time to put the regulators back in the chassis and try powering up the back plane.

Next weekends project.


Page 6 of 11

Powered by Easytagcloud v2.1

Contact Andrew Quinn