Download UMI Open Source Printed Parts.3mf and the gripper STL files (ZIP). Unpack the STL files.
Hardware Guide
3D model
Click a part to jump to the steps that build it. Drag to rotate, scroll to zoom.
Tools and software
Part numbers, vendors and links are in the Bill of Materials.
Tools
- Bambu Lab H2D printer
- 0.4 mm nozzles
- Bambu Lab P2S printer (for the fingers)
- M2 screwdriver or Allen key
- M3 screwdriver or Allen key
Consumables
- Super glue (for example, Gorilla Glue)
- Lubricant
Software
- Bambu Studio
Print instructions
Download the print files
Open the project
Open UMI Open Source Printed Parts.3mf in Bambu Studio.
Import the multi-part assemblies
To print the flexure grip and the gear mount as combined multi-part assemblies, select all of their .STL files (in the flexure grip and gear folders of the STL ZIP) and import them at the same time. Click Yes when asked to load the files as a single object with multiple parts.
Note The gear and gear mount print together as one print-in-place part. Do not try to separate them.
Prepare Plate 1 (the flexure grip)
Open the finger project
Download finger.3mf and open it in Bambu Studio.
Print the fingers on the Bambu P2S
Print the remaining PLA parts
Print the remaining PLA parts in their current orientation, with default PLA supports.
Remove the supports
Remove the supports from the finished parts.
See also the filament and print profile section of the Bill of Materials.
Assembly instructions
Gripper mechanismSteps 1–9
Mount the MGN9 rail to the handle
Mount the finger mounts to the rail
Mount the flexure linkage to the center fastening holes
Mount the rotary encoder to the handle
Super glue the magnet to the gear
Fasten the gear to the handle
Cut and add grip tape on the fingers
Fasten the left finger on the left finger mount
Fasten the right finger with the rack on top of the right finger mount as shown
Cameras and electronicsSteps 10–14
Fasten the top camera on the top camera mount
Assemble the main PCB board
Plug the top camera cable into the main PCB board
Fasten the top camera mount with the PCB board to the top cover
Fasten the wide camera to the trigger camera mount
Final assemblySteps 15–21
Fasten the top cover to the handle piece
Fasten the top cover, the handle and the trigger camera mount together as shown
Fasten the handle link
Fasten the iPhone mount on top of the top cover, then attach the iPhone and the clip
Fasten the iPhone mount on top of the top cover with four M3 x 12 mm screws and four M3 nuts, then attach the iPhone and the clip.
VIVE tracker: if you use the VIVE tracker mount instead, fasten it the same way, with four M3 x 12 mm screws and four M3 nuts.
Plug in the necessary wiring to the PCB board
Attach the wrist strap
Perform the same assembly steps 1–20 on handle L/R
This builds the second gripper of the pair.
Finished gripper

Firmware
The RP2040 microcontroller on the UMI-OAK-CB1 main PCB runs the umi-encoder firmware, version 2.0.0 (electronics release Rev2617). It reads the TLE5012B rotary encoder 120 times a second and records the two on-board microphones, and sends both to the computer over USB. The encoder PCB has no microcontroller, so it needs no firmware of its own.
Note The release does not include a ready-to-flash firmware file. Build umi-encoder.uf2 from the source first, then flash it.
Downloads
| File | Contents | Size |
|---|---|---|
| umi-encoder-v2.0.0-source.zip | Firmware v2.0.0: RP2040 sources and CMake build files | 68 KB |
| umi-oak-cb1-production.zip | UMI-OAK-CB1 main PCB: Gerbers, drill files, BOM and placement | 0.7 MB |
| tle5012b-encoder-production.zip | TLE5012B encoder PCB: Gerbers, drill files, BOM and placement | 30 KB |
| UMI-Gripper-Rev2617-offline.zip | Full release: KiCad projects for both boards, custom library and firmware | 7.7 MB |
| UMI-Gripper-Rev2617-README.md | Release notes: board architecture, USB interfaces, encoder data format | 5 KB |
The same files are in this repository, unzipped: the firmware in files/firmware/umi-encoder/ and the KiCad projects in files/electrical/kicad/. Keep the kicad/ folder structure as it is, so the boards find their custom library. Open them in KiCad 10 or newer.
Build the firmware
Install the build tools
- CMake 3.13 or newer
- Arm GNU Toolchain 14.2.Rel1 (
arm-none-eabi) - Raspberry Pi Pico SDK 2.2.0, with its submodules:
git clone -b 2.2.0 --recurse-submodules https://github.com/raspberrypi/pico-sdk.git ~/pico-sdkTip The Raspberry Pi Pico extension for VS Code installs the same SDK, toolchain and picotool versions for you, and the firmware’s build files pick them up automatically.
Build umi-encoder.uf2
Unzip umi-encoder-v2.0.0-source.zip, then run these commands in the unzipped folder (the one that contains firmware/):
export PICO_SDK_PATH=~/pico-sdk
cmake -S firmware -B build -DCMAKE_BUILD_TYPE=Release
cmake --build buildThe firmware file is build/umi-encoder.uf2. The encoder and the microphones are both on by default; the pin assignments are in firmware/board.h.
Flash the firmware
Connect the gripper to your computer with a cable in the main PCB's USB-C data port. The other USB-C port only supplies power, so the RP2040 can't be reached through it.
Flash with picotool
Use this when the gripper already runs UMI firmware. Install picotool 2.2.0 or newer, then run:
picotool load -f -x build/umi-encoder.uf2-f restarts the RP2040 into its USB bootloader (BOOTSEL mode) over the USB cable, and -x starts the new firmware when the copy is done. On Linux, run it with sudo if picotool can’t open the device.
Or copy the file in BOOTSEL mode
Use this for a new board with no firmware yet, or if picotool can’t find the gripper.
- Hold the RP2040’s BOOTSEL button on the main PCB while you connect the USB-C data cable.
- A USB drive named
RPI-RP2appears. Copybuild/umi-encoder.uf2onto it. - The RP2040 restarts and runs the new firmware.
Check the firmware
Check the version
picotool info -fThe output should show the program name umi-encoder and version 2.0.0.
Check the USB connections
The gripper shows up on the computer as two serial ports and a microphone:
- Serial port 1 (CDC 0): readable diagnostic messages.
- Serial port 2 (CDC 1): binary encoder frames with the angle and sensor health. See
umi_protocol.hfor the format. - USB microphone (UAC2): stereo, 48 kHz, 16-bit.
Check the sensor health in each frame before you trust its angle.
UMI Robot Wrist
3D model
Click a part to jump to the steps that build it. Drag to rotate, scroll to zoom.
Tools and software
Part numbers, vendors and links are in the Bill of Materials. Print the fingers first, following print steps 6 and 7 in the Gripper tab.
Tools
- Bambu Lab P2S printer (for the fingers)
- M2 screwdriver or Allen key
- M3 screwdriver or Allen key
- M4 screwdriver or Allen key
Software
- Bambu Studio
Assembly instructions
Quantities are for one wrist. Build a second one for a pair.





















































