OOMWOO is an open-source robot vacuum that maps with a 2D LiDAR under ROS2 and Nav2, with no cloud service. A Compute Module runs the software, an STM32 handles safety, and the round body is 3D printed. The five phases below follow the build order and say, for each part, whether to buy it, print it or have it fabricated. Budget $80 to $150 on top for the fan, the brushes and the wheel modules, which are sold as vacuum spare parts and by none of the shops indexed here.
Parts and decisions taken from makerspet/oomwoo github.com/makerspet/oomwoo · Apache-2.0
Every other module bolts onto the chassis, so it goes first. The reference geometry is a round body of about 349 mm, under a height budget of roughly 10 cm. The exact diameter is still marked as undecided upstream, so anything you print today may need a revision. The project settles the print-or-buy question with one rule: print the geometry, buy the mechanisms and the wear items.
The shell, the bumper shroud, the bin body and the mop disks are printed, and the BoM budgets $5 to $15 of filament. Use PETG rather than PLA for anything that sits near the fan or a motor. A PLA body left in a sunlit room slowly creeps out of shape, and the wheel geometry goes with it.
Assembly
Upstream names this the one part not to print. A spare Roborock pair costs $24 to $33 and arrives as a complete module: gearmotor, encoder, suspension, rubber tyre, cables and wheel-drop switch. The suction fan ($10 to $45) and the brushes ($3 to $30) come from the same aisle, and nothing in this list replaces them. Building the equivalent takes encoder gearmotors, roughly twice the price and a suspension to design.
Assembly
The third support point, and one of the few parts the project lets you simply print. A ball caster bolts onto a printed plate. The push-in Roomba caster costs $2.50 to $5 but wants a housing printed to its exact geometry.
Assembly
M3 screws, standoffs, heat-set inserts and connectors. The BoM counts $12 to $25 for this line, which most builders forget and which stops the build for a week. The mounting grid pitch is not fixed upstream yet, so buy an assortment rather than a single length.
Assembly
The work is split across two processors. The Compute Module runs ROS2, slam_toolbox, Nav2 and the robot's behaviour. The STM32 owns the motors, the encoders, the sensors and every safety reaction: it cuts the motors on a bumper hit, a cliff reading or a wheel-drop, current-limits a jammed brush, and watchdogs the CPU. None of those protections depend on Linux having booted. The two processors talk over a custom serial protocol rather than micro-ROS.
A Raspberry Pi CM4 or CM5, wireless, Lite. The stated minimum target is 4 GB. Fitting the software stack into 2 GB remains a goal with no guarantee attached, so 4 GB is the safe buy. The CM4 pinout being a de-facto standard, pin-compatible modules (Radxa, Pine64, LuckFox) drop into the same slot, some of them with an NPU.
Assembly
A Compute Module has no connectors of its own. The official CM4IO or CM5IO board gets the software running while the project's own I/O PCB is still being designed. There is a second profile: an ESP32-S3 board in CM4 form factor drops into the same slot and runs micro-ROS, with SLAM offboard on a dev PC. It costs less and depends on your Wi-Fi.
Assembly
The tentative pick is an STM32G070RBT6: LQFP64 package, about $1 at JLCPCB, 56 GPIO of which 16 are ADC inputs. A robot with six motors and a dozen sensors needs that many pins. It ends up on the project's I/O PCB, costed at around $40 fabricated. Until that board exists, any STM32 dev board is enough to write and bench-test the firmware.
Assembly
The mapping sensor, on a serial link at about 5 Hz. It also sets the turret height. The BoM shops it from vacuum spare parts between $13 and $32: Camsense, Xiaomi LDS02RR, 3irobotix Delta-2, LDROBOT LD14P. Any model handled by the kaiaai/LDS driver stays interface-compatible. A hobby unit costs three to five times more and arrives documented.
Assembly
Wheel odometry drifts as soon as a wheel slips on the edge of a rug. Fused with the LiDAR scans, an IMU keeps the map from rotating away over a full cleaning run. It attaches on the CPU side, with the LiDAR and the cameras.
Assembly
This phase goes through a maintainer safety review before it is merged upstream. The choice is already settled: an off-the-shelf 4S2P Li-ion pack with its BMS inside, 14.4 V nominal, around 5200 mAh for 75 Wh, charged at 16.8 V CC/CV with an NTC temperature sense. Buying the protection instead of building it moves the fire risk off your side of the build.
4S2P Li-ion, 14.4 V nominal, around 5200 mAh for 75 Wh, with the BMS inside the pack. The OEM BRR-2P4S-5200 class sells for $16 to $30 as a vacuum spare. The project picked an off-the-shelf protected pack to leave over-charge, over-discharge and short protection to the manufacturer. A pack built from bare cells hands that responsibility back to you.
Assembly
The 14.4 V pack has to feed 5 V to the compute module and 3.3 V to the logic, while the motor rail sags every time the brush jams. Size the 5 V converter on the Compute Module's peak draw rather than its average, or the robot reboots in the middle of a map.
Assembly
A 2D LiDAR sees nothing below its own turret, which leaves about 10 cm of floor unwatched. That band is where cables and socks live. In v1 the bumper and the cliff sensors under the skirt cover it, while cameras stay an experimental track. These sensors wire to the MCU: their first job is stopping the robot, their second is helping it navigate.
Four IR reflectance sensors under the front skirt keep the robot away from the stairs. The BoM buys them as a Roomba bundle at $1.50 to $2.50 each, with the two bumper switches included in the same bag.
Assembly
Four SPDT micro switches at $0.70 each around the LiDAR turret, on top of the two bumper switches shipped with the cliff sensor bundle. In v1 the bumper answers for everything the LiDAR cannot see: the floating shroud is printed, the levers and the return springs are bought.
Assembly
Two OV5647 MIPI modules, 130° field of view, no IR-cut filter, $6 to $7 each. The wording that surfaces them at resellers is "night vision". Upstream is clear about what to expect: reliable obstacle avoidance takes sensor fusion at commercial scale, so the cameras stay an experimental track. The VL53L7CX multizone ToF that would complete them was struck from the BoM as too expensive at retail.
Assembly
Four TSOP38238-class 38 kHz receivers on two small boards to have fabricated: two wall sensors, each with its 940 nm emitter, and a dock homing sensor carrying two of them. The BoM counts $3 per board. Without them, you fetch the robot by hand at the end of every run.
Assembly
The upstream MVP dated 31 August 2026 covers ROS2 on the compute module, the LiDAR, manual mapping, teleop driving, the printed chassis and the Gazebo simulation. It leaves out mopping, docking, auto-emptying and Home Assistant. Buy the parts in this phase when you get there rather than with the rest.
A 6 V peristaltic pump, 50 ml/min minimum, tubing of 2 mm ID and 4 mm OD, $3 to $6 upstream. A peristaltic model primes itself and stops dead, while a pump that keeps dripping leaves a puddle at the end of the run.
Assembly
The upstream mop assembly is two RS385 12 V motors for the spin and two MG90S servos for the lift, about $20 the pair, with the rest printed. The ready-made assembly is rare at retail and expensive. Dual spinning pads are the best DIY compromise, and the project deliberately leaves out the self-washing roller.
Assembly
Parts are selected by the search engine on price, stock and specifications, never on affiliate commission. Robotitem does not test these products.