Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

  1. ModalAI Support Forum
  2. VOXL Compute & Autopilot
  3. VOXL 2
  4. VOXL2 J19 external I2C not showing clock activity

VOXL2 J19 external I2C not showing clock activity

Scheduled Pinned Locked Moved VOXL 2
11 Posts 2 Posters 1.1k Views 2 Watching
  • 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

    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 Offline
    Eric KatzfeyE Offline
    Eric Katzfey
    ModalAI Team
    wrote last edited by
    #2

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

    S 1 Reply Last reply
    0
    • Eric KatzfeyE Eric Katzfey

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

      S Offline
      S Offline
      saegsali
      Contributor
      wrote last edited by
      #3

      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
      1
      • S saegsali

        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 Offline
        Eric KatzfeyE Offline
        Eric Katzfey
        ModalAI Team
        wrote last edited by
        #4

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

        S 1 Reply Last reply
        0
        • Eric KatzfeyE Eric Katzfey

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

          S Offline
          S Offline
          saegsali
          Contributor
          wrote last edited by
          #5

          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
          1
          • S saegsali

            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 Offline
            Eric KatzfeyE Offline
            Eric Katzfey
            ModalAI Team
            wrote last edited by
            #6

            @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
            0
            • Eric KatzfeyE Eric Katzfey

              @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 Offline
              S Offline
              saegsali
              Contributor
              wrote last edited by
              #7

              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
              1
              • S saegsali

                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 Offline
                Eric KatzfeyE Offline
                Eric Katzfey
                ModalAI Team
                wrote last edited by
                #8

                @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
                0
                • S saegsali

                  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 Offline
                  Eric KatzfeyE Offline
                  Eric Katzfey
                  ModalAI Team
                  wrote last edited by
                  #9

                  @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
                  0
                  • S saegsali

                    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 Offline
                    Eric KatzfeyE Offline
                    Eric Katzfey
                    ModalAI Team
                    wrote last edited by
                    #10

                    @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
                    0
                    • S Offline
                      S Offline
                      saegsali
                      Contributor
                      wrote last edited by
                      #11

                      Hi @Eric-Katzfey

                      Thank you for your help!
                      I got it to work on J19 through PX4.

                      1 Reply Last reply
                      1

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      ModalAI
                      Categories Recent Tags ModalAI.com Docs
                      © 2026 ModalAI® · Accelerating autonomy for smaller, smarter, safer drones · Powered by NodeBB
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups