On the continuing list of homebrew ARM dev boards we’ve seen over the past few months, [Squonk42]’s USBug is one of the best we’ve seen. Like many other ARM boards, it breaks out a member of the Cortex M0/M3 family into a 40-pin DIP, but unlike all the others, [Squonk] designed it so you can drag and drop code onto the microcontroller just like a USB thumb drive.
[Squonk]’s trick relies on a certain breed of NXP LPC11xx/LPC13xx microcontrollers. These chips feature a ROM-based mass storage, meaning you can compile code on your desktop and simply shuffle it over to the USBug, no external programmer required. Here’s the relevant app note (PDF in a zip file. Double whammy).
Of course, the USBug features the I/O you’d generally expect from the current crop of Cortex-M3 devices, all while serving up 64 kB of Flash and 12 kB of RAM.
[Squonk] says he’d like to put the USBug on Kickstarter, but unfortunately he’s not a US citizen. In the spirit of Open Hardware, perhaps some maker-based electronics manufacturer will pick up where [Squonk] is forced to leave off.
“unlike all the others, [Squonk] designed it so you can drag and drop code onto the microcontroller just like a USB thumb drive.” – what!? How about mbed http://mbed.org/ and Galago http://www.kickstarter.com/projects/kuy/galago-make-things-better ?
Squonk didn’t design that feature, NXP designed that feature, you can go buy any LPC134x family microcontroller, slap it on a circuit with the requisite passives for USB, and have it come up as a flash drive on your computer ready to receive a compiled firmware.
USB bootloader is in ROM you see, burned in straight from the factory.
You have to add an active transistor for proper USB enumeration, and special circuitry is used to enable single button press firmware update, which both are not provided by the Atmel chip alone.
Galago doesn’t flash code through the NXP ROM bootloader, it uses the debug interface provided by the Galago’s built-in hardware debugger.
How is this unlike other Cortex M0/3 boards? The mbed does this too.
mbed isn’t completely open source hardware.
With their awesomely bad online compiler, that’s an understatement.
Does a board using a ROM-based closed source bootloader count at open source hardware?
I bet Atmel wouldn’t share the RTL or GDSII files for the ATmega, so maybe even Arduino isn’t properly open source? Where do you draw the line and why?
But the question isn’t HDL for the chip circuits, but source code for the bootloader?
Is a development board open source hardware when it contains a ROM-based closed source bootloader? It seems a number of products are claiming to be “open source hardware”, with a proprietary ROM-based bootloader. Are they really open source hardwarE?
It the answer is yes, does the exact same hardware lose its “open source hardware” status if it has a closed source bootloader programmed into memory by someone other than the chip manufactuter?
Okay, so the bootloader code inside the ATMega that enables ISP – that’s in ROM, just the NXP USB bootloader is in ROM.
The chip manufacturers have to provide some level of bootloading or ISP so that you can get a binary image into the flash. None of them AFAIK publish the source or make the ROM contents public. So maybe nothing is truly open source?
I’m being petty and pedantic, playing devils advocate, I don’t believe I’m right… But the line has to be drawn somewhere.
The ISP features on Atmel’s chips appears to be a hardware-based state machine. Even if it is implemented with ROM-based instructions executed by the CPU, it certainly isn’t comparable to ROM-based firmware than implements a USB mass storage device using the processor’s USB peripheral.
Many other chips provide a hardware interface for programming which most certainly is not firmware-based.
Atmel does ship closed source bootloaders pre-programmed to some of their ATMEGA chips, but most come completely blank. On Arduino Uno, the 8u2 or 16u2 chip comes with a closed source bootloader, which the Arduino people erase and replace with an open source version.
A chip might contain a close source ROM-based firmware image, but if it’s never used in the normal course of usage, that’s very different than building a development board, and calling it “open source hardware”, which uses that closed source code as the primary method of developing code.
The bootloader is a ROM-based firmware that is automatically brought up at boot time. Depending ons some condtiions (like pin status, code checksum), it presents the device as a mass storage device on USB. Even if Atmel provides some state diagrams of this feature, it is not hardware-based.
This board is open-hardware, as it provides all the required files need to make your own from scratch, and does not require any special tool to reprogram the chip, as the USB mass-storage specification is public and supported by existing open-source software tools.
He could’ve used indiegogo in stead of kickstarter
Statistically he’s almost 95% more likely to succeed funding on Kickstarter than on indiegogo.
The strength of kickstarter is its community. Most backers are serial backers.
I don’t understand the appeal of this drag & drop style of downloading code. Sure, you save some money on a programmer. But those programmers also support debuggers. Perhaps, as a software engineer, my bugs are more sophisticated than other people’s ( :-) ) but I would reject any development platform without debugging support.
I haven’t used Arduino, but my impression is that it has no hardware debugging support either.
ST Microelectronics’ ST-Link programmer/debugger is a whopping $22. I’ll take that any day over having to debug with print statements (especially when most microcontroller projects have no built-in print output).
Dude thats exactly what i say but for some reason people just like bugs and errors… Arduino and Other type of devices are awesome when updates are planned… or for a final release to be update-able by end user…
for the hobbiest and engineer that crap isnt needed.
The thing is this is still good since ISP is brought out. So you casn still use a programmer/debugger…
Then if you find a bug in testing or just have a update you can simply drag in the new code…
Atleast with an Arduino (AVR) you can auto-upload-reset from your make script.
While you can copy a file to a device, without a way to reset automatic, this is still a step backwards. Because it adds more steps during development cycle, which is more steps you can do wrong or forget.
mbed boards have the same problem. (And more problems)
The basic Arduino is using an RS232 trick to achieve this.
The Leonardo, as well as all other USB-only based devices have no way to reset the chip using the USB interface alone.
At least on this board, it is done so it only requires a single button press both to reset the chip and enter ISP mode.
Kickstarter UK is supposed to open any day now, Autumn 2012, http://www.bbc.co.uk/news/technology-18780184
The drag and drop programming is really for simplicity, removing the need for drivers, JTAG(SWD) wigglers and the like.
Full debug is always on the wish list, and this announcement on mbed.org yesterday suggests that it will soon be possible to program/dubug mbed using any tool that supports CMSIS-DAP
http://mbed.org/blog/entry/mbed-Interface-v20-experiments-Adding-CM/
Seriously? Forebrain’s been around for over a year now: http://www.universalair.co.uk/control/forebrain not only with drag-and-drop uploading but also a whole easy-to-use library.
Forebrain isn’t open source, even if it now provides a schematic.
The USBug is using the LPC1343CodeBase open-source easy to use library from Microbuilder, modified to support the USBug:
https://github.com/Squonk42/LPC1343CodeBase
Seem to be a little bit too “inspired” by a similar Embedded Artists board. His questions in the FAQ section are copied basically without modification from Embedded Artists.
http://www.embeddedartists.com/products/boards/lpc1343_qsb.php
Bought my LPC1343 board almost two years ago so it’s been around for a while.
The FAQ is not “inspired”, questions have been copied on purpose, so you can compare easily the answers that focus on the open-hardware benefits compared to a proprietary hardware.
WOW centers of the universe for Whiny bitches.
Just because Henry Ford produced the *first* mass produced motor car does not mean that innovation along similar lines is nothing new!!