(I try to link to the products I used so you can find them more easily. If you purchase them from these links I may receive compensation from affiliate programs. I am not employed or influenced by the manufacturers or distributors.)
Enough about imaginary fuselages and prototyping boards with everything built in, LET’S BUILD SOMETHING!
In my last post we proved that the Arduino Nano 33 BLE Sense had all of the skills necessary to track attitude and some movement, but how do we get this information to the computer for analysis?
There’s a great video from BPS.space that includes a segment about all kinds of ways to transmit and save telemetry data, and I definitely should have watched this before my first flight. It boils down to two different options – onboard storage and wireless transmission.
With onboard storage you can use an SD card writer such as the ADA254 or a flash module such as this one from Amazon. The basic idea is that the builtin memory on the Arduino Nano erases itself every time the system is rebooted to make room for the new data the program will have to process. If we want to store the data more permanently then we would have to add that capability ourselves.
Both of these add-ons use the I2C communication built into the Arduino platform, so we can add as many as we would like, but there are benefits and drawbacks to each. An SD card writer would allow us to write the data to a removable card that we can plug into just about any smartphone or read with an SD card reader on almost any computer. The downside is this storage can sometimes be a little slower to write or read, and because the card is mechanically connected to the pins on the writer with pressure from the bracket, it might not withstand the stresses of rocket flight well, potentially resulting in data loss or a lost SD card.
The flash memory add-on is a great option because it can be faster to write to, and doesn’t have the mechanical weaknesses of the SD card, but the major drawback is that you can only retrieve the data by plugging the flight computer into the USB port on your main computer to download the data.
Both of these are inconvenient as primary data transmission methods because neither provide realtime data monitoring. Also, if the rocket flight ends in rapid unscheduled disassembly or a vertically premature arboreal landing, the data is gone for good. More on what I’ll call RUD and VPAL later.
All of these systems are small and lightweight, so we don’t have to worry about payload limits, but I’d really only be interested in onboard storage as a backup, in case wireless telemetry cut out mid-flight. My primary telemetry option needs to be wireless.
In order to achieve wireless communications you typically want to use Radio Frequency communications, which simply means that it’s sending the signal using Electromagnetic waves. One alternative would be light, like the infrared diode and sensor used for television remotes. This isn’t very effective on bright sunny days, though, and can be interrupted by visually opaque interference, such as rocket exhaust.
Another RF alternative would be sound, but the frequency is too low to be able to fit a reasonable amount of data in the signal, and it travels through the air too slowly (our rocket could reach 0.8x the speed of sound). Also rocket launches are audibly noisy, which makes for an all around poor environment for audio communications.
Luckily there are quite a few available RF options for the Arduino. The Arduino Nano 33 BLE Sense even has a built in Bluetooth LE SoC (System on a Chip). Bluetooth LE is a great technology for close-range wireless communications, and it would offer some cool smartphone integrations, but at 100m max range it’s just not strong enough for a rocket that’s built for 1km flight. This limitation also rules out any WiFi options.
The main reason why WiFi and BLE are poor options is because they use higher frequencies to transmit more data at a time. The tradeoff with higher frequencies is that it requires more input power to generate the same amplitude of electromagnetic wave. Since our telemetry system will just be powered by a typical 9v battery, we need a lower frequency radio to be able to transmit further without requiring more power than the battery can supply.
Another design consideration in the US is which frequencies we are legally able to transmit on. Luckily most of the devices that we can purchase online are pre-approved by the FCC and don’t require licenses to operate, but you always want to be careful and make sure you choose a frequency that won’t interfere with important uses such as emergency services, aircraft operation, or life-sustaining medical devices.
The massive chart above shows all of the frequency allocations in the US. Needless to say it’s probably just easier to google search the frequencies you would like to use and read what people are posting about them than to try to figure out licensing from a chart like this.
I started out building with the HC-12 RF chip, which uses the 433MHz band. These chips are great because they’re tiny, cheap, low power and the low frequency gives them a longer range for less power input. The (massive) downside is that transmitting legally on the 433MHz band requires a HAM (amateur radio operator) license. I don’t have one of these, I don’t want fines, and it will take me a few weeks at least to study and take the test.
I was able to find an alternative 2.4Ghz chip that is somewhat larger with a more limited range, but since my first flights will not be very high power, I probably don’t need the full 1Km range yet anyway.
When you’re prototyping electronics you’re going to need to plug and unplug wires quite frequently, so you don’t really want to be soldering every connection every time (although even when I solder I quite frequently have to undo and redo my wiring). There are a few things that you will need, like resistors, a solderless breadboard, and some connectors. To make this easier I just picked up an electronics project kit that included every component I could possibly ever need. I also have a separate connector kit that I can either use on solderless breadboards, or to make more precise runs on a soldered circuit board.
Another great thing about the kit is that it comes with a knockoff Arduino Uno. I wired this up to another RF module with the same configuration as the onboard system, and it’s ready to rock!
In my next post I’ll discuss exactly how you wire the transceivers to the Arduinos, and the code that is required to run them.