Projects / Robotics
Wi-Fi Desktop Robot Arm
A palm-sized geared robot arm you drive from your phone's browser – no app, no internet, just pure desk-toy joy.
Illustration (CAD render): Can Ertal, Desktop Robot Arm (MIT)
Choose how it arrives
₹2,693
Before shipping. The courier fee is calculated from your PIN.
- All 17 printed parts
- ESP32-C3 Super Mini board
- 3 × continuous-rotation SG90 servos (+1 spare) and 1 × 180° SG90 servo
- 5 V 5 A adapter, DC jack lead, mini breadboard, jumper wires, USB-C cable
- Illustrated build guide and firmware files
Intermediate
What it is
This little arm sits on a round, rotating base and packs a surprising amount of engineering into a desk-sized footprint: an internal ring gear spins the whole turret, helical gears lift the arm, and a rack-and-pinion gripper opens and closes to pick up small, light objects.
The brain is a thumb-sized ESP32-C3 board that creates its own Wi-Fi hotspot. Connect your phone, open the page it serves, and drag the on-screen joystick to swing and raise the arm. Let go and it stops. There's no app to install and no cloud account, so it works anywhere, even without internet.
It's a brilliant gift for a curious teenager, an engineering student's first robotics project, or a conversation-starter on an office desk. Build it yourself from our kit, finish the last few steps of an assembled one, or get it fully built and tested.
- Rotating base driven by an internal ring gear
- Geared arm lift and synchronised two-jaw gripper
- Controlled from any phone or laptop browser with a touch joystick
- Creates its own Wi-Fi network – no router, app or internet needed
- Open-source firmware you can modify (PlatformIO / Arduino)
- 17 precision-printed parts, solder-free breadboard wiring
- Runs from a single 5 V wall adapter
Components
Each line is the price of that part. The tier price above is the full price for that way of buying it, before shipping.
| Part | Qty | Each | Line |
|---|---|---|---|
| ESP32-C3 Super Mini development board (USB-C, headers soldered) | 1 | ₹282 | ₹282 |
| SG90 9 g micro servo, 180° positional (gripper) | 1 | ₹115 | ₹115 |
| SG90 continuous-rotation (360°) micro servo, pack of 2 (3 needed: base + 2 arm joints; 1 spare) | 2 | ₹268 | ₹536 |
| 5 V 5 A regulated SMPS adapter (25 W, barrel plug) | 1 | ₹451 | ₹451 |
| DC female barrel jack with wires (adapter to breadboard rails) | 1 | ₹18 | ₹18 |
| 400-point mini breadboard | 1 | ₹38 | ₹38 |
| Jumper wire combo (M-M, M-F, F-F, 10 each) | 1 | ₹46 | ₹46 |
| USB-C data cable (for flashing) | 1 | ₹70 | ₹70 |
Printed parts
- Static base with internal ring gear · PLA · White
- Rotating platform / base-servo housing · PLA · White
- Large helical-gear cover · PLA · White
- Arm module 1 – right (servo pocket) · PLA · White
- Arm module 1 – left side plate · PLA · White
- Arm module 2 – gripper-servo housing · PLA · White
- Servo locking block · PLA · White
- Lower arm brace · PLA · White
- Printed joint fastener 1 · PLA · White
- Printed joint fastener 2 · PLA · White
- Small helical drive gear 1 · PLA · Blue
- Small helical drive gear 2 · PLA · Blue
- Base drive gear · PLA · Blue
- Platform retaining clip · PLA · White
- Gripper jaw – left · PLA · Blue
- Gripper jaw – right · PLA · Blue
- Gripper synchronising gear · PLA · Blue
Print just the parts · ₹1,341 before shipping.
Build guide
The DIY kit includes this guide. Assembled and fully built orders include it too, for care and the steps that remain.
Build your Wi-Fi Desktop Robot Arm
This small arm is a lovely piece of mechanical design. A hidden ring gear turns the whole turret, angled (helical) gears raise the arm, and a tiny rack-and-pinion gripper opens and closes like a pair of tweezers. A thumb-sized ESP32-C3 board runs everything and serves a joystick page straight to your phone. There's no app and no internet involved.
Set aside an afternoon, put on some music and enjoy the click of well-fitting parts.
Which version do you have? - DIY kit: follow every step. - Assembled: steps 1–13 and the firmware are already done. Start at Step 14 (gripper), then Wiring and Testing. - Fully built: plug in, then go straight to Testing. Your Wi-Fi name and password are on the quick-start card.

