Jetson JetBot AI Kit - Issues with qwiic IC2

I did all the steps for the jetbot as described here: https://learn.sparkfun.com/tutorials/as … troduction Unfortunately i’m unable to get anything to actually work. I haven’t been able to verify if the IC2 / qwiic stuff is working.

When i use this command ( sudo i2cdetect -l ) I get:

i2c-3 i2c 7000c700.i2c I2C adapter

i2c-1 i2c 7000c400.i2c I2C adapter

i2c-6 i2c Tegra I2C adapter I2C adapter

i2c-4 i2c 7000d000.i2c I2C adapter

i2c-2 i2c 7000c500.i2c I2C adapter

i2c-0 i2c 7000c000.i2c I2C adapter

i2c-5 i2c 7000d100.i2c I2C adapter

Scanning bus 1 is slow using sudo i2cdetect -r -y 1

When using this code it just runs forever and never returns anything

https://github.com/sparkfun/Qwiic_Micro … feeadad0ca

When i do a scan for qwiic devices it seems to return every possible device driver. more than what is actually connected.

Is there anything special i have to do to get qwiic working with the nano not described in the docs?

Good afternoon n8o,

I’d be happy to assist you, but I am a little confused about the instructions you might be following or maybe I don’t understand what you are trying to do here. Let me address some of the things you mentioned first. (The first part addresses both your first comment and last question (bold parts).)

  • - If you are following the [[instructions](https://learn.sparkfun.com/tutorials/assembly-guide-for-sparkfun-jetbot-ai-kit):
  • - Steps 1-4 are for mechanically assembling the chassis and parts.
  • - Step 5 is for the software setup:
  • - The **SD card image comes [u]pre-configured[/u]**, you do **[u]NOT[/u]** need to set up any of the python library packages.
  • - You only need to set up the WiFi connection.
  • - Step 6 is for using the examples:
  • Click the [[link/button](https://github.com/NVIDIA-AI-IOT/jetbot/wiki/examples) and follow the instructions on their GitHub Wiki page to start using the examples.
  • [/list] [/list]
  • - Using the "l" flag lists the available busses, not the connected devices. For more details on using i2cdetect, check out the [[this resource](https://linux.die.net/man/8/i2cdetect). ``` i2cdetect -l ```
  • - You mentioned scanning bus 1, but don't list the output.
  • - Did you see any devices connected to the bus?
  • - The response only lists active I2C addresses, not the names of devices.
  • ``` i2cdetect -r -y 1 ```
  • - You mention running "this code" and then the [[link](https://github.com/sparkfun/Qwiic_Micro_OLED_Py/tree/8a1bdf02bc7d313b6827e340bc375dfeeadad0ca) listed, directs to the Qwiic Micro OLED library. I'm guessing that you are referring to the example code for that library and not the installation instructions for the package:
  • - Yes, the example code is an infinite loop.
  • - Otherwise, this library package comes pre-installed on the SD card, so you don't actually have to install it (as mentioned in [[our instructions](https://learn.sparkfun.com/tutorials/assembly-guide-for-sparkfun-jetbot-ai-kit/5-software-setup-guide-from-nvidia)).
  • - You will probably run into issues running the example code, as the OLED screen is being constantly accessed by a background service needed by the Jetbot to display the IP address and resource usage.
  • ](https://learn.sparkfun.com/tutorials/assembly-guide-for-sparkfun-jetbot-ai-kit/5-software-setup-guide-from-nvidia)

    Now let’s start with some basic troubleshooting:

  • - Are you using the pre-configured image?
  • - How far have you gotten in the [[assembly instructions](https://learn.sparkfun.com/tutorials/assembly-guide-for-sparkfun-jetbot-ai-kit)?
  • - Is there a step you are running into an issue at?
  • - Is that why you are trying to verify that the I2C devices are working?
  • - Which step is that?
  • - Have you double-checked your hardware connections? Can you send me a few pictures so that I can verify?
  • - Make sure the micro-USB jack connection to the motor driver isn't shorting out the power.
  • - This is kind of outside the scope of the instructions. However, if the Qwiic connection to the motor driver is attached to the I2C bus, when it isn't powered... the I2C bus won't work properly.
  • ](https://learn.sparkfun.com/tutorials/assembly-guide-for-sparkfun-jetbot-ai-kit)](https://github.com/sparkfun/Qwiic_Micro_OLED_Py/tree/8a1bdf02bc7d313b6827e340bc375dfeeadad0ca)](https://linux.die.net/man/8/i2cdetect)](https://github.com/NVIDIA-AI-IOT/jetbot/wiki/examples)](https://learn.sparkfun.com/tutorials/assembly-guide-for-sparkfun-jetbot-ai-kit)

    Thanks for your response. I have followed the assembly guide to the best of my ability. When i first turned it on i had nothing show on the LCD screen or any motor reactions when running the examples. So i’ve been trying to debug why it isn’t working.

    I’m using the pre-flashed image. I didn’t install any additional libraries. Just trying to run code to get some sort of feedback. Right now i just have the LCD screen plugged into the qwiic system. I don’t know if this is ok or if it needs to be plugged into the motor controller as well to supply power. I figured i would debug getting the LCD screen working first.

    Here are some outputs from software probes:

    jetbot@jetbot:~$ sudo i2cdetect -y 0
    Warning: Can't use SMBus Quick Write command, will skip some addresses
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:
    10:
    20:
    30: -- -- -- -- -- -- -- --
    40:
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60:
    70:
    jetbot@jetbot:~$ sudo i2cdetect -y 1
    Warning: Can't use SMBus Quick Write command, will skip some addresses
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:
    10:
    20:
    30: -- -- -- -- -- -- -- --
    40:
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60:
    70:
    

    I’m seeing 3.3v on both pins 3 and 5 when nothing is plugged in on my Oscilloscope. when i have everything connected (pHat, oled, drive controller) i get -480mV on pin 3 and -75mV on pin 5. Not sure if that is helpful or what to look for exactly. I do see pin3 spike to 1.9v on occasion while probing IC2.

    Hi n8o

    Could you send us a photo of the top and bottom of your motor driver board and a photo showing how you have everything connected?

    I’ve got the same exact issue with no activity on the screen or the motors. I’ve fully assembled the kit, am able to boot it and get to Jupyter. I’ve checked for power at the 3.3/GND pins on the oLED screen and see 3.3V.

    i2cdetect is super slow and produces no addresses. Attaching pictures of wiring.

    I have the same issue. Same symptoms as in the previous post. Assembled according to the instructions. Please advice.

    Any updates on this issue?

    I would make sure that you are providing power to the serial controlled motor driver (SCMD). If it isn’t being provided power from the USB breakout, it starts to strain the I2C bus.

  • - A good test is just pulling the Qwiic cable for the SCMD and only connecting the OLED screen. You should see the screen start to work right away (well... there might be a ~10 second delay for the code to loop and update the screen).
  • - Another indicator is that the status LEDs on the SCMD aren't lighting up.
  • As far as a blank/slow i2cdetect make sure you are using the “-r” flag; otherwise, it won’t respond properly:

    i2cdetect -r -y 1
    

    (PS- I’ll be out of town for 2 weeks w/o service. Thanks for your patience.)

    Running i2cdetect with the -r flag produces the same result, at the same speed. I get no action on the OLED screen with or without the motor driver plugged in, and I do get an “ok” status LED signal (1 blink every 2 seconds or so).

    I’m starting to think either the pHAT is busted, or something’s wrong with the jetson itself.

    Sparkfun where are you - this issue has been posted for more than 3 days now.

    I figured it out (for me).

    I glossed over the need to set configuration bits on the motor driver (you have to bridge pad 3). Without that, it starts in UART it begins to spam the I2C bus rendering it useless for anything attached to it. This resolved it for me.

    Is this the pad that you are referring to? See attachment.

    Thanks

    correct

    Jepp. Did the trick. Thanks

    Here is a photo of my motor driver. I bridge the three pads. Is this correct or was I supposed just bridge the one pad. The instructions weren’t very clear.

    @kolosy Sorry, as mentioned in my post… I was out of town and just got back. Glad you were able to figure out the issue on your own. Thanks for helping stenhh.

    @n80 Technically, you only needed to solder the jumper labeled “3”. However, as the other two jumpers are just for the pull-up resistors… you should be fine since there are only 2 devices attached to the I2C bus. You may want to doublecheck the soldering on the SDA connection if you have issues, but overall it looks ok from what I can see in the picture.

    I’ll update the tutorial so it is more clear.

    Is the connection between the motor controller and lcd required for this to function? If i disconnect the wire and boot the device, I get no output on the screen. Still trying to debug my issue.

    @n8o Let’s begin with the previous troubleshooting questions:

  • - Have you double-checked your hardware connections? Can you send me a few pictures so that I can verify it?
  • - How far have you gotten in the assembly instructions?
  • - Is there a step you are running into an issue at?
  • - Is that why you are trying to verify that the I2C devices are working?
  • - Which step is that?
  • - Can you resend the response for the following command (with the devices plugged in)? (**Please, make sure to use the "-r" flag.**) ``` i2cdetect -r -y 1 ```
  • - What happens when you only have the OLED screen attached?
  • As a follow up to your last post:

  • - Which wire are you disconnecting?