Well, that went quickly! I’m now at T-2 days until the night of the ball, and thankfully, all my eBay bits have arrived in time! (Aside from a mild nuisance of some wrongly delivered NPN transistors, more on that later…) Here’s what my test bench looked like yesterday, with some basic debugging going on.
As of this evening, I’ve gotten the controller PCB built and working, with a nRF24L01+ radio for user interaction, and I’ve prototyped a pretty solid menu structure for controlling the pattern and brightness. I say prototyped, as I’ve hit a little math (I think!) snag when moving the code over from my Atmega2560 dev platform, to the 328p-based controller, but I hope to have cracked it by tomorrow.
I have a university project going on at the moment, where the main goal is to learn something new, that hasn’t been, and won’t be, covered by our course material. Not too hard, given that my university is still pitching assembler for PIC’s as new and interesting. The module asks that we undertake a project, whereby we learn some new skills, and deliver an output that demonstrates them.
I’ve set out to get my head around the vUSB stack, and design a USB interfaced, 1-wire temperature sensor stick. Now so far I’ve only been used to serial communications, either over a RS232-TTL <-> USB interface, or using the on-board USB controller on the Arudino Leonardo. Reading and writing bytes directly to serial ports is a pretty easy system. USB adds a lot of overhead to that, but it’s too useful of a tool to pass up learning.
I’ve been following the well-doccumented vUSB tutorials from CodeAndLife, and I’ve managed to get a command-line controlled LED working (though you do have to read everything. Keep an eye out for the makefile for the command line exe!). Next up will be getting the DS1820 working, and modifying the LED switch code to handle data transfer. Watch this spot! Below is the hardware I’ve been using, it’s pretty damn simple! A few things to note are the 3V3 TO-92 regulator (USB speaks 3V3!), and the series + pull-up resistors on the USB connections, though they are barely visible in this photo!
I’m going to a masquerade ball with some friends this December, and one of these friends wants something special to wear. I’ve built her a colour changing necklace, and extended-battery life fairy lights for festivals and such before, but for a one-night-only affair I think I can pull off something a bit more punchy and attention grabbing. So, what better to do, than to make her the star of the ball. And we all know stars are actually huge, burning super-novae, that output huge amounts of light.
So, here’s my shopping list;
- 10m of “5050” 12V Red/Green/Blue LED strip (eBay)
- I had wanted to use 5V HL1606-or-similar strips, to give animation capability, but the lead time in getting them shipped from China was too long. Even 5V straight RGB strips were only available from the US, which would also have taken too long to arrive. Rather than swap out thousands of current limiting resistors, I’ll just up the LED supply voltage.
- 2 x 11.1V 20C 2300mAh Li-Po battery packs from eBay. These should provide enough juice to run the 12V LED Strips!
- Hand built 3 channel MOSFET controller, because of time constraints. Heck, I may even work in wireless control if I get time!
Time sure seems to drag while you are waiting for something to happen! But after a good few weeks, the boards from OSHPark are finally here, and appear to be mostly functional! I only need to test the battery charging and protection circuitry, but everything else so far has worked with minimal effort! I’ve soldered up half of the circuitry on two boards, one with the uC, IMU and Radio modules, and one with just the power management circuitry, just to be safe.
The finish on this laptop resists most attempts at being photographed, but you can make out R2D2 there… I love it, even if it severely boosts my geek-rating!
I’ve just put the above design into OSHPark (hat used be the dorkbotPDX PCB order) for manufacture, hopefully to go out on the Oct 5th 2-layer panel order. 3 copies of the board, 140mm x 20mm with Gold finish and a funky purple solder mask. Not bad for £16.50, including shipping from the US!
This design incorporates all the features I’ve wanted since I started pushing the capabilities of my hand soldered prototypes. I’ve got the battery protection and power path management worked in, along with separate regulators for the IMU and radio circuits, and an on-board booster as opposed to the fragile modules I’ve been putting this off for a while, as I have a bit of a phobia that I’ll miss something silly in the tracking, but I’ve re-done this layout 5 times now, so I’m happy to send it off for fab. Besides, can’t argue at those prices!
Now begins the waiting game…
So the festival I was working on with my buddies has been and gone! I was hoping to get a good number of build photos from the construction of our creation, but the schedule was so manic that I was often working until early morning, with my focus being directed at getting the work done, rather then documenting my efforts!
Having said that, I did manage to get some photos of the finished work and a couple of build photos. Let me introduce you to the front door of our creation:
Read on to see a few more photos and to get a feel for working on a festival site!
So, in 2009, Farnell (my primary electronic component distributor) bought out Cadsoft, a software design company most widely known for the EAGLE PCB design package. Untill recently, this has had little implication (aside from who I now pay for my updates).
However, the other month, when browsing for some new IC’s on Farnell’s website, I noticed a new link appearing on certain product pages:
Registered users of the Farnell website are now able to download EAGLE library data for a growing number of parts on available from Farnell. Useful! The file linked on the product page contains an EAGLE Script file, which means all you have to do is open the library editor, and run the script in order to have EAGLE generate the necessary symbol, footprint and device data for that part.
Let me be the first to say, I’ve been spoiled when it comes to working with microcontrollers. While I’ve been writing some pretty nifty code recently, it’s been very much “high level” stuff, code that builds a lot on pre-existing libraries for the Arduino platform. While I’ve still yet to pull the cardinal sin of a GOTO, I’m sure the Arduino way of doing things has surely taught me a few bad practices, even if I’m not aware of them yet!
So in an attempt to redeem myself, and to teach myself quite a lot about the actual hardware I’m spending so much time working with at work, I’ve made my first attempt to get up and running with a Texas Instruments MSP-430 series uC, and a “proper” Integrated Development Environment (IDE), IAR’s Embedded Workbench.