The board itself is open source hardware and has an MSP430F5510 microcontroller, where most of the pins are available through 2 rows of pads. It also comes with a mini USB port, 2 buttons for reset and bootloader mode, and 2 LEDs connected to GPIOs:
I plugged the board to my PC and the LEDs blinked, but it is a BSL Loader and I want to turn it into an EMF detector so it was time to start modifying the firmware. The best way to get started with the rocket is by checking its info on the Texas Instruments Wiki.
Arduino EMF detector on Make, originally made by Aaron ALAI. So I thought about doing something similar. First thing I'm going to need is an analog input, so by checking the MSP430F5510 datasheet, I see that the PT package, which is the one used on the rocket, has 6 external ADCs, where 4 of them are in the pins P6.0 to P6.3. According to the rocket schematic, these pins are free and available on the pads, so I'm going to use one of them for my antenna.
Ω pull-down resistor and a piece of wire for the antenna:
Code Composer Studio from Texas Instruments. It has a few different licensing options, but for this project, the free license it's all you need.
Ray Wisman has a good and simple explanation on his MSP430 Getting Started guide:
The main loop will check if either the timer or ADC interrupts are ready and react accordingly. If the timer has run out, the Rocket LEDs will toggle their state, if the ADC conversion is ready, then the output flame LEDs should turn on accordingly with the voltage level:
The auxiliary functions are responsible for configuring the timer and the ADC:
And then their respective interrupt service routines:
After building the project with CCS and downloading the application to the rocket with the MSP430 Firmware Upgrader, it was time to test it out. I pulled out an extension cord near to the antenna of the EMF detector and there it was, the LEDs started shining:
I decided to use an extra connector for the battery pack to power the entire detector, and a 10 pin IDC10S/PCB Male connector to plug in the flame directly to the MSP Rocket. Then it was time to start drawing the PCB itself. First I tried to visually design the rocket as realistic as I could, to be able to have a good visual reference of how large the flame should be. Then I sketched the flame and added the LEDs and connectors:
Ω resistors on the BSL connector, and the board is going to work on 3.3V or less, I concluded it wasn't necessary to add any more. After the design was ready, I moved on to the etching phase:
Now obviously the calibration is a bit messy and it's kind of hard to make it work as well in strong electromagnetic fields as in weak fields. Besides, the proximity of the antenna wire to the USB port on the rocket also has an influence, because it's ground shielded. Either way it was a fun project, and even though it's not the most precise thing there is, it still allows for some really interesting discoveries around the house or the lab.
I have uploaded the application code and PCB files to my Github.
By the way, if you want to restore the original MSP430 BSL Rocket firmware, you can find it here.
So thanks again for this prize Texas Instruments Europe!