Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    I2C Transmission Error

    Scheduled Pinned Locked Moved
    General Discussion
    1
    3
    118
    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.
    • DonStaufferundefined
      DonStauffer
      last edited by

      I've connected an Adafruit NeoPixel driver card correctly to the best of my ability, using the Duex I2C/GPIO header to provide 3.3V and ground, as well as the I2C clock & data pins. Unfortunately, while Adafruit provides comprehensive wiring information, they only provide some general information on communication with the card.

      They do specify the card address as 0x60, and the NeoPixel "module base register" address as 0x0E (apparently the card uses a seesaw chip capable of many other functions besides NeoPixel control, and this module base register tells it which function to use).

      Guessing, I though sending 0x0E to address 0x60 might be a way to test, and I converted to decimal to keep it simple, but this gives me a transmission error:

      M260 A96 B14

      I'm really not even sure what to try. I have no I2C experience (just a CS degree).

      What should I do next to troubleshoot this?

      DonStaufferundefined 1 Reply Last reply Reply Quote 0
      • DonStaufferundefined
        DonStauffer
        last edited by DonStauffer

        Since I turned 61 I've been having this problem of reversing the clock and data wires, and things like that which produce transmission errors. 😃

        So now that I don't get that error, I have to figure out how to control the NeoPixels using I2C to the NeoDriver card. So far, whatever I do, the LEDs remain dormant.

        1 Reply Last reply Reply Quote 0
        • DonStaufferundefined
          DonStauffer @DonStauffer
          last edited by DonStauffer

          @DonStauffer For the sake of documentation, I found that this macro lights the first LED white. I have not been able to find a way to specify hexadecimal that works, including the example in the M260 GCode dictionary entry (which gives an "expected a number" error); I can assign a hex value to a variable and use the variable in braces though, as in M260 A{var.Addr}... . Putting the hex literal in braces works too: M260 A{0x60} ...

          M260 A96 B14:1:15
          M260 A96 B14:2:1
          M260 A96 B14:3:54:0
          
          M260 A96 B14:4:0:0:255:255:255 ; Turn it on
          ;M260 A96 B14:4:0:0:0:0:0 ; Turn it off
          
          M260 A96 B14:5
          
          1 Reply Last reply Reply Quote 1
          • First post
            Last post
          Unless otherwise noted, all forum content is licensed under CC-BY-SA