From 27C3 public wiki

Jump to: navigation, search

MakeUSBDeviceWithCortexM3

We'll make a USB device of our own, using the vendor specific device class for easy programming on all operating systems, and we'll write a small cross-platform program for the host that communicates with the device using libusb.

The Cortex-M3 is a 32-bit CPU core fully supported by GNU binutils, GCC and GDB. NXP LPC1343 is a small microcontroller running the core at up to 72MHz, with 32kb flash, 8kb RAM, a built-in generic USB device peripheral and many other features.

This is a crash course into embedded/device development where participants learn about cross-compiler toolchains, flashing, JTAG and SWD (although we don't have to use them since the chip has a nice bootloader in ROM) and last but not least implementation of USB inside our device, and on the host where libusb is used. The exact same concepts will apply to any microcontroller project, and ARM CPU cores are literally used everywhere, including cellphones (see the OsmocomBB project), tablet computers, netbooks and embedded Linux systems in many consumer electronics devices.

Development boards with a prototyping area and a USB cable will be sold for 30 EUR cash, or 40 EUR IBAN bank transfer.

Soldering is not a part of the workshop, but you are certainly encouraged to break out the soldering iron and develop something fantastic with the board once the ground work has been laid down in the workshop.


CPU information: NXP LPC1343 (brief 60 page data sheet, full 331 page user manual)

Development board information: Olimex LPC-P1343 (15 page board manual, schematic)

File:LPC1343-1.jpg

Archived page - Impressum/Datenschutz