What's in the box
| Item | Qty | |---|---| | Printed parts (static base, rotating platform, arm modules, gears, brace, fasteners, clip, gripper jaws) | 17 | | ESP32-C3 Super Mini board (USB-C) | 1 | | SG90 continuous-rotation (360°) servos | 3 + 1 spare | | SG90 180° servo (for the gripper) | 1 | | 5 V 5 A adapter + DC jack lead | 1 | | Mini breadboard, jumper wires, USB-C cable | 1 set |

Tell the servos apart before you start. The 360° servos usually have a sticker or marking on the case, and they spin freely and continuously once powered. Keep the plain 180° servo aside for the gripper. A strip of masking tape labelled "180" saves headaches later.
Tools you'll need
- Small Phillips screwdriver (PH0/PH1)
- Craft knife, needle file or fine sandpaper (240–400 grit) for easing tight fits
- A phone or laptop with Wi-Fi
- For the DIY firmware step: a computer with VS Code + PlatformIO (free)
Safety notes
- Unplug the 5 V adapter whenever you're assembling, rewiring or reaching into the mechanism.
- Keep fingers clear of the gears while powered. The forces are small, but gears can pinch.
- Check polarity. Red is +5 V and brown is GND on every servo lead. Never connect a servo to the board's 3.3 V pin.
- Don't force printed parts. If something is tight, ease it with a file or sandpaper and try again. Forcing can crack layers.
- Supervise young users. There are small parts and a mains adapter. Recommended for ages 12+, or younger with an adult.
Step-by-step build
Throughout the illustrations, black arrows show the direction a part slides or drops in.
Before you begin
Clean any rough edges or support marks from the parts. Spin each gear on your finger and check shafts slide into their holes. Turn every servo gently by hand. You'll power them only after the mechanism moves freely.
1. First arm servo and drive gear
Drop a 360° servo into the open pocket of the arm module, with its shaft facing the large helical gear. Push a small helical drive gear onto the shaft so its angled teeth mesh across their full width. Don't tighten anything yet. 
2. Gripper servo into its housing
Lower the 180° servo into the rectangular pocket of the second arm module, shaft towards the round side opening. Make sure the cable isn't trapped underneath. 
3. Locking block
Press the small keyed locking block in behind the gripper servo until it sits flush. It stops the servo from lifting out. 
4. Join the two arm modules
Slide the modules together as shown, guiding the curved upper section over the small drive gear. The gears should engage as the faces meet. 
5. Fit the large gear cover
Slide the rounded cover onto its rails over the large helical gear. Turn the gear afterwards; it must still spin freely. 
6. Lower arm brace
Line the long brace up under the two circular joint openings. Keep it flat and untwisted. 
7. Printed joint fasteners
Thread the two printed fasteners through the joints. Tighten only until the parts are held. The joints must still pivot, and over-tightening can split printed threads. 
8. Arm onto the rotating platform
Slide the arm's lower rail into the channel on the round rotating platform, keeping it level, until it reaches the end stop. 
9. Retaining clip
Press the curved clip into the open section of the platform's track. It should sit level with the rim and stop the arm sliding back out. 
10–11. Base servo
Lower the last 360° servo into the holder inside the rotating base, shaft towards the open side, and route its cable through the passage. Start both servo screws, then tighten them evenly. The servo shouldn't move, but don't crush the tabs.

