Servers by jDrones

AP_Periph 1.0.0 stable released

node
I’ve just released the first stable release of AP_Periph, version 1.0.0. AP_Periph is a framework for creating UAVCAN peripheral firmwares. I started it as a project as I wanted to make the use of UAVCAN in ArduPilot much more widespread, and the difficulty of creating a high quality UAVCAN firmware for a new device was holding back vendors from creating new devices.
The key idea of AP_Periph is that it leverages the existing technology in ArduPilot. Specifically, it uses the existing ArduPilot sensor libraries which immediately brings a rich set of well tested sensor drivers to the project. It also uses the ArduPilot HAL (Hardware Abstraction Layer), allowing for new peripheral designs to be specified using the hwdef.dat system that has been so successful for ArduPilot over the last couple of years.
You can read more about AP_Periph here:


The key information for the 1.0.0 release is:

  • supports GPS (including RTK), baro, magnetometer, rangefinder, airspeed, ADSB, LEDs, safety switch and buzzers
  • supports 4 different MCUs, with more added easily via hwdef.dat
  • dynamic or static CAN node allocation
  • firmware upload
  • automatically generated bootloader
  • parameter storage in flash
  • easy bootloader update
  • high resiliance features using watchdog, CRC and board checks
  • firmware update via MissionPlanner or uavcan-gui-tool

AP_Periph is targeted both at vendors who are looking to create a UAVCAN peripheral, and at end users who want to buy one of the convenient CAN nodes from mRo or jDrones and use those nodes to convert their existing I2C or serial periphals into UAVCAN peripherals.
The mRo nodes and jDrones gen.nodes already ship with the AP_Periph bootloader, so loading one of the prebuilt firmwares off firmware.ardupilot.org is easy. There are prebuilt firmwares for GPS, ADSB, RangeFinder and Airspeed.
I hope that AP_Periph will help to bring UAVCAN to a lot more users.
Finally, I’d like to thank @olliw42 for his great work on UC4H which led to the creation of the generic CAN nodes. While AP_Periph doesn’t share any code with UC4H, the concept of a generic CAN node that can be converted into many types of UAVCAN peripherals is brilliant and was really the inspiration for this project.
Cheers, Tridge

10 Likes

I’m also in the process of adding support for moving baseline RTK to AP_Periph. This will allow you to use two UAVCAN GPS modules to provide yaw for the vehicle without a compass. This will be useful for vehicles that operate in difficult magnetic environments.

1 Like

jDrones Gen.Nodes are also shipped with AP_Periph bootloader and Gen.Nodes can be used for GPS, Serial, Servos etc operations.

Thanks Jani! I’ve added that to the article

Which GPS chips do support this then? I guess we can not use the normal M8N for that, or?

You can the M8N, as well as lots of other GPS modules. You won’t get RTK support with a M8N of course, as it can’t do that, but it will give you a UAVCAN GPS.

That question was related to the “heading from GPS” :slight_smile:

ahh, sorry. That will work only for u-blox F9 GPS modules, or NMEA GPS modules that can provide yaw.

2 Likes

Have used a few of these but seem to have some trouble when trying to update to a different firmware seems as though MP won’t open the slcan.

Also note the Mrobotics has just released the above node and it is available for preorder and should ship within a week. also $5 from the purchase of these boards will be donated to ardupilot which is pretty cool.

great, the f303 is a nice improvement, and you should get one if you can.

@hwurzburg is working on documenting how to use the SLCAN mode in MissionPlanner for this. It is a bit tricky.

1 Like

I also sent a PM to help him. I have helped a few others that had old bootloaders and pre-stable firmware. Anyone else with CANNode issues feel free to reach out to me.

1 Like

Already ordered a couple!!! Love these little can nodes!

where did you folks find this fella he has been kicking a** on the wiki and really whipping it into shape thanks @hwurzburg appreciate the work you are putting into the wiki, its really showing!!!

@pkocmoud thanks for reaching out really appreciate that immensely!!! Hopefully we can chat and you can help me then I hopefully can help others with their issues. These can nodes have awesome potential and are really quite nice!!!

1 Like

Thanks…it appreciated

Had a very nice hour long chat with @pkocmoud tonight from mrobotics and he graciously helped me learn more about these can nodes and updating firmware as well as the bootloader. I didn’t have much luck using MP but did when using the UAVCAN GUI. One thing we noticed on these older version of the f103 can nodes was without something plugged into the input side such as a gps, that mission planner would not recognize the can node, but once you plugged in a gps you could get the node to show up in the UAVCAN node 1 setting, and had the ability to play with parameters in MP. Because this can node was one of the earlier version of the f103 I was unable to update the firmware initially using MP because it was on software version 1.0.0, but after getting the bootloader and the software version updated I now have the ability to update firmware via MP. Here are a few screenshots of the UAVCAN gui and settings we had used to make it work, although its kind of finicky just like MP is. can2
This will be the same com port you connect to whatever flight controller you use, the rest are default.


At the top of the UAVCAN GUI you will see local node ID: with 127 grayed out make sure you uncheck the check next to it before you start so it looks like the way the picture is. In the online nodes you can double click the node and it will open the node properties like in the picture to the right top. Next you can either upload firmware using the upload firmware button and you can find the ap_periph firmware here (note when downloading firmware select the bin file not the apj or the other only file needed is the .bin) this will allow you to update firmware. Next to update the bootloader you need to fetch all which will bring up the parameters for the can node under param 3 (flash_bootloader) double click and you will get the window at the bottom right. Change the value from 0 to 1 and hit send. you can now exit out or change other params as needed. to confirm you flashed the bootloader look at the log messages in the photo to the left and it shows flash bootloader OK. Again I’d like to thank @pkocmoud for his help! Connection on can is still kind of finicky so be patient and try many different ways. We managed to get UAVCAN GUI to work in a weird way by finding the node in MP then getting the UAVCAN GUI pulled up to where we could click connect then disconnecting from MP and clicking connect on UAVCAN GUI. This is one of the first CAN nodes they released so the new ones should be much better as they will hopefully have newer firmware on them. I can confirm that many different gps units have worked.

Servers by jDrones