Sandro Benigno's Posts (24)

Sort by

Canon DIY External Battery Adapter


It's been a while that I'm developing a camera control board and its software. That takes me hours sending commands for testing it on long shooting sessions. There was no battery enough here for such amount of tests... until now! ;)

Some time ago I've noticed a small hole on the battery slot of my S95. It is protected under a flexible rubber stopper. Well, then I decided to improvise and build an external battery adapter by hacking an old worn out battery. Two 3D printed plates and a female JST are now replacing the cell. By that way I can use external sources like bigger 1S Lipo batteries. Here go the images. It's quite simple, but very effective.

Battery tear-down:


The white plastic base was cut to be the female slot. The female cable was soldered on a little embedded circuit which has the contacts of the battery cage. A 3D printed core was build as two identical pieces:

3689575565?profile=originalThat's it! All the parts was glued with CA.

Now I can use external 1S Lipos or even a DC source who will give me hours of work with no interruption. =)


Note: If you will gonna do that, do it at your own risk. Here is working like a charm.

Here is the STL object. for 3D printing: Adapt_Battery_S95.STL


Sandro Benigno

Read more…

GeoTagging Images on Mission Planner



Geo-tagged aerial pictures are very useful for mosaic mapping as well as the creation of accurate 3D models from a terrain.

Michael Oborne added a great tool for injecting GPS data on the EXIF tags by using APM's telemetry log from a flight.
This tutorial was created to show you how does it work.
This is a work from Sandro Benigno and Guto Santaella who kindly provided the sample files and screenshots used for making this tutorial.


Step by Step


1: Open the Mission Planner and press "Ctrl+F". It will open a hidden screen, like shown here:


2: Click the button "Geo ref images".
It will give you access to the Geo Tagging resource as shown below:


3: Click the button "Browse Log" and select the telemetry log (.tlog) of the flight related to the shooting session.
Note: You can use both sources: the "Logs" folder from Mission Planner install or you can download it from the APM's dataflash through the USB port.
4: Click the button "Browse Directory" and select the folder where your aerial pictures was downloaded from your camera.


5: Just to illustrate, the screen below shows the mission used for creating this tutorial:


6: The next step is clicking on "Estimate Offset". It will try to extract the offset from the "Log Start Time" and the "Shooting Time" from the first picture taken.
The result shows "offset should be about...". You need to take the guessing and insert it manually on the field "Seconds offset".


7: Click the button "Do it" and wait until the processing is finished. The number shown in "Done... matches" must be the number of pictures taken. Otherwise it means that the sync isn't good enough.
8: After the previous step you can verify the positioning of each picture on Google Earth by clicking "Location Kml".


9: Looking at the example above you'll see the estimated position of a picture. You can click any images at the list on left to check it. If the position is not accurate you can step back and retry it from the step "6" by increasing or decrasing the "Seconds offset" a little bit, just like a fine tuning.
10: After finishing the tuning, all you need to do is click "Geo Tag Images". This process will add geographic data to your picture, i.e. Latitude, Longitude and Altitude.
The processing creates new files with a suffix "_geotag". The original set of pictures remains untouched.


11: You can check your pictures by visualizing the file properties details. You should see the inserted GPS tags on the EXIF data.

Thanks to Michael Oborne by one more awesome tool! ;)

Read more…


Introducing the Issue and the solution:

We've talked about FRSky's CPPM signal on this other post that compares it with a standard PPM signal. The issue is that originally FRSky's CPPM runs at 18 milliseconds. That short period has no space enough for 8 channels plus a proper sync pulse.

After carrying that issue to FRSKY, Jani came up with two FRSky's beta firmwares running CPPM at a 27 milliseconds period. We did test it at the DIYDrones Dev Team and it seems to work pretty fine.

Some guys at that old post were expressing their worries about the 37Hz update speed from the new custom firmware. However, keep in mind that probably you will not see any difference. Mainly if you aren't a crazily fast acrobatic pilot. Furthermore, our focus here is on drones. A good example is the Mission Planner that uses only 20Hz for joystick control.

Well, now those beta firmwares became official: There are custom firmwares for the receivers D8R-XP and D4R-II on their BetaTestSection. The links are now on FRSKY's download area. (Thanks Vladmir for the heads up).



About the Updating process:

Inside of each update zip file there is a PDF explaining how to update your receiver. I'll not describe it here because it's pointless.

Reading their manual you'll see that an FRSky USB cable is necessary. That adapter is a TTL level "USB to RS232" one.

But what's the difference from that adapter and a common "USB to Serial TTL" one? There is just a single difference: the signal is inverted. FRSky's adapter uses the RS232 logic but not an usual RS232 high voltage level that would vary from -25V to +25V. Though the receiver's serial input has internally not just an inverter but also has a RS232-to-TTL voltage level shifter as shown on the diagram bellow (from FRSky's Two Way System Manual):


