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
is there one with sonar range?
Same issue here but on the 3DR 2.0 board and MiniOSD v0.2. I can't even get the OSD to work right, it will boot up then just say "waiting for heartbeat"
Any ideas on why?
Hi Nate! What is your APM board?
@Nate, is that ArduCopter? It seems like the latest ArduCopter firmware is ignoring those params. I'll check that with Randy.
Me too. set the params as listed, no osd communication unless i connect to the 3dr radio first... I rebooted, and the params are still there, but no luck. Any help? Thanks,
@Eagle, so even after setup those entries above and saving it to the EEPROM it doesn't work? That's weird.
After writing the params (on a previous session after a boot up) if you load the parameters from APM are the SERIAL_BAUD and SR3_* still there?
@Juan: I don't know if you saw my answer. Just in case... take a look at this: http://code.google.com/p/arducam-osd/wiki/Specific_Hardware_Diagram...
@Eagle: You can go to Mission Planner and set the parameters manually. So, when you save it to the ArduCopter EPROM it will remember the data streams at the next boot up.
Here goes a list of needed params with suggested values and the respective meaning of them:
SERIAL3_BAUD, 57 (telemetry output at 57600)
SR3_EXT_STAT, 2 ( 2hz for waypoints, GPS raw, fence data, current waypoint, etc)
SR3_EXTRA1, 5 ( 5hz for attitude and simulation state)
SR3_EXTRA2, 2 ( 2hz for VFR_Hud data )
SR3_EXTRA3, 3 ( 3hz for AHRS, Hardware Status, Wind )
SR3_POSITION, 2 ( 2hz for location data )
SR3_RAW_SENS, 2 ( 2hz for raw imu sensor data )
SR3_RC_CHAN, 5 ( 5hz for radio input or radio output data )