12. Base drive gear
Fit the base drive gear onto the base servo shaft and add the servo-horn screw if it feels loose. Lower the arm-and-platform assembly into the base housing, and keep every cable away from the gear. 
13. Join to the ring-gear base
Lower the rotating assembly straight down over the centre post of the static base, guiding the drive gear into the ring gear's teeth. Turn it gently through a short arc. It should roll smoothly without jumping teeth. 
14. Gripper jaws
Slide the two jaws into their guides at the front, teeth facing inward, at equal distances from the centre. 
15. Synchronising gear
Fit the small middle gear onto the gripper servo shaft so it engages both jaw racks at once. Move it by hand. Both jaws should open and close symmetrically and never jump out of their guides. 
Final mechanical check
Move each joint slowly by hand and listen for scraping. Make sure cables are clear of the gears and the turntable track, and that the base doesn't separate when you lift it gently.
Wiring
- Push the ESP32-C3 Super Mini into the breadboard so it straddles the centre gap.
- Connect the DC jack lead to the breadboard's power rails: red to +, black to −. Double-check this before plugging in the adapter.
- Jumper the board's 5V pin to the + rail and its GND pin to the − rail.
- Plug each servo's three-pin lead onto three male jumpers. Run red to +, brown to −, and orange (signal) to the board as below:
| Servo | Type | ESP32-C3 pin | |---|---|---| | Base rotation | 360° continuous | GPIO 5 | | Arm servo 1 | 360° continuous | GPIO 6 | | Arm servo 2 | 360° continuous | GPIO 7 | | Gripper | 180° positional | GPIO 8 |
All grounds must be joined. Each servo's GND, the board's GND and the adapter's GND share the same rail.
Firmware flashing
The firmware is open source (MIT) by the original designer: <https://github.com/cancast/Desktop-Robot-Arm/tree/main/Firmware>. A copy is also included in this project's docs/firmware/ folder.
- Install VS Code and the PlatformIO IDE extension.
- Optional but recommended: open
src/main.cppand change the Wi-Fi name and password near the top. The default password123456789is public, so pick your own of at least 8 characters. - Unplug the 5 V adapter, then connect the board with the USB-C cable. Don't power the board from both at once.
- In VS Code choose File → Open Folder and pick the
firmwarefolder. PlatformIO installs the Servo library automatically. - Choose the esp32-c3-devkitm-1 environment and click Upload (→).
- If the upload doesn't start, hold the board's BOOT button, tap RESET, release BOOT, then upload again.
- Open the Serial Monitor at 115200 baud to see the board's IP address. It's normally 192.168.4.1.
Testing
- Unplug the USB cable and plug in the 5 V adapter. Give the arm some clear space.
- On your phone, join the Wi-Fi network Desktop-Robot-Arm, or the name you chose.
- Open a browser to http://192.168.4.1/.
- Drag the joystick left/right to turn the base and up/down to move the arm. Let go and everything stops.
- Tap Gripper to open and close the jaws. Try picking up a bottle cap or an eraser.
Troubleshooting
| Problem | Try this | |---|---| | A servo creeps when the joystick is centred | Continuous servos have slightly different "stop" points. In main.cpp, adjust the 1500 µs stop value (try 1480–1520) for that servo, re-upload and test. Some 360° servos also have a tiny trim screw on the case. | | Board resets or Wi-Fi drops when the arm moves | Use the supplied 5 A adapter, not a phone charger. Check that the grounds are all joined and that no joint is binding. | | Wi-Fi network doesn't appear | Re-check the upload succeeded and look at the Serial Monitor. Keep the reduced Wi-Fi power setting in the firmware; these tiny boards are more stable with it. | | Arm moves the opposite way | That's down to servo orientation. Swap the direction mapping for that servo in handleMotor() in main.cpp. | | Gears click or skip | A gear isn't fully seated or a cover is pressing on it. Unplug, reseat it and check it turns freely by hand. | | Gripper jaws close unevenly | Lift the middle gear off, centre both jaws, then refit the gear. |
Good to know: the arm uses continuous servos, so it moves while you hold the joystick rather than going to a fixed angle. It's built for playful, light pick-and-place, not heavy lifting.
Make it yours
- Two-tone prints, or your name embossed on the base
- Longer gripper fingers for specific objects
- Join your home Wi-Fi and add buttons to the web page for preset moves
Have a bigger idea, like a classroom set or a custom gripper? Ask us about custom ideation and consulting.
Credits
- Desktop Robot Arm mechanical design, firmware, photo and assembly illustrations by Can Ertal (<https://github.com/cancast/Desktop-Robot-Arm>), released under the MIT License (© 2026 Can Ertal). The printed parts are the designer's original STL files, unmodified.
- This guide, the wiring diagram and the part renders are original MyPartLab material.
Ways to change it
- Name or logo embossed on the base
- Two-tone colour schemes (e.g. your team or school colours)
- Larger gripper fingers for specific objects
- Connect to your home Wi-Fi instead of its own hotspot
- Add a pen holder so it can doodle
- Desk-pack of two arms for a 'robot handshake' demo
Source: Desktop Robot Arm by Can Ertal (GitHub: cancast). MIT. View source