Sorry, these are completely sold out, and will not be manufactured in the future.
Home Products Prices Site Map Order Contact What's New Books Free Files Links FAQ
Dontronics Home Page DT102 RS-485/232 Mini-Terminal.
Bottom of Page
Order Now Catalog

DT102 PCB $15AUD

Taken from:

I built a minimalist DT102 today - OK, stop laughing for a minute   I know, it's crazy - who would do such a thing?  But, since I did, here are two issues:

1. The notes from Claudio about adding wires to allow for programming the PIC in a DT001 say to connect IC1 Pin 5 to Bus pin 8 (RES).  This should be : connect IC1 Pin 4 to Bus pin 8.

2. The schematic appears to have the wrong wiring listed for J4.  If you are going to connect something to J4, check the signal connections first.

If figure the web says Don has 950+ DT102's in stock so we have to hope somebody eventually buys them - and when they do, they will want to know this.
BTW, the minimalist board I put together uses just 3 resistors, a resonator, a 10K variable resistor, 4 wires links, and 4 jumper wires.  With the PCB, the PIC, and the LCD, it probably cost a total of about $9 USD

Cheers, Bob


Software Specs:

The Dontronics DT102 PCB has been designed on a 2.5" SimmStick platform, and is same size as the DT205 Relay board.

It has provision for six "Hat Key" type push button switches, and a standard 2 by 14/16 LCD. The board is designed for the Truly brand LCD, however many others will fit the standard 14/16 pin header strip provided. Pins 15 and 16 are normally for back lite type displays, however some standard displays, like the Truly brand, have the extra holes, as they use the same artwork pattern for both types of displays, even though the extra two holes aren't used.

Mounting holes are provided for the Truly display which mounts via female/male header pins on the component side of the board, and above components such as the PIC16F84 micro. Yes, the micro will fit in a socket if need be, right under the display. The display is very simply removed.

Two RJ-45 connectors allow RS-485 communications via an 8 wire standard cables. Two jacks means RS-485 can be used on multiple connections or drops. These RJ-45 PCB mount jacks need to be mounted on the solder side of the board.

Also on the solder side of the board, you will find a spot to mount a 5 pin DIN PCB connector, same as the one in your standard PC. This allows an "AT" type keyboard to be plugged in as an alternative to the 6 push button switches.

Other features:
Max-232 and single wire comms will be catered for to some degree. Details to be available in the future.
Configuration jumpers for various programmed feature selections.
On board Piezo buzzer
PIC16F84 4Mhz crystal or resonator operation. (PIC16C61 and others can be used)
LCD contrast control.
Powered from RS-485 bus or SimmBus.
Power ON LED
Debugger LED and link. (RS-485)
Termination resistor and link. (RS-485)
On board +5V regulator and support circuitry.

Special notes regarding the circuitry used.
The keypad matrix uses a technique described on the microchip website.

Configuration jumpers ( J4 ) use another multiplexing technique. Essentially when the PIC needs to read the configuration jumpers the i/o port is configured to be an input and the 'E' ( RA2 ) pin is configured to be an output with a logic low. The configuration information is then obtained by reading the appropriate input ports. The resistor pack bias resistors ( RP1 ) for the configuration jumpers are needed to prevent any interaction between the normal functions of the i/o lines and the configuration jumpers.

In 'normal' operation ( when not reading the configuration jumpers )  either the PIC or the LCD would be driving the i/o lines. The bias resistors common line is connected to the 'E' ( RA2 ) line to make sure that the correct
voltage levels are present on the i/o lines during all phases of operation.

Serial communications.
There are three possible hardware interfaces for the serial communications to and from the DT102.

  1. RS232

  2. This uses the conventional MAX232 interface chip to provide the appropriate voltage level / conversions. The protocol used is full duplex.
  3. RS485

  4. This uses a LTC485 driver chip to provide the differential drivers and receivers required for RS485. As RS485 is a simplex interface we use RA3 to control the LTC485 driver chip to be in either receive or transmit mode. Because it is only simplex we also multiplex the rx/tx data into the PIC onto RA4. The RS485 interface uses RJ45 connectors to allow multiple devices to be connected to a common serial bus. The RJ45 interface also has power and ground available. By using a serial protocol that has an unique 'identity' each device on the bus can be individually addressed.
  5. Logic interface.

  6. This interface uses the open collector capabilities of the RA4 on the PIC chip. The protocol is also simplex but allows for limited distance communications while only consuming one i/o pin on the PIC. the protocols used are the same as in the RS485 interface.