How to use an FTDI cable:

When I received the first beta firmware some improvisation was needed because I had no the required FRSky's adapter.

I've used my FTDI 3.3V cable with a little trick and it did work perfectly! All I did was configuring the cable to work with inverted input and output signals. ;)

Here goes how you can make that too (at your own risk):

First you need this powerful tool who did the magic: The "FT_PROG" from FTDI Utilities. It runs from a folder and doesn't need to be installed.

The first thing you'll gonna do is attach your FTDI cable and select "Scan and Parse" from "Devices" menu.


After finding the adapter the screen will be like this:


Now you'll navigate at the "Device Tree" selecting the "Hardware Specific" node for checking the proper options that will invert TXD and RXD (output and input of FTDI cable).


Now click on the "flash icon" as shown below:


On the programming screen click on the button "Program" and watch the status bar until it finish.


That's it! After the steps above you have a TTL inverted FTDI cable.

It's reversible, of course. You just need to follow the same steps but this time deselecting the inverting check-boxes.

You'll just need to use some jumper cables. The receiver can be powered  by the 5V output from the FTDI cable.

Remember of crossing the connection between your FTDI cable and the receiver input:

FTDI_TXD (orange) goes on the Receiver_RXD.

FTDI_RXD (yellow) goes on the Receiver_TXD.

If you'll flash your receiver... good look! =)

Please, add comments telling us about your experience on it.

Read more…

ArduCAM OSD v2.0 - Update your MinimOSD!



Good news!

The beauty of this community is on the collaboration. This new firmware proves it.
I have the pleasure of announcing that "ArduCAM OSD" and "MinimOSD-Extra" teams are now working together to make MinimOSD better and better.
I've been planning this fusion with Gábor Zóltan and Pedro Santos and we've started a nice friendship.
We spend the latest days merging and retouching everything to improve your experience with the new firmware. The Wiki was also updated for matching the new resources.



What's up?

You'll se all those awesome improvements from MinimOSD-Extra as well as improvements we made together.
The latest one is the new auto detection and updating of the EEPROM mapping .
From now on both OSD Firmware and ArduCAM OSD Config Tool will share the same internal signature.
So, both will detect the need for an EEPROM remapping preventing from loading or saving truncated data.
After a firmware upgrading the OSD Config Tool will detect an outdated mapping updating it automatically.
If you update your firmware by other way, the new firmware will alert you on screen and the Config Tool will repair automatically before you load anything from the EEPROM.

Update your MinimOSD right now. The most important: Have fun!

Important NOTES:

  • After install the new "ArduCAM OSD Config Tool" remember that you need to update the Character Set. A new one is available on the install folder. From now on it will be always there as "OSD_Charset.mcm". 
  • Both sides of the MinimOSD need to be powered during a Character Set updating. Max7456's internal memory is really picky about voltage level during a charset update.

Download it from here:

Read more…


[ Update at the end ]

You bought a brand new FRSky with 8 channel and a promise of a helpful PPM Sum output.

