Assembly — v01c kit (pebble, light ring at the seam, eye button)

Who this is for

Skill You have soldered through-hole parts and wires before. There is no surface-mount soldering and no hot air; the I²C boards plug together.
Time About 12–15 hours of hands-on work for a first build (a simulated novice build, ADR-0015): about 2 h of first boot and tests, 1.5 h preparing the Radxa, 3 h for the bottom shell, 2.5 h for the top shell, 1.5 h of bring-up. Plus printing, glue curing and a 4 h heat test.
Cost About $245 in parts (bom.csv), about €25 of consumables, plus printing (€25–60 at a service). Tools below if you have none: about €60–90.
Status Works-like, looks-like prototype. The enclosure, wiring and protocol are designed and checked in software (validate.py). The device firmware is not written yet: the audio pipeline, ring driver, NFC writer and key store. Today the kit boots Linux, lights the ring from a test script and runs the protocol tests. Read ../BACKLOG.md before you buy.

Tools:

You need no hot-air station. The heat-set inserts go in with the same iron at about 245 °C, ideally with an insert tip. That is CNC Kitchen's figure for PETG: "for PETG 245 °C", 10–20 °C above the printing temperature (ADR-0017). 220 °C is a PLA setting.

Buying outside Germany. Every part has a maker link (US) and an EU link in bom.csv.

LiPo safety (read before the battery comes near the build)

0. Before anything is soldered (headless first boot, no RJ45 needed)

  1. Flash the microSD. Use Radxa's Debian image for the ZERO 3E. Before ejecting the card, enable the USB gadget network: Radxa's image documents it as rsetup → USB OTG → ethernet gadget, or edit the boot config on the card.
  2. Boot on the desk. Connect the Radxa's own USB-C to your computer and SSH in over the gadget link. Then run the tests: python -m pytest v01/firmware/tests protocol/python/tests.
  3. Benchmark speech recognition and the summariser on this board (research/software-stack.md, "Risks"). If they can't keep up, distil only while charging.
  4. Measure power in the three states (listening, transcribing, distilling) and put the figures in sim/power_sim.py (backlog B-10).
  5. Leave the ATECC608 unlocked. Locking its configuration is permanent. The slot layout for the forgetting chains is not final (backlog B-26), so don't run any "lock" example. The secure element works unlocked for development; the lock step will be written with the key-store firmware.

1. Prints

