In my last installment I explained how I got the firmware working for a 12x LED NeoPixel Ring. In the first installment, I explained my experiments and how I determined what NeoPixel Ring to use. In this entry, I’ll explain how I mounted the ring to the Crazyflie. I thought the mount would be hard but, using simple double-stick mounting tape (like the kind used to mount the battery), it was extremely easy. After many flights (and a few crashes on hardwood floors), the mount is still holding very tightly. This is how I did it.
I soldered the ring via three wires directly to the through-holes of the expansion header. To make life easier, I first soldered fairly long (a few inches) lengths of wire to the Crazyflie, then I cut down the wire to just under an inch or so. Red for power, black for ground, and green for data. Once soldered to the Crazyflie, I soldered the wires to the NeoPixel ring (taking care to get the right wires to the right through-hole and also making sure the ring was LED side down when the Crazyflie was right side up). This task was not hard and once the ring was soldered on, the short wires left a little less than a half inch between the ring and the Crazyflie PCB. This was just enough room to get the mounting tape in there.
I cut seven little rectangles of tape about 1/8 inch by 1/4 inch or so. The first one I put directly on the Crazyflie’s µUSB port. This is what I considered the “main” mount point as it has the most structural integrity. It also posed a physical limitation because it acts as a standoff for the ring. Because of its height, the ring can get no closer to the PCB than on top of the µUSB port.
For the next three corners of the Crazyflie PCB (between the motor arms), I visually lined up where the ring and the PCB met and put one of my little tape rectangles on the PCB. On top of that tape, I placed another piece of tape (tape on tape). The thickness of the foam of this mounting tape made it so two pieces stacked on top of each other came close to the height of the µUSB port with one piece of tape on it. These three corners I considered “secondary” mount points because, while they held the ring in place, they didn’t offer much structural integrity. A nice side effect of this though is that the three mount points together held pretty tight and the flexibility of the tape on tape made for a cushioning effect so that the ring is tightly mounted but not rigidly so. I think this makes it significantly less prone to problems when crashing.
Once I was sure the ring was centered on the PCB (because of its diameter, this was very easy to eyeball), I press fit it tightly. Using my fingers as a clamp, I held it in place for a minute, squeezing the three squishy, secondary mount points until I felt the adhesive had set. I gave the Crazyflie a quick power-on to make sure it was still working OK (it was) and the admired the modification which, honestly, looks like it was meant to be there (doesn’t look hacked on at all)!
The final test was the moment of truth. I connected to the Crazyflie to the Crazyradio and set the ring.effect parameter in the Parameters tab of the Python CFClient to 1 (my RGB LED test effect). It worked! 🙂 Alll I had left to complete the NeoPixel LED Ring mod, was to integrate controls into my controller so I could cycle through the effects and turn them off if I want to conserve battery power.
I’ll cover this final step in one last entry.