🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    CAN Unit on M5Tough

    Units
    2
    6
    5.6k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      gschora
      last edited by

      Hi!

      I cannot get the CAN unit working on my M5Tough. The same setup with a M5Fire works fine.

      First the setup with the Fire:
      I connected the unit to port B with the resistor between L and H. This is connected to a mini PLC, where I knew CAN was definitely working (also with the resistor installed).
      I can now send messages between the Fire and the PLC.

      When I switch out the Fire for the Tough it doesn't work anymore. I cannot receive or send messages.

      I'm using the same code on both M5 products except I switched out "M5Stack.h" for "M5Tough.h". (I also tried with "M5Stack.h" on the Tough)
      Nothing works.

      Also tried using the latest version from github (2021/11/01) - no success

      I bought 10 M5Tough to use as HID for small PLCs and now I cannot use them.

      I'm out of ideas. Can anyone help?

      Also: Is there a working example for CAN on UIFlow somewhere out there? This would make updating the code and other things much easier.

      Hannes

      1 Reply Last reply Reply Quote 0
      • felmueF
        felmue
        last edited by

        Hello @gschora

        not sure if it helps, but there is a CAN example for the M5Tough - maybe give it a try?

        Thanks
        Felix

        GPIO translation table M5Stack / M5Core2
        Information about various M5Stack products.
        Code examples

        G 1 Reply Last reply Reply Quote 0
        • G
          gschora @felmue
          last edited by

          Hi @felmue

          The CAN example for the M5Tough doesnt't compile because it refers to buttonA and buttonB. So I guess this was just copied from the M5Fire example... Even if I comment out these parts, so that it can only receive CAN messages and it compiles, it doesn't work.
          My guess is, that something is different in the hardware of the M5Tough compared to the fire and that the libraries are not completely updatet yet...

          thanks
          Hannes

          1 Reply Last reply Reply Quote 0
          • felmueF
            felmue
            last edited by felmue

            Hello @gschora

            sorry about that. Yes, for some reason the touch buttons have been eliminated (compared to M5Core2) although I have no idea why.

            I am afraid you are correct that the M5Tough examples have been rushed (wouldn't be the first time) and have been poorly tested if at all.

            From what I can tell M5Tough hardware is mostly based on M5Core2 which is quite different from M5Stack (Fire, Base, Gray).

            That said, I fail to see why the CAN unit shouldn't work - it's just using the two GPIOs from port B.

            Since I don't have an M5Tough nor the CAN unit I cannot try it myself and at this point I am out of ideas, sorry.

            Thanks
            Felix

            GPIO translation table M5Stack / M5Core2
            Information about various M5Stack products.
            Code examples

            1 Reply Last reply Reply Quote 0
            • felmueF
              felmue
              last edited by felmue

              Hello @gschora

              I just found the CAN unit UIFlow example. Check out Advanced - CAN. Again, I have no idea as to why the CAN unit is handled differently and not part of the regular units list.

              Examples can be found here.

              Please be aware that the UIFlow example is set to use port C, but is using the incorrect GPIOs even when selecting M5Tough. It should be GPIO14 for TX and GPIO13 for RX (and not GPIO17 and GPIO16, which would be ok for M5Stack).

              Thanks
              Felix

              GPIO translation table M5Stack / M5Core2
              Information about various M5Stack products.
              Code examples

              G 1 Reply Last reply Reply Quote 0
              • G
                gschora @felmue
                last edited by

                @felmue

                Thank you for your time. I will investigate the CAN issue further and if I can get it to work on the M5Tough, I will have to use the Fire for now although I will have to make a watertight enclosure because this goes onto a tractor.

                A big Thank You for the uiflow example. I looked at the documentation but couldn't find it....

                If I get this to work, uiflow would make it so much easier to update the code in the field

                Thanks again!
                Hannes

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post