Thread Tools
Oct 02, 2019, 03:52 PM
OlliW
Thread OP
Cool

Mavlink Camera Conversions (using STorM32)


Hey Folks,

the MAVLink Camera micro service is - IMHO - a very cool idea and concept with much potential. It brings to the user the convenience of operating cameras on drones like it is known since long for drones like that of DJI or Parrot, or the dying 3DR Solo, namely to have full control of the camera settings from a ground station or having feedback such as SD card memory usage.

The STorM32 gimbal controller since long also provides camera remote control features, and recently has added a full fledged implementation of the MAVLink camera protocol to it's list of features, supporting cameras like the Runcam Split or the GoPro Hero5, and many others (see NT Camera).

The videos attached below may show what I'm talking about.

Importantly, this feature can be used also stand-alone for those cameras which use a UART port. That is, a STorM32 board (or compatible board) can be used as an interface to the camera turning it into a MAVLink enabled camera. This MAVLink camera can then be added to the flight system like any other MAVLink component, and all it's features and settings then be fully used.

Unfortunately, as with many good ideas with potential to transform the landscape, the MAVLink camera concept has not yet fully penetrated the MAVLink drone world. For us, the current situation is somewhat experimental. Currently, only QGroundControl seems to support the MAVLink camera protocol, and it is really doing a great job at this, but it also has still room for improvements. Also - besides PX4 - the flight stacks are delayed. Even though the camera protocol is official MAVLink since really quite a while, not all flight stacks seem to have adopted the latest MAVLink standard. PX4 does, of course, but AFAIK ArduPilot doesn't.

As implied by the above, any STorM32 board or compatible can be used for this conversion (the widely available v1.3 STorM32 boards have some drawbacks). However, I recently also started developing the "micro STorM32" family of boards - small stackable boards compatible with the 20x20 mounting hole layout known in the FPV racer world. The micro main board can be conveniently used for such conversions, e.g., it fits straight on a Runcam Split Mini2, or on a Adafruit HUZZAH32 breakout board for communicating with a GoPro Hero5.

Anyway, this is what this thread shall be about, converting standard cameras to MAVLink enabled cameras. I'm sure that many more creative solutions will come up besides those in this post.

Have fun,
Olli

STorM32 2019: NT Camera for GoPro Hero5 (10 min 34 sec)


STorM32 2019: NT Camera for RunCam Split (12 min 4 sec)
Last edited by OlliW; Oct 03, 2019 at 12:28 PM.
Sign up now
to remove ads between posts
Oct 02, 2019, 05:15 PM
Registered User
Hi Olli.

If we want camera control with Ardupilot this seems the best way to go right now.

The Dev board you reference on your site seems hard to find now. What do you suggest? Seems hard to find them.

I can certainly use a Storm 1.3 board and repurpose the USB as a UART -- that is the path of least resistance I think as I should be able to flash this and test it pretty easily and I have some bigger planes. I even have a working, now unavailable , GLB Micro Storm32 that I used successfully on a roll axis gimbal.

I will tell you what you can find everywhere is the ESP32 boards with OLEDs and WiFi. Could they handle this ? There would need to be some porting obviously. I have messed with them a little and they are Arduino IDE friendly.
Last edited by Marc Dornan; Oct 02, 2019 at 05:20 PM.
Oct 03, 2019, 03:31 AM
OlliW
Thread OP
Quote:
Originally Posted by Marc Dornan
The Dev board you reference on your site seems hard to find now. What do you suggest? Seems hard to find them.
oje oje oje ... this really complicates matter indeed

it indeed seems that F103RC dev boards have generally become rare now

I found one on Aliexpress, https://de.aliexpress.com/item/32823...chweb201603_53, but this might not be an option

oje oje ... I didn't realize this

Quote:
Originally Posted by Marc Dornan
I can certainly use a Storm 1.3 board and repurpose the USB as a UART
since you have a board you just could try it and see how it goes. If you don't mind the time. I myself never tried this, so won't predict the outcome

