— element 14 (@element14) August 20, 2013
A few months ago element14 gave away 500 LPC800-minikits. I thought that that was a nice starting point for a learn-to-solder-goodie for my hackerspace, so I started a design with it. Along the way I found out how to program this very little microcontroller. The demo is now finsihed: when you shake the board, it will appear to ‘write in the sky’. This phenomenon is called ‘persistence of vision‘, where you still see some light after it has moved on; it’s like those pictures with very long shutter times where car lights become long ‘scribbles’ of light. Here, we control how the lights are turned on and off, and thus appear to be writing in the sky!
In the final design, you can easily solder this board with a few components (see below). When you shake the board, a default text is shown ‘in the air’! But of course, it’s more fun to get your own name on the board, so you can reprogram it! Using the same interface for downloading the firmware, you can use a standard terminal (hyperterminal, or seyon) to type in your name, and you’ve got a personalized goodie!
The microcontroller I’m using is the LPC810. To my knowledge it’s the only ARM microcontroller in DIP8 housing. This gives only 6 pins for input and output, but that’s sufficient for my application. Moreover, an 8-pin DIP is very easy to solder, so great for a learn-to-solder goodie!
I could have started with ‘why the Arduino sucks’ or ‘why the Arduino is bad’, which would have gotten me a tremendous load of page views. But I didn’t because it simply isnt’t true. The Arduino does not ‘suck’, and neither is it bad in its own right. It just isn’t the right tool to teach people programming, but it’s abused that way. Let me tell you why:
“Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.” There. I just copy-pasted that from www.arduino.cc. And they’re right! The arduino project is great for creating interactive objects or environments. You’ve got a gazillion of code examples to use, you can easily read out sensors that would take hours to days to get going (even with coding experience) and a large user base to ask questions. Above all, creating interactive objects or environments is about human interaction (fun!). Hook up a sensor to an actuator, create new combinations and play around… But it’s NOT a good standard to learn coding, or benefit from the power of embedded electronics.
And that’s where I’m bearing a grudge to the use of Arduino’s as a ‘getting started with programming’. Learning to work with microcontrollers is sometimes a steep pathway, but leverages the power of these little beasts. Using an Arduino to learn programming is like using MacDonalds to learn cooking; you get your meal, very fast, but you don’t get the skills to cook yourself. When you need a quick meal, the Mac can be OK (debatable, but just to make my point), but it’s not a cooking class.
I set up this tutorial using a lot of resources I found at Hertaville. Thanks, thanks, thanks!
1 – get the GCC compiler
Download toolchain from https://launchpad.net/gcc-arm-embedded/ and add directory with ‘arm-none-eabi-gcc’ and others to path
Linux: get the TAR with the binaries, and extract somewhere. I put them in Documents. Yes, I know that that is not a sensible location, you could do otherwise if you’d like to. I changed the path to point to the binaries.
Under Windows, just run the installer, everything will be fine. At the end of the installer, let the PATH be adapted (option box selected).
2 – get OpenOCD, part of the debugging solution
Go to the OpenOCD site and download the sources. For windows: there’s a binary installer available somewhere, check Hertavilles site.
sudo make install
3 – install Code::Blocks if you hadn’t already
Download Code::Blocks from their website, installation instructions are here.
For linux (my distro refuses to update to 11.20) you’ll have to install the archives that BerliOS provides, windows users can easily install the binaries.
Train at 1:05 (I got a bit carried away), Qihuahua at 2:23
Hello! The last months I haven’t posted anything on this blog, which is a bloody shame. However, I’ll compensate with this blog post. A few months ago a fellow Tkkrlab member told me about his project to let a remote controlled LEGO train run via a web interface. He had this up and running, but got tired of constantly changing the batteries and started looking at wireless charging systems. Around the same time, element14 started a RoadTest with a combined Wuerth / TI demo kit for their new industry standard Qi wireless power transfer solutions. I applied for the RoadTest, and was happy to be selected as a candidate to try out this new hardware. But…. then element14 changed the rules, and instead of a regular ‘RoadTest’ (use the hardware & write a review) this became a Roadtest Challenge; a design competition between 6 candidates. You can find the element14 blog posts here, but I’d like to make a personal summary on this page. Below the progress of two months designing and hacking!