Be warned that you cannot use this with 8 channels. Only 6 channels could be used with some risks (only 5 for real safety). [Note #1 at the end] It's really disappointing.

Yes. FRSky's CPPM signal has a BIG problem: It has a period of only 18 milliseconds. What does that means? Here we go:

A PPM Sum signal usually has a period of 20ms. As each channel uses up to 2ms so you need 16ms to fully accommodate the data from 8 channels (8 * 2 = 16ms).

Now comes an important element: the Sync Pulse. It needs to be wider than all other ones  to indicate the start of a new PPM train. Any 8 channels system based on a 20ms has room for a 4ms pulse (16 + 4 = 20ms). Even with all the channels at 100% a system like that still gives you a perfect sync pulse.



That's the BIG problem with FRSKy CPPM. If you start using some switches and knobs you are pretty much risking to lose the sync on your autopilot. Because the sync pulse is squeezed until having the same size of any channel.



I hope they can fix that with a firmware update sooner, because I believe it's not acceptable.

Until that, you cannot use it on your autopilot without risks. [Note #1 below]

[ NOTE #1 ]

This is far away from the ideal, but there is a cheat to eliminate the risks when using just 6 channels by suppressing CH7 and CH8 from CPPM.

At least on a ER9X or ERSky9X radios there is this way:
By changing your model's setup to use a Proto PPM 6CH it will not output CH7 and CH8.
(The frame space (300uSec) though is just ignored. I did not see any changes.)
3689479086?profile=originalI've verified on Oscope. It works!!! The CPPM was outputed from RX without CH7 and CH8.
Is still a shame and disappointing using just 6 from 8 channels. But that seems to eliminate the risk.

[ NOTE #2 ]

Jani, from jDrones took this issue to FRSky's GM/CEO and got a response from them. They are now baking a solution to release a new firmware. Probably the new CPPM frame period would be 27ms (the next available number dictated by the hardware's clock division).


Yesterday (28th September)  Jani came up with a beta firmware from FRSky. It does output CPPM frames at 27ms. So far we have some positive feedback from DIYDrones dev team's tests. I'll not update this post anymore. A new post instead will show some results followed by a mini updating tutorial for those CPPM capable receivers. Stay tuned! ;)


This post shows how to fix it.


Read more…

Bullets in the sky?


"Can U.S. Citizen Shot Domestic Spy Drones?"

I've just read this post here on DailyTech.

First of all calling it as "Domestic Spy Drones" sounds tendentiously like a bad approach. [Edited] A friend of mine(Otávio Moraes) said that the word "domestic" is referring to native drones. Though it could also be translated as "homemade" which is why I said it sounds to be tendentious and/or ambiguous. Probably, that's due to the fact of the english language not being my native one.[/Edited]

Anyway, thinking about ballistics I'm wondering how dangerous would be shooting against "the sky" upon urban areas. Much probably a slug could eventually cause a biggest damage by "hard landing" on someone's head. Don't you think?

I could be wrong but it would be a classic situation when a problem is treated by another even bigger. You kill the cockroaches with poison and so you have a plague of scorpions. Not bad...

Read more…


Do you know about the Internet Of Things?

Dragino MS12 is a wifi/linux enabled appliance for MCU projects. It uses the awesome OpenWrt.

The goal of the Dragino is to solve the connectivity problem and greatly enhance micro-controller products. So, it has an internal bus for a dedicated micro-controller board which defines the platform that would interact with the physical world.

So, Seeedstudio added an Arduino based daughter board inside it and came with "Dragrove".

"Dragrove is an open source based generic gateway for internet of things. It combines Dragino (Easy Internet Access, powerful CPU, Linux system), Arduino compatible interface board (monitoring and controlling the physical world), and RF networks like X-Bee. "



The term "Grove" on the illustration above is related to a product family with dozens of sensors and other modules for easy prototyping. BTW... I've proudly designed the logo. =)

3689452781?profile=originalAt first look it sounds a nice product.
I don't need to think too much to find some cool applications for it. What do you think about?

Read more…

MorpHex - Art, Technology and Innovation

I'm a big fan of Kare Halvorsen's work from biped to multi-pod spiders. His robots are always pretty well tuned to work on his customized RC control with lots of buttons.

This awesome project above is titled MorpHex which is Kare's entry on "BOCA BEARINGS 2012 INNOVATION COMPETITION".

More infos about the competition (and to give him your vote) here.
My vote was given to his amazing project. =)

Here go some of my favorite videos which show his studio with a great amount of nice robots:

A little bit more details on his crazy RC control I've mentioned above:

You can also subscribe on his youtube channel.

Read more…

globalhawk-main%282%29.jpgWhile SkyWalker is out-of stock in almost everywhere, new big size foam models are popping out in many places out there. I just can't stop looking at this one... looks so nice!

The question here is, are those beautiful models really useful for FPV or being our Drones? I would be afraid of breaking such a beautiful thing... and the 2360mm wing doesn't looks that strong.


Those fins underneath the V tail... it looks pretty weak to touch the ground a second time.


Space would not be a problem, for sure.


Here is the link for detailed infos: RQ-4B Global Hawk

Read more…

Aircraft saved by MinimOSD

I just got this video from André Kjellstrup.
It shows the importance of an OSD with instruments in hard FPV flight conditions.

From his own words: "lost visual far out over water when a sudden and passing snow shower with wet, heavy snow clogged lens". Fortunately his craft was equiped with ArduPilot Mega and MinimOSD. ;)

Here is an earlier video from André who is always giving us his feedback.

Thank's by your nice videos André!

Read more…

MinimOSD meets ArduCAM OSD Config

3689445393?profile=originalWe know you love DIYDrones... so here is the Valentine's gift from the Dev Team! Yeah, we love you back. LOL =)
Anyway, in fact the title of this post could also be "ArduCAM OSD Project meets Michael Oborne"!!!

This tool makes setting up the awesome MinimOSD board super easy!

You can also buy from your local distributor, like JDrones.

Now you can:

  • enable and disable panels;
  • positioning panels by drag or numeric input;
  • save and load layouts from file;
  • save and load layouts from board's EEPROM;
  • test video mode switching with adaptive layout;
  • update firmware;
  • update character set;
  • customize background picture;
  • set grid on/off;
  • test the layout with telemetry logs from Mission Planner;

If you want to know more about each feature, check this wiki page.

To upgrade your MinimOSD board just went to our download area and grab the "OSD Config" and "MinimOSD 1.9 Pack".
An update pack contains two files: the Firmware (.hex) and the CharSet (.mcm).