you also could order a v3.3 board from Gapey, or Ensys, I think theirs is fully compatible

I also could send you over one or two of my micro STorM32 boards, if you like ... it wouldn't be a preliminary version (I need to do a small change for a final release), but it would be perfectly fine for the purpose ... I'm somewhat inclined to suggest doing this

Quote:
Originally Posted by Marc Dornan
I will tell you what you can find everywhere is the ESP32 boards with OLEDs and WiFi. Could they handle this ? There would need to be some porting obviously. I have messed with them a little and they are Arduino IDE friendly.
oh yeah ... this thought, to implement this all in the ESP32, also has crossed my mind, I mean, would safe us from needing an extra mcu module and really would make it more convenient ... however, STorM32 isn't Arduino and I suspect it would need some heavy porting (and the MAVLink camera stuff isn't really the simplest code). And I'm also shyed away from having then two codes. So, the bottom line, I may do this one day, but I don't see me doing this anytime soon.

Quote:
Originally Posted by Marc Dornan
If we want camera control with Ardupilot this seems the best way to go right now.
stable ArduPilot - I think - uses a quite old MAVlink common.xml and doesn't support the MAVLink camera micro service - I saw that there is a PR just yesterday for the dev version - I guess you/someone could/should ask them to also upgrade MAVLink for the stable version - after all it's a 5 min job and needs 6 lines of code change

btw, I'm also still on a rather old version of QGC, they had changed to QTQuick and it then initially was full of bugs, not sure if they fully resolved it all, I guess it is and I should try a latest version

the bottom line, the ground control and flight stack support isn't as mature as one would wish it to be ... again a project of mine there I seem to be somewhat too ahead in time LOL ... but I think it's users like you who could help push such things
Oct 03, 2019, 06:00 AM
OlliW
Thread OP
Quote:
Originally Posted by Marc Dornan
If we want camera control with Ardupilot this seems the best way to go right now.
it might be the "best" way to go in general - BetaFlight e.g. has refused lately to add new camera protocols, obviously for the reason that support and maintenance of too many individual protocols too quickly gets out of hands. I would think that a similar consideration would apply to ArduPilot ...
Oct 03, 2019, 06:56 AM
Registered User
Ok. No probs. I will order a Storm32 3.3 board from Ensys. They seem to have a decent form factor.

I can certainly compile a version of Ardupilot with updated Mavlink but I will raise the issue about getting this fixed. Should be very simple.

Edit. Ordered 2 Storm32 3.3 boards.
Last edited by Marc Dornan; Oct 03, 2019 at 07:09 AM.
Oct 03, 2019, 07:37 AM
OlliW
Thread OP
Quote:
Originally Posted by Marc Dornan
I will order a Storm32 3.3 board from Ensys.
great

I will send you a micro STorM32 nevertheless, if you don't mind. I'm interested to hear your feedback on it (I still have your address, if you haven't moved).

Quote:
Originally Posted by Marc Dornan
I can certainly compile a version of Ardupilot with updated Mavlink but I will raise the issue about getting this fixed. Should be very simple.
fantastic. Is very simple indeed. Pl ensure to have really the latest common.xml, with the ext param and tunnel stuff included. The recent PR seems to pull in again a somewhat outdated mavlink, the ext param stuff is needed for the camera service, the tunnel stuff gives you best experience with STorM32 configuration.
Last edited by OlliW; Oct 03, 2019 at 07:46 AM.
Oct 03, 2019, 07:52 AM
OlliW
Thread OP
for the gopro control, you'll also need a ESP32 like the Adafruit HUZAH32 breakout (among those I know it's currently the best suitable IMHO), don't forget to get one

