TERMS OF USAGE
The material provided in the UC4H Github repository is subject to the following conditions. Firmware files: All firmwares are free (but not open source). Besides unlimited private use you are also granted the permission to use them for commercial purposes under the condition that (1) you don’t modify the firmware, e.g. remove or change copyright statements, (2) provide it for free, i.e. don’t charge any explicit or implicit fees to your customers, and (3) correctly and clearly cite the origin of the firmware and the project web page in any product documentation or web page. Hardware files: All hardware, for which material is provided, is open source hardware, under the terms of the TAPR Open Hardware License as published by the Free Hardware Foundation, see http://www.tapr.org/ohl.html. The TAPR license explicitly permits essentially unlimited commercial use, with only few conditions such as that copyright logos are not removed.
Usage Information
For me, the UC4H nodes are working great; I didn’t had a single incident because of using them. There are of course always little things which could be improved, but overall I’m very satisfied. It’s working, I like my UC4H-ized copter, and in this sense the project has accomplished its goals. I’d like to leave some comments on its applicability.
In principle, the UC4H nodes can be used in any UAVCAN network. That’s the idea of UAVCAN. I only can speak for ArduPilot, however, since that’s what I’m using. With ArduPilot, these restrictions apply:
ArduPilot
ArduPilot master has recently seen substantial changes in the UAVCAN section and is not totally compatible with earlier ArduPilot versions. So, I currently would recommend ArduCopter 3.6.x, to which I refer here.
ArduPilot 3.6 supports the GPS, magnetometer, barometer, ESC, actuator, and IndicatorLED UAVCAN messages. With ArduPilot you can thus use the UC4H GPS-Magnetometer-Barometer and UC4H ESC-Actuator nodes out of the box.
[SIZE=“3”]BetaCopter 3.6[/SIZE]
This is a fork of ArduCopter 3.6, and has compiled binaries for v2 (Pixhawk), v3 (3DR Solo, Pixhawk2), and v4 (Pixracer) flight controllers. It has full support for the whole family of UC4H nodes, as well as the STorM32 gimbal controller. Thus, if you want to make best use of the potential of the UC4H project, then you want to flash BetaCopter 3.6 (you need the ‘u’ version, e.g. BetaCopter 3.6.1 v0.14u, see the github repo for details).
The code additions in BetaCopter are basically vehicle independent, i.e., it should be possible to compile the source also for other vehicles such as planes and rovers with only minor changes, and it therefore probably should be called BetaPilot. However, I’m using only copter, and only can test for copter, and for (only) that reason I speak of only copter. ��
The BetaCopter sources and binaries are available from my github repo: here.
[CENTER]
The „feature matrix“ thus looks like this:
(1) Not available in ArduCopter 3.6, only in ArduPilot master.
(2) The UC4H Airspeed sensor is not supported by current BetaCopter; there exists a special branch for it however, which is recommended for testing.
The UC4H SLCAN adapter is of course independent on any flight controller support, and is in fact also independent on UAVCAN. It thus can be used in any CAN bus network.
Supported UAVCAN Messages
The UC4H nodes support a variety of UAVCAN DSDL data types, which are listed in the following. Each node configures its hardware CAN filters to those DSDL messages, which it is listening to, i.e., all other received messages are rejected at the hardware level.
Messages supported by all UC4H Nodes
uavcan.protocol.GetNodeInfo
uavcan.protocol.NodeStatus
uavcan.protocol.RestartNode
uavcan.protocol.debug.LogMessage
uavcan.protocol.dynamic_node_id.Allocation
uavcan.protocol.file.BeginFirmwareUpdate
uavcan.protocol.file.Read
uavcan.protocol.param.ExecuteOpcode
uavcan.protocol.param.GetSet
UC4H GPS-Magnetometer-Barometer
uavcan.equipment.gnss.Fix
uavcan.equipment.gnss.Auxiliary
uavcan.tunnel.Broadcast
uavcan.equipment.ahrs.MagneticFieldStrength2
uavcan.equipment.air_data.StaticPressure
uavcan.equipment.air_data.StaticTemperature
uavcan.equipment.indication.LightsCommand
UC4H PowerBrick
uavcan.olliw.uc4h.GenericBatteryInfo
uavcan.equipment.power.BatteryInfo
UC4H ESC-Actuator
uavcan.equipment.esc.RawCommand
uavcan.equipment.esc.Status
uavcan.equipment.actuator.ArrayCommand
UC4H UartBridge
uavcan.tunnel.Broadcast
UC4H Notifiers: Notify, Display, OreoLEDs
uavcan.olliw.uc4h.Notify
uavcan.equipment.indication.LightsCommand
UC4H IndicatorLED
uavcan.equipment.indication.LightsCommand
UC4H Airspeed-AoA
uavcan.equipment.air_data.RawAirData
uavcan.equipment.air_data.StaticTemperature
uavcan.equipment.air_data.AngleOfAttack
UC4H FunThing
uavcan.equipment.esc.RawCommand
uavcan.equipment.actuator.ArrayCommand
uavcan.equipment.ahrs.MagneticFieldStrength2
uavcan.equipment.power.BatteryInfo
uavcan.equipment.power.CircuitStatus
uavcan.equipment.air_data.RawAirData
uavcan.equipment.air_data.StaticPressure
uavcan.equipment.air_data.StaticTemperature
uavcan.equipment.indication.LightsCommand
uavcan.tunnel.Broadcast
uavcan.olliw.uc4h.GenericBatteryInfo
uavcan.olliw.storm32.Command
uavcan.olliw.storm32.Control