CHANGING THE PLAN
Engineers change their designs all the time. The trick is changing one thing without breaking something else.
This page explains how real engineers handle a change, shows the change we made to Dusty, keeps the history of every decision, and saves what we learned for the next project.
What is Management of Change?
Management of Change, or MOC, is a simple rule: once a design is decided, you do not just swap a part. You write down the change, check everything it touches, get a yes from the person in charge, and then update every plan and drawing.
Think of a recipe. Swapping sugar for honey sounds easy, but honey is wet, so now the flour is wrong, the oven time is wrong, and the cookies spread. A good cook thinks it through before pouring. Factories, refineries and airplane makers use MOC because a small change they did not think through can cause a big problem.
Why it matters
The five steps
Use these for any change after the design is locked. A loose screw or a typo does not need one. A different part, size, power source or plan does.
- 1Say what you want and whyWrite one or two sentences. "Swapping AA batteries is hard and a set only lasts 90 minutes. I want a cheap way to charge Dusty with a USB-C cable instead."
- 2Check what it touchesSpace, wiring, weight, safety, cost, the schedule, and the experiment. Measure, do not guess.
- 3Pick the partsFind real parts with real sizes and prices from stores you can check. Write down a backup.
- 4Get a yes, then lock itThe person in charge approves it. Now the design is locked. Any new change starts a new change order.
- 5Update everything and test itModel, print files, parts list, build steps. Then list the tests that prove the change works.
Our example: change order MOC-001
Sep 15, 2026. Replace the 4 AA battery pack with a USB-C power bank.
Options we compared
Regular AA batteries, rechargeable AA batteries, AA batteries with their own USB-C plug, a bare lithium battery with a charging board, and a store-bought power bank. Only the power bank charges without taking anything out, and it is sealed and made safe by the company that builds it. It cost about $24.
What checking it found
Each of these would have been a nasty surprise on build day.
What had to be updated
The change order went through four versions (A, B, C and D) as we learned more, then Dad approved and locked it. The tests that prove it works: the bank fits, it stays on while driving, a stalled wheel does not reset the micro:bit, it runs longer than 20 minutes, Dusty still stops at the edge 20 out of 20 times, and it weighs under 400 grams.
Change order MOC-008: coding Dusty with Claude
Sep 30, 2026. Approved by Dad.
Nolan stops dragging code blocks by hand. Claude writes Dusty's code instead, and Nolan does the engineer's job: he writes down exactly what Dusty must do, asks Claude for one small program at a time, reads every line before it goes on the robot, and proves it works with tests he designs first.
Technical record
| What | Was | Now | Basis |
|---|---|---|---|
| Who writes the code | Nolan, block by block in MakeCode | Claude, from Nolan’s prompts | Nolan owns the spec, the prompts and the tests |
| How code is checked | Build it, run it | Predict, read in Blocks, flash, test, log | Every test has a pass mark written down before it runs |
| Instructions to the computer | Block lists in the Build Guide | dusty-spec.txt: pins, measured numbers, 8 rules | Claude reads the spec at the start of every prompt |
| Test programs | Heart on button A, one sensor readout | T1 to T9, one job each | Built in order; the main program is assembled from ones that passed |
| Calibration | Press button A while sitting on the table | Automatic at switch-on, 1 s still, table reading + 200 per sensor | Frees button A for random bounce, which T8 needs |
| Loop speed | Assumed 40 ms | Rule: 25 loops a second or more, measured with T5 | A picture on the LEDs inside forever drops it to 1 to 2 a second (T5b) |
| Requirement R6 | Explain every wire | Explain every wire and every line | The judges’ question: did you write this? |
| Editor | MakeCode Blocks | MakeCode JavaScript, read in Blocks | Same program either way; Blocks is how Nolan reads it |
Claude accounts are for grown-ups, so Claude runs on Dad's account with Dad beside Nolan. Not changed: every part, every print file (revision tags stay as they are), the wiring, the cliff math, the experiment, the due dates.
What had to be updated
Tests that prove it works
- Every test program T1 to T9 passes its written pass mark, logged in the notebook.
- The main program runs 25 loops a second or more (T5 on Dusty v1).
- Dusty still stops at the edge 20 times out of 20.
- Nolan can point at any line of the final program and say what it does.
Change order MOC-007: screws instead of zip ties
Sep 27, 2026. Approved by Dad. Published Sep 30.
The moto:bit has four holes made for screws, but we were holding it down with zip ties, resting on the lumpy solder bumps underneath. Now the deck has four little round towers called risers, one under each hole. The board sits on top of them and four tiny screws hold it tight.
Technical record
| Feature | Parts | Was | Now | Basis |
|---|---|---|---|---|
| moto:bit risers | Deck | none | 4 round risers, 6 mm across, 5 mm tall | Hole positions from SparkFun’s board file: back pair 40 mm apart, 5.88 mm from the back edge; neck pair 20 mm apart, 20.32 mm from the connector edge |
| Riser screw holes | Deck | none | 2.2 mm pilot, 45° lead-in, blind with a 0.6 mm floor | Same pilot and lead-in as every other screw hole (MOC-003, MOC-004). No screw tip shows under the deck |
| Board height above the deck | Deck | 0 mm (on its solder bumps) | 5 mm | The 2 to 3 mm of pins and solder under the board keep at least 2 mm of air |
| How the board is held | Assembly | 2 zip ties | 4 × M2 × 8 down through the board | About 6.4 mm of thread in each riser |
| Screw count | Whole robot | 23 (18 × M2 × 8) | 27 (22 × M2 × 8) | The 2 back screws alone hold the board if you run short |
| Part volume | Deck | 13.46 cm³ | 13.90 cm³ | 3D model |
| Plate 3 (deck, sleeve, arms) print | Plate 3 | 42.0 g, 1 h 46 min | 42.7 g, 1 h 50 min | Slicer |
| Deck by itself | New print file | none | 15.0 g, 33 min | dusty-deck-only-revA7, for reprinting just the deck |
| Robot height | Whole robot | about 81 mm | about 86 mm | Footprint unchanged, 120.6 × 125.9 mm |
Checked in the 3D model: the deck is one solid printable part, all four pilot holes are clear for a full M2 × 8, and nothing on the deck reaches into the space under the board except the four riser tops. The side guides, rear stop and zip tie slots stay; they no longer touch the board. Not changed: base, sleeve, posts, motors, sensor arms, wiring, the cliff math, the footprint, and every other part. No new parts to buy.
What had to be updated
What we learned
Use the mounting holes a board comes with, and get their positions from the maker's drawing. And a change is not finished until every page that describes it is updated: this one was approved on Sep 27, but the Build Guide still said zip ties for three days.
Tests that prove it works
- All four board holes sit over the four risers without bending the board.
- All four screws start and pull snug, and none of them strips.
- The board does not rock or wiggle, and nothing underneath touches the deck.
- The power socket and the sensor pins are easy to reach.
Change order MOC-006: room for the power socket
Sep 27, 2026. Approved by Dad.
The real moto:bit has a round power socket that sticks out past the edge of the board. It bumped the little wall on the left side of the deck, so the board could not lie flat. One zip tie pressed on that socket, and the other could not go in at all because the battery sleeve wall was in the way. We shortened the left wall and moved both zip tie holes. Only the deck changes.
Technical record
| Feature | Parts | Was | Now | Basis |
|---|---|---|---|---|
| Left side guide | Deck | y 39 to 108 mm | y 39 to 88 mm | Barrel jack overhangs the left board edge 3.5 to 5.3 mm, 54.5 to 65 mm back from the connector, 1.6 mm up. It hit the 3 mm guide by 29 mm³ |
| Front zip tie slots | Deck | y 60 to 64 mm | y 56.8 to 60.2 mm | Old slots sat over the battery sleeve front wall (y 60.6 to 62.2): a tie could not pass under the deck (142 mm³ overlap). New tie crosses the board neck, clear of the posts and the wall |
| Back zip tie slots | Deck | y 96 to 100 mm | y 84 to 88 mm | Old tie crossed the barrel jack. New tie runs between the motor sockets and the jack, over the bank inside the sleeve (7.1 mm gap) |
| Part volume | Deck | 13.57 cm³ | 13.46 cm³ | 3D model |
| Plate 3 (deck, sleeve, arms) print | Plate 3 | 42.2 g, 1 h 46 min | 42.0 g, 1 h 46 min | Slicer |
| Download file names | Deck and Plate 3 only | dusty-deck-revA5.stl | dusty-deck-revA6.stl | Unchanged parts keep their revA5 files |
Measured from photos with a ruler (about ±2 mm): board 60 × 76 mm, power socket on the left edge. The socket was added to the 3D model: with the socket anywhere in a ±2 mm range, it clears the new deck. Neither zip tie path touches the sleeve or the posts. Not changed: base, sleeve, posts, motors, sensor arms, the cliff math, the balance point, and every other part.
What had to be updated
What we learned
Same lesson as MOC-005, one level up: model the connectors that hang off a bought board, not just its outline. And follow every zip tie along its whole path, under the part too, not just the holes on top.
Tests that prove it works
- The moto:bit lies flat on the deck and touches the back stop.
- Both zip ties thread through and pull snug, and neither one presses on the power socket or the sensor pins.
- The power bank still slides in and out with the back tie in place.
Change order MOC-005: windows for the motor plugs
Sep 27, 2026. Approved by Dad.
Each wheel motor has a little circuit board on its back with a plug for its wires. They stick out more than our 3D model showed. With the plug pointing up, it hit the base and the motor could not sit flat. Now the base has a window for each motor: the board and plug tuck up inside it, and the wires come out on top.
Technical record
| Feature | Parts | Was | Now | Basis |
|---|---|---|---|---|
| Motor length, gearbox face to back of plug | 3D model (N20 motor) | 37 mm (assumed) | 33 mm | Measured with a ruler, about ±1 mm |
| Encoder window, one per motor, through | Base | none | |x| 7 to 17.8 mm, y 52 to 66 mm | Board and plug reach 16 mm from the motor centerline; the plate underside is 14 mm |
| Wall to the sleeve tab screw hole | Base | solid | 0.8 mm | Tab screws stay at ±20 mm, so a sleeve already printed still fits |
| Motor wire slot | Base | x −13 to −5, y 44 to 49 mm | removed | Wires now come up through the windows |
| Pocket under the floor and front wall | Battery sleeve | floor 2.5 mm | 1.0 mm over |x| 7 to 17.8, y 59.6 to 66 mm | Board clears the sleeve by about 2.5 mm (1 mm without it) |
| Part volume | Base / battery sleeve | 37.0 / 21.0 cm³ | 36.2 / 20.8 cm³ | 3D model |
| Plate 2 (base) print | Plate 2 | 36.6 g, 1 h 21 min | 36.0 g, 1 h 21 min | Slicer |
| Download file names | Every print file, viewer and zip | dusty-base.stl | dusty-base-revA5.stl | Old files deleted, so an old download cannot be mistaken for a current one |
Measured (about ±1 mm): gearbox 8.9 mm plus can 15.4 mm is 24.4 mm, board 1.2 mm, gearbox face to the back of the plug about 33 mm. The plug goes straight into the back of the board, and the wires leave toward the middle of the robot. The motors now mount with the board and plug toward the base. The board and plug were added to the 3D model: against the old base they overlap by 24 mm³, against the new base and sleeve by nothing. Not changed: axle, wheels, caster, sensor arms and their head start, the cliff math, the 122 mm footprint, the balance point, and every other part. The 14 mm bridge between the two windows stays, so the base stays stiff.
What had to be updated
What we learned
The 3D model had the motor’s length along its shaft, with its connector (37 mm), but not the little board and plug sticking out sideways. Model the cable and plug, not just the part.
Tests that prove it works
- The board and plug sit in the window, and the motor sits flat on its pad.
- Both wheels spin freely.
- The wires come up through the window without pinching.
- The battery sleeve slides on without touching the little board.
- The lowest point of the motor, plug and wires is at least 5 mm above the table.
Change order MOC-004: a funnel for the screws, and tighter post holes
Sep 27, 2026. Approved by Dad after fit checks 3 and 4.
Two things we learned from test prints. First, screws were hard to start because the hole was a tiny dot: now each screw hole has a little funnel at the top that guides the screw in. Second, the deck posts wiggled in the base, so the holes they plug into are now a bit smaller and the posts fit snug.
Technical record
| Feature | Parts | Was | Now | Basis |
|---|---|---|---|---|
| Screw lead-in (45° funnel) | Deck posts (top), base motor pads and caster posts | none | 4.2 mm wide, 1.0 mm deep | Tested: fit check 3 #2 |
| Post peg holes | Base (and the base test piece) | 4.30 mm | 3.95 mm | Tested: fit check 4 #6 |
The gear peg end gets no funnel: the washer presses on that face and needs it flat. What this taught us: small holes (2 mm) print too small on this printer, but a 4 mm hole prints about right. So the +0.25 mm we added in MOC-003 to the bigger sliding fits (the gear on its peg, the dowel holes) gets checked in Batch 4, and gets its own change order if those parts wobble.
Tests that prove it works
- An M2 × 8 screw starts straight in the post top without hunting for the hole (passed on fit check 3, #2).
- A deck post peg pushes into the base snug by hand (passed on fit check 4, #6).
- Batch 1 test pieces match: base test piece snug, deck screw slides through.
- Batch 2: both posts push into the real base snug; screws start easily in the motor pads and caster posts.
Change order MOC-003: bigger holes
Sep 26, 2026. Approved by Dad after fit check 2.
Our printer makes holes a little smaller than the drawing. The screw would not go into the deck post, and the motor gear would not go onto the motor. We printed five sizes of each, and size number 4 worked for both. Now every hole in Dusty is drawn a little bigger so the real parts fit.
Technical record
| Hole | Parts | Was | Now | Basis |
|---|---|---|---|---|
| M2 screw pilot (screw threads in) | Deck posts, base, battery sleeve, deck, motor mount | 1.8 mm | 2.2 mm | Tested: fit check 2 #4 |
| Motor gear on the motor shaft | Motor gear | 1.85 mm | 2.1 mm | Tested: fit check 2 #4 |
| M2 pass-through | Base, deck, sensor arm slots, washer | 2.4 mm | 2.8 mm | +0.4, same as the pilot |
| Deck screw head pocket | Deck | 4.4 mm | 4.8 mm | +0.4, same as the pilot |
| Whisker switch screws | Left sensor arm | 2.3 mm | 2.7 mm | +0.4, same as the pilot |
| Big gear on its peg | Big gear | 5.2 mm | 5.45 mm | +0.25, same as the gear |
| Axle holes (D shape) | Roller, roller gear, collar | axle +0.1 to +0.3 | 0.25 mm more | +0.25, same as the gear |
| Axle holes in the side walls | Base | 4.6 mm | 4.85 mm | +0.25, same as the gear |
| Post pegs | Base | 4.05 mm | 4.3 mm | +0.25, same as the gear |
| Dowel holes | Base, motor mount | 3.1 mm | 3.35 mm | +0.25, same as the gear |
| Motor pocket and boss | Motor mount | 0.25 mm gap | 0.375 mm gap | +0.25 across, same as the gear |
Two holes were tested directly. The rest get the same allowance: +0.4 mm for holes an M2 screw passes through (same as the pilot), +0.25 mm for parts that slide on a pin or the axle (same as the gear bore). Outside sizes, weights and print times do not change. X-Y hole compensation in the slicer stays at 0.
What had to be updated
Tests that prove it works
- An M2 × 8 screw starts and bites in the deck post (passed on fit check 2, #4).
- The motor gear pushes on by thumb and does not slip (passed on fit check 2, #4).
- Batch 2: a screw threads into every pilot hole on the base, and both posts push into the base.
- Batch 3: M2 screws pass freely through the sensor arm slots and the deck holes.
- Batch 4: the big gear spins freely on its peg, and the axle slides through the roller, collar and roller gear.
Project history
Every decision and change, newest first. Add a line whenever the plan changes.
Lessons learned
What we would do the same way, or differently, next time.
Checklist for the next project
- 1Write the goal and the big question on one page before picking parts.
- 2Give every requirement a number and a reason.
- 3Make a 3D model and check that every part fits before ordering.
- 4Order everything in one go, one order per store.
- 5Print or build a small test piece first.
- 6Lock the design, then use a change order for anything after that.
- 7Keep this history log up to date: one line for each decision or change.
- 8Leave empty weekends at the end for surprises.