You are browsing as a guest. Sign up (or log in) to start making projects!

roboPet

Hardware
  • 2 Devlogs
  • 22 Total hours

roboPet is a small four-legged robot designed to feel approachable and expressive rather than industrial. It's built on a two-board architecture based on the open-source sesame-robot design: a Raspberry Pi Pico as a real-time controller driving 12 servos (3 DOF/leg) plus IMU and OLED, bridged over UART to a Raspberry Pi Zero 2W "brain" that handles camera, mic/speaker, RC control, and (eventually) an onboard AI agent.

Open comments for this post

21h 4m 37s logged

Wireless Pico UART REPL via Pi Zero 2W

What I worked on:
Executed the dual-board bridge bring-up: connecting the Raspberry Pi Pico (real-time controller) to the Pi Zero 2W (high-level brain) over a physical UART link. Wired Zero GPIO 14/15 (mini UART TX/RX) to Pico GP1/GP0 (UART0 RX/TX) on a shared power rail, with SWD on GPIO 24/25 for flashing. After flashing fresh MicroPython v1.23.0 via OpenOCD over SWD, set up the MicroPython REPL to duplicate over UART so the Zero can wirelessly talk to the Pico.Hit two blockers: wiring polarity was wrong initially (TX-to-TX, RX-to-RX instead of a null-modem crossover), and os.dupterm(uart, 1) crashed boot.py since RP2040 MicroPython only supports dupterm slot 0. Both fixed, and added core_freq=250 to the Zero’s config.txt to stop the mini UART baud rate drifting with CPU frequency scaling.Followed up (this session): wrote tools/blink.py and uploaded it to the Pico via tools/upload_to_pico.py, confirming the full host -> SSH -> Zero -> UART -> Pico pipeline end-to-end.

What I learned:
Embedded Trap: RP2040 MicroPython’s os.dupterm() only supports slot index 0. Slot 1 is silently invalid, causing a boot-time crash invisible unless you’re watching USB REPL output. Use os.dupterm(uart) or os.dupterm(uart, 0).
Hardware Lesson: Pi Zero 2W mini UART (ttyS0) derives its baud rate from the VPU core clock. Without core_freq=250, frequency scaling causes the baud rate to drift; even a 1% mismatch causes data loss.
SSH Issue: After rebooting the Zero, the SSH host key changed, blocking password login until passing -o StrictHostKeyChecking=accept-new.What’s next: Now that the wireless UART REPL bridge and upload pipeline are verified, next is wiring an MPU6050 + two servos on the Pico for a simple tilt-correction gyroscope test, adding an OLED pitch/roll readout, and smoke-testing the Zero’s PiCam/mic/speaker independently.

0
0
2

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…