Welcome to Silicon Junction

These pages describe some of the work I have done as a hobby. They involve model railroads, electronics and programming - preferably all three. As a model railroader, I am mostly interested in computer control of a layout. Almost all my electronics projects are based on the PIC 16C84 microcontroller. As far as programming goes, Java is the language of choice.

Digital Command Control(DCC)

Digital Command Control or DCC is a standard for building equipment to control a model rail layout. This web site was originally started to publish the work I did on DCC. As far as possible, I try to design and build the bits and pieces myself - mobile decoders are a notable exception.

The system I am working on uses a PC running MS Windows for the front-end. All microcontroller based circuits are built around the PIC family. Most of it is in the design stage.

Model Railroad Control

I have built small, simple layouts from time to time. I am building an N scale dog-bone layout to sit on a wall unit. I used to have a point-to-point HO layout along the wall in my garage. A design for an N scale layout on a 1800 mm x 1200 mm base was aborted when the second car took up the remaining space in my garage.

I have had a go at using transition curves in my layout. I have looked at some of the maths involved and designed a easement template for N scale.

Before using DCC, I have toyed with other methods of layout control. One approach based on some hardware hanging off the parallel port of PC and a DOS based front-end was a limited success. A subsequent, more complicated design, based on multiple PIC based modules driven off the serial port of a PC was superseded by the DCC design.

Lego Technic

My son and I have been playing around with Lego Technic sets. The Teknikbrik pages describe what we have been up to.

PIC Projects

Besides using PICs in model railroad control, I have employed them in a few projects.

I started off using the versatile 16C84 for all my projects but have recently moved to the 16F876. The ability to use an ICD makes writing the software much, much easier. The IR Analyser uses one - I tried having an onboard RJ12 to use the ICD without the header board and it worked well. I am planning to have this feature or at least a 6 pin SIL header on all my projects.

The IR Analyser uses a PIC based IR send/receive circuit and a java front-end running on a PC to help analyse the signals sent by IR remotes. These signals can be studied as a waveform and their parameters and coding scheme deduced from it.

The IR receiver receives and decodes signals from a Sony IR remote control and sends the codes received to a serial port on a PC. A VB program then displayed the codes. Another project used the same hardware to receive signals from most IR remotes and sent information on the pulse train to the PC serial port. A VB program then displayed it in a fashion mimicking an oscilloscope.

Driving vacuum fluorescent displays using a PIC is another project described here. This also illustrates a java applet used to publish timing diagrams on the web. Another java application described here is handy for publishing PIC assembly listings on the web.

The saga of making my own PCBs is also described here. I use pre-coated PCBs, expose it to UV and then develop and etch it.


xmlobj is a small collection of classes that allows an XML document to be used to load an object tree and vice versa.

Caapi is a framework for a J2EE based system built around XML.

A passing interest in the H-Anim standard that looks at using VRML to simulate a human body resulted in some VRML2/Java programs loosely based on these standards.

Also included is a VRML2 scene I used to illustrate a design for a wall-unit.


Check to see what's new. Considering the frequency of entries in it, perhaps what's old is a better moniker. You can also chart my progress or lack thereof.

Future projects include java programs written around LEGO bricks using Java3D.

Updated on 14 Jul 2007. Feedback to