Audio / FreeCAD / measurement / embedded control

KingRO4Y Active Speakers

Three-way active speakers based on the SEAS KingRO4Y MkIII design. Plywood cabinets, routed baffles, Hypex FA503 plate amps.

CAD, woodworking, DSP presets, USB HID reverse engineering, BLE control work, driver repairs, and one very VERY loud mistake I would rather not repeat.

Two unfinished plywood active speakers on a workshop bench during microphone measurement.
Built enough to measure, not yet complete
PROJECT SPEC SEAS / HYPEX / FREECAD
Design
SEAS KingRO4Y MkIII active loudspeaker, built as a pair.
Drivers
SEAS L26RO4Y woofer and C18EN002 coaxial mid/tweeter.
Amplification
Hypex Fusion FA503 plate amps, one per speaker, with DSP presets on the amps.
Cabinet work
FreeCAD model, routed plywood baffles, rear plate cut-outs and a gloss clear finish.
Control work
ESP32-S3 USB-OTG dongles talking HID to the FA503 amps; BLE volume, mute, input and preset messages from a knob prototype.
Measurement
Farina log sweep, calibrated microphone, Scarlett 2i2 input and PC SPDIF output.

Status

Speakers built and playing. USB control is working on the bench. The physical knob is still more notes and prototype code than finished object.

FreeCAD

Walking through the model

The whole cabinet as a parametric model: the assembly, the spreadsheet the dimensions come from, section views through the enclosure, and the baffle drawing the router work was cut from. Under two minutes, with the commentary.

Cabinet build

Routed baffles

Front baffle from the drawing into plywood. Two big circles, one coaxial driver, one woofer, and not much room for casual error.

Cabinet

Drawing first, sawdust after

FreeCAD model for the enclosure and baffles, then drawings for the parts that actually needed cutting. The front panel is the awkward one: driver rebates, bevels and screw positions all need to agree before the router starts.

Plate amp

Rear cut-out

FA503 amp plate in the back of each cabinet. Audio, mains, USB and cooling all meet in one expensive rectangle, so the rear baffle got its own drawing.

Finish

Clear coat

Plywood left visible, with a gloss finish that shows every sanding decision. Looks good when the light catches it. Also shows where I got impatient.

Finish

Gloss coat

Assembly

Driver fitting

First listening

Bench test

Routing

Rebate detail

Rear panel

Plate amp check

Rear baffle

Cutting the opening

Finish

Sanding back

Physical object

Almost a normal speaker

The funny part of active speakers is how ordinary they look once the drivers are in. Most of the project is now hidden in the rear plate, DSP files, wiring and measurement notes.

Plate amp

Fitting the FA503

Driver

Woofer fitting

Wiring

Amp on the bench

Driver

Coaxial unit

Measurement rig

Sweeps before opinions

Log sweep from the PC, digital audio into the speaker, calibrated mic back through the Scarlett. The first job was not tuning for taste. It was finding out whether both speakers were alive, wired the same way, and safe after the mistake.

Frequency response plot showing in-room and gated measurements of the active speaker.
In-room and gated response from the workshop measurement script

Fault finding

One speaker was not healthy

Measurement showed the left speaker failing above about 2.5 kHz. Later repair work found a tweeter polarity problem that made a deep cancellation notch around 1.6 kHz.

Loud incident

Startup volume is not padding

While reverse-engineering the Hypex USB packet I zero-filled bytes that turned out to include persistent startup volume. The amp came back at 0 dB. Nasty, educational, and fixed with strict read-modify-write plus a startup-volume tripwire.

Afterwards

Damage check

Re-ran the sweep against the saved baseline. The right speaker survived. The notes are now more paranoid about packet tails, pacing and volume slew limits.

USB protocol

Hypex HID packets

FA503 control is USB HID with fixed 64-byte packets. Volume is little-endian dB times 100, presets and input source are fields in the same state packet, and some opcodes are best left alone unless reflashing the amp sounds like a good evening.

Knob

A real volume control

The plan is deliberately boring to use: turn knob, both speakers follow. The prototype path is BLE from knob to ESP32-S3 dongles, then USB from each dongle into its own Hypex amp.

Bench status

It talks

The ESP32-S3 can read amp status and write volume changes. The useful version now preserves unknown bytes, spaces out requests and refuses silly volume jumps.