MAVlink vs UAVcan for external engine controller

608 views
Skip to first unread message

Oleksandr Chendekov

unread,
Apr 2, 2015, 5:26:10 PM4/2/15
to drones-...@googlegroups.com
Hi all!

Our team is building gas powered UAV with Pixhawk onboard. We need some additional engine control: engine and carburetor temperature, fuel level and consumption flow, RPM, alternator voltage, ignition battery voltage, etc. There's no enough inputs to do all the control on Pixhawk itself. We think it should be external AVR or ARM board. The question is what protocol better fits to communicate such a board with ArduPilot: MAVlink via serial or UAVcan via can bus? It seems for me that MAVlink is better if controller needs any changeable configuration or tuning, when UAVcan is better when logic of controller is hardcoded and straightforward. Are there any other arguments to choose a right protocol? Are there any agreed guidelines on that?

Steve Rieger

unread,
Apr 2, 2015, 5:34:05 PM4/2/15
to drones-...@googlegroups.com
Wouldn’t it be better at static rpm and control pitch only ?



> On Apr 2, 2015, at 2:26 PM, Oleksandr Chendekov <chen...@gmail.com> wrote:
>
> Hi all!
>
> Our team is building gas powered UAV with Pixhawk onboard. We need some additional engine control: engine and carburetor temperature, fuel level and consumption flow, RPM, alternator voltage, ignition battery voltage, etc. There's no enough inputs to do all the control on Pixhawk itself. We think it should be external AVR or ARM board. The question is what protocol better fits to communicate such a board with ArduPilot: MAVlink via serial or UAVcan via can bus? It seems for me that MAVlink is better if controller needs any changeable configuration or tuning, when UAVcan is better when logic of controller is hardcoded and straightforward. Are there any other arguments to choose a right protocol? Are there any agreed guidelines on that?
>
> --
> You received this message because you are subscribed to the Google Groups "drones-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to drones-discus...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Vladimir Ermakov

unread,
Apr 3, 2015, 4:33:01 AM4/3/15
to drones-...@googlegroups.com
Hi,

Both protocols is great, so depends on your needs, and where you want to connect engine control unit.
Regular onboard computer does not have CAN so you need usb converter (>$50). Also isolator chips for uart is cheaper, than isolated can driver.
But CAN provides larger bus, where you may attach servoextenders and get structure like futaba's s-bus (but i don't heard that anyone planning to do such modules).

Can i ask you? How you are going to measure fuel flow and level?

пятница, 3 апреля 2015 г., 0:26:10 UTC+3 пользователь Oleksandr Chendekov написал:

Oleksandr Chendekov

unread,
Apr 3, 2015, 6:04:28 AM4/3/15
to drones-...@googlegroups.com
Vladimir,

now we have analog capacity level sensor, flow sensor now is for future use. My search gave some turbine magnetic pulse sensors for low flow counting and more expensive ultrasonic ones, but now it's not in priority. I don't expect very accurate measurements but we need something to check us against baseline.

Thinking about gas engine controller I found interesting relation between gas and electric motors:
- engine temperature is the same meaning
- ESC temperature and carburetor (intake air) temperature has different meanings but both important
- Fuel level has the meaning of battery voltage
- Fuel flow has the meaning of battery current 
- RPMs are the same meaning

So this task is not far enough from electric engine control.

пʼятниця, 3 квітня 2015 р. 11:33:01 UTC+3 користувач Vladimir Ermakov написав:

Vladimir Ermakov

unread,
Apr 3, 2015, 6:24:46 AM4/3/15
to drones-...@googlegroups.com
HI,

But ESC controls engine operation, so it needs fast realtime update of required throttle (so best here is UAVCAN).
Your "ECU" only monitors motor, so high update rate is not needed, CAN only allow you to use several ECU's with one bus.
I tried to do similar monitoring unit (miniECU) but i still don't tested it with real engine...

--
You received this message because you are subscribed to a topic in the Google Groups "drones-discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/drones-discuss/aiEGnWSzSSg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to drones-discus...@googlegroups.com.

Robert Lefebvre

unread,
Apr 3, 2015, 8:04:17 AM4/3/15
to drones-discuss
Interesting,

I've been working on something just like this for a little while, so I'm glad to see some more vindication that there is a need for it.

What I've been doing is using a Teensy3.1 which is a really nice little 32-bit controller.  It communicates with Pixhawk over I2C, it's almost working now.  Obviously I2C isn't a great physical layer to use, but it was easy to implement and hardware is available today.  Ideally, CAN would make more sense, but there is not easy to use and small hardware available. You can pretty much find easy, or small, but not both together on the market at this point.

I had been planning on 4 rpm channels, 2 temp channels, 2 fuel level channels.  More voltages, etc. would be easy to add.  The Teensy has a ton of inputs.

MAVlink over serial would be possible, and would even run on this board, but I don't know how to use that protocol at this point.

On 2 April 2015 at 17:26, Oleksandr Chendekov <chen...@gmail.com> wrote:
Hi all!

Our team is building gas powered UAV with Pixhawk onboard. We need some additional engine control: engine and carburetor temperature, fuel level and consumption flow, RPM, alternator voltage, ignition battery voltage, etc. There's no enough inputs to do all the control on Pixhawk itself. We think it should be external AVR or ARM board. The question is what protocol better fits to communicate such a board with ArduPilot: MAVlink via serial or UAVcan via can bus? It seems for me that MAVlink is better if controller needs any changeable configuration or tuning, when UAVcan is better when logic of controller is hardcoded and straightforward. Are there any other arguments to choose a right protocol? Are there any agreed guidelines on that?

--
You received this message because you are subscribed to the Google Groups "drones-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drones-discus...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages