About these instructions
An independent reading route through kissqy’s original illustrated build and console guides, checked October 30, 2026 at revision 602ca474. The project publishes robot demonstrations; this site has not built the hardware or tested the image. Use the matching board designs and existing model package. Detailed version validation remains in the author’s release baseline.
1. Match the parts to the KISS route
- Prepare Radxa ZERO 3W, fifteen HD1910 servos, the project’s matching HAT, bus IMU and HUB, battery components, a 32 GB TF card, reader, cables, bearings and screws. Use the linked shopping list for exact part versions.
- Choose one connector version before ordering harnesses. EH2.5 and AMP2.0 boards require matching plugs and pin checks. Add a multimeter and assembly tools; ready-made IMUs are documented as preflashed, while self-built boards need their separate flashing process.
Before continuing
The BOM, board revisions, plugs and print variant agree.
2. Print the selected FrankenDuck parts
- Use the linked print package: 36 STL files and one 3MF project with five reference plates. File count is not assembled part count. Select the HUB-combination battery holder or the alternative reinforced-clip holder.
- Inspect the project in a slicer and select your actual material profile. Plate 5 contains TPU feet and tires; a saved PLA/ABS preset does not make these rigid parts. Print a fit sample and clear supports before full assembly.
Before continuing
The selected battery holder, IMU mount and all required parts fit your hardware.
3. Identify the servos before fitting horns
- Label right-leg servos 10–14, left-leg servos 20–24 and head/neck/mouth servos 30–34. Compare physical locations with the author’s interactive assembly view before installing the linkages.
- The console’s sequential move to 2048 is for unobstructed, unassembled servos only. Encoder center is not the assembled joint zero or HOME pose. For an assembled robot, follow individual joint calibration in step 10.
Before continuing
IDs and mounting references are known before the joints are closed.
4. Assemble the two legs
- Sort the left and right shells, connecting pieces, reinforcements, ankle brackets and feet. From hip to ankle, the right leg is 10, 11, 12, 13, 14 and the left leg is 20, 21, 22, 23, 24.
- Open each leg’s 3D view, rotate or explode it to check orientation, then join sections using screws that fit the actual holes and depths. Fit the TPU soles and check travel without power.
Before continuing
Legs are correctly sided, fastened and free of cable pinching or mechanical collision.
5. Fit trunk, battery holder, HUB and IMU
- Join the hips and trunk, then secure the chosen battery holder. The author positions the HUB flat above servos 10 and 20, with its long edge running front to back.
- Mount the IMU against the battery holder’s main rear plate with bus connector J1 upward. Secure the battery hardware without energizing the bus; compare the original close-up and 3D views.
Before continuing
HUB and IMU orientation match the selected frame and cannot shift.
6. Assemble the head and mount the boards
- Fit neck, head and mouth joints 30–34 according to the exploded view. Mount ZERO 3W and HAT inside the face, checking pin 1 and orientation of the HAT J4 40-pin mating connector.
- Install the selected camera and peripherals, route their cables and leave service slack. Check neck travel and access to the TF card before fitting the head cover.
Before continuing
No offset header connection, trapped lead or loose board remains.
7. Connect the bus and power, then inspect
- Follow these branches: HAT → 34 → 33 → 32 → 31 → 30 → HUB; HUB → 10 → 11 → 12 → 13 → 14; HUB → 20 → 21 → 22 → 23 → 24; HUB → IMU J1. Battery input goes to HUB CN1.
- At every connector identify GND, supply and DATA using that board’s pin numbers; colors alone are insufficient. The described HUB already includes a 1000 µF buffer capacitor: verify polarity and voltage rating. Measure the supply and check for shorts before powering the boards.
Before continuing
Actual pinouts, battery polarity, capacitor orientation and cable clearance are checked.
8. Flash R1 and configure the network
- Download the author’s R1 .img.xz and its checksum instructions. In Armbian Imager choose the custom image and intended TF card, write and verify, then insert it in ZERO 3W and allow first boot to finish.
- Join the Microduck-kissqy hotspot using the documented initial password 12345678. Open its setup page, or http://10.42.0.1:8088, select your home 5 GHz Wi-Fi and set a new radxa login password. Rejoin the home network and find the robot’s IPv4 address in the router.
SHA-256: 75da978b5d56acd9e4146256431732381de84523bb683e4ab7ac9f0580a7bce5shasum -a 256 microduck-zero3w-0.15.1-R1.img.xzBefore continuing
You know the home-network IP and your new system password; these differ from the hotspot credentials.
9. Start the local console and verify firmware
- Fully extract Microduck-Console-R17-V167.zip. Run start.cmd on Windows or start.command on macOS, then use the local page to connect as radxa@YOUR_IP with the system password. GitHub Pages is only an interface demo.
- Wait for startup stages 1/4–4/4. R1 contains control.40; in System maintenance select the bundled firmware, wait for validation and install the compatible control.43 package. Reconnect and read the actual running version and fifteen-joint/IMU feedback.
Before continuing
The console reads the intended runtime version and live feedback before any motion.
10. Calibrate all fifteen joints individually
- Use calibration mode and select one joint. Compare the independent 0° and 0 → +10° reference animations with the physical axis. Enter the known actual angle, choose direction +1 if counts rise for that positive motion or −1 if they fall, and enter measured mechanical limits.
- Confirm the angle, direction and limits, save that joint, then repeat for every ID. These reference buttons move only the screen model. Do not use “all to 2048” on an assembled robot or copy the sample robot’s stored offsets as your own calibration.
Before continuing
All fifteen joints are individually saved with correct direction and usable limits.
11. Check and save IMU orientation
- With the robot supported, select the measured view and slowly tilt the body forward/back and left/right. Compare the on-screen attitude with the real movement and follow the author’s IMU calibration controls to save this mounting.
- Use body axes X forward, Y left, Z up; upright gravity is approximately [0, 0, −1]. In “IMU mounting check”, enter your actual mounting quaternion in w x y z order, confirm the axes and save. Recentering the display does not calibrate the sensor.
- Resolve reversed axes, stale feedback or a moving sensor mount first. Flashing ZERO or updating the robot service does not flash the external IMU; use the separate FT6 guide only for a self-built or maintained compatible IMU board.
Before continuing
Measured attitude follows the real body, and your own mounting calibration is saved.
12. HOME, hold, walk and shut down
- Support the robot, release both sticks and switch to motion mode. With the physical gamepad, the first Start requests HOME; inspect the pose, then press Start again to enable the policy. Observe zero-speed hold before small left-stick movement and right-stick turns.
- Release sticks to hold; Start disables the policy and returns HOME. Support the robot before a short Select release to remove torque; holding Select for 2 seconds requests sit, torque-off and shutdown. Wait before cutting power. If feedback, posture or power is wrong, stop and export startup diagnostics.
Before continuing
The robot can reach HOME, hold briefly, take a short step and stop under control; record your observed result.
Continue your build
What would you like to understand next?
Keep the source, your environment and your observations together.