# Open_Duck_Mini_Runtime **Repository Path**: ncnynl/Open_Duck_Mini_Runtime ## Basic Information - **Project Name**: Open_Duck_Mini_Runtime - **Description**: 备份 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: awd_walk - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-19 - **Last Updated**: 2025-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Open Duck Mini Runtime TODO : Write a description ## Raspberry Pi zero 2W setup ### Install Raspberry Pi OS Download Raspberry Pi OS Lite (64-bit) from here : https://www.raspberrypi.com/software/operating-systems/ Follow the instructions here to install the OS on the SD card : https://www.raspberrypi.com/documentation/computers/getting-started.html With the Raspberry Pi Imager, you can pre-configure session, wifi and ssh. Do it like below : ![imager_setup](https://github.com/user-attachments/assets/7a4987b2-de83-41dd-ab7f-585259685f16) > Tip: I configure the rasp to connect to my phone's hotspot, this way I can connect to it from anywhere. ### Setup SSH (If not setup during the installation) When first booting on the rasp, you will need to connect a screen and a keyboard. The first thing you should do is connect to a wifi network and enable SSH. To do so, you can follow this guide : https://www.raspberrypi.com/documentation/computers/configuration.html#setting-up-wifi Then, you can connect to your rasp using SSH without having to plug a screen and a keyboard. ### Update the system and install necessary stuff ```bash sudo apt update sudo apt upgrade sudo apt install git sudo apt install python3-pip sudo apt install python3-virtualenvwrapper ``` Add this to the end of the `.bashrc`: ```bash export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/Devel source /usr/share/virtualenvwrapper/virtualenvwrapper.sh ``` ### Enable I2C `sudo raspi-config` -> `Interface Options` -> `I2C` TODO set 400KHz ? ### Set the usbserial latency timer ```bash cd /etc/udev/rules.d/ sudo touch 99-usb-serial.rules sudo nano 99-usb-serial.rules # copy the following line in the file SUBSYSTEM=="usb-serial", DRIVER=="ftdi_sio", ATTR{latency_timer}="1" ``` ### Set the udev rules for the motor control board TODO ### Setup xbox one controller over bluetooth Turn your xbox one controller on and set it in pairing mode by long pressing the sync button on the top of the controller. Run the following commands on the rasp : ```bash bluetoothctl scan on ``` Wait for the controller to appear in the list, then run : ```bash pair trust connect ``` The led on the controller should stop blinking and stay on. You can test that it's working by running ```bash python3 scripts/test_xbox_controller.py ``` ## Speaker wiring and configuration Follow this tutorial https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp?view=all ## Install the runtime ### Make a virtual environment and activate it ```bash mkvirtualenv -p python3 open-duck-mini-runtime workon open-duck-mini-runtime ``` Clone this repository on your rasp, cd into the repo, then : ```bash git clone https://github.com/apirrone/Open_Duck_Mini_Runtime cd Open_Duck_Mini_Runtime git checkout v2 pip install -e . ``` ## Test the IMU ```bash cd scripts/ python imu_test.py ``` ## Find the joints offsets This script will guide you through finding the joints offsets of your robot, that you can then write in `hwi_feetech_pwm_control.py` in `self.joints_offsets` > This procedure won't be necessary in the future as we will be flashing the offsets directly in each motor's eeprom. ```bash cd scripts/ python find_soft_offsets.py ``` # TODO - [] rustypot python bindings install from wheels (see with Pierre)