ECE4160/5160-MAE 4190/5190: Fast Robots course, offered at Cornell University in Spring 2025
This project is maintained by FastRobotsCornell
Match the baud rate on your serial monitor with the value specified in the Arduino sketch.
When python throws an exception, it first displays the code traceback and then finally the Exception message. Read the exception message at the bottom and use the traceback to find the line of code that triggered the exception. More info on exceptions and exception handling can be found here.
There are some reserved UUIDs in the bluetooth specification and steer away from them. (Reserved UUID: https://www.novelbits.io/uuid-for-custom-services-and-characteristics/)
Click on the link in the error messages and download the installer. In the installation process, make sure to select “C++ Build tools”. The exact download link may change with the version of Windows. After installation, restart your computer and try installing the pip package again. If you are still face issues:
Some macOS versions may not have the library pre-installed. In Terminal, install the package using the following command:
python3 -m pip install pyobjc
TLDR: A documented bug (feature?) in macOS reports the incorrect macOS version number in some machines. In file base_ble.py, change Line 16 from
IS_ATLEAST_MAC_OS_12 = objc.macos_available(12,0)
to
IS_ATLEAST_MAC_OS_12 = True
Why is this important? Well, they also modified the Bluetooth API in macOS 12. The provided basecode checks for the macOS version number and handles the Bluetooth API accordingly. Unfortunately, it does not account for this bug in some machines, where a macOS 12 might report its version number as “10.16”.
TLDR: Update the SVL executable following the process described here.
Make sure you (carefully) remove the protective film on top of the sensor.