Software Specs:

At the time of writing, software isn't available to make use of the "AT" keyboard input, however code can be found at Steve Lawther's site at: This may need to be re-configured to suit the DT102 board. Code can also be found at Mauricio Culibrk's site at:
Steve Lawther's "AT Keyboard/LCD" Schematic

Other Software will be available and full details will be announced in the near future;
Here are some of the specifications:

LCD software specs.
Functionally similar to Peter Andersons

Baud rates either 2400 or 9600, jumper selectable.
Either rs232/rs485/logic, jumper selectable. ( 485 and logic may be in second release )
Addition of 6 way keypad and ability to read from keypad and from LCD.
Will use 'spare' function codes among the 'FE' sequence to access.
Read / Write to EEProm.
Self test mode ( pressing particular keys on reset enters test mode )
Demo test software to run on PC?

All of the documentation for the DT102 board is now on this page.

Dontronics now have dealers in many countries. These dealers can be found at:

Board Components:

1 by DT102 PCB

1 by 7805 IC4 +5 Voltage regulator (Optional)
Serial Communications RS-232: (Optional)

1 by Capacitor C1 1uf Electrolytic (PCB mount.) or Tant. @16 V.

1 by Capacitor C2 1uf Electrolytic (PCB mount.) or Tant. @16 V.

1 by Capacitor C3 1uf Electrolytic (PCB mount.) or Tant. @16 V.

1 by Capacitor C4 1uf Electrolytic (PCB mount.) or Tant. @16 V.

1 by MAX-232 IC3 (or equivalent)
When using the DT102 in a simmstick bus talking to another

simmstick, don't fit the rs232 chip, it won't work! 

Unless you swap the rx and tx data lines. 

Just fit J3 and J5 and a simmstick cpu board will talk

direct to the DT102 at ttl levels.

RS232 works OK as stand alone and is OK if no simmstick 

cpu board fitted. It may also pay to install a 16 pin socket 

for the Max-232,  as you may have to remove it for some 

1 by Capacitor C5 100uf/25V Electrolytic  (Power Supply)

1 by Capacitor C6 100uf/25V Electrolytic  (Power Supply) 

1 by Capacitor C7 .01uf (or .1uf) Ceramic (Power Supply)

1 by Capacitor C8 .01uf (or .1uf) Ceramic (Power Supply)

1 by Capacitor C9  15pf to 22pf Ceramic (Install only if Crystal is installed)

1 by Capacitor C10 15pf to 22pf Ceramic (Install only if Crystal is installed)

1 by Capacitor C11 .01uf (or .1uf) Ceramic (Reset cct)
1 by Resistor  R1 1K  .25 watt  (Reset cct)

1 by Resistor  R2 15K .25 watt  (Reset cct)

1 by Resistor  R3 10K .25 watt  (Comms Pullup)

1 by Resistor  R4 470 .25 watt  (Clock cct)  

1 by Resistor  R5 1K  .25 watt  (Comms cct)

1 by Resistor  R6 680 .25 watt  (for RS-485 comms) 

1 by Resistor  R7 1K5 .25 watt  (for Power LED)

1 by Resistor  R8 xxx .25 watt  (Value to be calculated for Back lite LCD) 

1 by Resistor  R9 120 .25 watt  (for RS-485 comms)

1 by Resistor  R10 10K .25 watt (For Backlite switch)

1 by Potentiometer RV1 10K Center Tapped. (Brightness LCD)
1 by 6 pin Resistor network (5 by 2K2) or 2.2K

This is used for the configuration Jumpers at JP4.

The value used is fairly critical as there are a 

number of different run time configurations due

to the various ports driving these lines. 

This bus is between the PIC and the LCD.


Pin 1-2 is A, 3-4 is B, 5-6 is C, 7-8 is D, and 9-10 is E.
1 by 1N4148 Diode D1 (Reset Circuit)

