New feature: GUI CANbus support

A project log for Axiom: 100+kW Motor Controller

High Power, High Performance 400V 300A 100+kW Motor Controller fully compatible with VESCĀ®

MarcosMarcos 07/18/2019 at 22:190 Comments

Because we can have nice things

Consider your regular dayjob (or dayhobby) of using an Axiom-based controller. You are likely dealing with a silly amount of current, or voltage, or both, and you have to *work* with that while being safe. It is also likely that you need to work on more than one motor drive at a time, for example when you have an AWD dual motor honda CRX, or a one-motor-per-wheel setup with torque vectoring, or you are just stress testing 10 drive units in a test facility and you want them in a network.

In those cases, the good'n old USB interface of the vesc platform just doesn't cut it because a compromised isolation barrier in one controller will expose your computer to unsafe voltages.

For those cases we equipped every Axiom board with a couple of isolated CANbus interfaces: its the safest way to interface with a motor drive, providing a second isolation barrier with super low capacitive coupling for highest noise immunity.

And when you need to address several controllers, well, CANbus is the perfect protocol as it allows to send or receive commands from any node in the network. Within milliseconds you can send torque commands to 4 controllers in the bus.

But there was a missing piece in the VESC platform: you couldn't directly connect to a CANbus with the VESC Tool GUI.

Until now!

Native CANbus support for VESC Tool

See here our Pull Request that adds native support for a can interface. You can discover all VESC's in the network, connect to one and perform firmware updates, realtime data acquisition, high speed sampling, motor detection, parameter config, etc, everything from the GUI.

This works nicely on linux. For windows support you may have to wait, code it, or hire someone to code it for you ;-)

It opens the door for proper instrument clusters

Something we want to address is data display. Whether its a sportsbike, a car, a plane or a jet boat (yes Axiom is already serving all those applications!) the human interface needs to be pretty, with Qt libraries we can do much better than a hacked gauge display

With VESC Tool codebase being capable of accessing the bus, it is now much easier to install a Beaglebone or a RPi in the vehicle with an industrial monitor and run a nice instrument cluster like this example from the internet that I compiled a couple of years ago on my old laptop.

Both VESC Tool and this example are based on Qt5 libraries. We hope to see some nice VESC displays in the future thanks to this

Update: we have a dashboard getting data from the controller:

In-house CANbus<->USB adapter

And here is the icing of the cake: every Axiom controller will come with a compatible CANbus<->USB adapter, using the open source candlelight firmware, and with perhaps the nicest build quality out there:

A few highligths:

I ordered some boards to assemble in-house, if they turn out good we can send a batch for mfg. Being the coolest CAN<->USB converter out there it should sell well, not only to Axiom users.

Note that the boards are panelized, with tooling strips that provide fiducials and alignment holes for the stencil and production line. By panelizing myself I make sure the long edges will not be V-grooved, I want them routed for a smooth finish. Also note the proper contact between pcb GND and the aluminum shell for better shielding. 

UPDATE: Working prototypes!

As usual... stay tuned!