I forked from 2 previous DP forum threads (Madelon LPC development board (http://http://dangerousprototypes.com/forum/viewtopic.php?f=19&t=3426) and Dangerous 3D Models (http://http://dangerousprototypes.com/forum/viewtopic.php?f=2&t=3525)) I squatted for a while to create a specific thread on my USBug LPC1343 development board.
The USBug is a complete USB-based microcontroller development system in a very small footprint. All programming is done via the USB port. No special programmer is needed, only a standard "Mini-B" USB cable and a Windows/Linux PC or a Macintosh with a USB port are required.
Here are the key features:
- Fully Open-Source Hardware & Software (CC-BY-SA, GPL)
- Drag & Drop firmware, just use it as an USB Memory Stick!
- No Loader application, the bootloader resides in ROM (unereasable)
- Works with Mac OS X, Linux & Windows
- Standard ARM SWD debug/trace connector
- ARM "Cortex M3" 32-bit processor, up to 72 MHz, up to 64 kB Flash, up to 10 kB SRAM
- Up to 42 GPIO pins, 1xUSB device, 1xUART, 1xI2C, 1xSPI interfaces
- 2x32-bit, 2x16-bit, 1xWatchdog timers
- 10 Bit ADC with up to 8 inputs
- Tiny size: 2" x 0.8" (50 mm x 20 mm), only 0.244" (6.2 mm) thick (w/o header pins)
- Available with pins for solderless breadboard
- Very low cost
And here are a 3D model rendering and a real picture:
[attachment=0][attachment=1]
The full project is available on my GitHub project page (http://https://github.com/Squonk42/USBug).
I don't know yet what I will do with it: I don't have any production plan yet!
I have 16 prototype PCBs available and components to populate 3 of them.
If there is a high demand, I can get to Seeed and try to make it an industrial product they would sell, but let's see how it goes first!
In the meantime, I can provide the bare PCB or assemble some of the boards I have here...
Please let me know what you think about it!
I've been looking at many of these mini arm dev boards myself, and perhaps interested in creating my own.
Have you taken a look at https://github.com/corecode/mchck/wiki (https://github.com/corecode/mchck/wiki) ?
What are your goals with this project?
I personally want a fully open development platform with easy to use peripheral libraries, a reliable bootloader, and ideally on chip debugging interface that plays well with GDB.
I'd be interested in a raw or assembled PCB if you want to send me one. I'd also like to help with the project if we have similar goals.
Thank you for your interest!
Yes, I checked the MC HCK! board, and I even suggested a few improvements in the forum (http://http://dangerousprototypes.com/forum/viewtopic.php?f=56&t=4032#p40528). However, it looks very focused on price, going from the STM32L151 to the Nuvoton NUC120 may not be a good move... Well, we will see! As long as it is open, I don't consider it as a competitor, but more as a contributor.
I must say I am a still big fan of the AVR CPUs, but in the long term, I think moving towards 32 bits is the future. And among all ARM Cortex chips, the ones that drew my attentions are:
- the ST STM32L as being cheap and relatively low-power, easy to find
- the Energy Micro Tiny Gecko (EFM32) as being the best in class for low-power
- the NXP LPC11xx and LCP13xx for their unique ROM-based bootloader
[/li]
I must say that I only worked with the last 2 ones, so I may be missing something with the STM32L, but days only get 24 hours!
Just speaking of the LPC11xx/LP13xx, I also check the available open designs:
- MicroBuilder's LPC1114 (http://http://www.microbuilder.eu/Projects/LPC1114ReferenceDesign.aspx) and LPC1343 (http://http://www.microbuilder.eu/Projects/LPC1343ReferenceDesign.aspx) designs
- Volts & Bytes 's LPC1343 Breakout Board (http://http://voltsandbytes.com/lpc1343-breakout-board/)
- Universal Air's Forebrain (http://http://www.universalair.co.uk/control/forebrain)
But I found these either too large, too expensive, or lacking proper ESD/EMC protections. So I decided to roll my own, and I thought it would provide me a great experience on a mixed hardware/software design.
My goals look very similar to yours: I am attached to open designs, so I placed all the hardware design files under open licenses, and plan to do the same for all software developments.
The ROM-based LPC bootloader is the main reason for choosing this particular chip: I find the USB memory stick (driverless!!!) approach to be the less daunting for a non programmer user.
And I included the standard ARM SWD header just to be able to use the onboard debugging support. Even better: if you check the forum links in my initial post, you will find that one of my secret goals is to implement an USB CDC-ACM gdbserver to SWD interface into the USBug! My dream would be to use 2 USBugs to debug each other...
Just send me a PM with your coordinates, so I can send you at least a bare PCB.
I would like to buy a couple of assembled boards.
do you have a timescale ?
Also, have you any plans for a LPC3147 version?
Mike
From what I have seen, the LPC1343/45/46/47 and LPC11U23/24 are all pin to pin compatible, although software-wise they are different (USB and GPIOs, mostly).
So the PCB should work for all these chips without modification.
Right now, with Rev. A PCB, I can only get parts from DigiKey (because of the special mini-USB connector and crystal), which is really difficult to order from where I live (France), as they only use UPS as carrier and charge a lot for VAT + customs taxes.
I have 16 Rev. A PCBs and enough parts to put together 3 more boards, but I plan to make a Rev. B board to accommodate for getting parts from easier suppliers in Europe (RS, Farnell). This should only consist in changing a few items in the BOM and some footprints (and adding a voltage supervisor).
So at your option, I can send some bare PCBs and you buy the parts yourself, or you wait until I have some free time to assemble what I have left (Isaac already want one), or you wait until the next Rev PCB (around 1 month as I am using SeedStudio, plus parts ordering and assembly).
I compiled MicroBuilder's LPC1343CodeBase (http://https://github.com/Squonk42/LPC1343CodeBase) for the LPC1343 USBug.
Not much tested yet, but at least it compiles ok under the latest LPCXpresso v4.2.2 [Build 275] [03/04/2012], and I have both the LED blinking and the command interpreter working on the USB CDC console!
I have a few bare rev. A boards left (10 out of the initial 20 batch from SeeedStudio), so if someone is interested, please send me a PM.
I have been asked for part kits, which I don't supply at the moment. Unfortunately, there is not enough interest (yet!) to start a fulfillment @ SeedStudio Propagate (http://http://www.seeedstudio.com/propagate/) service, as they charge $500 for setup fee and service, plus you have to advance the parts for 100 kits min...
However, this may be a good idea to start grouping part orders, as we can save on individual distributor shipping fees this way.
I put both a Digi-Key (http://https://github.com/Squonk42/USBug/blob/master/BOM/DigiKey_basket.txt) and Farnell (http://https://github.com/Squonk42/USBug/blob/master/BOM/Farnell_basket.txt) basket on Github, so you may have an idea of how much it will cost if you order one by yourself, and how much we can save by grouping.
Let me know by PM if you are interested in such a grouped part order.
For comparison's sake, here is a picture with 2 USBug boards, along with some popular other boards (click on picture for full scale image):

(http://http://img337.imageshack.us/img337/9575/boardcomparison.jpg)
To get an idea about the USBug cost, the total amount for my initial 4 part kits order from Digi-Key was 75.33€, shipped to my place (EEC). But it is kinda lottery with the customs, they may charge you additional 10~20€, depending on agent :)
Comparing this price to the other equivalent finished boards, it's not that bad:
- Olimex LPC-P1343 Prototype Board (http://http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=280836316325): 22.41€
- Open1343-S Evaluation Board (http://http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=251040130053): 26.81€ + 4.06€ shipping = 30.87€
- Forebrain Development Board (http://http://www.universalair.co.uk/content/forebrain-development-board): 34.66€ + 4.41€ shipping + 5.80€ VAT = 39.21€
- Embedded Artist's LPC1343 QuickStart Board: (http://http://www.embeddedartists.com/products/boards/lpc1343_qsb.php): 16.90€ + 22€ shipping + 9.72€ VAT = 48.62€
Of course, you can find other cheaper/better board, like the RPi (http://http://www.raspberrypi.org/), the OLinuXino-Micro (http://https://www.olimex.com/dev/imx233-olinuxino-micro.html) or the Chumby Hacker (http://http://www.adafruit.com/products/278) boards (or a few other Chinese boards from eBay, like the FriendlyARM (http://http://www.friendlyarm.net/)), but if you want to learn small ARM embedded microcontroller CPU programming on bare metal (no Linux here!) with modern tools as well as SMT soldering, the USBug may be a project to consider.
Hi Squonk, I came across this thread totally by accident. I'm the co-founder of Universal Air Ltd, and designer and developer of the Forebrain dev boards and its libraries.
I'd just like to say that your work with the USBug looks awesome, and I think any work that encourages more people to work with microcontrollers and electronics, and moving away from 8-bit cores should be praised.
On a side note, have you considered using the LPC1347? We will be upgrading our boards to run the newer chip, currently we use Forebrain LPC1343s on our quadcopters, and we've maxed it out with all the telemetry and GPS handling code. The LPC1347 has more flash, internal EEPROM, 12-bit ADC, an extra SSP and I hope some fixes to the bootloader.
If you need any help with anything, let me know!
Hi meseta!
I am glad you joined us on this forum, this is a really great place to be!
And thank you for the compliments! Of course, I know the Forebrain dev board, which is also an amazing platform. All the work you have put into it, as well as the supporting website, are both a great source of inspiration.
I also agree with you regarding moving away from 8-bit microcontrollers. Not only for the CPUs themselves, but also for the benefits of all the accompanying peripherals that are moving to higher gears with these 32-bit SoCs!
As for the LPC1347, yes: I designed it from the start to be compatible with a broad range on NXP CPUs, both lower and higher ends. Right now, I have assembled 3 boards:
- 1xLPC11U24
- 1xLPC1343
- 1xLPC1347
You can see the first 2 ones depicted above, the last one was not yet assembled when I took the picture! I got a few early LPC1347 pieces from Farnell (thanks mikestefoy!), so the USBug is probably one of the first LPC1347 dev board around... You can check all the (supposed) pin-to-pin compatible CPUs on my Github page (http://http://squonk42.github.com/USBug/) under the "CPU Variants" accordion section.
Right now, the help would be for taking the decision of what I need to do with this USBug board: it is both very exiting and technically interesting, but also frustrating and intimidating regarding the user's expectations: should I invest more time and money in this project, get help from someone, I don't know!
So any advice is welcome!
Yes, that's a tough decision. Development boards are a very niche market, there are few customers and there's a growing list of competitors, you really have to work hard to make your product stand out from the rest. When we approached Sparkfun with our Forebrain product, they basically told us that we did not differentiate ourselves from their existing products.
And therein lies the problem: a bare-bones development board is supposed to be minimalist and contain only the necessary components to have it working, as a result it's going to be very similar to any other bare-bones development boards out there. If you compared the USBug, Forebrain and EA Quickstart Board, let's face it, aside from some small differences they're pretty interchangeable.
So what can you do? I believe the best thing to do is to offer a complete solution. The problem with development boards is that a customer really needs to be proficient in both electronics and programming to make use of it, and that really limits your market. If you were to make your product easy to program, through offering pre-written libraries, copy+paste code and whatever, then suddenly even beginner programmers and non-programmers can use your product. If you were to make little add-on boards that let your dev board do something useful without the customer needing to build a circuit, then suddenly those without experience in electronics can use your product. If you do both, then you've done what the Arduino has done - provide a product that has masses of documentation and pre-written code, and a vast array of add-on boards that will do almost everything you might think of. And that is why the Arduino is successful.
What we've done is similar, we've focused on UAVs. Dev boards aren't our main product, we sell quadcopters that are extremely tinkerable. Because we offer a complete quadcopter kit, you don't necessarily need to be able to program, build circuits, and design mechanical systems to work with quadcopters, you can take our kit and expand its capabilities using the skills tha tyou have, whether it's tinkering with the firmware, attaching new circuits, or modifying the frame. We've tried it as easy as possible for people to do this - the flight code is open-source and updating firmware is easy thanks to the LPC13xx's bootloader, the dev board at the heart of the quadcopter can interface to other boards, and the low-cost frame is made of sheet aluminium and is very easy to saw or drill into and if you made a mistake you can just buy a replacement part
The business model of companies like Sparkfun and Adafruit have a similar aim - they sell breakout boards that let you do things without necessarily having all the skills you would otherwise have needed without their products. And it applies to other industries too; take Apple for example, the iPod wasn't the first MP3 player, but it was/is popular because Apple offered a complete solution through iTunes - with other MP3 players, you had to know how to rip CDs yourself (or download them via file-sharing) and mess with ID3 tags to get the info showing properly; while Apple's products gave you a complete solution that let you easily get the songs you want and have them automatically loaded onto your iPod.
A bare-bones dev board might have a million and one uses, but there are just too few people who are capable of making use of one, and even fewer who would choose one over others that offer a more complete solution. I think this is the key to making USBug successful. If you decide to go ahead and invest time and money into it, my advice to you is to think about what skills and experience (or connections) that you have that would allow you to make USBug a more complete solution for people, whether it's providing some extremely easy method of writing code, or add-on boards that give it functionality, or a whole application or platform that USBug is part of. Teaming up with someone with complementary skills to you might make it easier, perhaps someone with mechanical design experience.
But definitely have fun, and learn from the experience.
meseta may I please reproduce this in a post on the blog?
Sure. Is there any chance you could mention the context in which I wrote the post?
I've fixed a couple of typos, might be more that I didn't spot.
Sure thing, thank you. We'll post it up, if the context isn't satisfactory please let me know.
Yeah, that's great, thanks.
Hi Squonk
Thank you very much for the pcbs, I just soldered one and it was really fun.
There are no hard to solder smd parts and it worked at the first try.
It is not a board for the smd beginner, but with some average smd skills, there should be no problems.
I made some changes f.e., used a BAR43C a 2.2uF tantal c, a micron MIC5205-3.3 and a different usb connector from which I had to cut of the position marks. I used those different parts mainly because I already had them. The usb connector you use is very strange, I never have seen one of these.Nevertheless I was able to buy the esd diodes from RS and I was lucky to have the necessary xtals at home.My buttons are 6mm long instead of 5 but they luckily fitted. So in the end there was no need to order from Digikey which is pretty expensive here in Austria.
The solder process was pure fun and the test file worked instantly.
Thank you very much for the pcbs, this was a real fun project.
I so much prefer empty pcbs and solder them myself.
Maybe to only sell the pcbs for the diy community could make the Usbug stand out over it's competitors.
Cheers
Rubi
Thanks Rubi!
It's nice to get a feedback and see you really had fun soldering it!
Yes it is not for the faint-hearted, as there are some 0603 parts to solder, but nothing impossible with a soldering iron, like BGA or QFN chips. The fine pitch LPC chip is actually pretty easy to soldering using the "tack & reflow" technique with a flux pen.
The strange USB connector is coming from an old SparkFun EagleCad library I had, where a Hirose connector was used with pretty unusual position pins.
FYI, I set up the list of parts with the references both at Digi-Key and Farnell: it is in the github repository.
Yes, ordering from DigiKey in Europe really hurts, not because of the item price or shipping (it is free over 65 EUR), but because of the carrier that s....: the only option is to use UPS, which charges 34 EUR for a ridiculous "customs processing fee": they have strictly nothing to do, since DK already declared the custom code for each individual part! And these jerks are stupid enough to send the invoice directly to the business account corresponding to the shipping address (my company) instead of my home billing address, as it was specified! It was only after 2 invoices unsuccessfully sent to my company that they retrieved the correct address, and sent me a very bad letter with threats of bailiff... I paid them, of course, plus extra interests: 45.63 + 3.65 = 49.28 EUR to UPS, 9.72 EUR to Customs and 75.33 EUR to DK: 37% UPS, 7% Customs, 56% DK...
I wish DK had warehouses within the EEC, or they could provide another cheaper and less stupid carrier (like USPS) as an option.
If they're an option, Farnell have a warehouse in the UK (RS also have one, but their prices always seem more expensive than the competition). Mouser ships from the US, but every time I've used them has been very painless, no extra fees or anything.
Yes, both Farnell and RS are the best options in Europe, and RS even provide a special website for hobbyists with VAT included (at least in France). I do not totally agree with your remark on their higher price: if you count in taxes and shipment, they are not far from what you get with Farnell in the end. I would say they complement.
Please understand that I do not complain against DK (apart from their limited carrier choice), the problem is with UPS and probably other international parcel services charging ridiculous amounts for electronic paperwork: at this tag point, this is just a hidden margin unrelated to the actual performance or real item value.
I fear that by using Mouser or any other US-based distributors, I fall into the same trap, as they probably use the same parcel services for worldwide delivery.
If you go to Mouser's Estimate Shipping page (http://http://www.mouser.com/EstimateShipping/EstimateShipping.aspx) you'll see that they offer the choice of UPS or FedEx, and the following:
FedEx - Incoterms: DDP (Duty and customs fees paid by Mouser).
UPS - Incoterms: DDP with VAT unpaid (VAT collected at the time of delivery).
Thank you for the link!
I may try Mouser with FedEx, then, and avoid UPS as much as possible.