Twelve steps from printed parts to a working TV. Drag the model to look around; each step slides the new parts into place and highlights them. The parts list, wiring and every clearance are further down.
Tick things off as you gather them. The ticks are saved in this browser only.
Everything plugs together with Dupont jumper wires: the ESP32-C3 lies upside down so its pins point up, and the KY-040 and the ULN2003 keep the pins they came with. The SuperMini has one 5V pin and one GND pin, but two things need 5V and three need ground, so those two get a Y-lead each. The KY-040's + goes to 3V3, never 5V: its pull-ups would put 5 V on the C3's pins.
Y-leads: make them from jumpers (cut, solder, heat-shrink) or buy Dupont splitter leads. The 5V one has a female end on the C3, a female end for the driver's + and a male end for the servo plug. The GND one has a female end on the C3, female ends for the driver's − and the KY-040, and a male end for the servo plug. The servo plug's order doesn't match three pins in a row on the C3, so its signal goes over one male–female jumper. Nothing is soldered between the boards, so the chassis comes out by pulling plugs.
Measured on the 3D model of the assembled TV. Parts that aren't meant to touch are all at least 1.2 mm apart. Parts that slide, turn or press together use the fits in the second table.
The motor, board and servo outlines are typical sizes for the 28BYJ-48, ULN2003 board, SG90 and ESP32-C3 SuperMini, not measured from your parts (the SuperMini's pin rows are its listed 15.24 mm apart; the ULN2003's 6-pin column is a guess). The KY-040 is yours, as measured for handheld v2, and the knob uses handheld v2's bore. The ESP32 cradle, the ULN2003 rails, the KY-040 posts, the knob and the hub were checked on fit prints.
In firmware/splitflap/splitflap.ino. Needs the ESP32Servo library and ESP32 core 3.x.