M5Stack with CAN

  • @andi
    Hi Andi, I hadn't noticed that one had CAN right on the GPIO like that.....

    This appears to be a early design featuring use of the ESP32..... various things have changed since then... including the M5 bus as I'm sure you're aware.

    I have not see this model in the wild.... maybe some were produced in small quantities - I don't know. Anyone ?

    I would guess that the board design was updated before release of the current range of models.

    Is there anything stopping you from using the new PLC module for your application? (Mentioned again in twitter today). Or was it mainly the convenience of having the CAN built into the main unit, without the need for an extra module ?

    Here's the current M-BUS layout for those playing along at home.... wanting to compare:


  • no CAN now! we changed the design.

  • why no?

    we have CAN library:
    for esp-idf:
    for arduino:

    more info:
    we only need additional CAN transceiver as described above

    we still can use GPIO35 as CAN RX and GPIO5 as CAN TX (this config is used by Olimex EVB Rev B)
    Personally I haven't tested GPIOs pair 35/5 but pair 4/5 works very well with arduino lib

  • @reaper7M5Stack with CAN 中说:

    why no?

    Probably because most of the users will never need/use the CAN interface.

    Some wil need CAN, some RS485 (as I do), some RS232 ... all the interfaces can be easily added on the add-on module (and it is easy enough to make your own).

  • I only wrote, that we can still use esp32 CAN functionality with current m5stack hardware :)
    gpio's 35/5 are available on m5stack header
    and additional transceiver may be soldered, as You wrote, on the add-on module.

  • yes, the add-on function board will meet this need, The Can Board will come.

  • High Speed CAN transceiver can be used by custom design, I checked it based on my proto board:

  • Hi. Thanks a lot for the feedback. Thats exactly what i was locking for. Need to add a can transceiver and used the pins 34 and 35 for the CAN connection. I would like to build a simple can logging monitor.

  • nice

  • I used this CAN lib, works in Basic CAN mode with SN65HVD230.

    Even more due to the pin mux of the ESP32, you can also use different pins, e.g.

    #define CAN_TX GPIO_NUM_17 // TXD2
    #define CAN_RX GPIO_NUM_16 // RXD2

    Because I used TXD2 and RXD2, I'm currently considering to check also the RS232 MAX based TTL converter and in case it works, maybe I will put only a 4 or 6 pin grove connector into the M5Stack proto board with housing and place the tranceiver into an external plug: one connector would then allow either CAN or Serial :-)

  • Another getting this for a CAN idea, after using CAN on other ESP32 modules.

    I am going to see if I can squeeze an SN65HVD230 board inside the enclosure and run without a battery.