TouchOSC is an application for the iPod touch and the iPhone. It provides several control surfaces and communicates (Open Sound Control) messages by wi-fi. OSC was originally designed for music applications but is flexible enough to be used for anything. These sample applications take the “simple” screen from TouchOSC and receive incoming messages from it and use these messages to re-create the TouchOSC screen. There is an example for each of the separate screens and one that combines them all. This is the one shown in the video below. A further example, again shown in the video demonstrates both receiving and sending messages with the TouchOSC.

A page of applications written in Processing


For access to the other boxes

If you are on a Macintosh there are very few applications that will allow you to view Gcode so I decided to write one. I designed it for looking at files intended for milling PCB, hence it only distinguishes between tracks above zero and below zero. As my mill is only small it doesn't do vast areas either.

On the positive side it will handle G0, G1 G2 and G3 codes, a lot of viewers don't handle G2 & G3 commands. It will also handle the I&J commands associated with the arc commands as absolute or relative modes depending on the G90.1 or G91.1 commands.

Gcode viewer

Processing is a language available on both Macintosh and PC. While it is not my favourite language by any means, it serves to produce quick and dirty applications for testing out ideas or producing utility applications.


This processing sketch generates the Gcode required to cut various different types of hole with a CNC milling machine. The tool path for the hole is repeatedly gone over increasing the cut depth by a certain amount on each pass. It can be used to cut through holes or blind holes depending on the hole depth specified. All the holes are centred around zero and asymmetric holes can be rotated in 90 degree increment. The cut depth for each pass is produced on the first cut of the pass by an increase in the Z depth along with the normal X & Y movements, thus the tool is ramped down to the new depth. At the end of the sequence this this first path is repeated without any change in Z depth to ensure that the whole of the path is milled out to the same depth. The user interface allows you to specify the hole dimensions along with the tool size and cut depth. Note that for some shapes the hole will only be as precise as the tool diameter will allow, the smaller the tool the better it is at creating sharp corners. All dimensions are in millimetres, and the G2 & G3 arc commands use the absolute mode for the I & J parameters.

The Gcode generated contains no feed rate parameters, these can be set on your CNC machine or the Gcode file can be edited with any text editor.

Hole cutter

Point to point Gcode generator

This application  is designed for generating printed circuit board routing paths in Gcode to be produced from a file containing lists of point to point tool path data. The input a file contains two sorts of data, the first is a mode instruction to determine what to do with the data points that follow. The data points consist of a comma separated list of first X and then Y coordinates in any units arbitrary or otherwise. For each pair of points the corresponding Gcode commands will be produced to generate that path. On each new line the Gcode will lift the tool and position it at the start of the new track. Therefore you have complete control over the order the tracks will be milled and how long each isolation cut will be.

At the same time as generating the Gcode their will also be a representation of the code drawn on the screen to allow you to check for any errors. Both the input file and the Gcode file can be edited with any text editor, where the copy and paste commands make it simple to make repetitive patterns. This is especially suited to the production of strip board adware of PCB along with more complex isolation paths. I have used this sketch to produce milling files for several small circuit boards and breakout out boards.

Gcode Applications

Oscilloscope Screen Dump

I acquired a rather old secondhand oscilloscope, a Tektronix TDS 220. It has a communications extension module on the back with an RS232 interface, and so was capable of outputting  a screen dump to a dot matrix Epson printer. These printers are long gone, so I wrote a Processing application to emulate an Epson Printer’s dot matrix graphics commands. Well at least those used by the oscilloscope. The result was that I can now download and save ant screen on the oscilloscope. I used a USB to RS232 adaptor cable to connect to the back of the oscilloscope, it also needed a 9 way DIN female to female null modem cable adaptor to make the thing talk.

Polyrhythmic sequencer

Following on my experiments with my Hexome into sequences consisting of a group of unequal length synchronised step sequences. I developed a Processing emulation of the hardware and extended it to cover an general case. It consists of 7 concentric rings with each ring having a configurable number of LEDs from 32 to zero. Also included in the download files is an abstract for the paper I gave on the subject at the BEAM festival 2012.