Hey there. I’m running a Raspberry Pi 3 on the RVR. It’s a silly project. I’m using TensorFlow to recognize “cat”, an ultrasonic rangefinder to measure distance, and a Pimoroni pan/tilt mast to look around for cats and hazards… It basically finds the cat and chases it. The cat’s gonna love it.
The problem is I’m powering the Pi with the USB cable plugged into a standard wall wart. I then created a Pi Proto-Hat with 90 degree headers for 3.3v ground, TX, RX, SDA, and SCL. I have only the TX and RX connected (yes, they’re crossed properly). When I run a test program (getting_started/asyncio/leds/set_multiple_leds.py) It throws a timeout error when it tries to check firmware version. RVR is on and has a full battery. (Backtrace appended below)
I suspect it’s because I don’t have GND connected from the Pi to the RVR, but not completely sure. I am hopeful I can power the Pi on the micro-USB socket and just use the serial interface for talking to the RVR. The reason is I have an Adafruit PowerBoost 1000C with a 2500mAh LiPo. The plan is to go RVR->USB-A->PowerBoost->USB-micro->Pi so when the Pi detects low battery on the RVR it can shut down the RVR and then cleanly shut itself down while running off the LiPo.
I’m not thrilled about unstacking everything to connect ground, but I think I’ll do that just to be sure. [Edit: connecting Pi GND to RVR GND doesn’t change the error. Same thing as shown below.]
Here’s the backtrace. Thoughts?
Checking RVR firmware versions…
Traceback (most recent call last):
File “leds/set_multiple_leds.py”, line 16, in
File “/home/pi/src/sphero-sdk/sphero_sdk/asyncio/client/toys/sphero_rvr_async.py”, line 36, in init
File “/usr/lib/python3.7/asyncio/base_events.py”, line 584, in run_until_complete
File “/home/pi/src/sphero-sdk/sphero_sdk/asyncio/client/firmware/rvr_fw_check_async.py”, line 26, in _check_rvr_fw
rvr_nordic_version = await self.__rvr.get_main_application_version(target=SpheroRvrTargets.primary.value, timeout=3)
File “/home/pi/src/sphero-sdk/sphero_sdk/asyncio/client/toys/sphero_rvr_async.py”, line 87, in get_main_application_version
return await self._dal.send_command(**command_dict)
File “/home/pi/src/sphero-sdk/sphero_sdk/asyncio/client/dal/serial_async_dal.py”, line 78, in send_command
File “/home/pi/src/sphero-sdk/sphero_sdk/asyncio/server/handler/api_sphero_handler.py”, line 191, in send_command
await asyncio.shield(asyncio.wait_for(future, timeout=timeout))
File “/usr/lib/python3.7/asyncio/tasks.py”, line 423, in wait_for