ArduCam OSD - Now with a logo, project site and public code!

Now you can know more about the project, follow the progress and test it yourself.
Take a look at the wiki on the ArduCam OSD Project.

Just a little teaser for you to think:
How about USB host and OSD on a single tiny board? Not bad, eh!?

Well... stay tuned.

Views: 7365

Comment by Sandro Benigno on November 27, 2010 at 2:09am
@Mogly: The ArduCam is focused on Canon Power Shot line for now. If you have an Canon EOS, you can adapt the code by using Oleg's EOS implementation.

But, anyway, unfortunately your Sony cam probably have no PTP remote control. Take a look at this list to understand better the question.

Comment by Sandro Benigno on November 27, 2010 at 2:52am
Hi Oleg, I'm very happy to seeing you here! That's great!

BTW. On Mini USB Host Shield I saw that you added double pads on the special pins connected to Arduino.
It was fantastic! So, we can cut the original tracks and change their location if needed. You pretends to keep it flexible on the internal SPI implementation too?
Comment by Oleg Mazurov on November 27, 2010 at 9:34am
I placed double pads (AKA solder jumper pads) on rev.1.1 board for convenience. It basically shows you where to cut the trace. You can cut traces on rev.1.0 board also.

SPI is simple. If you need to change SS pin for the USB host shield, there is a #define for that in Max3421e_constants.h. If you want to modify USB code to work with some other SPI class, all you need to change in USB code is 4 short functions (single and multibyte write and read ).

Comment by Jose Julio on November 27, 2010 at 9:57am
Great work Sandro!!

Comment by Sandro Benigno on November 27, 2010 at 11:37am
@Oleg: Ah... OK. ;) English is a problem to me sometimes. I tried to say that you doubled the number of solder pads for that pins. I just noticed that the extra solder pads are not present on the Sparkfun version of your hardware. So, when I bough the Mini USB Host from you, I saw that option and like it a lot.

There is no problem about changing the SS at code or even rewrite the SPI implementation due it's 99% hardware based. You did all the hard stuff by implementing the Max3421 code. The rest is simple even for enthusiastic newbies like me.

Comment by Sandro Benigno on November 27, 2010 at 11:58am
@Jose, thank you!
I hope we can try the camera control on ArduCopter asap. :)
Just think about the possibilities... like shooting the cam by angle intervals using DCM info. Something like "auto-panorama" script.
Comment by Oleg Mazurov on November 27, 2010 at 12:52pm
@Sandro - now I understand which pads you are talking about :-). I always include them to make rearranging pins easier. I have those pads on my full size usb host shields as well.
Comment by Bill Noyce on November 27, 2010 at 7:32pm

Here is the ground station i am working on. It started out being based around an arduino Duemilanove but it soon became clear that having multiple serial ports would speed development and also make it possible to include a GPS for many fun uses in due course.
It is very experimental and is intended to be part of a complete image capture ground station:

I decided to use a separate live video downlink for basic camera aiming.
The analog controls were initially for PID tuning, but i see them now being more useful for positioning the camera and zoom.
A fun addition was the inclusion of the I am ready has a cepstral text-to-speech license so i created a library of wav files to speech out any number below 999999 to communicate information like: mAh used/remaining, altitude above launch site, flight mode, waypoint details etc
Currently the idea is to move the comms over to the APM_BinComm protocol and in the air have the APM doing a command passthrough to the USB camera host board. Then on the ground use a virtual serial splitter running my laptop so that both a software GCS and my hardware groundstation can share the one telemetry link, but this idea is not fully tested yet!
Comment by Bill Noyce on November 28, 2010 at 7:59pm
I have managed to get the following communication all working

hardware GCS <-> xbee ----------- xbee <-> APM <-> USB Host Arduino -> Canon G9

Here are a few notes which other people might find useful and which might save others from making the silly mistakes which i did!

The USB Host Mini shield must be run at 3.3v because the MAX3421e USB Host chip requires it. By default the USB port Vbus is hard wired to the arduino pro mini board and shield's Vcc, so by default Vbus is 3.3v which was too low to trigger my Canon G9 into realising it was connected via USB. So as documented over at I cut the trace and fed Vbus with 5v

I then blindly went ahead and wired the USB host into the APM Serial2 pins only to find that the pins are in use talking SPI to the shield's ADC chip! [note to self: read schematics...] So the only Serial port available once in the air is Serial0 which is wired into the FTDI chip. The only consideration here is that the USB host arduino does need to be disconnected from the Serial0 pins when uploading APM code.

I have slowed down the baud rate to 9600 on the link between the APM and the USB Host Arduino. I was having problems at 115200 getting the Arduino Pro Mini to read a APM_BinComm message reliablely.

The APM is simply pushing all serial bytes it receives on the xbee port ( Serial3 ) through to the camera host port ( Serial ) in due course it will only pass messages with IDs associated with camera control. Incoming BinComm data with MessageIDs setup for the Camera USB Host board are ignored by the APM and it is left upto the Camera USB Host to acknowledge these messages.

The next plan is to move the comms across to the MAVLink protocol.

Comment by Sandro Benigno on November 29, 2010 at 5:17am
@BillI - Very interesting the box. Recently, I bought a 3.5" display from a car parking monitor system. I'm designing a small one to attach on TX. :)

Do you tried to test the MiniPro without change the VBus to 5V?

Serial 2 isn't talking SPI to the shield's ADC chip". SPI don't uses UART line. SPI uses miso, mosi, sck, ss and sometimes other pins to do the chip selection of more slaves.

I will use "telem port" from IMU board to communicate with the camera control when using just TX to control shot, focus and zoom.

If you wanna use XBee on IMU telem-port and talk to CameraControl at same time, you can solder a male header at the side of IMU to expose the first UART port, like I did here:

Let's talking about. I need to concentrate at the OSD part for now. This is why I bought the 3.5" display. I will use it instead a TV. Hehehe :)


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2015   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service