# Two rows of seven: mechanical build

This revision has **14 fully changeable positions, 38 characters per position and 532 physical leaves**. The character order is a space, A–Z, 0–9, then a hyphen. `ORD-LAX` and `UA 1899` can therefore occupy the same hardware as any other supported seven-character line. There is no fixed separator.

The printable files are an engineering prototype derived from the supplied original CAD. They have passed solid, mesh, dimensional and interference checks described below. **No part has been physically printed or fitted, and the 38-leaf mechanism has not been run. Build and qualify one complete module before printing the other thirteen.**

## What to print

The new files are described in [hardware/redesign/README.md](../hardware/redesign/README.md). STL files are already oriented and translated onto the print bed. STEP files retain assembly coordinates so the design can be edited.

| Part | Quantity | File or source |
|---|---:|---|
| 38-position character drum | 14 | `hardware/redesign/stl/character-drum-38.stl` |
| Original leaf pairs, excluding `Flap9Blank` | 14 of each of the other 36 pairs | Original flap profile/files |
| New 9 / hyphen leaf | 14 | `hardware/redesign/flaps/Flap9Dash/Flap9Dash.3mf` |
| New hyphen / blank leaf | 14 | `hardware/redesign/flaps/FlapDashBlank/FlapDashBlank.3mf` |
| Original shell, gear plate, motor gear, center gear and wire retainer | 14 each | Original files; no scaling |
| Original optional shim | As needed | Original file; fit before deciding |
| Left and right sandwich plates | 2 each | Original files |
| Left and right outer end covers | 2 each | Original files |
| Carrier left and right | 1 each | `hardware/redesign/stl/carrier-left.stl`, `carrier-right.stl` |
| Rear cover left and right | 1 each | `hardware/redesign/stl/back-left.stl`, `back-right.stl` |
| Tabletop foot left and right | 1 each | `hardware/redesign/stl/foot-left.stl`, `foot-right.stl` |
| Concealed underside seam strap | 1 | `hardware/redesign/stl/underside-seam-strap.stl` |
| Insert fit coupon | 1 initially | `hardware/redesign/stl/insert-fit-coupon.stl` |

The unchanged leaf sequence is `BlankA`, `AB`, …, `Z0`, `01`, …, `89`. Replace the original `9Blank` leaf with **both** new leaves, in the order `9Dash`, `DashBlank`. Every displayed glyph still spans two neighboring leaves. Do not add a hyphen to a 37-hole drum, omit the blank, or fit a 37-leaf pack to the new drum.

The new leaf bodies retain the exact original `Flap9Blank` printable envelope, pin details and 0.6 mm thickness. The white 9 half is copied unchanged. The hyphen uses a 14 mm wide, 1.85 mm high white half on each of the adjacent faces, inset 0.2 mm; the two halves make the displayed dash across the existing seam. The two 3MF files retain registration and black/white material assignments. They are geometry packages, **not P2S print profiles**: select the actual printer, nozzle, PLA and filament slots in Bambu Studio. If importing the component STLs, load each leaf's files together as parts of one object; do not auto-center each inlay separately.

See the [rendered front and rear faces of both new leaves](../hardware/redesign/evidence/replacement-leaves.png). The original flap archive was independently counted: 37 pair folders, with 36 retained after excluding `Flap9Blank`.

## Exact measured geometry and the new drum

