Piąta oś ramienia (serwo pochylenia kamery) + firmware RoArm z komendami dla dodatkowego serwa - #2
Open
Xeross99 wants to merge 1 commit into
Open
Piąta oś ramienia (serwo pochylenia kamery) + firmware RoArm z komendami dla dodatkowego serwa#2Xeross99 wants to merge 1 commit into
Xeross99 wants to merge 1 commit into
Conversation
RoArm-M2-S gets an extra ST3215 bus servo behind joint 4 that tilts the camera, so one product placement yields both the top-down and the 3/4 shot. The stock Waveshare firmware only knows servos 11-15, so firmware/roarm_m2_ext_servo/ ships the vendor sketch (wiki 2026-06-30 sources) plus ext_servo.h with commands 130-134 (angle, feedback, torque, safe ID change) and a fix for the ESP-NOW callback signature on arduino-esp32 >= 3.3. Compiled, flashed and verified on the arm. App side: - ROBOT_EXT_SERVO_ID / ROBOT_AXES; poses now carry five angles, stale four-angle entries are skipped with a warning. - robot.py reads/moves axis 5 through the new commands (replies parsed directly from the port under the SDK lock). - Torque release goes through command 132 broadcast: the 2026 firmware parks the arm inside T:210 and hangs while the operator holds it. - Post-move settle: servos stop short under the camera's weight (elbow 4.4 deg, head 7-13 deg, not fixable by P gain); axes are pulled to the target in up to 4 rounds with a per-pose trim, arrival is verified after settling, and saving a pose immediately checks the motors can hold it (axis 4 hard-stops around -107 deg). - Optional two-phase move (lift before turn), off by default. - Settings: "Robot - ujecia" card is now per pose: click a tile, the arm drives there, then the nudge rows, torque and save controls appear. The card is keyed into the settings rebuild so live angles update. - tools/roarm_ext_servo_id.py assigns the servo ID; CP2102N VID added to port autodetection (this board is not CH343). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bsh4jRVfu5sY1TVyPLoD3G
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Co
Ramię RoArm-M2-S dostało piąte serwo (ST3215 na magistrali, za osią 4) pochylające aparat — jedno ustawienie produktu daje ujęcie z góry i skos 45°.
firmware/roarm_m2_ext_servo/): sketch Waveshare (źródła z wiki 2026‑06‑30) +ext_servo.hz komendami130(kąt),131(odczyt),132(moment),134(bezpieczna zmiana ID) i poprawką callbacku ESP‑NOW pod arduino‑esp32 ≥ 3.3. Skompilowane, wgrane i sprawdzone na ramieniu; README z instrukcją krok po kroku.ROBOT_EXT_SERVO_ID(oś 5,0= fabryczne ramię), ujęcia z pięcioma kątami, obsługa osi 5 wrobot.py/webui.py/panelu Ustawień,tools/roarm_ext_servo_id.pydo nadania ID.132broadcast — fabryczne210 cmd:0w tym firmware parkuje ramię i wisi, gdy operator je trzyma._settle): serwa stają przed celem pod ciężarem aparatu (łokieć 4,4°, głowica 7–13°, wzmocnienie P nic nie daje) — osie są dociągane do celu w do 4 rundach z pamiętaną poprawką per ujęcie; zapis ujęcia od razu sprawdza, czy silniki je utrzymają (oś 4 ma twardy koniec ok. −107°).ROBOT_LIFT_FIRST).Test
Na ramieniu z aparatem: firmware odpowiada na 105/131/134/130, serwo dostało ID 16, przejazdy „z góry” ↔ „z boku” kończą z błędem ≤ 1° po dociąganiu (4–6 s), puszczanie/łapanie serw przełącza się natychmiast. Kod Pythona dodatkowo na atrapie portu, karta Ustawień renderowana w node na atrapie stanu.
Wersja
1.7.0.🤖 Generated with Claude Code
https://claude.ai/code/session_01Bsh4jRVfu5sY1TVyPLoD3G