I’m on a little DIY project which for myself I called UAVCAN for hobbyists (LOL), which was stale for a long while but thanks to the recent release of LibCanard v0.1 (thx Pavel!) made progress now. I have two basic nodes communicating and built&written a simple DIY SLCAN adapter, to diagnose with Pavel’s UAVCAN GUI Tool.
My driving goal was that I got tired of this dammed I2C, which is (at least for hobbyiests ;)) unavoidable with an external mag. So, I though, build a UAVCAN-to-i2c adapter and connect that to the mag, so that the long wires would be CAN now.
And that’s what I want to do now, but am not sure about some starting points. Maybe you would have ideas to these questions:
Q1: UAVCAN is said to be available in ArduCopter since a long while. However, with AC3.4 I found it extremely difficult to see how it is working, since there it is so deeply hidden in the PX4 layer (well, fact is, I did not see how it is working :)). I do know about the current in-tree efforts, and that UAVCAN is very actively worked on, but I feel unable to judge about it’s current state. So, question: I want to build a UAVCAN magnetometer node, which AC firmware should I use to test if it is working?
Q2: In the current List of standard data types the only data type I could find with some relation to magnetic fields is uavcan.equipment.ahrs.MagneticFieldStrength. However, it is totally unclear to me if that is what is used by AC, and if so, what data it is supposed to send. I mean, in my simple-minded world a UAVCAN magnetometer node would simply, at some rate, broadcast the three raw magnetic field values (converted to G), exactly as the sensor measures them. No calibration, no covariance, no whatever. So questions: Is this the correct data type the magnetometer node should send? What values should be emitted? What should be the rate? Which other data types must be supported for proper functioning? etc. etc.
Any comments on these matters would be highly appreciated.
Thx, and cheers, Olli
EDIT: HAHA … I’ve just now seen that just yesterday there had been huge number of commits, and most of them UAVCAN related. If one is not up to date up to the last second before asking a question … LOL. Anyway, from the commit “AP_UAVCAN: library for support of UAVCAN protocol”, am I right to conclude
Q1: latest master
Q2: yes, uavcan.equipment.ahrs.MagneticFieldStrength; yes, only three field values in G