if you can't wait, you can actually test things already with your v1.3 STorM32 board, connect the ESP32 to the UART port, and a PC to its USB, you can then use the GUI's RCCommand tool to start/stop video and trigger photos ...
Oct 03, 2019, 10:07 AM
Registered User
Quote:
Originally Posted by OlliW
for the gopro control, you'll also need a ESP32 like the Adafruit HUZAH32 breakout (among those I know it's currently the best suitable IMHO), don't forget to get one

if you can't wait, you can actually test things already with your v1.3 STorM32 board, connect the ESP32 to the UART port, and a PC to its USB, you can then use the GUI's RCCommand tool to start/stop video and trigger photos ...
I have plenty of ESP32s around so that is not an issue. I will try an existing storm32 and a Runcam split 2S (I have a few of these in boxes). Now that GoPro have released the Hero 8 I see the Hero 7s can be picked up cheaply so I may grab a used one. I have a Session 5 and a Hero 4 Black (unused for 2 years).

I think the goal for me is to make a few real camera ships with multiple splits and a Hero 7 (maybe with gimbal, maybe not). I have a MTD, a Talon, and an Anaconda as platforms (these are larger planes).

I see that we have a lots of UARTs on the Storm3.3. Can I use 3 UARTs to control 3 cameras? Frankly it does seem that with what you have already I have enough functionality. I am happy enough to use what we have already in place.

However, for this to take off I do suspect that it may have to be ported to ESP32 modules which are as cheap as dirt these days and seem to have become beloved by the IOT hacking community. I have a WiFi/Bluetooth/OLED/SD Card one that I picked up for $13! Given the crazy pace of the board camera market I can see how tedious it would be to support on the flight controller. Frankly most of these camera are very dubious and of a disposable nature. The RunCam Split Mini 2 was a joke. Mine needed heatsinks and a micro fan to keep the temp down and it still gave up. Actually heat seems to be the main issue. I think the GoPro Hero 8 is going to have SOC heat issues -- reportedly this gets up to 120 degrees on the outside of the case when pushed hard. Anyhow, I have no expectations that you will port your code to the ESP32.

Do you think I should get the CAN option on the Storm32 3.3 boards?

No, I have not moved!
Last edited by Marc Dornan; Oct 03, 2019 at 10:15 AM.
Oct 03, 2019, 10:19 AM
Registered User
I notice that Gitup seem to actually develop their cameras and interact on these forums. I was thinking of getting a Gitup Git F1 as I always liked (and still use) my Git2. That actually has some PWM control.
Oct 03, 2019, 12:26 PM
OlliW
Thread OP
Quote:
Originally Posted by Marc Dornan
I have plenty of ESP32s around
great

Quote:
Originally Posted by Marc Dornan
I will try an existing storm32 and a Runcam split 2S
great, this will get you used to the whole process of how it's working

Quote:
Originally Posted by Marc Dornan
Frankly most of these camera are very dubious and of a disposable nature.
I fully agree. However, that's just of me having no access to more substantial cameras ... there is nothing in the concept which would prevent it from being used for e.g. Sony's (I think I've heard that most Sony's have a pretty decent remote interface nowadays).

It's actually possible to interface to e.g. a CAMRemote, which would make accessible "real" cameras.

Quote:
Originally Posted by Marc Dornan
Do you think I should get the CAN option on the Storm32 3.3 boards?
even though UAVCAN seems to slowly become of relevance, I can't see that the STorM32's UAVCAN support could be used with meaning in any near future. With that I was way too ahead of the community. I consider it a bit of a dead horse.

For the following, pl let's not forget that after all STorM32 is a gimbal controller:

Quote:
Originally Posted by Marc Dornan
I see that we have a lots of UARTs on the Storm3.3. Can I use 3 UARTs to control 3 cameras?
not with STorM32

Quote:
Originally Posted by Marc Dornan
However, for this to take off I do suspect that it may have to be ported to ESP32 modules
I largely agree, but it would be a project on it's own. I currently have no plans for it.

