NoCAN? For CANbus?

Saw this Open Hardware NoCAN Pi hat today: Omzlo: The NoCAN platform

Arduino lib

Would this be interesting for CAN-capable SimpleFOC motor drivers?

Interesting. Although the hardware is really expensive. There are a lot cheaper solutions based on SPI CANBus you can get for less than $5 per node, without the need for a central node, using the real CANBus protocol. Last, the idea of CANBus is a decentralized model, and this appears to be a centralized daisy-chain model.

1 Like

29euro for the Pi hat doesn’t seem too bad to me?

I was imagining you’d ‘roll your own’ device hardware into existing (or new) SimpleFOC driver hardware.

I’ll take a better look at the protocol…

Well, the economics don’t add up, because you need E29 for the PI hat and each node device requires extra E19 to connect into the daisychain, compared with $5 per CANBus node using this little board you can make yourself which is using the real CANBus and talks to any other CANBus node from any other manufacturer. Connecting a $1 temperature sensor with a $20 interface board seems like an overkill.

1 Like

Why would it require that much? I’m not suggesting buying their node hardware. Instead; add Canbus hardware components to modify existing SimpleFOC driver boards.

I need e50 to connect a small sensor to my RPi

The library works only with RPi and this exact HAT and nodes.

May be I don’t understand the topology you are proposing, could you please be a little more specific?


1 Like

Ah if that’s the case your comments make sense. I assumed that given it was open hardware and software it would be possible to just add some extra Can components and the Arduino code to existing SimpleFOC boards.

You could conceivably make it yourself however it’s really complicated. They are not exactly “tricking you”, I mean it’s an honest open hardware but making it yourself requires very high skills.

1 Like

What they did was take STM32G041 which is a crystal-less 32bit MCU, connected a can transceiver, then used I2C to connect to an Atmel chip and wrote a wrapper around the CANBus protocol. The G041 is programmed separately, and acts as a CAN controller, and sends/receives data from the ATMEL chip. Essentially they overlaid the CAN with another home grown protocol.

It’s a nice way to make you buy their hardware, I must admit.

I remember looking into their G041 library a long time ago, then decided it’s so much work and trouble, and also introduced some HAL licensing issues with ST, I went for a much easier and cheaper option of using silicon directly.

Also you still need the central controller, which defeats the CANBus decentralized model paradigm. Like, its open and uses can but you MUST buy our hardware. And then you need RPi to control it.

1 Like

To chime in on the CAN topic, because there was this one, and another recent thread where it was discussed. My thoughts in summary:

  • CAN is onboard many STM32 MCUs, and also SAMD. The MCUs only implement a logic level serial CAN (CANTX/CANRX) and need a transceiver to output the differential CAN signals. A Feather M4-CAN is a relatively inexpensive and quite powerful MCU board for SimpleFOC that comes with on-board CAN transceiver.
  • There are application layer protocols on top of this basic CAN support (which is only the data link and transfer layers) and many protocol stacks for different open and proprietary solutions. Its a complicated world.
  • The protocols are less well standardized than ethernet, so there are far more options and products that don’t work with each other at that level.
  • I think the SimpleFOC use case is to connect one or more motor-MCUs to a central controlling MCU, think of a robot-arm or an on-board robot CAN-bus for a small mobile robot.
  • Technologies which allow hot-plugging nodes, extensible star topologies with hubs and switches, etc all this is too complicated and not really needed for simplefoc.
  • People who want that can use existing controller solutions that just transport SimpleFOCs serial comms.
  • I think we just need a quite basic protocol which covers a single robot / robot arm / motor system in a basic bus topology, using 5V or 3.3V and capable of distances up to a few meters.
  • There have been at least 2 implementations of CAN based control that I’m aware of, they’re findable in this forum. They are basic implementations like described above.

So while I think @Sam 's solution could very well work (there might be a problem with the pins used, I didn’t check) I don’t think this hardware is needed.
All it needs is MCU boards with on-board CAN, which for simple transceivers is not expensive. The isolated CAN controllers get very expensive, but I don’t see the need for isolation on a hobbyist small robot / small motor system 5V CAN bus.

1 Like