UC4H: General Purpose Node
Ok, I got the basic platform up and running. The UC4H Power module is powering the Pixhawk 2.1 Cube and the CANbus. I can connect to the Cube with Mission Planner and I have installed Betacopter 3.6.6 from OlliW Github respository. OlliW has provided pre-compiled versions for three standard flight controller FMUs. Use ArduCopter-v2.px4 for standard Pixhawk 1s and Cubes. Use ArduCopter-v3.px4 for Solo boards and ArduCopter-v4.px4 for newer boards like the Pixracer. You do this by going to the install firmware tab in Mission Planner and Load custom firmware. Loads just like any normal pre-compiled version of Arducopter.
Now we can have some fun. The SLCAN device is a basic tool for monitoring the CANbus. If you are a network type it is like an ethernet network sniffer. Think Wireshark or Bloodhound. It listens in on the bus and can capture the messages going by. You can make one or buy one from Jdrones or Zubax. The UAVCAN GUI tool gets this info and displays it for you. So get UAVCAN GUI from the UAVCAN.org site and install it.
Plug your SLCAN adapter into your computer via USB and a CANbus cable is plugged into one of the two CANbus ports and then to your CANBus. In the following picture you can see my SLCAN plugged into my computer and then to my CANbus expander.
On the CAN Interface Configuration screen choose the usb port your SLCAN is connected to. (You can unplug the SLCAN and run the UAVCAN GUI again and see what port disappears if you are unsure.) The baudrate should be 1000000 not the common 115K.
Hit OK, then it starts up.
First, click on the check mark to confirm that your SLCAN is on 127.
Now we will see the nodes that the SLCAN is hearing on the bus.
Each node on a CANbus must have a unique node ID (NID). It is similar to an IP address on your computer for the internet or the street address for your house. In the display see that the Pixhawk Cube has a node ID of 10 and the Powerbrick has a node ID of 46. Any node that does not have a node ID will not show up.
In fact, I have a general-purpose node connected but it is not listed yet. We can set a static node ID like the Cube and the Powerbrick or we can use the automatic node ID allocation server in the UAVCAN GUI to provide an ID. Click on the little rocketship icon (under the Dynamic node ID allocation server).
Now we can see my general purpose node (NID 125). It does not have specific firmware right now because we can use it for many different jobs. Once again Jani at Jdrones has built some nodes for us and sells them at a very reasonable cost to support UC4H. He also donates a portion of each sale to Ardupilot. In fact, you can get a complete starter kit from Jdrones. It is a WIN-WIN for me.
So now the UAVCAN GUI knows I have an “empty” general-purpose node online. It is really simple to now click on the node and decide what firmware I would like to load onto the node. The firmware for all the various things you can make the general node into are located, once again, on OlliW’s github repository. (GITHUB is really weird. You cannot simply right click on the file name and “save link as” like you normally would. You must click on the filename and use their “download” button next to “history.”)
You can see the general-purpose node is really universal. You can make it a GPS node, an ESC node, a Serial bridge node, a Notifier display node, an LED controller node and on and on.
I am going to make this node a Notifier node. So I simply click on “Update Firmware” and choose the uc4h-notify-v010-4bl.bin I downloaded from OlliW’s Github repository.
UAVCAN GUI tells me I am doing a “software update.” When it is done the main window will change and identify it as a “notify” node.
I will do the same process four times, with four more general-purpose nodes for my ESC nodes, and once for my GPS node with another general-purpose node etc.
You should have “node” it would be this easy!