Print the parts listed in the Print tab (PRINT-SPEC.md in the print zip). The files there are already turned to their printing orientation.

  1. Print the test coupon first (test_coupons.stl, about 20 min, in the shells' yellow PETG; ADR-0017). In each row the middle size is the design value, and a dot marks the smallest.

    • Insert bosses (Ø3.8 / 4.0 / 4.2 mm): press a real insert into each. Keep the size that takes the insert square, flush, without cracking the boss and without spinning when you turn a screw in.
    • Tongue slots (0.10 / 0.15 / 0.20 mm fit): slide the loose tongue into each. The 0.15 slot should slide with light friction.
    • Icon skins (0.24 / 0.36 / 0.48 mm): hold the icon NeoPixel, lit white, behind each. The 0.36 mm skin should glow evenly with no pinholes.
    • Cap sockets (2.0–2.3 mm): push each onto a slide switch's actuator. Keep the one that grips without splitting.

    If a size other than the middle one wins, change INSERT_HOLE, FIT or the skin in v01/cad and rebuild (python v01/build.py) before printing the shells. Printed holes usually come out about 0.25 mm small: CNC Kitchen measured "every hole measured about 0.25 mm smaller than designed".

  2. Press four M2.5 heat-set inserts into the battery deck's floor posts in the bottom shell. Set the iron to about 245 °C, push slowly and keep them square. Melt each insert in only to about 90 % of its depth, then press the rest flush with the flat tool while it is still soft (CNC Kitchen: "melt the inserts only to about 90% of the depth"). The bores are 1 mm deeper than the inserts, so melted plastic has room. (ADR-0020: the Radxa no longer hangs on posts; it stands on captive-nut bosses on the deck.)

  3. Check the snap fit of the two shells once, empty, with the band off: nose first, press until the six snaps click. To open, twist a coin in the slot under the nose; the slot runs across the seam.

  4. Lightly sand the inside of the eye lens for a frosted finish.

2. Small parts, on the bench

Make these short harnesses first and cover every joint with heat-shrink:

3. The Radxa

  1. Remove the RJ45 jack. Snip its plastic body away with flush cutters, then clear the remaining pins one at a time with a solder sucker, or flood them with low-melt solder first. The shield pins sit in a ground plane and take time (allow an hour). Don't lever the pads off.
  2. Leave the 40-pin header unfitted. Wires go straight into the holes: 30 AWG for signals, 26 AWG for 5 V and ground.
  3. Solder the STEMMA QT cable's four male pins (4209) into pins 1 (red, 3V3), 9 (black, GND), 3 (blue, SDA) and 5 (yellow, SCL). Pin 6 takes the 26 AWG ground from the ideal diode, and one hole takes one pin (ADR-0021).
  4. The other header wires (each pin in wiring.md; the Model tab names every pad with Pins on): 2 (5 V), 6 (GND), 12, 35, 38 and 39 (I²S and its ground), 16 (eye), 17 (3V3 to the mic switch), 18 and 20 (motor), 19 (LED data).

4. Light ring (bottom shell)

  1. Cut the strip. Cut 50 LEDs from the Mini Skinny strip, across the copper pads at a cut line. Solder three 30 AWG leads to the input end (+V, DIN, GND); the arrows point away from it.
  2. Lay the strip on the land, the inner face of the bottom shell's tongue, with the LEDs facing outward through the openings. Start at the −Y side of the USB-C pocket (the side with the switches), go round the nose, and end at the +Y side. Each LED sits behind one opening; check the first, the 25th and the last.
  3. Fix it with the thin double-sided tape. Don't flex it again at the nose bends.
  4. The tail icon LED (D2) comes first in the chain, in the lid: Radxa pin 19 → 470 Ω → the lid connector → icon DIN (10 kΩ from DIN to GND), and icon DOUT → the lid connector → strip DIN. Its 5 V comes from the strip's +V pad (after F1) through D4 and the connector. Solder those two lid wires (5 V and DOUT) to the strip's input pads with its own +V and GND leads.
  5. Leave the light band off until the shell is closed (step 8).

5. Bottom shell: the chassis

Every board is in the bottom shell, so it powers up and runs on the bench with the lid off (ADR-0020). Each board is screwed down (ADR-0018): on its own holes into captive nuts, or, with no usable holes, under a printed strap on a 1 mm foam pad. The Model tab shows where each one goes. Work with the shell base-down.

  1. Floor boards, cell out.
    • Screw the USB-C breakout to its two floor bosses at the tail, its receptacle at the back of the plug pocket. The two screws beside the socket take a plug's push and pull, so no glue.
    • Screw the secure element to its four floor bosses.
    • Strap the boost (with C2), the ideal diode and the Pololu switch (set to OFF) to the floor.
    • Solder the power wiring (wiring.md § Power). Check with a real cable that the plug seats fully.
  2. Cell.
    • Kapton-tape the 4000 mAh cell.
    • Stick it into the bay between the ribs on two strips of double-sided foam tape (tesa 4952).
    • Tape RT1 to its face and leave the cell unplugged.
    • Lay a 1 mm foam pad on top of it.
  3. Battery deck.
    • Lay the printed deck over the cell, its four tabs on the four floor posts.
    • Screw it down with 4 × M2.5 × 6 into the heat-set inserts. It clamps the cell through the pad. To change the cell, take the charger off first (it covers the two screws at the nose end), then these four screws.
  4. Deck boards.
    • Screw the clock (CR1220 fitted) on its four deck bosses, and strap the vibration disc.
    • Screw the charger to its four bosses: two on the deck, two on the floor beyond the cell's end. Its DC jack came off in step 2. Leave its jumpers as shipped: 1 A charge, 1.5 A from USB. THERM was cut in step 2.
    • Run 26 AWG from the tail USB-C's VBUS and GND to the charger's VBUS and GND pads.
  5. The Radxa.
    • Solder the I²S, ring data, eye switch and motor wires to it (cut-list lengths from step 2).
    • Screw it to its four deck bosses with 4 × M2.5 × 6, component side up. All four holes are used now, since nothing hangs near the eye.
    • Heat stack: press a 14 × 14 mm piece of 1.5 mm soft pad onto the SoC (the large square chip), then the 14 × 14 × 6 mm heatsink on it, fins up. Then put three more 14 × 14 mm pieces, stacked, on the fins. The lid's roof patch squeezes the stack 0.5 mm as the lid closes. No fan: the microphones would hear it.
  6. Slide switches.
    • Solder each switch's wires first (ADR-0021): the C&K OS102011MS2QN1 lies on its back, actuator out through the flank, so its three pins point into the case. Bend nothing; cut each wire to the cut list, solder it to the pin's tip, and heat-shrink each joint.
    • Push the two switches' actuators out through their slots from inside: power toward the tail, the microphone switch nearer the eye.
    • Fix each body with a small bead of epoxy on its top and bottom faces only, away from the slide and the pins: CA wicks into the slide and seizes it.
    • Push the printed caps onto the actuators from outside: the smooth cap (one dot above its slot) on power, the ridged cap (two dots) on the microphones. Both turn on toward the head.
  7. Plugs, wires and the lid harness.
    • Plug the I²C chain: Radxa → secure element → clock (the 200 mm cable, its spare folded beside the clock).
    • The lid connector's chassis pigtails are the wires. All twelve are white: before cutting, flag each with its contact number (tape or a heat-shrink marker), from the pin map in wiring.md. Cut each to its length in the cut list and solder it straight to its pad: Radxa pins 12, 35, 38, 39 (I²S and ground), 16 (eye) and 19 (LED data); the mic switch; the strip's +V (through D4) and DIN; and the clock's VIN, SDA and SCL header pads (ADR-0021: the tag's I²C runs on pigtails, with no cable cut). Heat-shrink the inline parts.
    • Put a strip of Kapton over every friction plug: the battery's JST-PH and each STEMMA QT cable. The lid connector latches and doesn't need it.
    • Tack the wire bundles to the shell or the deck with Kapton every 30 mm or so.

6. The lid (top shell): eye, mics, tag

Only what has to touch the lid's skin is in it, and it joins the chassis through one latched 12-way plug (ADR-0020). Work with the lid dome-down on a soft cloth.

  1. The eye button:
    • Drop the light guide in from inside so its flange rests in its recess.
    • Set the lens into the opening from outside, onto the guide, and fix it to the guide with a dot of CA gel at the centre.
    • Solder two leads to one leg on each side of the DTS-61K, then seat it in the printed cradle (its legs go into the cup's notches, the leads out through the floor slot), plunger toward the guide.
    • Press the cradle's three bosses onto the three pins under the roof, with a drop of CA on each pin. The switch now presses lightly on the guide (0.05 mm of preload, so it doesn't rattle).
    • Glue the LED sequin (the eye light) under the guide's edge on the +Y side, clear of the switch. Never glue the lens or the guide to the shell: lens and guide float together, so pressing anywhere on the eye presses the switch. Press it a few times and feel for a short, firm click.
  2. Mics.
    • Put a 1.0 mm foam ring on the end of each printed port tube.
    • Screw each pre-wired SPH0645 to its two roof bosses, acoustic port on the tube. The screws set the squeeze: a 0.7 mm gap, about 30 %.
  3. Tail: icon LED and NFC tag.
    • Solder the icon LED's wires first and tack them flat across its back, out past its sides. Then strap it up against the tail roof, LED toward the icon, with a 1.5 mm foam pad under the strap (it stands 1.3 mm off, over the wires; ADR-0021).
    • Screw the NFC tag to its two roof bosses, antenna side toward the shell. Its holes are Ø3.3 mm, and the M2.5 screw heads (Ø4.5 mm) still bear on the board. Its header (GND, 3V3, SDA, SCL) takes the pigtails from below. The tag stays readable: the device writes the meeting's note into it when the meeting ends (ADR-0015).
  4. Heat patch. Stick a 30 × 25 mm patch of aluminium tape on the small boss inside the roof over where the SoC sits. Keep it at least 15 mm from the NFC tag (metal detunes the antenna), off the mic ports and off the eye cradle.
  5. The lid connector.
    • Strap the plug pigtail's housing under the roof where the Model tab shows it.
    • Flag its twelve white leads with their contact numbers, cut each to the cut list and solder it to its pad: the mic rail and I²S to the tail mic, the eye line to the eye switch, the icon LED's 5 V, DIN and DOUT, and 3V3, SDA, SCL and GND to the tag's header.
    • Then the lid's short links, pad to pad: tail mic → head mic (rail, GND, BCLK, LRCL, DOUT), head mic → eye light (rail, GND), eye light − → eye switch, tag GND → icon gnd, icon − → tail mic GND, and each mic's SEL bridge (tail to 3V, head to GND). The ground reaches every lid part along that chain, with no splice.
    • Plug the chassis's socket into it and listen for the latch. Squeeze the latch to unplug: the lid then comes off completely.

7. Bring-up checks

7a. Battery still unplugged

Check How Expect
Charger alive USB-C into the tail charger LED on
Power switch on meter on Radxa pin 2 (the boost sits under the charger) ≈ 4.95 V
Charger OUT on USB meter on the charger's OUT pad 4.3–4.5 V
Power switch off meter on the boost VIN 0 V. If it reads 4–4.5 V, the Pololu's own switch is still ON or the control wire is wrong
Ring supply meter at the strip's +V 5.0 V
Icon LED supply meter at the icon +V 4.2–4.5 V (one diode drop below 5 V)
Mic switch on / off look at the eye; meter on the mic 3V pins eye lit, 3.3 V / eye dark, 0 V
I²C bus voltage meter on SDA to GND 3.3 V, never 5 V

7b. Battery plugged in (polarity checked)

