First of all: Arducopter is a really great an sophisticated project.
This is my fourth multirotor and my first Quad with APM 2.0 (others: Quad multiwii, Tri multiwii, Quad Naza, Blade mqx :) ) and the apm2 flies really well in stab mode - though acro seems to me is still the domain of multiwii, even compared to the - in my opinion - highly overrated naza (btw i will def. not buy another naza unit for several good reasons, but thats only me). I will dig in tuning the GPS-thing after the next FW release because i only use RTH as failsave and that works quiet well for me on stock settings.
After googling and reading the wiki i still have some points:
1. I use the FrSky D4FR in ppm mode (jumper) on my apm2 (jumper). It also puts out the rssi signal as pwm. From my understanding the apm needs an analog voltage as rssi input. Is there a software way without extra components to put the pwm rssi directly into the apm? It would be nice for the OSD.
2. I have the FrSky Ampere Sensor (FAS-100) sometimes connected to my other setup with FrSky D8R-II receiver. This ampere sensor puts out a serial data stream. Is there a way to connect it to some serial port on the apm and get it read out by the software? It also would be nice for the OSD.
For the first time i use the very cheap Hobbywing SkyWalker 20A ESC in my quadsetups (9,50€). They use the SIL chip - so no flashing at the moment. Sometimes not all of them will arm at 490Hz PWM frequency so i lowered it in the missionplanner to 400 Hz and the issue is resolved. Besides this they fly very well don't heat up (with 12A rated motor) and i didn't notice a different flightbehaviour from the lowered pwm freq. What are your experiences with these ESC at 490Hz?
4. For voltage monitoring of my 3S (max 12,6V) setup i use the diy voltage devider in the picture below. I calibrated it in the missionplanner with a multimeter and it seems to work. Is it ok like this or is it dangerous that way?
Thanks for your patience reading this stuff!
Thank you for your input!
Concerning the RSSI i have another idea! Altering the arducoptercode is (even if i could) not a good idea, because it will steal precious processing power and make future FW updates problematic. Besides this i can't see the benefit of the APM knowing the RSSI status. The minimosd has an arduino cpu, if it is not occupied too much doing the videofeed and if it has a free usable inputpin (fine soldering, of course) it would be the best to let the minimosd do the RSSI/PWM decoding. I asked about this here: http://diydrones.com/forum/topics/adding-extra-functions-to-minimos.... So long no reply. I downloaded the code but i do not understand how the arduino and the videochip work together, seems to me like sending some altered Ascii codes to the videochip or library. From the schematic of the minimosd there are a lot of free pins on the arduino. I will dig into this as soon i have time. For the ampere sensor i don't see a solution. The serial port of the arduino is occupied with the APM. Perhaps there is a way to emulate a serial interface with other arduino pins - but that is def. way beyond my capabilities.
Update to point 3: With the new FW 2.7.3 i left the PWM frequ on 490Hz an i had no arming problem with skywalker 20A ESC anymore. I am not shure if the problems i had occured before i upgraded to an extra BEC for my apm 2.0. So no 490Hz issues with skywalker 20A esc. My quad flies stable like a rock. rateP 0.2. If you just fly 3s and don't need flashed esc they are a really good bang for the buck.
Problem 1 solved. I will post the code later, it's dirty but working like a charm.
I will not try to solve problem 2 because Frsky uses 12V Rs232 level perhaps also inverted or something. I will probably fry everything by trying to build a levelconverter. Even if i would manage this i would still have to mess with a softserial code.
I reached my limit by solving 3 of 4 problems :), it could have been worse...
Ok, you don't want it - but you get it now because i know what you don't want :) !
So the warnings first:
1. It is not the official firmware, it is based on the work of Gabor here:
2. The codechanges have just been tested by me on my FrSky D4FR.
Now a completely OSD independent tip: I read reports that the successor of D4FR - the D4FR II has sumsignal and PWM RSSI on different pins! So check this out first because in the worst case the falsely suspected sumsignal can arm your copter and make it jump in your face....
Other PWM RSSI signals might be interpreted as well (like Scherrer UHF) perhaps with a slight software change (see below). In any case make sure, that your RSSI PWM signal does NOT EXCEED 3,3V! Otherwise you will risk burning the input circuit of your arduino. In that case a voltage devider (wiki) may come in handy. The levels of D4FR are save.
3. The changes are quick and dirty so the parameter "Throttle" in the GUI is used for the RSSI value display. That means clicking and positioning "Throttle" really does placing the later displayed RSSI value. I don't know why you need throttle displayed anyway, because you have it under your finger.
4. The changes and soldering are done at your own risk.
Compiling the code:
1. Start Arduino 1.0.1
2. Select under files/preferences the folder of my sketchbook as sketchbook and save.
3. Close Arduino and restart it with ArduCAM_OSD
4. Compile and upload. (Arduino promini 5V, 16MHZ)
5. Now start the Gui (MyOSD_PWMRSSI\Config tool for 1.29\OSD_Config.exe). Now you can choose between 2 charsets for upload:
5a.MyOSD_PWMRSSI\DotLineRSSI.mcm shows a dotline as horizont.
5b.MyOSD_PWMRSSI\SolidLineRSSI.mcm shows the regular C64-style horizont - like always.
Choose your charset and upload. The "MBM" at start simply had to be! With this program (]http://www.maximintegrated.com/design/tools/applications/evkit-soft...]) you can make your own charset.
Adjustments for different PWM signals:
A small difference (5 to 7%) between the OSD and your LCD display (in my case Frsky DHT-U) is OK. I would suggest a small alteration of the code if the difference exceeds 10%.
In the main program you can see in line 176:
osd_throttle = constrain(pulseIn(RSSIPIN, HIGH,1000)*10/25,0,100);
The divisor of 25 is arbitrary. My D4FR PWM RSSI returned a value of 250 at 100%. It goes without saying that you have to increase the divisor (for example to 26 or higher) if the OSD - displayed percentages are too high.
Room for improvement:
The current readout of the RSSI PWM with "pulseIn" (http://arduino.cc/en/Reference/pulseIn) is rudimentary and never so correct and time effective like a interrupt driven readout. This exceeds my programming capabilities.
Integration into the actual Gabor version.
P.s.: Here is the link to the German forum: http://fpv-community.de/showthread.php?9891-MinimOSD-Clone&p=19...
Episode update of "You don't want it - but there you have it"
I increased the accuracy of the PWM RSSI display significantly. For my needs this version if final.
The text "Adjustments for different PWM signals:" is changed accordingly:
Adjustments for different PWM signals:
A small difference (1 to 5%) between the OSD and your LCD display (in my case Frsky DHT-U) is OK. I would suggest a small alteration of the code if the difference is higher.
In the main program you can see in line 176:
osd_throttle = (osd_throttle+osd_throttle+((pulseIn(RSSIPIN, HIGH,500)*100)/255))/3;
The divisor of 255 is arbitrary. My D4FR PWM RSSI returned a value of 250 at 100%. It goes without saying that you have to increase the divisor (for example to 260 or higher) if the OSD - displayed percentages are too high.
P.s.: The Zip contains this description in GER & ENG, the updated code, two charsets and a picture as soldering info.
I did a video of my FrSky PWM RSSI efforts:
BTW the last zip is missing the "Gabor.mcm" in the config utility - no big deal just copy the missing file from the last zip or from his google code page http://code.google.com/p/minimosd-extra/source/browse/#svn%2Ftrunk%...
Damn not a perfect zip! It's very difficult to release "perfect" software - because it never is.
For the lazy ones (like me) i upload the zip from the last post again with the missing file.
P.s.: I will try to delete my other attachments. So the missing file message from this post is obsolete. This is getting recursive.....
This is fantastic work. I was getting ready to build a separate PWM to analog converter when I happened upon this thread. Do you have any updates for this?
Wow, I can't believe you didn't get any responses to this! Thanks for sharing your research. I am using DORA to integrate RSSI to my MinimOSD, and definately appreciate your work. Thanks, Al
Thank you very much for your feedback! I am very happy that it works for you, but i wonder why :)
I googled a little but DORA generates an analog signal? I wonder how it works then. PulseIn can only read pwm signals and the arduino can not read analog signals on MISO pin. The only explanation for me is that the Dora analog signal has enough digital jitter in it to be interpreted by pulse in.
I guess I phased that wrong; it was my intention to use DORA on the APM2.5 system I am currently building. I hadn't looked into it yet. The DORA was from the previous Cyclops OSD system that I had on the aircraft. I bought the module so that my Spektrum (DSMX) radio would work with Cyclops RSSI input. The Spektrum radios send a digital signal (not analog), so the DORA translates to analog. Looks like I now have the reverse problem. I need to research the compatibility between the APM2.5 RSSI input and my AR8000 receiver. The AR8000 has telemetry, so the DSMX signal is digital to accommodate the telemetry. Al
Rob, Sure appreciate your efforts! It surprises me that there is not more interest in utilizing something like this! Although the coding is way beyond my abilities, I think I could manage the integration and the soldering. Is there any chance of uploading a picture of where you input the PWM signal exactly? Is it just the signal going from FRsky to the minim or do you need more then one wire (ground possibly)?
Thanks in advance. Mel- California/ US