I am having trouble in connecting my Raspberry Pi Model 3B V1.2 device to Sphero Rover
I have referred to this document to setup the connectivity.
I am not able to run any sample programs which are inside
sphero-sdk-raspberrypi-python/getting_started/asyncio directory. All are having same issue that I have described below.
Here are the steps that I have followed.
- Connected to Raspberry Pi Model 3B V1.2 device using ssh.
- Install all the dependencies using
- Activated environment using
- Verified python version in activated environment
python --versionit is
- Executed script
sudo python get_main_app_version.py
- Got below error message
(sphero-sdk-raspberrypi-python) pi@raspberrypi:~/a/sample/sphero-sdk-raspberrypi-python/getting_started/asyncio/system $ sudo python get_main_app_version.py File "get_main_app_version.py", line 20 async def main(): ^ SyntaxError: invalid syntax
- Executed same script using
sudo python3.7 get_main_app_version.py
- Got Below error message
Network available Checking RVR firmware versions... Traceback (most recent call last): File "get_main_app_version.py", line 15, in <module> loop File "/home/pi/a/sample/sphero-sdk-raspberrypi-python/sphero_sdk/asyncio/client/toys/sphero_rvr_async.py", line 36, in __init__ self._check_rvr_fw() File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete return future.result() File "/home/pi/a/sample/sphero-sdk-raspberrypi-python/sphero_sdk/asyncio/client/firmware/rvr_fw_check_async.py", line 30, in _check_rvr_fw rvr_nordic_version = await self.__rvr.get_main_application_version(target=SpheroRvrTargets.primary.value, timeout=3) File "/home/pi/a/sample/sphero-sdk-raspberrypi-python/sphero_sdk/asyncio/client/toys/sphero_rvr_async.py", line 106, in get_main_application_version return await self._dal.send_command(**command_dict) File "/home/pi/a/sample/sphero-sdk-raspberrypi-python/sphero_sdk/asyncio/client/dal/serial_async_dal.py", line 84, in send_command timeout=timeout File "/home/pi/a/sample/sphero-sdk-raspberrypi-python/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 raise futures.TimeoutError() concurrent.futures._base.TimeoutError (sphero-sdk-raspberrypi-python) pi@raspberrypi:~/a/sample/sphero-sdk-raspberrypi-python/getting_started/asyncio/system $
Please see below image that describes all above steps.
I have properly connected GND,RX and TX of Sphero Rover to Raspberry Pi
Sphero Edu iOS App (
Version 6.3.3 ) on my iPhone shows below firmware version:
Current firmware versions: 8.3.432, 8.6.448
Any help or pointers will definitely help. After executing
sudo python3.7 get_main_app_version.py I can see that script is trying to connect to RVR in order to fetch fetch firmware version and causing some issue. Also can see line
Network available which means there is active internet connection on Raspberry Pi Device.
Any one knows what is current latest firmware version for RVR? I can see there is one message received on 31st Aug 2021, in my Sphero Edu app that says “New RVR Firmware” with the below content in it.
New RVR firmware has been released! This firmware makes driving more consistent and controllable, tracks target heading three
times more accurately, improves locator accuracy, and produces cleaner stopping behaviour. Connect your RVR with the Sphero Edu app on iOS or Android to automatically update to the newest firmware.
Many new features are also available with the python Raspberry Pi SDK, available on our SDK website at sdk.sphero.com
I am assuming I have latest firmware installed on my RVR, but not sure what is causing the timeout error.
- Raspberry Pi Model 3B V1.2
- RVR Firmware version 8.3.432, 8.6.448
- Sphero Edu iOS App -