Check How Expect
Standby drain power switch off; meter (µA range) in series with the battery lead single-digit µA. Write the number in sim/design.json and on the backlog: it is not published for the Pololu 2810
I²C devices i2cdetect -y 3 0x53, 0x57, 0x60, 0x68
Ring python3 v01/firmware/tools/ring_test.py (B-31; --sim shows the same steps on a laptop): battery gauge, then each segment every LED lights; the icon LED lights first in the chain
Room off press the eye the whole ring breathes red; a buzz. Press again: still off. Double-press: back on, with an amber arc counting down 30 s
Mic cut record with the mic switch off digital silence (all zeros), not noise
NFC tag touch a phone to the tail the phone reads the tag (before firmware: any NDEF reader app sees the ST25DV)
Thermistor meter across RT1 at room temperature ≈ 10 kΩ
Runs on a phone charger record with a USB-C phone charger plugged in; pull it out and plug it back in no reset; the charger's CHG light on while the cell charges
Shake test (ADR-0018) closed, band on: shake it firmly for 30 s along each axis, then run the checks above again nothing rattles; every check still passes

8. Close

  1. Dress the wires flat and tacked (step 5.5) so nothing crosses the parting line or covers an LED opening.
  2. Plug the chassis's socket into the lid connector (it latches), then lower the lid onto the tongue, nose first, and press until the six snaps click.
  3. Fit the light band last.
  4. Heat test, closed (B-40): a 4 h recording on a USB-C charger; read /sys/class/thermal/thermal_zone0/temp and a thermometer on the shell. Expect the shell ≤ 45 °C in a 25 °C room.
  5. To open: peel the band off at the nose, then twist a coin in the slot under the nose. Lift the lid a little, squeeze the lid connector's latch and unplug it: the lid comes off completely, and the chassis keeps working on the bench (ADR-0020). For bring-up you can instead leave it plugged in and open the lid like a book: hinge it on the side away from the slide switches and lay it dome-down beside the chassis. Every wire to the lid is cut long enough for that (the cut list in wiring.md), but not toward the switch side. To disconnect the battery, unplug its JST at the charger.
  6. To rebuild: every board, strap and the deck comes off with the TX8 driver, and the nuts stay in their bosses. Take the Kapton off a plug before pulling it. Two things sit under others, so take those off first (out_pebble/buildability.json, "rebuild_order"):
    • the battery deck (to change the cell): the charger first, which covers its two nose-end screws;
    • the icon LED: the NFC tag first.

9. First use (once the firmware exists)

  1. Configure. The device runs the Resolution Protocol with the Goldfish profile, profile/goldfish.profile.json. Edit the default level, wake word, languages and retention there. Where every party's consent is required, set default_level to 0.
  2. Place it on the table with the eye up. Each voice's lights appear on the side of the ring facing that person (two mirrored arcs, since two microphones can't tell left from right).
  3. Off the record, two ways. Say "this is off the record" or press the eye. The whole ring breathes red. Pressing again never turns it back on.
  4. Back on. Say "back on the record" or double-press the eye. The room returns at once, an amber arc counts down 30 s, and anyone can say "no" to undo it.
  5. Read it. When the meeting ends, the tail icon lights. Touch a phone to it: the note opens as a link, with no app. Holding the eye for two seconds shows the battery.
# Assembly — v01c kit (pebble, light ring at the seam, eye button)

## Who this is for

| | |
|---|---|
| **Skill** | You have soldered through-hole parts and wires before. There is no surface-mount soldering and no hot air; the I²C boards plug together. |
| **Time** | About 12–15 hours of hands-on work for a first build (a simulated novice build, ADR-0015): about 2 h of first boot and tests, 1.5 h preparing the Radxa, 3 h for the bottom shell, 2.5 h for the top shell, 1.5 h of bring-up. Plus printing, glue curing and a 4 h heat test. |
| **Cost** | About $245 in parts (`bom.csv`), about €25 of consumables, plus printing (€25–60 at a service). Tools below if you have none: about €60–90. |
| **Status** | Works-like, looks-like prototype. The enclosure, wiring and protocol are designed and checked in software (`validate.py`). **The device firmware is not written yet**: the audio pipeline, ring driver, NFC writer and key store. Today the kit boots Linux, lights the ring from a test script and runs the protocol tests. Read `../BACKLOG.md` before you buy. |

**Tools:**
- temperature-controlled soldering iron with a fine chisel tip;
- flush cutters;
- solder wick;
- multimeter with a µA range;
- tweezers;
- a heat gun or lighter for heat-shrink;
- wire strippers for 26–30 AWG;
- helping hands or a small vice;
- a solder sucker (or low-melt solder) for the RJ45 pins;
- a coin;
- a TX8 (Torx) driver for the M2.5 board screws;
- a small flat-faced tool to finish seating the inserts (a scrap of aluminium, or the back of a flat file).

You need no hot-air station. The heat-set inserts go in with the same iron at about 245 °C, ideally with an insert tip. That is CNC Kitchen's figure for PETG: "for PETG 245 °C", 10–20 °C above the printing temperature (ADR-0017). 220 °C is a PLA setting.