1 by 1N4148 Diode D2 (Small Keypad)

1 by 1N4148 Diode D3 (Small Keypad)

1 by 1N4148 Diode D4 (Small Keypad)

1 by 1N4148 Diode D5 (Small Keypad)

1 by 1N4148 Diode D6 (Small Keypad)

1 by 1N4148 Diode D7 (Small Keypad)

1 by 1N4004 Diode D8 (Power In from SimmBus)

1 by 1Nxxxx Diode D9 (Not Used, incorrect label)

1 by 1N4004 Diode D10 (Power In from RS-485 bus)
1 by LTC485/Max-485 IC2 (Max-485 Comms)

1 by BC-548 Transistor  (for LCD back lite switch)

1 by Piezzo Buzzer B1   (Optional)

6 by "Hat Key" type push button switches (Small keypad)
1 by 5mm LED For LED1 Power indicator.

1 by 5mm LED For LED2 RS-485 debugger.
1 by 5 pin DIN type PCB mounted connector for AT Keyboard installation.

1 by 5 pin PS@ type PCB mounted connector for AT Keyboard installation.

(Optional and you can't install both types)
2 by RJ45 PCB mount connectors RJ1 and RJ2. (Max-485 comms)
1 by PIC16F84F84-04-P (IC1) Micro. (many other 18 pin PICmicro's and various speeds will suit)
And either a Crystal of a suitable value, or a 3 pin Resonator. If a crystal is fitted then C9 and C10 must be installed. If you use a Resonator, then you musn't install these two caps. The most common crystal used for beginners is 4Mhz, as this matches in with the PIC16C84/04/P that most people start with.

1 by 2x16 line Truly brand LCD. The DT102 board is designed for the Truly brand LCD, however many others will fit the standard 14/16 pin header.

The rest of the components are made up of single and dual line headers for control and I/O.


Used to connect the RS-485 comms debugging LED
A test link and two male posts are used for this.

Installing a link in J2 allows the DT102 board to supply the +12V PWR to the Max-485 bus.

J3, J5, and J6:
Used to connect or isolate TTL comms signals to the SimmBus.

Has a 1 by 6 pin Resistor network (5 by 2K2) or 2.2K
This is used for the configuration Jumpers at J4.
The value used is fairly critical as there are a
number of different run time configurations due
to the various ports driving these lines.
Pin 1-2 is A, 3-4 is B, 5-6 is C, 7-8 is D, and 9-10 is E.

Connection point for Max-232 Comms to the outside world. Could be used to connect a DE-9 type connector.

Links installed selects the small keypad signals. Not installed allows the AT keyboard connectors access.

Connects ground to LCD pin 16 for back lite displays.

Connects power to LCD pin 15 for back lite displays.

Installs a terminating resistor for RS-485 comms.

Function of D8
Protect the polarity of the PWR input signal, and to "Direction Isolate" the PWR signal to the RJ-45 +12V so that two 12 Volt inputs don't interact. If no power input is used on the RJ-45 bus, then D8 can be a wire link.

Function of D10
Almost the opposite description of D8. J2 pads can be used to short out D10, so that power can be fed from the SimmStick bus to the RJ-45 bus. If power is fed up the RJ-45, then D10 can be shorted out with a wire link.

Subject:         RE: DT102 Issues
   Date:         Mon, 21 Jun 1999 17:29:48 +1000
   From:         "Barry Hay"
     To:         "Don McKenzie" <>

OK Don,

Not wanting to dampen any enthusiasm :)

1.  Holes for 1N4004 diodes are too small (at least the diodes I had) D8, D10
(Now enlarged, design fault)

2.  Holes for RV1 are too small to take an open frame trimpot, though they would probably fit with a more expensive cermet type trimpot

3.  Holes for J2, J3, J, J6, J9, J10 are too small to take standard square jumper posts.  Also, the spacing between the two posts on each of these jumpers are a than .1" apart, so I had to break apart header strips to fit them in.  Standard shorting jumpers don't fit, so I wire wrapped them.
Circuit designer feedback:
All of the jumpers mentioned are what I would consider 'build time' configuration jumpers. I wouldn't expect anyone to need change them after construction, wheras the jumpers that can take the 0.1" header are 'run time' jumpers. YMMV
Rod Egan
Bloke what was responsible in some part for all of this! <grin>
Other than that, I hope to finish the Atmel link tonight.  If I can find a digital camera, I will send a pic.
Barry Hay

Barry is doing a brain transplant on this one to an Atmel micro.

Subject:              Re: [Fwd: DT102 Issues]
                   Sage Telecommunications <rodegan@

Sage Telecommunications wrote:
> Just out of interest did you guys actually get an RJ45 from Jaycar? The
> samples that I sent were from Altronics. I checked the Jaycar catalogue and
> there is no specs for the RJ45 connecters that I can see.
> The Altronics RJ's have the same footprint as Molex, which is pretty much a
> standard footprint.
> And both the right angle and 'straight' RJ45's had the same footprint.
> The odd one out appears to be the Jaycar one!
> Rod

Yes, I did go to Jarcar and get them, I have been assured that the footprint has changed  since I got them. Good old Jaycar!

(These are Australian companies, however Rod has mentioned that Molex has the same footprint.)

The following distributors have RJ45's with the same footprint as the
Altronics samples used for the DT102 PCB layout.

XON / Prospec part number is TS2K88
Farnell part number 257-102
Molex part number 95009-2881

Subject:         DT102 mod
   Date:         Sun, 3 Oct 1999 19:38:47 +0200
   From:         75805312@

Don, just my .02 $ about DT102.

I find it very flexible to accommodate many different projects, but can't be used for direct programming on DT001 due to a lack of connection to the simmstick bus. Let me solve this problem.
Assembly instructions:

x1              xtal              10MHz
(for future AT/PS2 keyboard interface software needs)
c9, c10    capacitor   15pf
IC1            16f84-10
RV1            10K pot
R2             15K
R1, R5         wire jumper
C11            not install
D1             not install
jumper from J5.1 to J3.2 and J3.1 to J5.2
( to use MAX232 installed on DT001/DT003)
wire from simmbus pin7   to VCC
(VCC from simmbus)
from simmbus pin8   to IC1.5    (MCLR)
from simmbus pin21 to IC1.12 (RB6)
from simmbus pin22 to IC1.13 (RB7)

Here is (3K) in order to check the circuit just for output (RS232 to LCD). As soon as I can I will send you also the AT Keyboard to RS232 routine. If you think it will useful for some your customer you can put it on your WEB.
ciao Claudio Rachiele IW0DZG

Subject:         Re: DT102 mod
   Date:         Tue, 5 Oct 1999 12:38:30 +0200
   From:         75805312@

Don, as I promise you here I am again to give you a snippet ( non really a snippet, 1447 lines of code!) to test the DT102 with a PS2/AT IBM Keyboard. Why a test pgm and not  a really terminal pgm? As you know very well IBM Keyboard just output a scan code when a key is pressed
and another code when the key is release. The PC BIOS with the OS, according with the keyboard
definition file (i.e. Keyb.IT for italian keyboard in DOS) translate the scan code in the ASCII character and use the function keys to move the cursor. So the code for a real terminal depends of  the application you need.

HARDWARE  PROBLEM: Clock and data from keyboard are OPEN COLLECTOR LINES. You
need to put two 4K7 tie-up resistor, one from RB0 to VCC and the other from RB1 to Vcc. You can put them on the back of DIN/miniDIN connector or under the 16f84 from pin6 to pin14 and from pin7 to pin14.

I haven't tried this solution but as the 16F84 ( and a lot of other pin
compatable PIC's ) have a s/w configurable pull up resistor for port B the
hardware error is actually a software configuration error! Just enable the
port b pullups on the PIC and don't need to worry about hardware mods.
Rod Egan 13-Dec-99

I modify a pgm founded on the WEB to fit the different HW of DT102 and I test it on LM52L 16x2 LCD that fits the DT102. This code can be used to view the data between an AT keyboard and computer.

The LCD will show on the top line, the codes on the keyboard bus, and on the lower line, a decoded version of the code i.e. ASCII character for printable characters, or a 2/3 character description of non-printable codes according to the IBM US Keyboard layout. The display scrolls right to left, as the codes are received. The program is receive only and would require extra code if wanting to send data to the keyboard, i.e. to set the CAPS LOCK / NUM LOCK / SCRL LOCK LEDs.

Source code is very big and complex then I send you only the .HEX ready to be programmed on
a PIC16F84-10.

Download (2K)

ciao Claudio Rachiele IW0DZG

Subject:         Terminal program for DT102
   Date:         Fri, 17 Dec 1999 10:52:07 +1000
   From:        "Lionel Theunissen" <>
     To:         "Don McKenzie" <>

Hi Don,

I've just finished writing an RS232 terminal program to run on the DT102, which I think may be of interest to you. It runs on a 10Mhz PIC16F84. It supports the AT keyboard interface, and requires a 16*2 LCD. Here is a list of features:

* Software selectable baud rate of 300, 600, 1200, 2400, 4800, or 9600 baud
* Interrupt driven, true full duplex RS232 engine
* Recognizes CR, LF, FF, BS, VT, and BEL control codes
* Software assignable function keys
* Use with on-board keys or external AT keyboard
* All settings stored in EEPROM

To enter configuration mode, hold down SW1 and SW6 during power up. The top line of the LCD will show a version number, and the lower line with show the currently selected option. The options are:

* SW1-SW6 - ASCII value assigned to each of the switches. The value is shown in hexadecimal and in char form on the display. When using an external keyboard the function keys F1-F6 will also be assigned these values.

* Baud: - Currently selected baud rate. Can be 300, 600, 1200, 2400, 4800,
or 9600. Default is 9600.

* Timer: - This is the timer reload value used by the interrupt service routine. This can be used to fine tune the baud rate, and is mainly for debugging purposes. ***Don't mess with this unless you know what you are doing. Default value is CFH.

* INT/EXT keyboard select. INT selects SW1-SW6 which can each be assigned an ASCII value. EXT selects the external AT keyboard. Default is EXT.

The onboard switches perform the following functions in configuration mode:

* SW1 - Option Down
* SW2 - Option Up
* SW3 - Value Down
* SW4 - Value Up
* SW5 - Exit without saving
* SW6 - Save settings in EEPROM and exit

Known issues:

* With an AT keyboard the CAPS LOCK will perform like a SHIFT LOCK. Also pressing any of the shift keys will release the CAPS LOCK, like an old style typewriter. The CAPS LOCK LED on the keyboard is not supported currently.

* Only the typewriter portion of the AT keyboard is supported. None of the numeric keypad or cursor control keys are recognized.

* The CTRL and ALT keys are not recognized. However control codes can be assigned to the function (F1-F6) keys.

The program is copyright, however I am granting permission for private (non-profit) use on the understanding that it is provided AS IS. Commercial use is prohibited without my express written permission. If you decide to put the binary up on your page please mention this disclaimer.

It is an extremely tight squeeze to fit all of this in a 16F84. Literally every single byte of program and data EEPROM memory is used, so the addition of more features may prove difficult. Still, I think it has enough features to be quite useful. Let me know what you think. I'd also like feedback as to any bugs/ improvements, etc. I haven't yet tested it on all baud rates, so if someone has the time to do so, it would be appreciated.

BTW, as Rod Egan commented, pullup resistors are not needed for the AT keyboard. This program uses the internal pullups. One thing I will say about the DT102 though; The RS232 TX and RX lines are on the same simmstick bus auxiliary lines as other (microcontroller) simmsticks. Since the most probable use of this device is to communicate with another simmstick, it
would have made more sense for them to be the other way around. Perhaps future versions of the DT102 should have links to set this.

I may consider releasing the source code in the future if there is enough demand, and once I'm satisfied that it is stable. Anyway, for now, the hexfile is attached. (See Below)


Hi Don,

I've decided to release the source code for the terminal program I wrote for the DT102 (attached). You're welcome to put it up on your page if you like. There were a couple of people on the PIClist asking for some source for an interrupt driven RS232 routine a couple of weeks ago. The RS232 engine in this program might be useful to them and others. Usual disclaimer applies. 12K Both hex and source.
Home Products Prices Site Map Order Contact What's New Books Free Files Links FAQ

Dontronics Home Page

Copyright © 1996-2006 Dontronics

Top of Page