Guide to Stripdown GoPro Hero 3 external MCU control for UAVs, near-space and space applications
KOREA CANSAT COMPETITION 2014. THE GOPRO ON THE STRUCPRO V2.5 (TOP LEFT CAMERA) |
I was just notified yesterday that the
GoPro camera that we have been working on for quite some time now will not be
featuring in SNU’s maiden nano-satellite, the SNUSAT-I, which plans to be
launched in LEO next year. The QB50 project which this CubeSat mission has been
supervised wants the satellite to have a “homegrown” CMOS imaging sensor
instead. Which basically translates that I am in deep, deep shit.
However, I think it is important to touch
on what we have been able to do with the camera put it out in the web space for
interested parties to see and build on what we have already managed to
accomplish. Given the clear understanding that I am no software hacker, we
decided to leave the GoPro’s firmware alone and happy and gay (that old gay we
grew up learning) and rather focus on external MCU control.
To be able to do so we had to strip down
the camera and look for just about anything that let us have complete, reliable
access to its controls. This also meant that we had to build an equally
reliable, robust structure that could hold the camera in its place inside the
satellite/UAV/HABs.
If you are familiar with the camera itself,
you will know that the camera has two switches. One power and one trigger.
Actually three, the WIFI button as well but I will come back to that in a
while. With the combination of two, you can do just about anything, from
changing 1080p videos to burst modes to WIFI settings. That means having
control of these controls would basically give us access to all the functions.
In hot pursuit of attempting to do so, we
found a video on youtube (where else?) of someone basically grounding the
buttons each time he wanted to take a picture.
So taking inspiration, we did something
similar. The results were exactly what we were looking for. You see, the
concept is rather simple; the cameras buttons are at a HIGH state meaning, in
camera’s case at 3.7V. They remain that way for time eternity until and unless
we decide to remove the battery. In order to signal the camera to turn ON, the
power button needs be grounded. Meaning we simply connect that button to ground
(0V). In doing so the camera responds and turns on.
[We simply took a wire, tore the sticker off and soldered the wire at the highlighted portion]
Wala. Very simple. Now, applying the same to
the trigger switch we have complete control over the camera. It just boils down
to bringing an external MCU like a simple Arduino UNO, soldering two wires on
the buttons and sending a LOW signal mimicking as if someone was physically
pressing the button. I will leave you to find the delay time for each LOW as an
assignment. Takes about 5 min tops.
While this went all fine and we started to work
on the structure prototype, however, midway through I lost (or should I call it
misplaced but never found) the switches (buttons). What I mean by this is that
the switches were on the flexible PCB which was linked to the main board of the
GoPro. Having lost that meant no switches, no controls.
The immediate solution was to buy another
GoPro. But that costs money and GoPros aren’t cheap. The white edition that I
was toiling and experimenting with was cheapest of the lot that set us back
about $300 dollars per purchase. Having made my futile and unsuccessful
attempts at a new GoPro through research funding, I turned my attention at the
camera’s motherboard.
Was there a way to control the camera
without the switches themselves?
After a painstaking series of experiments,
the results have been presented in the image below. There’s also option of
directly turning on the WIFI in case you seem to be interested in real time
video stream from the camera on your UAV to your computer. Will touch on that
later.
[I noticed that the GoPro Hero3 White and Black have slightly different boards. While the Power/Mode Pins remain the same, the Trigger and WIFI Pins in the White have array of pins as in the Power/Mode. I am guessing the pins on the Black should correspond to the once on the White. The far left is the Trigger and the one immediate to the right is the WIFI switch]
Finally, now to the structure. The SNUSAT-I
posed some design constrains mainly pertaining to the materials that we could
use and also factors such as weight and size. The camera module with the
structure was to be under 100g plus had to endure all the vibrations imposed
during launch and then survive extreme temperatures in space. Phew.
[The all new StrucPro V3.0 for Striped GoPro. IGES and Solidworks CAD file has been provided below.
Rendered in 2013-14 Student Edition Solidworks]
I will not touch on the development
procedure of the structural prototypes as it could get rather tedious and
boring, so I will let you have access straight up to the relatively brand new GoPro
StrucPro V3.1. The hole definitions should have a fair amount of accuracy in
them. We have done testing of the GoPro StrucPro V2.5 both on a Hobby King RC
Plane and CanSat (Satellite in a Can) Competition(s) and the structure holds
fine. The only downside is that the image’s vertical side is actually longer
than the horizontal meaning the CMOS is rotated at 90 degrees.
DOWNLOAD GoPro StrucPro V3.0 [HERE]
[Here’s a stitched image of the GoPro taking
a video while being placed on the StrucPro V2.5 on the earlier mentioned Hobby
King RC Plane flown by steady hands of labmate and multicopter maniac colleague
Jae in front of SNU’s Administration Building. You will notice the new library
being constructed]
In regard to image extraction from the
onboard SD card which will not concern people who want to use it for near space
and UAV as they are bound to get back their Gopro and have access to video or
images stored.
However, in case of space it’s entirely
different. The GoPro stores files on the SD card through SPI Serial
Communication and there’s a whole animal that needs to be explained in order to
clarify how that can be used for our advantage and use an external MCU to
extract images out from the GoPro controlled microSD and send it back to mother
earth. In short, since issues of Multiple SPI arises, a switch is required in
order to solve the issue. Which is very boring indeed.
We have also managed to do some further
tweaks on the camera for this year’s Creative Design Fair [Fair Poster HERE]. Since we needed an near-IR
camera, we removed the IR filter, placed a floppy cut filter to filter out
visible light and placed IR leds for indoor, night vision application.
[IR lens modification with IR led on StrucPro V2.5 3D printed structure]
For WIFI live video feed access, connect
your gopro to your computer through its WIFI, type in \\10.5.5.9:8080
, select live, copy the weirdest longest link there, past on the network video
settings in VLC media player and you will have a 4 second delayed video feed.
Which did the job for us.
My undergraduate thesis on gopro's space application: [HERE]
Comments
Post a Comment