**Buying outside Germany.** Every part has a maker link (US) and an EU link in `bom.csv`.
- **UK:** The Pi Hut carries most Adafruit and SparkFun boards, but its LiPo cells ship only within England and Wales.
- **US:** order the Adafruit, SparkFun and Pololu parts direct, and the passives from DigiKey.com (same part numbers).

## LiPo safety (read before the battery comes near the build)

- Never solder to the cell. Use its JST-PH lead.
- Never cut both cell wires at once.
- Check the polarity of the cell's connector with a multimeter before plugging it into the charger. Red must be + at the charger's BAT marking. Shops don't all wire them the same way.
- Keep the cell out of the shell, unplugged, until step 5.1, and solder nothing beside it once it is in: do the soldering in step 5 first with the cell out (a printed 90 × 60 × 6 mm block makes a good stand-in), then lay the cell in its bay.
- Never pinch the cell or press it with a screw or rib. The foam pads leave room for it to swell. A cell that puffs, gets hot or smells goes outside on a non-flammable surface and is recycled, not reused.
- **Protections stack up:**
  - F2 (a 3 A polyfuse in the battery lead);
  - the cell's own protection circuit;
  - the charger's thermistor input (RT1);
  - the charger's 6-hour safety timer.

  Don't bypass any of them.

## 0. Before anything is soldered (headless first boot, no RJ45 needed)

1. **Flash the microSD.** Use Radxa's Debian image for the ZERO 3E. Before ejecting the card, enable the USB gadget network: Radxa's image documents it as `rsetup` → USB OTG → ethernet gadget, or edit the boot config on the card.
2. **Boot on the desk.** Connect the Radxa's own USB-C to your computer and SSH in over the gadget link. Then run the tests: `python -m pytest v01/firmware/tests protocol/python/tests`.
3. **Benchmark** speech recognition and the summariser on this board (`research/software-stack.md`, "Risks"). If they can't keep up, distil only while charging.
4. **Measure power** in the three states (listening, transcribing, distilling) and put the figures in `sim/power_sim.py` (backlog B-10).
5. **Leave the ATECC608 unlocked.** Locking its configuration is permanent. The slot layout for the forgetting chains is not final (backlog B-26), so don't run any "lock" example. The secure element works unlocked for development; the lock step will be written with the key-store firmware.

## 1. Prints

Print the parts listed in the **Print** tab (`PRINT-SPEC.md` in the print zip). The files there are already turned to their printing orientation.

