DroneCAN GUI Tool - what is the physical connection?

Earlier today I posted a question asking about how to get a DroneCAN GNSS receiver connected to use uCenter. (I deleted that post)

The uBlox Portal directed me to using the DroneCAN GUI tool and this video by @tridge

This helpful video doesn’t include information about the physical connection between the DroneCAN device and the computer.

If I had to guess - it probably works something like the BLHeli Pass-Through. That requires setting a parameter to enable BLHeli Pass-Through. Then just a USB connection from the computer to the drone with ArduPilot up and running.

For the benefit of others looking to do this - could someone please detail the connection needed to use the DroneCAN GUI tool?

As a suggestion to @tridge - you may want to add this information to your video. Or at a minimum - in the Youtube notes.

Thank you.

That’s a lot of words and accusations to arrive at this link that is easily found in any given search engine:

https://ardupilot.org/copter/docs/common-slcan-f7h7.html

1 Like

Sure - easy to find if you know to search for “SLCAN.”

Looks like I’m right - there is a parameter to set - just like with the BLHeli passthrough.

OK - I’ll get on my soapbox a minute - as you’ve (@Yuri_Rage ) taken a shot at me in your response.

Not everyone knows the things we know. It can’t be assumed that anyone watching @tridge 's video on the DroneCan GUI Tool also knows about CAN_SLCAN_CPORT.

Think of the steps it took for me to get this far.

  1. I posted a query on the uBlox “positioning” forum to find out if a device existed to allow uCenter to address a DroneCAN enabled uBlox GNSS receiver - similar to the USB-UART devices for serial enabled GNSS receiver.

  2. The reply I got sent me to @tridge 's video.

  3. My query didn’t say anything about ArduPilot - so I guess anyone with a different application is out of luck.

  4. I also posted a similar query here - but once armed with the video I was able to delete it and replace it with the current post - asking about how to set this up.

OK - now just imagine - suppose some adventurous student or hobbyist who didn’t have at least the small level of experience I have, wanted to know how to use uCenter on a DroneCAN GNSS receiver? This is the sort or person who may embrace ArduPilot and keep it going on into the future. We need these people - and we need them to succeed.

Now, if the video @tridge released had made a simple reference to the wiki in SLCAN that you provided - wouldn’t it be more likely that such an inquiring person to succeed - and not give up in frustration?

Bottom line - as educators of our field - we can’t assume our audience knows what we know. We have to at least offer a list of prerequisites - to enable our student’s success - and avoid our wasting time on threads such as this one.

1 Like

Anyone with a different application wouldn’t be on the ArduPilot forum.

Perhaps an even more relevant search linked here that has nothing to do with SLCAN.

Perhaps you could reply to the video with a link in the comments as a way of contributing?

As you recall - I started with a post on the uBlox “positioning” forum.

I did post a comment to @tridge 's YouTube video - it hasn’t been approved yet.

I also posted the link you provided about SLCAN in the uBlox “positioning” forum.

No doubt - I put Mr. Google to work before posting queries. But I was expecting to find a CAN/USB device the same way there are UART/USB devices. I had no notion that connection would require a pass-through application.

The HolyBro F9P receivers I’ve purchased all came with a UART/USB converter with the GNSS receiver. Maybe they’ll make one for CAN devices. After all - a bunch of their customers are using PX4 and iNav.

I jumped off the top rope and probably shouldn’t have. It’s tiresome hearing complaints about documentation that actually does exist and isn’t hard to find. Even DroneCAN GUI’s own page links to ArduPilot’s documentation. I spent exactly as long as it took to type one search phrase into Google for each of these replies. It’s not like I curated my searches until they turned up something useful.

And I can also admit that the documentation does often lack…but that’s a community effort, and one where contributions are extremely welcome and usually quickly incorporated.

2 Likes

@jstroup1986 you can use SLCAN, but I usually use mavcan (CAN over MAVLink). That is easier to use and more flexible.
There is a lot of info in the ArduPilot wiki on setup

Thanks for your reply.

I’ll continue researching - no doubt all the necessary pieces are there.

I may end up writing a technical article that put the pieces together for others to reference. Just having the pieces of information out there clearly isn’t enough. Few can afford the time to put all the puzzle pieces on such a minor aspect of automated drones.

My comment on your YouTube video still hasn’t been released. Without the information on how to do the physical connections, your video has little value.

I’ve now read the wiki pages about CAN - and noticed this note:

However using google to search “ardupilot mavcan” - the search returns nothing that appears useful.

Can you please elaborate?

Thank you

mavcan means using CAN_FRAME and CANFD_FRAME messages. When you open DroneCAN gui tool you get these options
image
It is just CAN frames over MAVLink. You still get the full mavlink stream, but also get CAN

@jstroup1986 just to be clear, mavcan can be carried on any mavlink transport. So you can connect to USB, UART, UDP, TCP etc.
The URI is “mavcan:” followed by the usual pymavlink URI, or if it is a device (such as /dev/ttyACMx etc) then it will auto-detect if it is MAVLink or SLCAN.
So in the above picture MAVCAN will work with either of the /dev/serial/XXX devices, or the mavcan::14550. In the case of mavcan::14550 it is MAVLink over UDP.
Once connected to MAVLink the client sends a MAVLink request to the flight controller to start sending CAN data as CAN_FRAME and/or CANFD_FRAME MAVLink messages. It is bi-directional, so you can change CAN parameters, reboot the device etc
I frequently use it to help setup DroneCAN devices on remote vehicles using https://support.ardupilot.org

Thank you.

One thing I was probing for is - what ArduPilot parameters must be set first before these tools can be used?

In your video about DroneCAN GUI Tool, I didn’t see any mention of such settings.

I’m finding quite a bit of detail about ArduPilot’s treatment of GNSS receivers require quite a bit of digging to be fully informed. For example, the parameter for having ArduPilot auto-config a serial connected GNSS receiver is set to “ON.” However for a DroneCAN GNSS receiver - its set to “OFF.” Why would this be true?

There’s a good page in the WIKI that explains how to use a serial passthrough function of ArduPilot to allow uCenter to connect to a serial connected GNSS. There’s no mention specifically that it only works on serial GNSS receivers.

It’s a classic example of documentation being written by people who know how things work - for a similar audience. Years ago when developing software I preferred to have technical writers who knew nothing about the system they were hired to document. Because they had to learn how it worked, they were less likely to leave out a detail that one of the developers presumed to be obvious.

I get it that in the open source world - you often get what you pay for. But for those in leadership roles, it’s worth some consideration - in my opinion.

We need the inexperienced people to succeed. They buy the hardware - and those vendors support ArduPilot. It’s in the best interest of those in ArduPilot development to consider the information needs of those with less knowledge and experience.

you have to have CAN enabled, and have to have MAVLink enabled on the port you connect on.
It is not like SLCAN where you have to jump through additional hoops to use it. It is always available on any board with CAN enabled.

there is a separate document (and video) for how to connect uCenter to DroneCAN GPS modules (as long as those GPS modules are based on the ArduPilot AP_Periph firmware)

I’m familiar with that approach, my wife got her first job as a technical writer at a large chemical plant (ICI in Sydney) precisely because she had no chemical engineering knowledge (at the time she had a degree in literature).
The problem with this approach is the technical writers learn, and quickly lose their lack of knowledge :slight_smile:

1 Like