Monday, February 09, 2015

Hello 2015 - What's New?


Last summer, I backed a couple of Kickstarter campaigns - and now they have both delivered.

I am now the owner of a couple of FPGA boards - and I am slowly learning FPGA technology - aided by the subtle democratisation of programmable hardware. More on this later.

Meanwhile, I am still tinkering with the minimalist programming language SIMPL.  As of Feb 9th 2015 - I can report, with some joy and enthusiasm, that I have managed  a quick and dirty hack, to port it to one of my FPGA boards.  I now have a FPGA, hosting a 32 bit, 96MHz soft core processor - that runs one of the simplest interpreted languages on the planet. Is all a bit bass-ackwards, but it's fun.

The sketch is here as a Github Gist. You will need a Papilio Duo and perhaps a LogicStart Shield - or just run it, native on an Arduino if you want a quick play.

I'm currently trying to condense all my Txtzyme and SIMPL experimentation into a single, easy to read, Quick Start Guide. please bear with me on this - it might take a little time.


A meeting with an old work colleague over a pub lunch, rekindled my active interest in SIMPL.  As such I have compiled the various blog posts from 2013 and 2014, into a single document, and I am working out the best way to present it as a useful document describing SIMPL and how it can best be used.

We discussed the idea of passing SIMPL programs via a Bluetooth Low Energy (BLE) connection between a Smartphone and a BLE device. SIMPL programs are very compact and ideally suited to the short packet format of a BLE communication packet.

Lithium Battery Developments

I have also been doing some work developing hardware that runs on a single Lithium Ion cell.  This has involved the use of the MCP1640 boost converter and also the MCP73832 battery charger IC. This development work has gone very well and I am confident that I can make an economical battery powered design based around these ICs. The MCP1640 at just 30p in volume, is a fraction of the cost of the LTC3525 boost converter. Combined with a small inductor - such as this one from Farnell - you have a very compact boost regulator for about 50p.

FPGAs - The Democratisation of Programmable Logic

Meanwhile, a couple of Kickstarters that I backed last summer have come to fruition - I have now entered the exciting world of FPGAs and soft-core processors.  The great thing is that now an Arduino can be emulated by a 32bit 100MHz soft core processor on an FPGA, and as such SIMPL can be ported to the FPGA ecosystem.   Here's an update on FPGA developments:

Field Programmable Gate Arrays (FPGAs) are definitely the future for digital electronic design.

They are a "blank canvas" of logic gates and registers, onto which you can paint your own digital design.

However, the FPGA manufacturers tool chains are certainly not intended for easy access to this wonderful technology, and to be thrown in at the deep-end of the various hardware design languages - Verilog and VHDL will appear daunting to most.

Fortunately, some forward thinking individuals have succeeded in providing an abstraction later to these tool chains in the form of an Integrated Design Environment (IDE) and with this easier entry level, have managed to make FPGA technology open to a much wider market of hobbyists and enthusiasts.


There are two competing FPGA manufacturers - who between them each hold about 45% of the world market. With this combined 90% world market domination - there is very little space for their competitors.

Altera - known for their Stratix and Cyclone families of FPGAs.

Xilinx  - known for their range of Spartan FPGAs.

Recently, two crowd funded FPGA dev-boards have come available via Kickstarter. Whilst subtley different - they share the same Xilinx Spartan 6 FPGA.

Scarab Hardware  MIniSpartan 6+ 

This is a professional dev-board with two HDMI sockets, 3.5mm audio jack, 8 channels ADC, miniSD card socket and 2MB of SRAM.   The Spartan 6 is a BGA package  - and most of the I/O is brought out to a pair of dual row headers. There is a miniB USB connection via the ubiquitous FTDI chip.  The board is white in colour with great care taken in matching track lengths for maximum performance.

Gadget Factory    Papilio Duo 

The Papilio DUO - whilst sharing the Spartan 6 FPGA offers a different approach in familiarising the hardware.  It has the footprint of an Arduino MEGA, and additional hardware may be attached in the form of shields or "Wings".   The FPGA is in a LQFP pagkage as opposed to BGA.  There is also the same FTDI  USB interface IC, but on the bottom of the pcb is an Atmel ATmega32U4 which can be programmed as an Arduino (Leonardo).

Whilst not providing on board video, Audio or microSD connectors - these can be added in the form of a "LogicStart" Shield or Gaming shield.

The unique selling point of the Papilio DUO, is that it is supplied with a soft-core processor - the "ZPUino" - which emulates an Arduino, but at 100MHz on 32bit hardware.  Once the hardware is loaded with the logic design for the ZPUino, it will then accept and run a normal Arduino sketch - but at many times the speed performance. 

Arduino users can port their sketches almost directly across to the DUO board and run them on the soft-core.  They can also progress to designing their own hardware designs to accompany the Z- core on the FPGA. 

In my opinion - this allows the Arduino user a smooth transition into the world of FPGAs.

No comments: