← SHEET 02 · ASSEMBLIES HW-004
Drop-Leaf Wall Desk, Over-Centre Lock
| PART NO | HW-004 |
|---|---|
| MATL / SYSTEM | STEEL BRACKET · BIRCH PLY LEAF |
| TOOLS | Hand calc · Node glTF export |
The −1 office is the tightest of the three levels I’m carving out of this bedroom, and a fixed desk would eat the one thing that level doesn’t have to spare: floor area. So the desk has to vanish — fold flat to the wall when I’m not at it, same discipline as the folding stair (HW-002) that actually gets me down there. This one is still a design study, not a build: a wall-mounted drop-leaf desktop held up by a two-link over-centre toggle bracket that locks itself past dead-centre against a hard stop, with no latch to remember.
OVERVIEW & MOTIVATION
Requirement: a full-size working surface (1100 × 550 mm — enough for a laptop and a monitor) that folds flat against the wall to near-zero depth when the office isn’t in use, and that supports itself when deployed without a prop the user has to remember to engage. A simple flip-down leaf with a fixed strut works, but a strut alone only holds position by friction or by staying in compression — knock it the wrong way and it folds. The real engineering content here is the bracket, not the leaf: a toggle linkage that is geometrically locked once deployed, the same principle as a knee locking straight, an ironing-board leg, or a landing-gear down-lock.
MECHANISM & KINEMATICS
The bracket is two pin-jointed links between a fixed wall anchor Q (height
b above the leaf hinge H) and a pivot P on the leaf underside
(distance a out from the hinge). As the leaf swings from folded (flush to
the wall, γ = 0°) to deployed (horizontal, γ = 90°), P sweeps an arc of
radius a about the hinge, and the straight-line distance Q→P grows
monotonically with γ — from a slack 60 mm when folded to 496.8 mm at full
deployment. The two links (equal length Lk, pin-jointed at a knuckle K)
span that gap; because their combined reach (2·Lk) is fixed, the knuckle
bows off the Q–P line by an angle that shrinks as the leaf deploys,
tightening toward straight (the “dead-centre” line) as γ → 90°.
At full deployment the links are locked to within β = 5° of dead-centre,
arrested there by a hard stop on the knuckle (plus a small secondary detent
as a backup catch). That residual 5° is a deliberate design choice, not a
by-product: it is what keeps the link force finite (true dead-centre, β = 0,
is a mathematical singularity) while still giving strong force amplification
— see the table below. Because the stop sits on the far side of the line
from where an increasing leaf load would push the knuckle, more load presses
the knuckle harder into the stop, never back toward straight — that
direction-of-push, not friction, is what makes the lock self-sustaining.
| PARAMETER | VALUE | UNIT |
|---|---|---|
| A (hinge → bracket pickup on leaf) | 380 | mm |
| B (wall anchor height above hinge) | 320 | mm |
S (Q–P chord, deployed) — solved: √(A²+B²) | 496.8 | mm |
| β (locked over-travel from dead-centre) | 5 | deg |
Lk (each link length) — solved: S / (2·cos β) | 249.3 | mm |
S (Q–P chord, folded) — solved: √((A−B)²) | 60.0 | mm |
LOAD PATH & LOCK SIZING
The leaf is a lever about its wall hinge. Two loads act on it: the panel’s own weight, and a working load (laptop + monitor + resting forearms) applied conservatively at the front edge, worst case. Two identical bracket assemblies (one near each end of the 1100 mm width) share the reaction equally.
Design inputs:
| PARAMETER | VALUE | UNIT |
|---|---|---|
| Desktop, W × D | 1100 × 550 | mm |
| Panel thickness | 25 | mm |
| Panel density (birch ply) | 680 | kg/m³ |
Panel mass — solved: W·D·t·ρ | 10.3 | kg |
| Working load (laptop + monitor + forearms, assumed) | 20 | kg |
| g | 9.81 | m/s² |
Moment and bracket force:
Panel weight acts at its centroid (D/2 from the hinge); the working load is
placed at the front edge (D) as the worst case.
M_hinge = m_panel · g · (D/2) + m_load · g · D
= 10.3 × 9.81 × 0.275 + 20 × 9.81 × 0.550
= 27.8 + 107.9 = 135.7 N·m
| PARAMETER | VALUE | UNIT |
|---|---|---|
| M_hinge (total, about the hinge) | 135.7 | N·m |
| M per bracket (2 brackets share it) | 67.8 | N·m |
F_b — vertical reaction at P, per bracket: M/a | 178.5 | N |
F_chord — along the Q–P line, per bracket: F_b · S/b | 277.1 | N |
F_link — axial force per link, per bracket: F_chord / cos β | 278.2 | N |
F_perp — transverse force the stop reacts: 2·F_link·sin β | 48.5 | N |
Force amplification near dead-centre. The toggle’s mechanical advantage —
axial link force per unit of transverse disturbance at the knuckle — is
MA = 1 / (2 sin β). It is mild for the load-carrying direction (links
only 0.4% longer than the straight-line force at β = 5°) but the stability
of the lock is what climbs sharply as β shrinks:
| β | MA = 1/(2 sin β) |
|---|---|
| 8° | 3.6 |
| 5° | 5.7 |
| 3° | 9.6 |
At 278 N per link, a 5×5 mm steel flat-bar section (area 125 mm², allowable stress ≈150 MPa → ≈18.7 kN capacity) is nowhere near the limit — the bracket steel is not what governs this design. Honest failure mode: an upward blow on the leaf underside reverses the moment and can, in principle, drive the knuckle back toward dead-centre and past it, defeating the lock — this is why the stop is a positive mechanical boss plus a separate spring detent, not the linkage geometry alone. The real limiting factor is almost certainly the wall fixings: each anchor reacts roughly 278 N along the link direction into the wall, so both anchor plates need to land on stud or ply-backed substrate, not drywall alone — that check, not the bracket arithmetic, is the one to redo before cutting steel.
PARAMETRIC MODEL
build-glb.mjs rebuilds the deployed assembly from the same parameter block
as the calc above: A_PICKUP, B_ANCHOR, BETA_DEG at the top solve
S_CHORD = √(A²+B²) and LK = S_CHORD / (2·cos β), then the knuckle position
is solved as the Q–P midpoint offset by LK·sin β along the perpendicular to
the chord — the same geometry the write-up uses, so the model and the hand
calc can’t drift apart. Every bracket link is an oriented box computed with
atan2 from its two endpoints (no eyeballed rotations); the script asserts
both solved link lengths land within 0.5 mm of LK before writing anything,
as a self-check on the trig. Two mirrored bracket assemblies are placed by
insetting from each panel edge. The model exports as 22 boxes (264
triangles) via the shared writeGLB/validateGLB helper and lands at
/models/drop-leaf-desk.glb.
dropleafdesk.js drives the same trig live: as the leaf angle sweeps
0–90°, the Q–P chord length is recomputed each frame by the law of cosines,
the bow angle off dead-centre is solved from it, and the knuckle is placed
accordingly — so the linkage bows visibly wide when folded and tightens
toward the dashed dead-centre line as the leaf deploys, changing to
var(--m-active) and flagging LOCK once it settles onto the stop.
STATUS & NEXT STEPS
This is a calculated and modelled design study — not built. The kinematics, the deployed-pose GLB, and the load path all check out on paper and are internally consistent (both links solve to the same length, the force numbers close from moment to link load). Next step: prototype the bracket in steel flat bar, test the stop and detent physically for repeat engagement, and load-test to the stated 20 kg working load (plus a margin) before trusting it under a real monitor.
USE CASES & APPLICATIONS
Fold-away desks and shelves for small apartments and workshop benches that need to give the floor back; drop-down worksurfaces in campers and van conversions where every centimetre of depth costs something. More generally, the over-centre principle here — two links geometrically locked past straight, held by a stop rather than friction — is the same idea behind toggle clamps, landing-gear down-locks, and quick-release fasteners: any mechanism that has to hold hard when loaded and release cleanly on purpose.
FILES
hw-drop-leaf-desk.md— this page.dropleafdesk.js— live animated side-elevation drawing (src/scripts/mechs/).build-glb.mjs— parametric box-model exporter (sources/mechanisms/drop-leaf-desk/); runnode build-glb.mjsfrom that folder to regenerate the GLB.drop-leaf-desk.glb— deployed-pose 3D model (public/models/).