Please help. Waveshare JetBot AI Kit with Jetson Nano - just started and no display, no Robot() (Timeout), no nothing except WLAN... :-(


I have just assembled my Waveshare JetBot AI Kit with the Jetson Nano onboard.

I have installed the image, connected a HDMI monitor, USB mouse and keyboard, charged the 3x 18650 batteries and was able to establish a WLAN connection .

Then I disconnected the peripherals and tried to connect my laptop via WLAN with the JetBot WLAN module. The display on the expansion board of the JetBot didn’t show anything, so I had to use an IP scanner to find the address, which worked out and I was able to establish a connection on port 8888 with the Jupyter Notebook. Unfortunately when I ran the notebook cell with “robot = Robot()” I received a timeout error (see below).

So it seems only the WLAN module and the SD-card work, but I don’t get any connection with the robot.

I have attached two pictures.

What am I doing wrong?!

Thanks in advance!

Best regards

Error Message:

TimeoutError Traceback (most recent call last)
----> 1 robot = Robot()

/usr/local/lib/python3.6/dist-packages/jetbot-0.3.0-py3.6.egg/jetbot/ in init(self, *args, **kwargs)
20 def init(self, *args, **kwargs):
21 super(Robot, self).init(*args, **kwargs)
—> 22 self.motor_driver = Adafruit_MotorHAT(i2c_bus=self.i2c_bus)
23 self.left_motor = Motor(self.motor_driver, channel=self.left_motor_channel, alpha=self.left_motor_alpha)
24 self.right_motor = Motor(self.motor_driver, channel=self.right_motor_channel, alpha=self.right_motor_alpha)

/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/ in init(self, addr, freq, i2c, i2c_bus)
229 self.motors = [ Adafruit_DCMotor(self, m) for m in range(4) ]
230 self.steppers = [ Adafruit_StepperMotor(self, 1), Adafruit_StepperMotor(self, 2) ]
–> 231 self._pwm = PWM(addr, debug=False, i2c=i2c, i2c_bus=i2c_bus)
232 self._pwm.setPWMFreq(self._frequency)

/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/ in init(self, address, debug, i2c, i2c_bus)
57 self.i2c = get_i2c_device(address, i2c, i2c_bus)
58 logger.debug(“Reseting PCA9685 MODE1 (without SLEEP) and MODE2”)
—> 59 self.setAllPWM(0, 0)
60 self.i2c.write8(self.__MODE2, self.__OUTDRV)
61 self.i2c.write8(self.__MODE1, self.__ALLCALL)

/usr/local/lib/python3.6/dist-packages/Adafruit_MotorHAT-1.4.0-py3.6.egg/Adafruit_MotorHAT/ in setAllPWM(self, on, off)
93 def setAllPWM(self, on, off):
94 “Sets a all PWM channels”
—> 95 self.i2c.write8(self.__ALL_LED_ON_L, on & 0xFF)
96 self.i2c.write8(self.__ALL_LED_ON_H, on >> 8)
97 self.i2c.write8(self.__ALL_LED_OFF_L, off & 0xFF)

/usr/local/lib/python3.6/dist-packages/Adafruit_GPIO-1.0.4-py3.6.egg/Adafruit_GPIO/ in write8(self, register, value)
114 “”“Write an 8-bit value to the specified register.”""
115 value = value & 0xFF
–> 116 self._bus.write_byte_data(self._address, register, value)
117 self._logger.debug(“Wrote 0x%02X to register 0x%02X”,
118 value, register)

/usr/local/lib/python3.6/dist-packages/Adafruit_PureIO-1.0.4-py3.6.egg/Adafruit_PureIO/ in write_byte_data(self, addr, cmd, val)
266 # Send the data to the device.
267 self._select_device(addr)
–> 268 self._device.write(data)
270 def write_word_data(self, addr, cmd, val):

TimeoutError: [Errno 110] Connection timed out

Hi kwfhh,

Thanks for reaching out! It’s a bit odd that the display and motors aren’t working. On my WaveShare JetBot, this just works.

Both of these devices communicate over I2C. The error you reported is also due to a timed out I2C connection. It’s possible mine is a different revision, and the I2C devices are addressed differently. Or perhaps something something is damaged (I notice the “Screen” is peeled up on your board).

Has WaveShare provided any additional instructions with the kit you purchased?


Hi John,

thanks for your answer!

Waveshare has this wiki: , but it says nothing special I think. You mentioned that maybe the screen could be damaged, When I received the package, the screen was not fixed and hung already like this (see pic), but I thought this would be ok as it is still connected. I thought it would be a “flexibility feature”. This is damaged?

And what could I do about the I2C communication issue?

Any ideas / recommendations for me?

Thanks in advance!

Best regards