0. **Print the test coupon first** (`test_coupons.stl`, about 20 min, in the shells' yellow PETG; ADR-0017). In each row the middle size is the design value, and a dot marks the smallest.
   - **Insert bosses** (Ø3.8 / 4.0 / 4.2 mm): press a real insert into each. Keep the size that takes the insert square, flush, without cracking the boss and without spinning when you turn a screw in.
   - **Tongue slots** (0.10 / 0.15 / 0.20 mm fit): slide the loose tongue into each. The 0.15 slot should slide with light friction.
   - **Icon skins** (0.24 / 0.36 / 0.48 mm): hold the icon NeoPixel, lit white, behind each. The 0.36 mm skin should glow evenly with no pinholes.
   - **Cap sockets** (2.0–2.3 mm): push each onto a slide switch's actuator. Keep the one that grips without splitting.

   If a size other than the middle one wins, change `INSERT_HOLE`, `FIT` or the skin in `v01/cad` and rebuild (`python v01/build.py`) before printing the shells. Printed holes usually come out about 0.25 mm small: CNC Kitchen measured "every hole measured about 0.25 mm smaller than designed".
1. Press four **M2.5 heat-set inserts** into the battery deck's floor posts in the bottom shell. Set the iron to about 245 °C, push slowly and keep them square. Melt each insert in only to about 90 % of its depth, then press the rest flush with the flat tool while it is still soft (CNC Kitchen: "melt the inserts only to about 90% of the depth"). The bores are 1 mm deeper than the inserts, so melted plastic has room. (ADR-0020: the Radxa no longer hangs on posts; it stands on captive-nut bosses on the deck.)
2. Check the snap fit of the two shells once, empty, with the band off: nose first, press until the six snaps click. To open, twist a coin in the slot under the nose; the slot runs across the seam.
3. Lightly sand the inside of the eye lens for a frosted finish.

## 2. Small parts, on the bench

Make these short harnesses first and cover every joint with heat-shrink:

- **Motor driver:** Q1 PN2222A (legs E B C, flat face toward you) with a 470 Ω base resistor, and D3 1N4148 across the motor. The stripe goes to the motor's + lead.
- **Icon supply:** D4 1N4148 in the icon LED's +V lead. The stripe goes toward the LED.
- **Fuses:** F1 MF-R110 in the ring's +V lead and F2 MF-R300 in the battery + lead. Lay them flat along the wire.
- **Capacitors:** C1 100 µF and C3 0.1 µF at the strip's DIN end, C2 100 µF at the boost's VIN. The stripe is −.
- **Charger thermistor:** cut the 4755's THERM jumper now and solder RT1's leads (30 AWG, 80 mm) to THERM and GND.
- **Mics:** solder 80 mm of 30 AWG to each SPH0645 now, before they are glued under the roof.
- **Charger DC jack (ADR-0018):** desolder the 4755's unused 2.1 mm DC jack, the way you'll clear the Radxa's RJ45 in step 3: flood its pins with low-melt solder (or use hot air) and lift it off. Check that no pad came with it. Without it the charger is a flat 6.4 mm board that hangs from the roof on four screws.
- **Nuts (ADR-0018):** before any board goes in, slide an M2.5 hex nut into the side slot of every boss: 36 in all, on the floor, the deck and the roof. Every board, strap and the deck takes the same M2.5 × 6 screw, so the whole pebble comes apart with one TX8 driver as often as the build needs.
- **Cut every wire to the cut list** in `wiring.md` (routed through the closed case; wires that cross the seam carry 60 mm extra, so the two shells can lie side by side, open, during bring-up).

## 3. The Radxa

1. **Remove the RJ45 jack.** Snip its plastic body away with flush cutters, then clear the remaining pins one at a time with a solder sucker, or flood them with low-melt solder first. The shield pins sit in a ground plane and take time (allow an hour). Don't lever the pads off.
2. **Leave the 40-pin header unfitted.** Wires go straight into the holes: 30 AWG for signals, 26 AWG for 5 V and ground.
3. **Solder the STEMMA QT cable's four male pins** (4209) into pins 1 (red, 3V3), 9 (black, GND), 3 (blue, SDA) and 5 (yellow, SCL). Pin 6 takes the 26 AWG ground from the ideal diode, and one hole takes one pin (ADR-0021).
4. **The other header wires** (each pin in `wiring.md`; the Model tab names every pad with **Pins** on): 2 (5 V), 6 (GND), 12, 35, 38 and 39 (I²S and its ground), 16 (eye), 17 (3V3 to the mic switch), 18 and 20 (motor), 19 (LED data).

## 4. Light ring (bottom shell)

1. **Cut the strip.** Cut 50 LEDs from the Mini Skinny strip, across the copper pads at a cut line. Solder three 30 AWG leads to the **input** end (+V, DIN, GND); the arrows point away from it.
2. **Lay the strip** on the **land**, the inner face of the bottom shell's tongue, with the LEDs facing outward through the openings. Start at the −Y side of the USB-C pocket (the side with the switches), go round the nose, and end at the +Y side. Each LED sits behind one opening; check the first, the 25th and the last.
3. **Fix it** with the thin double-sided tape. Don't flex it again at the nose bends.
4. **The tail icon LED (D2) comes first in the chain**, in the lid: Radxa pin 19 → 470 Ω → the lid connector → icon DIN (10 kΩ from DIN to GND), and icon DOUT → the lid connector → strip DIN. Its 5 V comes from the strip's +V pad (after F1) through D4 and the connector. Solder those two lid wires (5 V and DOUT) to the strip's input pads with its own +V and GND leads.
5. **Leave the light band off** until the shell is closed (step 8).

## 5. Bottom shell: the chassis

Every board is in the bottom shell, so it powers up and runs on the bench with the lid off (ADR-0020). Each board is screwed down (ADR-0018): on its own holes into captive nuts, or, with no usable holes, under a printed strap on a 1 mm foam pad. The Model tab shows where each one goes. Work with the shell base-down.

1. **Floor boards, cell out.**
   - Screw the USB-C breakout to its two floor bosses at the tail, its receptacle at the back of the plug pocket. The two screws beside the socket take a plug's push and pull, so no glue.
   - Screw the secure element to its four floor bosses.
   - Strap the boost (with C2), the ideal diode and the Pololu switch (set to **OFF**) to the floor.
   - Solder the power wiring (`wiring.md` § Power). Check with a real cable that the plug seats fully.
2. **Cell.**
   - Kapton-tape the 4000 mAh cell.
   - Stick it into the bay between the ribs on two strips of double-sided foam tape (tesa 4952).
   - Tape RT1 to its face and leave the cell **unplugged**.
   - Lay a 1 mm foam pad on top of it.
3. **Battery deck.**
   - Lay the printed deck over the cell, its four tabs on the four floor posts.
   - Screw it down with 4 × M2.5 × 6 into the heat-set inserts. It clamps the cell through the pad. To change the cell, take the charger off first (it covers the two screws at the nose end), then these four screws.
4. **Deck boards.**
   - Screw the clock (CR1220 fitted) on its four deck bosses, and strap the vibration disc.
   - Screw the charger to its four bosses: two on the deck, two on the floor beyond the cell's end. Its DC jack came off in step 2. Leave its jumpers as shipped: 1 A charge, 1.5 A from USB. THERM was cut in step 2.
   - Run 26 AWG from the tail USB-C's VBUS and GND to the charger's VBUS and GND pads.
5. **The Radxa.**
   - Solder the I²S, ring data, eye switch and motor wires to it (cut-list lengths from step 2).
   - Screw it to its four deck bosses with 4 × M2.5 × 6, component side up. All four holes are used now, since nothing hangs near the eye.
   - **Heat stack:** press a 14 × 14 mm piece of 1.5 mm soft pad onto the SoC (the large square chip), then the 14 × 14 × 6 mm heatsink on it, fins up. Then put **three** more 14 × 14 mm pieces, stacked, on the fins. The lid's roof patch squeezes the stack 0.5 mm as the lid closes. No fan: the microphones would hear it.
6. **Slide switches.**
   - **Solder each switch's wires first** (ADR-0021): the C&K OS102011MS2QN1 lies on its back, actuator out through the flank, so its three pins point into the case. Bend nothing; cut each wire to the cut list, solder it to the pin's tip, and heat-shrink each joint.
   - Push the two switches' actuators out through their slots from inside: power toward the tail, the microphone switch nearer the eye.
   - Fix each body with a small bead of **epoxy on its top and bottom faces only**, away from the slide and the pins: CA wicks into the slide and seizes it.
   - Push the printed caps onto the actuators from outside: the **smooth** cap (one dot above its slot) on power, the **ridged** cap (two dots) on the microphones. Both turn on toward the head.
7. **Plugs, wires and the lid harness.**
   - Plug the I²C chain: Radxa → secure element → clock (the 200 mm cable, its spare folded beside the clock).
   - **The lid connector's chassis pigtails are the wires.** All twelve are white: before cutting, flag each with its contact number (tape or a heat-shrink marker), from the pin map in `wiring.md`. Cut each to its length in the cut list and solder it straight to its pad: Radxa pins 12, 35, 38, 39 (I²S and ground), 16 (eye) and 19 (LED data); the mic switch; the strip's +V (through D4) and DIN; and the clock's VIN, SDA and SCL header pads (ADR-0021: the tag's I²C runs on pigtails, with no cable cut). Heat-shrink the inline parts.
   - Put a strip of Kapton over every friction plug: the battery's JST-PH and each STEMMA QT cable. The lid connector latches and doesn't need it.
   - Tack the wire bundles to the shell or the deck with Kapton every 30 mm or so.

