Electrical brief

What actually fits

A 7-inch wand is a packaging problem pretending to be a magic trick. Every subsystem below is the one that survived the envelope — not the one that looks best on a teardown thumbnail.

Brain + radio

Cortex

Seeed XIAO nRF52840 Sense

Runs the wand, talks to the board, sleeps hard between casts.

Envelope
21 × 17.5 mm
Play
11 mA
Sleep
0.005 mA
Ref
pcb

Why this part

Nordic nRF52840 is the only common module that packs BLE 5, NFC-A pins, a 6-axis IMU, a PDM mic, and LiPo charging (BQ25101) on a board that actually fits a 12 mm grip bore. ESP32-C3 is cheaper and Wi-Fi capable, but it is thirsty, has no NFC, and the antenna wants a wider keep-out than a 7-inch shaft can spare.

How it lives in the shaft

Mounted lengthwise in the grip, USB pads facing the pommel so a pogo pogo-jig can flash without opening the wand. Firmware is a Zephyr or Adafruit nRF52 build: Madgwick IMU fusion, BLE GATT peripheral, laser PWM, I2S to the amp, I2C to the Hall sensor. Deep sleep between poses; accelerometer wake on flick.

Hard constraint

3.3 V I/O, not 5 V tolerant. Antenna is on-module — do not wrap the grip in foil or solid metal sleeve or BLE range collapses inside a meter.

If you change your mind

Upgrade path: nRF5340 + LC3 BLE Audio if you later want true wireless audio in the wand. Adds cost and a second core; skip it for v1.

Tabletop remote

Pointing

LSM6DS3TR-C (on the XIAO Sense)

Turns a 7-inch stick into a 3D mouse for the Dragon Feather board.

Envelope
2.5 × 3 mm, on-module
Play
0.9 mA
Sleep
0.006 mA
Ref
pcb

Why this part

A camera on the board can see a laser dot, but it fails in sunlight, needs calibration, and cannot read flicks, twists, or pommel taps. The IMU always knows orientation. Fuse accel + gyro into a quaternion, assume the table is a known plane, and the wand becomes a ray. Hex ID = ray–plane intersect.

How it lives in the shaft

Stream a packed quaternion + button byte at 60–100 Hz over BLE (7.5–15 ms connection interval). Board software keeps a table-height and origin. Gestures: flick-forward = cast, wrist-twist = cycle school, pommel-tap (accel spike) = confirm, slow circle = area. Dead-reckon for a few hundred ms if a packet drops.

Hard constraint

IMU drift. Recalibrate on dock (magnet + Hall = known pose). Do not promise sub-hex accuracy from IMU alone past ~24 inches — pair with the laser as a visual for the player and an optional board camera for absolute lock.

If you change your mind

Add a BMM150 magnetometer later for tilt-compensated compass if the board has a known magnetic north strip.

Visible targeting

Laser

650 nm 5 mW Class II barrel module + APC driver

Paints the hex you mean. Players trust a red dot more than a UI highlight.

Envelope
6 × 6 × 16 mm in the tip bore
Play
32 mA
Sleep
0 mA
Ref
laser

Why this part

IMU pointing is invisible. A laser is the cheapest way to make the table feel like a weapon. 650 nm red reads through felt and printed maps. 5 mW is the hobby default — for a tabletop, software-limit to ~1 mW (Class 2) and a 3 second dead-man timeout.

How it lives in the shaft

PWM from a GPIO through a MOSFET, never drive the diode from a pin. Aperture is a 1.5 mm hole in the crystal base, aligned on a lathe. Firmware: laser is a momentary, not a toggle. Optional IR 850 nm dual-die if you add photodiodes under the hexes and want the board, not the player, to see the beam.

Hard constraint

IEC 60825. Do not ship a free-running 5 mW pointer at eye height over a table. Cap optical power, cap on-time, and put the aperture behind the crystal so it cannot be jammed into a face at full collimation.

If you change your mind

Kid-safe build: skip the diode, use a high-CRI white LED in the crystal and rely on IMU + board highlight. Loses the 'wand' moment.

Snap, dock, sense

Magnetic

N52 ring (OD 8 × ID 3 × 2 mm) + Si7210 Hall

Picks up ferrous tokens, docks to the board, and knows when it is home.

Envelope
Ring at tip, Hall 1.5 × 1.5 mm behind it
Play
0.4 mA
Sleep
0.05 mA
Ref
magnet

Why this part

An electromagnet or solenoid in this envelope is a fantasy. A 150 mAh cell cannot throw a useful field, and the coil wants iron you do not have room for. Passive neodymium does the physical work: snap to steel-cored tokens, stick to a charging puck, hold a hidden compartment closed. The Hall IC tells firmware the story — docked, near a token, or in free air.

