V303/X380 Quad – Adding a Micro MinimOSD Module – Build Log (Video)

I have had several standalone OSD attempts on my XK Detect V303 to this date.  My quad is the newer version, so it has a lot of the same x380 hardware inside.  The first OSD I got second hand, the EZOSD by ImmersionRC.  I mounted the modules on the outside of the quad and put its GPS module in the canopy dome near the eyes of the quad and shielded it.  I ran into issues where it would take well over 6 minutes to get a good lock, requiring about 10 satellites (out of say 13 visible) to do so.  If you would fly prior to the lock you would get wacky altitude readings.  So I then tried a second hand DragonOSD and this one couldnt even get a lock, most likely defective.  At this point I had decided to give the MinimOSD a shot, since some people in the RCGroups had successfully done so.  And that brings us to this build and all the juicy details.
**update 5/3/2016** It was confirmed, to get video voltage warnings to work, instead of using “3”, set it to “30”.. also, I was able to get RSSI output from the FrSky D4R-II receiver via its channel 2 (#2 pin) working. It might be necessary to change this entry in config.h from a 3 to a 2.
#define RCRSSI 2

  • Micro MinimOSD via Amazon $13
  • FTDI USB Adapter for flashing/programming via Amazon $6.99
  • One V303  or X380 Quad


  • Arduino Link
  • MinimOSD (initial plain vanilla) Software  here (MW_OSD R1.6 at the time of this writing)
    • MW_OSD configured for x380 originally  located here
    • MW_OSD_GUI (to configure M-minimosd with the FTDI USB Adapter after flashing) (this is part of the MW_OSD R1.6 software)

V303/X380 Quad installation

The biggest challenge is installing the micro MinimOSD in the quad, or rather in my case, on the outside of the quad, but also finding the right wires to do the whole thing.

Here is a shot of the diagram of how the wiring is done: 


As you can see, what i’ve done is add two servo wires off the (Flight Controller) FC Mainboard 11.1v connection and send that to a UBEC/BEC 5 amp.  I do this because I wasn’t sure on the mA supported by the 5V connection on the board.  Side note:  the gimbal connection of 3 pins offers 4.97 volts as an aside (battery reading 11.81 at the time), whereas other 5v connections only read around 4.71 or so.  But I still wasn’t sure of the mA supported and some users reported spontaneous rebooting of either the FC or OSD or both if not using a BEC.

I’ve opted to install the BEC on the inside of the canopy, where i think it should be ok as far as getting hot is concerned.


Inside the canopy I could wire into the pin #3 on the FC for the GPS signal to go to the Micro MinimOSD RX port.  I send this wire to the outside since I’m putting the Micro on the outside.  You can do it this way, or later in my pictures/videos you’ll see I ended up tapping into the third wire from the right on the actual GPS wire (spliced one in).  I was troubleshooting an issue at the time and ended up doing it that way.

fcboard2 use for wire splice exampleWEB

My camera and VTX already are powered on the outside via a servo connector (12 volts), which I already had a lead coming off the FC Board’s 11.1 volt connector.

To keep wires from moving around on the inside I also applied some hot glue near their connections (see picture above).  I also previously added more EM Shielding tape around the existing GPS module in the dome of the canopy to prevent interference.

I also soldered one single wire to the LED location on the board (don’t need ground since its already grounded).  I used the second wire from the “right” off of the LED wire plug.  This goes to Bat2.  The reason for using this is because we can get voltage status (meaning is it red or not) to indicate what mode the quad is in (and since we monitor voltage already for the flight pack via the main battery).


Currently we can only really monitor if its flashing Green or a solid red, so RTH or GPS locked, out of range.  The exact volts we will watch for depend on what you set the “Voltage Adjustment” to in the GUI.  For instance, setting to 212 in the GUI results in Green flashing being 3.3 volts roughly, whereas a red solid becomes 2.8  (or if you set it to 255 Green flashing is 3.9 and Red solid is 3.3).  Based on this you can set the cutoff in the GUI (warning level).  I’m going to leave it at 212 and go with a warning of 3.0, this way I can do a voltage swap in config.h for bat2 for bat1 and use decimal values for the warning on the main battery (more on this later).

Here is a picture before I secured the micro minim to the outside of the quad using hot glue and wrapping in electrical tape to prevent shorts.  For now I’m hoping it doesn’t get too hot to be an issue, otherwise i may need to think about heat sinks or similar in addition.

micro osd with plugged in wires better angle hereWEB

And after securing to the outside…



Micro MinimOSD Flash/GUI Steps

  1. The first thing you need to do is solder the pins that come with the M-MinimOSD, at least the ones to flash it.
  2. Make make sure the drivers are installed for the FTDI Adapter.  In Windows 10, which I have, you goto device manager and find the device and update its driver via windows update.  Otherwise there are drivers here.
  3. Install the Arduino software.  Now we connect the usb adapter via the leads to the MinimOSD per below (note: i had to reverse the RX/TX on one end to make this work).ftdiWEB
  4. Once connected to the MinimOSD you can then connect the USB to the PC.
  5. First we wipe the micro minimosd to start fresh…  Open the Arduino software and go to the menu, choose EPROM reset from Examples, EEPROM.. EEPROM_Clear
  6. Now open the file  WM_OSD.ino from the “clean” R1.6 folder you downloaded.
  7. Select the board (Tools.. Board):  Arduino Pro or Pro Mini for Processor atmega328 16hz, 5v and I left the defauult programmer set as AVRISPK_MKLL
  8. Select the Serial port (Tools.. Port), in Windows it will be one of the COM ports, but for Linux/Mac it is /dev/tty.*
  9. Go to the  tab for config.h you need to comment out the #define CLEANFLIGHT (put two slashes // in front of the line to disable it)
  10. Also remove the  // effectively uncommenting GPSOSD_UBLOX
  11. Under config.h, osd hardware settings we can swap battery voltage changing // #define SWAPVOLTAGEPINS to #define SWAPVOLTAGEPINS enabling us to swap bat2 for bat1, using the “Main” as the battery voltage and Video as the LED indicator voltage.
  12. Add  // (comment out) the BAUDRATE 115200 and remove the // from the one for 57600 (enabling this option instead)
  13. Remove the // from #define HIDESUMMARY   (eliminates random summary from popping up)
  14. We must comment out (disable via //) #define GPSOSDHOMEDISTANCE 2     [we do this because otherwise if no speed and close to home it will show the summary]
  15. Under Temperature Settings, comment out with // the Temperature Sensor
  16. Go to the menu to Sketch, choose Verify I get MWOSD R1.6\MW_OSD\GPS.ino:72:4: warning: narrowing conversion of ‘222’ from ‘int’ to ‘const char’ inside { } [-Wnarrowing]
    (this is ok)
  17. Press Upload (the Right arrow).  MinimOSD will get flashed with the latest MW OSD software
  18. Now open the WM_OSD.ino from the custom version downloaded above and check its config.h entries for the same things we did to the vanilla version above
  19. Press Upload (the Right arrow).  MinimOSD gets flashed with the custom MW_OSD
  20. GUI:  From the subfolders of the R1.x software open the GUI via MW_OSD_GUI.bat under MW_OSD_GUI\application.windows64 for windows x64.. (in my case only Windows 32bit version worked)  **Note you must install Java for this to work ***  (see the screenshot below for the settings i use beyond what is listed here)
  21. GUI:  configure OSD to select Baudrate 57600. Otherwise, OSD will showing NO GPS
  22. GUI:  the font section, choose the default font (or whichever you prefer) and click Upload to upload to the OSD (otherwise you will get strange characters like below)
  23. GUI:  Also ×100 distanze alarm, X10 altitude alarms, Speed alarm 0, Timer alarm set all these to 255 or you will get flashing altitude and speed indicators
  24. GUI:  Change / load saved settings if you have made them (click, in my case COM6 to activate ability to update), otherwise make new selections here and Upload to the OSD.  See below for how I have mine configured (mine also use the SWAPVOLTAGEPINS in config.h as in Other Notes below)
  25. GUI:  Click Close comm port


Other Notes

For battery volt alarms for my initial attempt i set the warning on the main at the default stock first warning of 11.1 volts (i will likely drop this down to say 10.6 first warning in the flight control software and maybe 10.3 on the auto land, and then maybe go with say 10.9v as the GUI warning, meaning if at a high altitude come down soon).  For Voltage Adjustment I have it at 212 for the Video (works out nicely to set an alarm at 3.0 volts, so when red / green flashing its at 2.8 and it will warn).  For the main voltage adjustment I went with 210, as this is very close to what i read on the meter (the lower this value, the lower the reading in the OSD).

So far the video battery monitoring warning flash doesn’t work when it hits 2.8.  This likely will need a code change of some sort to enable.

**It may also NOT be necessary to do the EEPROM clean, then the clean vanilla R1.6 flash (with line changes) + the Custom updated one (with checking that the changes are in place), but rather, just the EEPROM Clean + the updated custom file above, which contains all the changes needed  (subsequent updates seem to show this as working).  Likewise, if a code change is needed you can later likely just re-run the code change ino file, rather than running the EEPROM Clear again first.  **

Once all the above is done you should be flying high with Micro MinimOSD and the x380/v303 quad and can make adjustments as needed.



blog comments powered by Disqus