home  general  lard  ArdweeNET  MAXX  the QUUB  Gecko  SiiMAN
        embedded systems  PC software
                  current projects  previous projects


Embedded systems :: Current/recent projects

I am providing some pro-bono support to a couple of startups at present, that's kind of an ongoing thing as I guess my high profile on the Arduino forum attracts a lot of questions offline.

Apart from that I have several personal projects on the go and have just finished one software contract and am getting close to finishing a large hardware job.


    Personal projects    


Control network — I've always had an interest in industrial monitoring and control networks and have in fact designed two in my day job in a previous life. This one is a redundant ring topology, an idea I wanted to play with to see how reliable I could get a network to be.


Development system — The Quub is an Arduino-style development system designed for a higher end of application, more in the commercial to light-industrial field. It has a system of addressable boards and sub-boards.

The Quub

LPC-Arduino port — LARD is a port of the core Arduino functions to the LPC1227 32-bit CPU. Originally written in C (because the LPCXpresso C compiler is free, the C++ compiler was not) I am starting to port it across to C++ now because the LPCXpresso guys have finally made the C++ compiler free.



    ARM development    

I have designed a few ARM-based boards based on LPCs and SAMs. I will probably not proceed with the designs (mostly because I can't afford to) but I will show two of them here to illustrate that I have spent quite some time with the SAM and LPC processors and have a fair idea of the requirements for a design using them.


The Toucan is a SAM3X8E processor board, as this is the same processor used by the Arduino Due this board is largely compatible with that. However I have broken out all the neat SAM features that the Arduino guys elected to ignore.

Power supply

  • VIN1 for 7-30V main power.
  • VIN1 is PTC and Transil protected.
  • VIN2 for 7-15V backup power supply.
  • CPU detection of VIN1 presence.
  • CPU detection of VIN2 voltage level.
  • 5V 2.5A switching regulator.
  • 3V3 2.5A switching regulator.
  • VIN power is jumper-able to many of the serial connectors for network supply of power in smaller systems.
  • On-board and remote ON/OFF pushbuttons for system shut down and wakeup.
  • Battery backup
  • On-board coin cell for RTC and external SRAM backup.
  • VIN2 can be used for backup or to hold the system voltage until the processor can shut down in an orderly fashion.
  • CPU monitoring of coin cell voltage via independent 2-channel ADC chip on I2C.

External memory support

  • 16-bit data, 20-bit address.
  • On-board 2MB low power CMOS static RAM chip, with 16 bit wide data bus.
  • Expansion connector with 2 more bank select signals.
  • Total of 6MB directly addressable if expansion board used.

Expansion header

  • 60-pin low-profile fine-pitch expansion connector.
  • All supported external memory address, data and control signals.
  • Two memory bank select signals allow direct addressing of another 4MB external RAM.
  • SPI, I2C, USART0 and USART1 signals.
  • Chip select signal for SPI (shared with comms module).
  • VIN, VBAK, 5V and 3V3 power.

Native high-speed 4-bit support for microSD cards

Native Ethernet support with PHY and magjack

CAN interfaces

  • On-board transceivers for the two CAN ports.
  • Two 4-pin connecters for each port allows easy daisy-chaining.
  • VIN power available through a jumper to one pin on each connector.
  • Jumper selection for 120R termination resistors.
  • 256-level slew rate control for each port.
  • Enable control for each transceiver for power saving.
  • ESD protection for all CANH and CANL lines.

Non-volatile memory

  • Onboard non-volatile storage.
  • Serial 8KB FRAM chip used for fast and next to unlimited writes.

Digital IO

  • 8 high-current (24mA) GPIO signals.
  • 5v or 3v3, selectable via jumper.
  • Each IO has a state indicator LED.
  • All IO protected against over, under, reverse and high voltages.

Analogue IO

  • 8 analogue inputs.
  • Each channel can be individually selectable for single ended or differential mode.
  • PGA for each channel.
  • Can read signals to 0-5v.


  • Shows as standard Arduino Due in the IDE.
  • Native USB bootloader.
  • Plug-in module for UART bootloader.
  • JTAG programming.

Debugging support

  • Large GND, 5V and 3V3 test points for connecting test equipment..
  • Standard 10-pin JTAG header.
  • 7-segment LED display for error codes.


  • Push buttons for erase, hard reset, soft reset and on/off.
  • 6-layer PCB (not laid out yet).


  • Approx 3.9 x 2.5” (100x65mm).
  • Four mounting holes.
  • Fits a standard Polycase LP-31B enclosure.



  Popup the download page. Schematic (not complete)



The ArdweeNODE is a dual processor board featuring an ATMega1284 and an LPC1227. It's in the Arduino form factor with the AVR handling the standard headers at 5V and the LPC handling an RS-485 network connection and the extra (Mega-like) headers at 3V3.

The two processors communicate via a serial SRAM.



  Popup the download page. Schematic

    Contract projects    


Arduino-LCD comms library — Written for a large Australian company and deployed a few weeks ago.

Arduino-based SCADA system — This is a large project involving 10 DIN-rail-mounted units, mostly with a single PCB but two of them are doubles.

Most modules are Arduino based to distribute the processing, they all communicate using I2C over the DIN rail bus.

These modules provide industrial IO and control for a Brazilian company. Here are some 3D renders of the more interesting PCBs. Note that the two double units split in half and mount in the enclosure facing each other.




Arduino Mega-based main controller with Ethernet, GSM, USB, RS-232, RS-485, microSD, digital IO, analogue inputs, RTC with battery backup, and two switching power supplies.

Analogue inputs can read 0-10V or 0-20mA for current loops. Digital inputs are isolated and can handle up to 50V.



This is the main power supply for the modules on the DIN rail. It is CPU (ATmega328) controlled and can inform the main control unit of various operating parameters.

It includes a 5A 24V-to-5V regulator and a 5A 12V backup battery charger. There is automatic solid-state switching to the backup battery when the primary power fails.



This is the analogue output module, it has four channels that can be either 0-10V or 0-20mA outputs with 16-bit precision. Once again all under CPU control.



Top of Page


  home  general  lard  ArdweeNET  MAXX  the QUUB  Gecko  SiiMAN
        embedded systems  PC software
                  current projects  previous projects

Copyright © 1973-2013 Rob Gray, All rights reserved.
PO Box 450, Gin Gin, QLD, Australia.