Quote:
Originally Posted by Marc Dornan
I notice that Gitup seem to actually develop their cameras and interact on these forums. ... That actually has some PWM control.
I realize that I was somewhat misleading in post #1 (I've corrected it): The standalone NTCamera is only possible for those camera models which use an UART port, currently "CAMremote Uart", "Runcam Generic", "Runcam Split Mini2", and "GoPro Hero5". It doesn't work for those which use a PWM or other output. So, it wouldn't work for the PWM-controlled GITs. Sorry for having been inaccurate here.
Oct 03, 2019, 12:44 PM
Registered User
I understand the limits. The universal ESP32 Mavlink camera board is a project waiting to happen.

I have been toying with just controlling a GoPro properly and maybe using a gimbal as well, since I have them. So I am happy controlling a Runcam and a GoPro. The only tinkering would be in adding some Hero 7 commands and I see that part is on github.
Oct 03, 2019, 01:59 PM
OlliW
Thread OP
yes, the git repo should provide all tools to work out the hero7 settings. I can give also some assistance. Also all else of what is needed to get the hero 7 fully supported is in there.
Oct 15, 2019, 01:30 PM
Registered User
Look what I have! A small, but perfectly formed Storm32 NT IMU with serial ports! This will fit perfectly on my split board. I will set up a test with a roll axis gimbal in the next few days.
Oct 15, 2019, 02:07 PM
OlliW
Thread OP


more precisely, this is not a NT IMU but a micro STorM32 main board.

It indeed fits perfectly on a split mini2, and has all the serials one needs for a conversion to a MAVLink camera. However, I probably have to disappoint you, it is not very useful as such for building a gimbal, since it doesn't have any motor drivers. It would have to be combined with a NT motor module of some type. (I haven't realized that you are most eager to build a one-axis gimbal, I guess I should have added a micro NT motor module)

It also fits neatly on a Adafruit HUZAAH32 ESP32 breakout board, useful for GoPro operation.

btw, pl be careful with the pads, they don't stick very strongly.
Oct 15, 2019, 02:16 PM
Registered User
Quote:
Originally Posted by OlliW


more precisely, this is not a NT IMU but a micro STorM32 main board.

It indeed fits perfectly on a split mini2, and has all the serials one needs for a conversion to a MAVLink camera. However, I probably have to disappoint you, it is not very useful as such for building a gimbal, since it doesn't have any motor drivers. It would have to be combined with a NT motor module of some type. (I haven't realized that you are most eager to build a one-axis gimbal, I guess I should have added a micro NT motor module)

It also fits neatly on a Adafruit HUZAAH32 ESP32 breakout board, useful for GoPro operation.

btw, pl be careful with the pads, they don't stick very strongly.
Looking at it again I think this is best used in my Nano Goblin or Z84 to give me full control over a Split camera with no almost weight penalty.

I have full 2 NT setups coming from Ensys complete with motor controllers for gimbal setups.

This is actually a very useful little board for such small planes. I will be very careful with the pads. I will post this on Ardupilot forums when I have it working on the bench.
Last edited by Marc Dornan; Oct 15, 2019 at 02:27 PM.


Quick Reply
Message:

Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion camera input on the storm32 board? look001 CAD/CAM 1 May 08, 2016 10:57 PM
Discussion STorM32 + x8r - Using side lever for gimbal control on Taranis - Need some help iiapoxii Multirotor Drone Electronics 0 Feb 11, 2016 01:44 PM
Discussion goodluckbuy 2-Axis Brushless Gimbal Camera Mount with 32bit Storm32 Controller marcel_cote Multirotor Drone Electronics 1 May 31, 2015 08:05 AM
Discussion 2-Axis Brushless Gimbal Camera Mount with 32bit Storm32 Controller marcel_cote Multirotor Drone Electronics 0 May 29, 2015 06:22 PM
Discussion Mavlink-Osd/MinimOSD and 5V camera Freakazoid_ FPV Equipment 2 Nov 14, 2014 04:23 AM