ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    VOXL2 J19 external I2C not showing clock activity

    VOXL 2
    2
    10
    159
    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.
    • S
      saegsali
      last edited by

      Hello ModalAI Support,

      I am trying to use external I2C on a VOXL2 M0054 through J19.

      I checked the hardware side and found:

      • J19 I2C lines sit high at about 3.3V when idle
      • continuity from J19 to my external board is good
      • ground connection is good

      However, when I try to access the external I2C buses from the VOXL, I do not see any clock activity on the J19 I2C clock pins with an oscilloscope. The lines remain at steady 3.3V and no external device responds.
      From the documentation, my understanding is that:

      • J19 pins 4/5 are the external magnetometer I2C path
      • J19 pins 7/8 are the spare external I2C path
      • the J19 I2C path goes through a TCA9517 level shifter/buffer

      Could you please advise:

      • Whether I should expect visible clock activity on these J19 pins when accessing the external I2C buses?
      • Whether any additional configuration is required to enable the J19 external I2C path on VOXL2 M0054?
      • Whether this symptom suggests a known issue with the J19 / external I2C buffer path?

      I can provide more details if needed.
      Best regards
      Joel

      Eric KatzfeyE 1 Reply Last reply Reply Quote 0
      • Eric KatzfeyE
        Eric Katzfey ModalAI Team @saegsali
        last edited by

        @saegsali How are you trying to access the external i2c buses on J19?

        S 1 Reply Last reply Reply Quote 0
        • S
          saegsali @Eric Katzfey
          last edited by

          Hi @Eric-Katzfey

          We have a custom PCB which we use for different sensors e.g. to measure temperatures. The board is tested with an Arduino where it works with I2C.

          I now used the same PCB and connected it to the I2C lines on the J19 plug (4/5) and (7/8) but with neither of these I was able to establish communication to the I2C chips on the PCB. I then analyzed the SCL lines (pins 4 and šŸ˜Ž with an oscilloscope and realized that no signal is present there.

          Therefore I was wondering if any additional configuration is needed for using J19's I2C lines with external sensors?

          Thank you in advance!

          Eric KatzfeyE 1 Reply Last reply Reply Quote 0
          • Eric KatzfeyE
            Eric Katzfey ModalAI Team @saegsali
            last edited by

            @saegsali But how were you trying to access the I2C? What software? Via PX4?

            S 1 Reply Last reply Reply Quote 0
            • S
              saegsali @Eric Katzfey
              last edited by

              Hi @Eric-Katzfey

              Yes, mainly via PX4 / qshell, and I also cross-checked once from Linux userspace.
              I tested both J19 I2C paths:

              • pins 4/5
              • pins 7/8

              With both methods I could not communicate with the devices on my custom PCB, and on the oscilloscope the SCL lines stayed flat at 3.3V with no clock activity.
              So it looks less like a device/address issue and more like the J19 I2C lines are not being driven out to the connector.

              Do J19 pins 4/5 and 7/8 require any additional enable/configuration on VOXL2 before they can be used for external sensors and whats the preferred way to access them?

              Eric KatzfeyE 1 Reply Last reply Reply Quote 0
              • Eric KatzfeyE
                Eric Katzfey ModalAI Team @saegsali
                last edited by

                @saegsali I really need you to be specific on how you tried to access the i2c. Please provide the exact commands issued so that I can see if what you were trying to do should have caused activity on the i2c bus.

                S 1 Reply Last reply Reply Quote 0
                • S
                  saegsali @Eric Katzfey
                  last edited by

                  Hi @Eric-Katzfey

                  These are the specific commands I used on the VOXL2.
                  From an adb shell on the VOXL, I first tried PX4 / qshell on the J19 external I2C bus:

                  MINIMAL_PX4=1 voxl-px4
                  px4-qshell i2cdetect -b 4
                  

                  To make sure there should be repeated bus activity while checking with the oscilloscope, I also ran:

                  while true; do px4-qshell i2cdetect -b 4 >/dev/null 2>&1; sleep 0.1; done
                  

                  I also cross-checked from Linux userspace with a small libvoxl_io test program I wrote based on the VOXL I2C API and the qrb5165-rangefinder-server example. That test uses:

                  • voxl_i2c_init()
                  • voxl_i2c_set_device_address()
                  • voxl_i2c_read_bytes()
                  • voxl_i2c_read_byte()

                  It tries to read the devices expected on my custom PCB:

                  • ADS7828
                  • PCA9685

                  On the J19 external I2C paths, the result was the same: repeated failed to write to bus, no ADS7828/PCA9685 detected, and no visible SCL activity on the corresponding J19 clock pin.
                  If there is a preferred known-good command for exercising J19 bus 1 or bus 4 on VOXL2, I’m happy to try that as well.

                  Eric KatzfeyE 3 Replies Last reply Reply Quote 0
                  • Eric KatzfeyE
                    Eric Katzfey ModalAI Team @saegsali
                    last edited by

                    @saegsali I would attach a GPS / magnetometer to J19 (UART and I2C). Verify that PX4 is getting good GPS and magnetometer data. Then probe the I2C lines while the device(s) are still attached.

                    1 Reply Last reply Reply Quote 0
                    • Eric KatzfeyE
                      Eric Katzfey ModalAI Team @saegsali
                      last edited by

                      @saegsali When you run that test is your custom PCB attached to the lines? What if you remove the PCB and just look at the lines?

                      1 Reply Last reply Reply Quote 0
                      • Eric KatzfeyE
                        Eric Katzfey ModalAI Team @saegsali
                        last edited by

                        @saegsali BTW, the voxl_i2c commands are only going to try to exercise apps processor mapped i2c buses, not the DSP mapped ones on J19. Stick with the PX4 commands, those should work. And when you start PX4 from the command line use the -d option so that it doesn't start in daemon mode. E.g. MINIMAL_PX4=1 voxl-px4 -d.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Powered by NodeBB | Contributors