Raspberry Pi PicoW + LeRobot SO-ARM100 controlled via a webpage/mqtt/openai Developer AdrianCX released picohive-robotarm, an open-source firmware that runs a standalone Raspberry Pi Pico W or Pico 2 W controller for LeRobot SO-100/SO-101 arms, controllable over Wi-Fi through a built-in web page, MQTT, or an OpenAI Responses API-compatible endpoint. The firmware builds via os/build_via_podman.sh for pico_w, pico2_w, or a Linux simulation with simulated servos, and the developer reports 150KB of free heap in the worst case on the Pico. Setup follows LeRobot's procedure: assign servo IDs at 115200 baud, calibrate joint limits from the web page, and map 3D positions so the arm knows orientation before sending targets. Standalone Raspberry Pi Pico W / Pico 2 W controller for an SO-101 / SO-100 https://github.com/TheRobotStudio/SO-ARM100 arm Can control over WiFi via an internal Web Page, MQTT or openAI response API compatible remote\ Video: https://www.youtube.com/shorts/e Y3U83MK2A https://www.youtube.com/shorts/e Y3U83MK2A I had an RC car and a LeRobot SO-ARM100 and wanted to see if I can combine them and use an LLM to control... The arm is drawn in 3D from what the servos report; click a dot to put a target down, Go or Enter sends the jaws there. | Calibration | AI | Drive | |---|---|---| - Calibration : set up limits for joints so arm doesn't self destruct... don't ask - 3D mapping : tell robot which way is left or up - Poses : various poses described for openAI LLM knowledge base - AI : chat box with status responses. The microphone needs https - Drive : Virtual joystick to control the wheels, or you can connect a gamepad 1. Picohive optional - for Debug logs and OTA updates Add Device on picohive https://picohive.com generate the UUID, MQTT password and log key, pick a name Open the device, go to Device Config , press Export and copy the line for step 4 below 2. OpenAI optional - for AI chat box An API key and a model ex: gpt-6.1-sol on a server that has responses API with storage 1. Flash a pico, it starts as access point picow config / randompassword ...ultra secure password... 2. Connect to the access point, the page opens by itself, if not, use http://192.168.4.1 http://192.168.4.1 3. Configure wifi and a user/pass for the web ui 4. Optional : 4.1. Remote server enter line from picohive for logging/OTA/crash reporting 4.2. OpenAI enter the URL, key, model and prompt 5. Reboot - joins your wifi, you can access via its new IP now find it in picohive logs or on router 6. Reconfigure any time from its new ip address Tip If you need to wipe, just use the universal flash nuke.uf2 https://github.com/Gadgetoid/pico-universal-flash-nuke to wipe the flash then re-flash the firmware This follows LeRobot, in short: 1. Add servos one at a time to pico to set their IDs to not overlap and baud rate to 115200, 1M was too much for my setup with 1K resistor 2. Build up the arm and connect things 3. Calibrate from web page just press the calibrate and move the arm by hand so it learns limits 4. Go to 3D model and map some positions so it knows left from right and up from down... git clone --recursive https://github.com/AdrianCX/picohive-robotarm.git cd picohive-robotarm os/build via podman.sh pico2 w or pico w Flash build/