Pay attention to the right update order. The tutorials are linked below:

  1. "Update Firmware" (it adds support to upload the character set);
  2. "Update Charset".

I'm super happy with the progress of ArduCAM project.
Now with Michael aboard... the sky is the limit just the start!

Enjoy your new toy! ;) There is much more coming out.

Note: The battery remaining icon was temporarily disabled due it's a work in progress on APM code.

Read more…

MinimOSD in DIYDrones Store!

Hello guys!
I'm very happy to tell you that the MinimOSD is now in stock in the DIY Drones store!
3689439887?profile=originalAnd 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! ;)

Read more…

Qu8k: 121,000ft in 92 seconds


Now this is a new meaning for "get high" (...and fast).

"Qu8k" from Derek Deville's is an terrific rocket project. On Setember 30,2011 the Qu8k was launched from the Black Rock Desert in Nevada.

The platform includes: 2 timers, 4 GPS, 1 Accelerometer and 1 Cosmic Ray Detector.

All the captured HD 1080p images you'll see are really cool. It was filmed by three cameras aboard (2 GoPro and 1 FlipHD) and many others on the ground, attached to the launch tower, etc.

From the construction to the power at the launch time, all is very exciting.

Here goes the link:

Enjoy it!

Read more…



There are some nice new approaches on frame construction out there.

This Korean guy found a nice way to get more thrust and it has also a good open space in front.
Looks interesting to fly with cameras. I enjoy the idea. Sounds good. Don't you think?


There is also this other one "ButterflyCopter" with same idea but... 10 motors!!!

Here we can see how nice is the result of a camera aboard:





Sandro Benigno.

Read more…

Maxim Acquires SensorDynamics


Do you know that chip  which goes on Arduino USB Host Shield and ADK boards? Yes, that's Max3421 from Maxim. And that other one which integrate some text based OSD boards? Hmmm... OK it is the Max7456 from Maxim too.
Well, from now on, Maxim will be there on our buddy gyros too.


Maxim Integrated Products acquired SensorDynamics a Leading Specialist in MEMS and Wireless Semiconductor Products.

“Maxim is a recognized leader in analog integration, and this acquisition extends Maxim’s integration strategy by enabling us to fuse many types of sensors with our analog technology. The strategic integration of sensors, analog functions and low power wireless connectivity will allow us to deliver end to end mixed signal solutions that provide our customers with better performance, smaller form factors and lower system costs,” said Tunc Doluca, Maxim’s President and Chief Executive Officer. “The result will be a unique combination of technologies that will eventually enable a whole new generation of intelligent machines. We’re thrilled that SensorDynamics is joining us.”



Read more…

Open Hardware Definition 1.0 RELEASED!

3689389352?profile=originalOSHW is the acronym.


"Open source hardware is hardware whose design is made publicly available so that anyone can study, modify, distribute, make, and sell the design or hardware based on that design. The hardware's source, the design from which it is made, is available in the preferred format for making modifications to it. Ideally, open source hardware uses readily-available components and materials, standard processes, open infrastructure, unrestricted content, and open-source design tools to maximize the ability of individuals to make and use hardware. Open source hardware gives people the freedom to control their technology while sharing knowledge and encouraging commerce through the open exchange of designs"


You can read the full definition here:


There are posts popping in everywhere about it... (and now here too)

Read more…

The Attack of the Clones

In a distant continent far far away...  Futaba clones are back on stock.



Accord to the HobbyKing site, the RX is compatible with Futaba FASST receivers: TM7, TM8, TM10, TM14 and others.


Some weeks ago, I bought my OrangeRX Spektrum compatible ones (main RX 6ch and the satellite).

It seems to work fine. The price... you know, is the best part.

Now is the time for the generic Futaba ones too (since October of last year).

If you have a Futaba TX and if this clone is as good as the Spektrum clone/generic ones, should be a great deal. Don't you think?


More details here.
Read more…

Camera Control and OSD for UAV Projects

Hello guys!
Here goes a video showing the Camera Control working:

I'm using Canon SDK definitions (PS-ReCSDK 1.1.0e) and PTP protocol though Arduino USB Host Shield.
Thank you Oleg Mazurov, for helping me to understand the PTP dump through your awesome shield and pointing me the way to go. ;)

The project includes integration with RC/APM and OSD (for telemetry and Camera feedback by using Max7456).

By now we have simple serial commands to:

  • Capture mode control (lenses show/hide);
  • Continuous session - only limited from battery (without shutdown by time or so);
  • Focus Lock/Unlock;
  • Focus mode (center point, average);
  • Zooming control;
  • Shooting;
  • ViewFinder output through the ntsc video output <--- I was fighting with it... but now it's 100% OK (Next step:

  • Total abortion (close session on camera hardware and shutdown).

Sandro Benigno.
Read more…