M5Stack with CAN

  • Hi,

    new to the forum. First want to say hello to everybody :-)
    Quit interesting tool the M5Stack.

    Using google i could found a lot of versions of the M5Stack.
    I have also one found with CAN.
    But the new Version 2018 seems to have "only" 4M PSRAM.

    Is there a can version ? Where can i get it and when will there be support in de M5Stack Lib for it?



  • @andi Hi Andi, welcome!

    With the M5Stack range there is the base or core unit with the screen etc and then there are the add-on modules, which can be purchased separately.

    The pic below shows a PCL (programmable logic controller) module for the M5Stack that supports Can and RS-485. It hasn't been released yet - the pic was posted on twitter Jan 24 2018. Seems like release might not it is too far away... Presumably support will be added then. A brief PLC test video as per pic below has also been tweeted...

    I don't see any reason why the current model M5Stack with 4 MB PS-RAM would not support the PLC module.

    Micro-python uses the PS-RAM, but general sketches run without needing it.... eg: the earlier model does not have PS-RAM it and runs many sketches. For example, arduino & ESP8266 devices are quite capable despite no PS-RAM.

    Watch twitter @M5Stack for product announcements.

    Store link via: www.m5stack.com

    0_1519498106572_M5Stack PLC Customisation.jpg


  • Hi JimiT. Thanx for the response.

    I found the following : https://www.espressif.com/en/media_overview/articles/m5stack-be-relaunched-esp32

    There ist a picture of an M5Stack with can.

    Bild Text

    Thats what i was locking for. On the M5 Bus there is CANH and CANL connection.

    Anybody seen that?

  • @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.