Hello guys!
I'm very happy to tell you that the MinimOSD is now in stock in the DIY Drones store!
And more: It goes with a nice customized CharSet and an open source OSD firmware already flashed! ;)
The firmware is Arduino compatible and it uses the original APM MAVLink messages to bring out with some nice features.
Here you can see the Artificial Horizon being tested on HIL side by side with the XPlane AH gauge.
Let me talk a bit more about the firmware that goes flashed on the board:
The current open sourced OSD implementation is part of the ArduCAM OSD project which has support from all the DIYD Dev Team.
The requested APM MAVLink messages are grabbed, translated and it's displayed pretty fast.
But... why it supposed to be fast?
Firstly, the OSD class descends from BetterStream from Mike Smith, which turns it able to format and print better than the Arduino's avr-libc variant does.
Second, the CharSet was rearranged to match the ASCII table. It eliminates the need for a "translation" layer.
There is also a smart way to write individual panels with less SPI transactions (that is conventionally used only to write the full screen at once).
The MAVLink parsing uses a reduced number of buffers, which fits better m328p's resources.
Those things above improves considerably the OSD job.
Our friend Jani already wrote the EEPROM routines to make it configurable. So, it has the base for an external configuration tool.
There is much more work to be done for adding functions and improve it.
We're pretty sure that it will be improved a lot in the hands of the awesome DIYD comunity.
Well, let's talk about features:
MinimOSD is able to work attached to the ArduPilot telemetry port in two modes:
1 - as master i.e. requesting rates of all required messages from APM (both TX and RX from OSD board are connected);
2 - as "sniffer" i.e. just listening to all the messages requested from the GCS (only TX from OSD board is connected).
The firmware auto-detects PAL or NTSC and adjusts the panels.
Until now it has this panels:
- MAVBeats pulse
- Altitude
- Speed
- Battery voltage
- Battery Remaining
- Throttle
- Number of Visible Satellites
- GPS Fix data
- Latitude
- Longitude
- Artificial Horizon
- Heading (0-360)
- Compass (N,E,S,W)
- Pitch
- Roll
- Distance to home*
- Direction to home*
*Based on spherical coords with geographic distortion corrected;
The hard work continues... but, the fun is already granted, of course!
Grab yours right now and happy flights! ;)
Comments
@Martins: Great that it's working for you now.
Thanks by your feedback.
Thank you, Sandro
@Yves: there is two ways to test your MinimOSD virtualy:
1 - using HIL and XPlane with MinimOSD connected;
2 - using OSD Config resource to send a telemetry log. Please, look at the end of this wiki page
Note: Remzibi has not support to MAVLink. His board concept is different. It means using external sensors.
@msev: MinimOSD concept is work with APM sensors. There is no exposed ports to attach and read external sensors. Isn't about writing a new firmware. Even if we try to hack it by using the SPI port... there is no analog input on it, but two digital ones instead. So... no way. That's another concept like on Remzibi and others.
Hello guys. This doesn't sound like a problem with the MinimOSD firmware or so.
One or two guys had this problem already. I spend some time tracking the issue thinking it was on OSD. However, I've discovered that their APM parameters on MP was wrong. We had even a registered issue here but, like I said, was not about the OSD. Please, check if your APM params look like
this (the numbers in front of each "SR3" line means the frequency for each set of data from APM):
SR3_EXT_STAT 2
When MinimOSD is stuck on "waiting for MAVLink heartbeats" that's because APM isn't sending data through the telemetry port. The reason is that would be:
1 - APM's telemetry port (serial port 3) parameters may not be set accordingly (see above);
2 - OSD's TX isn't connected to APM and you're using ArduCopter without an XBee (ArduCopter doesn't save MAVLink rate like ArduPlane does);
3 - OSD's TX is connected but it's interrupted or with a bad contact and so on.
Most of times --when guys reported it to me-- it occurred after a update on APM firmware without a fresh EEPROM reset. Please, let me know how it goes after check those things above. ;)
A NavLink emulator would be the solution. We must contact Remzibi. I think he would be interested if there is not ever considered.
Yes, current sensor and second battery will be very nice, in fact, it will be great if it can show any of APM2 analog sensors, so we can run for example RSSI, temperature, rpm and any other analog sensor through APM to OSD.
Hello everyone, is there a Navlink simulator? As the GPS emulator.
Yves.
@Chris Kreuzer: Like I said above to Pablo, that's because ArduCopter doesn't save what telemetry data was requested the last time it was connected to MP (or another GCS).
In that case, MinimOSD needs to "request rates" through its TX pin. It means that MinimOSD will tell to APM what information is needed and at what frequency it should be sent. E.g.: GPS at 5hz. IMU at 10hz... etc.
So, only after that request process, APM will start sending the telemetry data.
@PACEFE: OK, Pablo maybe not. But to use for example "Save to EEPROM" or "Read from EEPROM", you'll need your cable working fine. All those resources need to talk with the bootloader and so, the "auto reset" have to be OK. If not, you'll need to press the reset all the time, like on old Arduino boards.
Some extra infos:
ArduPlane code has an auto-save of last MAVLink request session. So, if you request data from telemport it will start sending data automatically on next APM restart even without nothing connected.
ArduCopter don't do that. So, that's why the OSD or MP need to request data every new session.
-
2
-
3
-
4
-
5
-
6
of 11 Next