## 6. The lid (top shell): eye, mics, tag

Only what has to touch the lid's skin is in it, and it joins the chassis through one latched 12-way plug (ADR-0020). Work with the lid dome-down on a soft cloth.

1. **The eye button:**
   - Drop the light guide in from inside so its flange rests in its recess.
   - Set the lens into the opening from outside, onto the guide, and fix it **to the guide** with a dot of CA gel at the centre.
   - Solder two leads to one leg on each side of the DTS-61K, then seat it in the printed **cradle** (its legs go into the cup's notches, the leads out through the floor slot), plunger toward the guide.
   - Press the cradle's three bosses onto the three pins under the roof, with a drop of CA on each pin. The switch now presses lightly on the guide (0.05 mm of preload, so it doesn't rattle).
   - Glue the LED sequin (the eye light) under the guide's edge on the +Y side, clear of the switch. **Never glue the lens or the guide to the shell**: lens and guide float together, so pressing anywhere on the eye presses the switch. Press it a few times and feel for a short, firm click.
2. **Mics.**
   - Put a 1.0 mm foam ring on the end of each printed port tube.
   - Screw each pre-wired SPH0645 to its two roof bosses, acoustic port on the tube. The screws set the squeeze: a 0.7 mm gap, about 30 %.
3. **Tail: icon LED and NFC tag.**
   - Solder the icon LED's wires first and tack them flat across its back, out past its sides. Then strap it up against the tail roof, LED toward the icon, with a **1.5 mm** foam pad under the strap (it stands 1.3 mm off, over the wires; ADR-0021).
   - Screw the NFC tag to its two roof bosses, antenna side toward the shell. Its holes are Ø3.3 mm, and the M2.5 screw heads (Ø4.5 mm) still bear on the board. Its header (GND, 3V3, SDA, SCL) takes the pigtails from below. The tag stays readable: the device writes the meeting's note into it when the meeting ends (ADR-0015).
4. **Heat patch.** Stick a 30 × 25 mm patch of aluminium tape on the small boss inside the roof over where the SoC sits. Keep it at least 15 mm from the NFC tag (metal detunes the antenna), off the mic ports and off the eye cradle.
5. **The lid connector.**
   - Strap the **plug** pigtail's housing under the roof where the Model tab shows it.
   - Flag its twelve white leads with their contact numbers, cut each to the cut list and solder it to its pad: the mic rail and I²S to the tail mic, the eye line to the eye switch, the icon LED's 5 V, DIN and DOUT, and 3V3, SDA, SCL and GND to the tag's header.
   - Then the lid's short links, pad to pad: tail mic → head mic (rail, GND, BCLK, LRCL, DOUT), head mic → eye light (rail, GND), eye light − → eye switch, tag GND → icon gnd, icon − → tail mic GND, and each mic's SEL bridge (tail to 3V, head to GND). The ground reaches every lid part along that chain, with no splice.
   - Plug the chassis's socket into it and listen for the latch. Squeeze the latch to unplug: the lid then comes off completely.