How it lives in the shaft

Ring sits around the laser barrel, south-face-forward so board pucks are polarized north-up. Si7210 on I2C, 0.4 mA, trip threshold set in firmware. Board edge has a matching magnet + two pogo pins for 5 V charge. Token cores are 4 mm steel discs under the sculpt.

Hard constraint

The IMU hates strong magnets. Keep the ring at the tip, the XIAO in the grip, ~90 mm apart. Calibrate gyro bias on dock after the Hall says 'home'.

If you change your mind

If you insist on 'pull', a haptic LRA in the pommel fakes the tug when the Hall sees a token. Perception is cheaper than physics.

Identity & attune

Access

nRF52840 NFC-A + 2-turn coil around the shaft

The wand is a key. The board, tokens, and spell cards are locks.

Envelope
Coil Ø 14 mm × 12 mm, under the mid ferrule
Play
2.5 mA
Sleep
0 mA
Ref
coil

Why this part

BLE pairing is a once-per-session handshake. NFC is a tap. Player identity, 'this is my wand', attuning a new school, reading a loot card, unlocking a campaign box — all of that is a 13.56 MHz tap, not a settings menu. The nRF52840 already exposes NFC pins. Using them costs a coil of magnet wire, not another chip.

How it lives in the shaft

Coil is two turns of 30 AWG around a 3D-printed former, potted under the mid ferrule. Operate mostly as an NFC tag (the board reads the wand) so the wand is not burning current polling. Active reader mode only when the player holds a 'inspect' gesture. Tokens and hexes get NTAG213 (dirt cheap, 180 byte). Board reader is a PN5180 under the map.

Hard constraint

Ferrite and solid metal ferrules kill the field. Mid ferrule must be a split ring or a short sleeve with a 2 mm gap. Do not run the coil over the LiPo.

If you change your mind

If NFC range feels fussy, fall back to a 125 kHz EM4100 in the pommel and a reader in the dock only — identity on holster, not on tap.

Near-field sound

Voice

13 mm 8 Ω 0.5 W mylar + MAX98357A I2S amp

A whisper in the hand. The board does the thunder.

Envelope
Speaker Ø 13 × 4 mm in the grip chamber
Play
8 mA
Sleep
0.4 mA
Ref
speaker

Why this part

A true Bluetooth speaker (A2DP/LC3) in a 18 mm stick fights the BLE radio, the antenna, and the battery at once. You do not need it. The wand plays short PCM cues — whoosh, chime, crack — through a tiny driver. Big music, dragon cries, and table rumble live in the board's speaker. The MAX98357A is a 3-pin I2S Class-D that the nRF52840 can drive without a codec chip.

How it lives in the shaft

Speaker faces a ported slot under the leather wrap so it does not rattle the blank. Amp on a 10 × 10 mm daughter, VIN from the 3.7 V rail. Samples stored as IMA-ADPCM in the 2 MB onboard flash — a dozen 0.4 s cues fit in ~80 KB. BLE GATT can trigger board-side audio in the same packet as a cast, so wand and table stay in sync.

Hard constraint

Do not chase bass. This driver is a presence speaker. If you want Bluetooth headphones to follow the wand, that is a phone in the middle, not a second radio in the shaft.

If you change your mind

Piezo disc is lighter and harsher. Use it only if you drop the mylar to hit a 48 g wand.

Three-hour session

Cell

3.7 V 150 mAh LiPo + BQ25101 (on XIAO)

Quiet power. Charges on the dock like a pen in an inkwell.

Envelope
20 × 12 × 5 mm, nested in the grip
Play
0 mA
Sleep
0.015 mA
Ref
battery

Why this part

150 mAh is the largest pouch that still leaves wall thickness in an 18 mm grip. Average draw in mixed play is ~45 mA (radio + IMU, laser at 10% duty, SFX bursts). That is a little over three hours, which is a long Dragon Feather session. Overnight it sleeps at 15 µA and wakes on flick or dock.

How it lives in the shaft

Pouch sits against the XIAO, wrapped in Kapton. Charge is 5 V on two pogo pins in the pommel, magnet-aligned so you cannot reverse polarity. BQ25101 on the XIAO handles LiPo profile. A GPIO ADC divider reports voltage; firmware refuses laser if the cell is under 3.5 V so you never brown out mid-cast.

Hard constraint

No USB-C on the wand body — a port wrecks the object. Service the cell by unscrewing the pommel. Use a protection-circuit pouch (PCM). Do not glue the pack in.

If you change your mind

10440 Li-ion (AAA-sized) if you want a replaceable cell and can live with a fatter pommel. Worse energy density, better field repair.