H2HC 2013 Badge - Great Scott Gadgets

Great Scott Gadgets

H2HC 2013 Badge


The H2HC 2013 Badge celebrates the 10th anniversary of the Hackers to Hackers Conference in Brasil. It is a USB-enabled ARM Cortex-M3 development board based on the LPC1343, and it is intended as an experimental platform for development of a next-generation GoodFET.
The primary goal of the badge is to make it easy for H2HC attendees to get started with embedded ARM development.


Bootloader

The H2HC 2013 Badge is delivered with no firmware installed except for the LPC1343’s ROM bootloader which functions as a USB Mass Storage device. Simply plug the badge in to a USB host computer, and it will appear as a storage device with one file, firmware.bin. Overwrite firmware.bin with your own firmware binary, hit the reset button, and it will start running your code!

The first time you plug in the badge it will execute the bootloader. After any firmware has been installed, you can invoke the bootloader by pressing the ISP button, pressing the RESET button, releasing the RESET button, and then releasing the ISP button.

Known bug: The bootloader was probably only tested on Windows. If you use a Linux host computer, instead of overwriting firmware.bin directly you must use simpleflash.


Development Setup

To compile firmware for the H2HC 2013 Badge, you’ll need an ARM GCC toolchain. The easiest way to install a toolchain is to download a binary distribution of the official GNU toolchain for embedded ARM processors.
Simply unpack the downloaded archive and add the bin directory to your PATH.

For a good starter project, download the LPC1343 Code Base. In its default configuration, this project will build firmware that flashes one LED and implements a USB serial interface. For more information including links to the LPC1343 documentation, see [Getting Started with the LPC1343 Code Base](https://web.archive.org/web/20150809012033/http://www.microbuilder.eu/Projects/LPC1343ReferenceDesign/GettingStartedLPC1343.aspx.


Example: Getting Started From Linux

You will need to be root or will need to adjust permissions (e.g. with udev) to perform some of these steps.

  1. Plug in the badge to a Linux host computer. If this is not the first time you have attempted to install firmware, follow the instructions above to invoke the bootloader.

  2. Mount the bootloader filesystem (change /dev/sdb to match the device file created for the bootloader mass storage device):

    	mkdir /mnt/bootloader
    	mount /dev/sdb /mnt/bootloader
    
  3. Install toolchain:

    	cd /tmp
    	wget https://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q3-update/+download/gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2
    	tar -xjf gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2
    	PATH=/tmp/gcc-arm-none-eabi-4_7-2013q3/bin:$PATH
    
  4. Install simpleflash:

    	wget https://raw.github.com/r0ket/r0ket/master/tools/bootloader/simpleflash
    	chmod 755 simpleflash  
    
  5. Install LPC1343 Code Base:

    	wget http://www.microbuilder.eu/Files/Projects/LPC1343RefDesign/LPC1343_CodeBase_v1.1.1.zip
    	unzip LPC1343_CodeBase_v1.1.1.zip
    	cd microbuilder-LPC1343CodeBase-1d625af
    	chmod 755 tools/lpcrc/bin/lpcrc-linux
    	ln -s tools/lpcrc/bin/lpcrc-linux lpcrc
    
  6. Compile and install sample firmware:

    	make
    	../simpleflash firmware.bin
    	umount /mnt/bootloader
    
  7. Unplug badge from USB host.

  8. Plug back in to USB host.

  9. The sample firmware should now execute. Verify this by making sure TXLED flashes slowly.

  10. Try interacting with the USB serial interface:

    	screen /dev/ttyACM0
    


GreatFET

The H2HC 2013 Badge is based on the gflpc1343, an experimental GoodFET design also known as the GreatFET. Firmware implementing GoodFET features does not yet exist, but the TARGET pin header is designed for future use compatible with existing GoodFET designs.


Open Source

The H2HC 2013 Badge is open source hardware. You can find the KiCad design files in the GoodFET svn repository under contrib/gflpc1343/h2hc2013badge/.