## 7. Bring-up checks

### 7a. Battery still unplugged

| Check | How | Expect |
|---|---|---|
| Charger alive | USB-C into the tail | charger LED on |
| Power switch on | meter on Radxa pin 2 (the boost sits under the charger) | ≈ 4.95 V |
| Charger OUT on USB | meter on the charger's OUT pad | 4.3–4.5 V |
| Power switch off | meter on the boost VIN | 0 V. If it reads 4–4.5 V, the Pololu's own switch is still ON or the control wire is wrong |
| Ring supply | meter at the strip's +V | 5.0 V |
| Icon LED supply | meter at the icon +V | 4.2–4.5 V (one diode drop below 5 V) |
| Mic switch on / off | look at the eye; meter on the mic 3V pins | eye lit, 3.3 V / eye dark, 0 V |
| I²C bus voltage | meter on SDA to GND | 3.3 V, never 5 V |

### 7b. Battery plugged in (polarity checked)

| Check | How | Expect |
|---|---|---|
| Standby drain | power switch off; meter (µA range) in series with the battery lead | single-digit µA. Write the number in `sim/design.json` and on the backlog: it is not published for the Pololu 2810 |
| I²C devices | `i2cdetect -y 3` | 0x53, 0x57, 0x60, 0x68 |
| Ring | `python3 v01/firmware/tools/ring_test.py` (B-31; `--sim` shows the same steps on a laptop): battery gauge, then each segment | every LED lights; the icon LED lights first in the chain |
| Room off | press the eye | the whole ring breathes red; a buzz. Press again: still off. Double-press: back on, with an amber arc counting down 30 s |
| Mic cut | record with the mic switch off | digital silence (all zeros), not noise |
| NFC tag | touch a phone to the tail | the phone reads the tag (before firmware: any NDEF reader app sees the ST25DV) |
| Thermistor | meter across RT1 at room temperature | ≈ 10 kΩ |
| Runs on a phone charger | record with a USB-C phone charger plugged in; pull it out and plug it back in | no reset; the charger's CHG light on while the cell charges |
| Shake test (ADR-0018) | closed, band on: shake it firmly for 30 s along each axis, then run the checks above again | nothing rattles; every check still passes |

## 8. Close

1. Dress the wires flat and tacked (step 5.5) so nothing crosses the parting line or covers an LED opening.
2. Plug the chassis's socket into the lid connector (it latches), then lower the lid onto the tongue, nose first, and press until the six snaps click.
3. Fit the light band last.
4. **Heat test, closed (B-40):** a 4 h recording on a USB-C charger; read `/sys/class/thermal/thermal_zone0/temp` and a thermometer on the shell. Expect the shell ≤ 45 °C in a 25 °C room.
5. **To open:** peel the band off at the nose, then twist a coin in the slot under the nose. Lift the lid a little, squeeze the lid connector's latch and unplug it: the lid comes off completely, and the chassis keeps working on the bench (ADR-0020). For bring-up you can instead leave it plugged in and open the lid like a book: hinge it on the side **away from the slide switches** and lay it dome-down beside the chassis. Every wire to the lid is cut long enough for that (the cut list in `wiring.md`), but not toward the switch side. To disconnect the battery, unplug its JST at the charger.
6. **To rebuild:** every board, strap and the deck comes off with the TX8 driver, and the nuts stay in their bosses. Take the Kapton off a plug before pulling it. Two things sit under others, so take those off first (`out_pebble/buildability.json`, "rebuild_order"):
   - the battery deck (to change the cell): the charger first, which covers its two nose-end screws;
   - the icon LED: the NFC tag first.

## 9. First use (once the firmware exists)

1. **Configure.** The device runs the Resolution Protocol with the Goldfish profile, `profile/goldfish.profile.json`. Edit the default level, wake word, languages and retention there. Where every party's consent is required, set `default_level` to 0.
2. **Place it** on the table with the eye up. Each voice's lights appear on the side of the ring facing that person (two mirrored arcs, since two microphones can't tell left from right).
3. **Off the record, two ways.** Say "this is off the record" or **press the eye**. The whole ring breathes red. Pressing again never turns it back on.
4. **Back on.** Say "back on the record" or **double-press** the eye. The room returns at once, an amber arc counts down 30 s, and anyone can say "no" to undo it.
5. **Read it.** When the meeting ends, the tail icon lights. Touch a phone to it: the note opens as a link, with no app. Holding the eye for two seconds shows the battery.