I love this mod for a number of reasons, chief among them is that its a bit of a triumph of coding for me personally, although I did cut & paste some of the value averaging this whole program was pretty much documented and written by me and; most incredibly it does just what I intended! yay!
It’s actually been over 4 yrs since my intial extra-primative kinetic deployment of our elf on a shelf (my wife wasn’t impressed), but this version really delivers on all the shortcomings of this initial concept.
Since building it I’ve noticed a few others with the same notion post their versions of this so I guess the cats out of the bag and I’ll post mine. At this point DJI is probably well aware that this is possible and if this hack gets popular its easy to imagine them firmware updating so that the color change is only possible while landed or just revoke that feature entirely. Obviously if they wanted to add an aux channel to their consumer products it’s a trivial matter, so here’s me hoping they just leave the mini 2 be!
Ok, so with that out of the way here’s my particular recipe for added utility:
The first thing to cross my mind when I saw the DJI mini 2 demo was “I wonder if they’ll let you change that light while flying?”- the obvious realization is that this can be turned into an auxilary feature.
I kind of did this the hard way after making the unexpected discovery that you can actually use a SMD LED backwards- by that I mean it will work to generate a detectable current upon receiving assorted wavelengths of light. I measured the results of assorted color choices that DJI allows and sorted out three colors that are the most distinctive, initially I used two LED’s but then boiled it down to one. I pressed it up onto the LED and then bonded it flush and covered it to reduce ambient light while allowing the colors to still show. The program was coded first onto an arudino nano for testing convenience and finally onto a Tiny85 for practiality which fits nicely onto a sub micro HT85 servo. This is a great little servo that I’ve used on a good number of projects. It’s great for a few reasons: It runs on just 3.3v of power and draws a tiny amount of current. This means I can often use it on a power source meant to drive only logic and not an actual motor. The DJI Mini2 happens to have such an output on the main PDB board- which is weird, but incredibly lucky for this project. I really don’t know why- it’s a factory PCB which they certainly discourage any users messing with, and yet- there it is. Woo hoo! I’d bet they removed that and the changeable LED from the mini3 at least partly after this realization but I bet this would also work for an SE.
Anyway, so basically, the code reads the value of the LED(aka. “light sensor”) which is stuck in turn to the Mini2’s actual front LED. When it corresponds to a defined range, it will react by moving that tiny servo to one of 3 positions: Left-Center-Right. This allows a loading position, and two droppable payloads.
Some applications (so far):
- Dual water-balloons.
- Egg-drop experiment
- Paper airplanes
- Stuffed animals
- Birthday Shot/Parachute
- Golfball/Fishingline (this takes a bit more description but essentially for tree trimming & limb tying)
- Test flight of whale tag module
- Test flight of Android Glider (in progress)
Of course the rational way to do this is to use a conventional LDR, and after one of my Mini2’s was damaged I did switch to this approach. Even better, just tuck it into the little black shroud behind the LED window and bend the legs on the LDR so that the sensor face is toward the LED and away from the window/outside light. Then seal it all back up again- I even put some black epoxy on the backside to reduce ambient light further. This yields a seamless install with a very distinct on/off signal with any color.
For best results, I recommend using an alternate to DJI FLY like Litchi. If you use Litchi, you can assign the accessory button to toggle that fron LED on/off which is perfect because it allows you to simply hit that button to drop without the need to pause & navigate to the menu and choose a color or toggle.
The cute little mount I created for this project ended up pretty nifty as well. It’s oriented specifically to avoid blocking airflow from the motherboard, and it can easily be clipped onto or snapped off with the payload attachment right on the CG. I added a little 3 pin connector just under the gimbal to engage this module, so you just plug in and snap on, and you’re good to go! The whole assembly is so light that the drone remains under 249g even with all this attached and range of functionality is identical to the Mini2 since it’s using the same battery power and radio signals.
The servo chassis is designed with an integrated spring action to attach and release and it holds on sufficiently tight, but use some care in taking it off because it can break if you’re not careful. Also, it will take some precision 3d printing- it works best on a resin printer with durable resin, but you can get away with a quality fillament print.
IMPORTANT: You will want to disable the Mini2’s IR & camera sensor on the bottom or one of two bad things can/will happen:
- If you don’t disable it, it will sense your payload (or maybe this servo assembly), believe you are trying to land and descend toward what it thinks is ground.
- Worse: If you don’t use a good blocking method, it can be partially disabled, see what it considers some obstacles and move up- it can & will do this repeatedly and you risk it flying off into the clouds if this happens. Typically you will still be able to tell it to land and such, but this is surely something you should avoid by:
Cover all 3 of these sensors with a nice sticky piece of metalized film tape. IR can go through thin regular tape. It’s actually readily available (commonly for HVAC use) and works great. All you need is a tiny piece.
When it is covered on startup, your drone will ignore data from these 3 sensors.
Finally, these things are all generally true for my particular setup, firmware, etc. It wouldn’t surprise me if DJI changed their firmeware to specifically discourage/eliminate this. YMMV. I test my drones inside a fully enclosed trampoline so they don’t fly off and so that they can crash into a bouncy surface and not get damaged. In lieu of a trampoline, I’d suggest a fishing line tether, or at minimum a test under a tall tree (& maybe carry a nice butterfly net nearby).