Original geometry is from [Morgan Manly's source repository](https://github.com/ManlyMorgan/Split-Flap-Display), archived unchanged under `hardware/original`. The [original article](https://www.instructables.com/Split-Flap-Display-3D-Printed-Modular-Compact-Encl/) and the [included assembly PDF](../hardware/original/other/InstructionsV1.pdf) remain the reference for the unchanged mechanism. The source repositories do not supply a clear license grant; these derivatives are prepared locally for this personal build, without a claim of commercial or redistribution permission.

| Measurement | Value | Basis |
|---|---:|---|
| Character pitch | 37.9 mm | Original enclosure mating geometry / source rod formula |
| Seven-position row, including original end covers | 281.5 × 80 × 78 mm | Original STL/STEP bounds and repeated pitch |
| Drum flange diameter | 50 mm | Original STEP |
| Drum hinge-circle radius | 23.55 mm | Original STEP cylinder axes |
| Hinge holes | 1.8 mm diameter; 38 per flange | Original diameter, new angular pattern |
| Original adjacent hinge chord | About 3.994 mm | `2 × 23.55 × sin(π/37)` |
| New adjacent hinge chord | About 3.890 mm | `2 × 23.55 × sin(π/38)` |
| Carrier row pitch | 84 mm | New design; 4 mm gap between original row envelopes |
| Main carrier body | 292.3 × 173.2 × 117.6 mm, including raised side ribs and excluding underside strap/feet | New CAD |
| Base structural body width | 290.7 mm | Side ribs add 0.8 mm per cheek |
| Side treatment | 12 rounded vertical ribs per cheek; 8 mm pitch; 0.8 mm relief | Added outside the intact 4 mm side walls |
| Tabletop runners | 5 mm plan-corner radii, 0.8 mm top chamfer, 6 mm base thickness | Original mounting axes and 154 mm support length retained |
| Slim front outline | 286.3 × 168.8 mm before the edge chamfer | New CAD |
| Front rim / center divider | 3 mm / 3 mm | New CAD; perimeter tapers to 2.4 mm flat land at the chamfer |
| Front face thickness / outer edge chamfer | 2 mm / 0.6 mm | New CAD |
| Each front aperture | 280.3 × 79.9 mm | New CAD; original mechanisms and 84 mm row pitch unchanged |
| Overall with feet | **298.7 × 179.2 × 154 mm** | New CAD; about 11.76 × 7.06 × 6.06 in |
| Nominal shell clearance | 0.6 mm | New CAD; tune with the prototype |

`generate.py` imports the original drum STEP, fills only the 74 existing hinge bores, and drills 76 bores for the 38-leaf version. It preserves the drive coupling, center bore, flange outside diameter, axial span and magnet pocket. The new hole pattern is rotated so the magnet lies halfway between neighboring hinge holes; this preserves more than 0.45 mm of calculated solid wall between them. The actual phase, all 38 centers and exact distances are recorded in [dimensions.json](../hardware/redesign/dimensions.json). The new phase requires fresh Hall calibration; a previous 37-slot offset is not a calibration result for this drum.

The adjacent hinge pitch is about 0.105 mm smaller. A geometrically valid drum does **not** prove that 38 flexible printed leaves will fall, clear each other and release reliably. Layer ridges, bowed leaves, hinge friction and gravity are not established by the CAD checks.

The [hole-pattern drawing](../hardware/redesign/evidence/drum-38-hole-pattern.png) shows the actual calculated bore centers and magnet pocket on a simplified flange outline. It does not depict the retained internal drive details.

## Fluted case and retained mechanism

The visible perimeter is now 3 mm instead of roughly 6 mm, with a 3 mm center divider instead of 8 mm. A 0.6 mm exterior chamfer leaves a 2.4 mm flat front land. The two front screw heads and raised strap are removed from view; the same two fasteners now join the carrier underneath. The nominal front outline is 286.3 × 168.8 mm, while the final front surface after the chamfer is 285.1 × 167.6 mm. Four-millimeter rear walls stay intact and taper inward only over the last 6.6 mm before the face. The narrow front lip retains 0.6 mm capture over the original row outline, separated from it by the existing 0.6 mm front clearance.

The side cheeks now carry twelve shallow rounded vertical ribs apiece, echoing the vertical texture in the [Oat Foundry reference](https://www.oatfoundry.com/blog/inter-office-communication-split-flap-displays/). These are raised outside the existing walls, so the continuous structural wall behind them remains 4 mm thick. Their 0.8 mm projection makes the body 292.3 mm wide; the overall width with feet remains 298.7 mm. The existing feet become rounded runners with softened top edges and lower, tapered mounting saddles. Their original mounting holes and full 154 mm support length are retained. Each runner has approximately 3982.5 mm² of nominal bare contact area; real pad contact, load and tip resistance remain untested.

A near-black front and fluted carrier gives the most unified finish. Each carrier half is one solid part containing both its cheek and front rim: a clay or bronze cheek paired with a black rim requires masking and surface finishing. Ordinary single-material printing colors the cheek and rim together. The runners and rear covers are separate existing parts and can use contrasting filament without extra hardware. No wood veneer, multi-material surface process or painted finish is included in the generated geometry.

The original shells are still 80 mm tall. Their two rows, with a 4 mm gap, occupy 164 mm vertically before the carrier perimeter. A thin rim therefore cannot make this retained mechanism a short, wide sign. The actual leaf envelope is about 21.75 mm high, its narrow artwork region is 29.3 mm wide, and its shoulders span 33.1 mm. The rectangular hinge tabs span 32.3 mm and sit 1.747 mm above its lowest edge; doubling the leaf bounding-box height is not a measurement of the installed two-leaf display. The animated viewer uses measured leaf dimensions and a modeled flip, not a validated gravity/contact simulation. Physical flap sweep and bezel clearance still need testing.

## Carrier hardware

The carrier encloses two independently assembled original seven-position rows. It does not alter their rod holes, motor screws or gear mesh. The original row stack still uses:

- 56 M3×30 countersunk screws and 72 ordinary M3 hex nuts across both rows.
- 8 M3×8 countersunk screws and 8 M3 inserts, 4 mm long / 5 mm outside diameter, for the original end covers.
- 8 M3 threaded rods, each cut to **276.3 mm**: `7 × 37.9 + 11`. Measure the actual assembled stack before final cutting; deburr and run a nut over each cut end.

Additional carrier hardware:

- **14 M3×8 button or pan-head screws** and **14 M3 heat-set inserts, 4 mm long / 5 mm OD**: eight for the removable backs, four for the feet, two for the concealed underside seam strap. Use low button heads **at most 1.8 mm tall** for those two underside screws; tall pan heads can extend below the bare feet.
- **4 M3×20 button or pan-head screws and 4 ordinary M3 nuts** for the center rear seam.
- Four non-slip foot pads and small strips of approximately 0.5–0.6 mm cushioning tape for the cradle support/contact areas.

Total across original rows and carrier: 22 inserts and 76 M3 nuts. Carrier screws are not countersunk. The 4.6 mm insert bores are an initial fit choice for a 5 mm OD insert; the coupon offers 4.5, 4.6 and 4.7 mm holes from left to right. Fit and pull-test the exact insert in the coupon, then change the generator if needed. Do not force a poorly matched insert into a finished carrier.

The rear-left cover has an 11.5 mm jack hole in a 3 mm panel, with its mounting land kept clear of vent slots. This is a design allowance for the approved Tensility 10-02878's 11–12 mm panel-hole range, not a physical fit result. Dry-fit the actual jack and its nut before mounting electronics. See its [manufacturer page](https://www.tensility.com/products/10-02878).

## Assembly order

1. **Qualify one 38-position module.** Print the insert coupon, one new drum, the 36 unchanged leaves and the two replacement leaves. Assemble the original mechanism, test the sensor/magnet pole before gluing, and turn it by hand through several complete revolutions. Check all leaves, especially the 9 → hyphen → blank transition. Then home and cycle all 38 positions under power, including cold starts. Resolve interference or registration errors before duplication.
2. Build two seven-module rows using the original sandwich plates, end covers, eight rods and the original assembly procedure. Fit 38-leaf packs and independently test every module. Keep each controller's row/address order labeled.
3. Print and inspect the two carrier halves. Use the supplied outer-side-down STL orientation, with support beneath the recessed untextured side margins; inspect the sliced first layers and support contact before printing. Install the rear-cover, foot and underside-strap inserts using the tested coupon setting. Check that every insert is flush and that no screw tip will protrude into a module.
4. Place the two finished rows 84 mm center-to-center on a padded bench. The bottom of the upper row is at +2 mm and the top of the lower row at −2 mm in the carrier coordinate system. Add thin cushioning at support locations. Slide the carrier halves **onto the rows from the left and right**, so each middle shelf enters the row gap. The integral rear center uprights mean the complete rows are not inserted through the back of an already joined carrier.
5. Join the two rear center uprights with four M3×20 bolts/nuts at the provided holes. Fit the concealed seam strap against the underside of the bottom rail, spanning the center seam 25 mm behind the original shell front. Its two M3×8 screws point upward; use button heads no taller than 1.8 mm, giving at least 0.2 mm clearance above the bare foot plane. Verify the actual screw length does not protrude into the lower row. Tighten gradually; the carrier should capture the original outer shells without bending the original row stack. Verify the full flap sweep again.
6. Attach the feet with two M3×8 screws per side and add non-slip pads. Their forward and rear extensions provide a 154 mm deep support footprint. Test stability on the actual tabletop, including cable pull and a full motion cycle; no load or tip certification is implied.
7. Build the protected low-voltage harness according to the electrical design. The space behind the original 78 mm deep module envelopes provides a rear service bay. Mount insulated controller/shifter boards using the rear cover's generic tie slots or a measured adapter. Keep live terminals covered and wiring away from gears and leaves. No specific board hole pattern or controller package has been physically validated here.
8. Dress service loops, strain-relieve the inlet, and install the two vented rear covers with four M3×8 screws each. Their inner stops retain the original outer end covers with nominal clearance. The covers can be removed for wiring access; removing an entire row requires opening the carrier seam and moving a half sideways.

## Printing and fit gates

Every new part fits the P2S's 256 mm build envelope; the roughly 292 mm wide body is intentionally split. The carrier halves retain their outer-side-down orientation, with their rounded ribs toward the bed. Their outer sides are no longer flat: the ribs stand 0.8 mm proud, so the recessed untextured margins need suitable build-plate support. Inspect the sliced first layers and all overhangs; the STL does not contain sacrificial supports. Test support removal and cosmetic finish before printing the full pair. The runners print on their flat bases, backs on their flat outer surfaces, and drum on a flange. Inspect sliced previews for unsupported features and brim interference. No slicer runtime or filament estimate has been substituted for an actual slice.

Start from the author's mechanical settings for unchanged parts: the archived mechanical 3MF uses a 0.4 mm nozzle, PLA and 0.16 mm layers. The archived flap profile uses a 0.2 mm nozzle and 0.10 mm layers. A 0.4 mm nozzle is possible according to the author, with reduced lettering quality; the thin new dash inlays still need a successful sample. For the carrier, 0.20 mm layers, four walls and moderate infill are a starting choice, then verify the insert coupon and a half-frame. These are proposed settings, not a sliced or tested P2S profile.

Required physical gates are: one successful 38-position drum/leaf pack, repeatable Hall homing, all characters correctly registered, no flap collision at the bezel, all row and rear-stop clearances, exact insert/jack fit, harness isolation, temperature under repeated motion and tabletop stability. Pass these before treating the files as a production design.

## Rebuild and verification

Create an isolated Python environment and install `hardware/redesign/requirements.txt`, then run:

```sh
python hardware/redesign/generate.py
python hardware/redesign/validate.py
```

The download includes every input required by this generator: the original character-drum STEP and original `Flap9Blank` STL components, plus all generated parts and validation files. No upstream download is needed to regenerate once the Python dependencies are installed. `validate.py` can inspect the supplied parts without regenerating them.

To keep the download compact, the remaining original STEP files and the original mechanical `All Parts.3mf` are omitted. They are optional references, not inputs to the current generator. If you want the full original cache, run `python3 scripts/fetch_hardware.py` from the project directory with Internet access; it verifies the pinned archive SHA-256 before extraction. Continue using the revised 38-hole drum and replacement leaves after restoring that cache. The original flap 3MF is included for its color setup; neither upstream 3MF is a validated P2S profile.

The generator emits STL, STEP, registered 3MF leaves, a dimensional manifest, and [guide/panel-models.js](../panel-models.js). The validation script independently reloads saved files, checks positive watertight meshes and the print envelope, counts 38 actual hinge bores on each STEP flange, verifies the retained magnet pocket, and reads the multipart 3MF structure. [CAD checks](../hardware/redesign/evidence/cad-checks.json) also test carrier/body-envelope clearance, carrier/cover/foot/underside-strap intersections, slim-front outline and aperture clearance, intact 4 mm side walls behind all twelve ribs, retained runner contact area/mounting axes, unchanged drum geometry outside the flange bands and the exact restored leaf envelope.

The viewer uses real carrier and drum meshes. Original module meshes transform as `X = sourceZ + 37.9×column − 97.25`, `Y = sourceY + 1.4 + rowCenter`, `Z = −sourceX − 25.2652`, with row centers +42/−42 mm. The front of the original shell is Z=0; positive Z points toward the viewer. The isolated replacement leaves use their print coordinates. In those coordinates the actual rectangular-tab hinge axis is Y=1.99717957 mm, Z=0.3 mm; the leaf starts at Y=0.25 mm. Animated assembled leaves use a modeled articulation and timing, not a simulated 38-leaf gravity/contact solution.
