Skip to main content

TL;DR

A flip forward module is a 116 × 60 mm split flap unit weighing about 400 g, driven by a stepper motor and an ESP8266 controller board off 12 V, drawing up to 500 mA. Its drum carries 43 flaps of 44 × 30 mm, each 0.3–0.6 mm thick. Modules are identical and chain together into rows of any length. Hardware design and documentation are CC BY-SA 4.0; the firmware is free but not open source. Full table on Specifications.

Building a module​

An FDM printer, a stepper, one controller board, one sensor board, a 4 × 2 mm magnet and about twenty M3 screws. No soldering, no flashing, no laser cutter. The motor is either a 28BYJ-48 (5 V, ~€3) or a NEMA17 17HS08-1004S at 20 mm height with lead-only exit, since taller or connectorised versions foul the drum. The controller board differs per motor type, ULN2003A against TMC2209, and can't be swapped afterwards. Parts print without supports in PLA or PETG at 0.28 mm, except the flaps.

Parts run €15–30 for a minimal module, €30–40 with a NEMA17, €80–90 with a sheet-metal case and printed flaps, excluding assembly time; assembled modules are quoted separately. First build 45–90 minutes, faster after that. The display planner prices a whole display and lists its parts. Start at Parts & Sourcing, then Parts Preparation and Module Assembly.

Flaps​

Print them in multicolor PLA at 0.15 mm layer height, or have them made from plastic sheet, polypropylene being the usual choice. Either way they finish at 0.3–0.6 mm: thicker flaps stop flexing and the mechanism degrades. The standard alphabet is 43 characters set in Oswald, A–Z, 0–9, € . ? ! - : and a blank.

Custom alphabets work because homing asks which character is visible rather than assuming a fixed set, and play.flipforward.de previews one before a print run. Keep the same alphabet on every module so any module can be swapped for any other. A drum needs at least 30 flaps, because the topmost flap draws part of its pre-tension from the ones below; 43 is standard and 52 is the tested maximum. Solid colours instead of characters turn each module into a mechanical pixel, six colours repeated five times giving sub-second changes. Detail on Flaps.

Electronics and protocol​

One ESP8266 board per module, pre-flashed. First power-up raises an open WiFi network named "flip forward"; a browser handles credentials, homing and alphabet configuration. Serial runs TX of module N to RX of module N+1, so modules are addressed by relative position: 0 is whichever module received the command, 1 is the next downstream, @ broadcasts. Commands are plain text, MODULE:COMMAND:ARGUMENT, reachable over WiFi, HTTP POST to /command or serial through the flash board. Command list on Electronics.

Scaling to a display​

Modules connect through boards that snap between adjacent PCBs, so a row has no cabling. A connection board passes signal and 12 V through. A power break cuts 12 V but keeps ground connected, since the serial chain needs one reference plane. An injector board feeds 12 V in through a screw terminal behind a TI eFuse rated 3 A.

At 500 mA per module and 3 A per group, a group holds five modules. The injector feeds both directions, so it sits at the junction after the group's first module, and the boundary to the next group is a power break; a ten-module row is two injectors, one break and six connection boards. Groups don't span rows. Signal is independent of all of it: one chain per row, entering at the first module, which is the row's only WiFi client. Splitting a long row into several shorter chains, each with its own entry point, limits what one controller failure silences. The display planner applies these rules to a given size; Connector Boards and Wiring & Power explain them.

Control​

Three clients, all speaking the same protocol. Each module serves a minimal web UI over WiFi for homing and setting a character. play.flipforward.de adds multi-row displays, images, alternative alphabets and MQTT control from anywhere, and its virtual twins behave identically to hardware, so a display can be configured before it exists. local-control is an open-source Electron app for macOS, Windows and Linux that discovers modules over mDNS/Bonjour, flashes firmware from a file or URL, reads live logs and runs guided calibration, with no internet dependency. Saved playlists exist in none of them yet. Comparison on Controlling Displays.

Installation constraints​

400 g per module, so 26 modules run to about 10 kg before the case; the mounting surface is what needs engineering, and a wall recess carries the load better than a hung cabinet. Modules stay below 38 °C under continuous use, so no ventilation slots or cooling, but leave 3–5 mm above them so warm air escapes rather than collecting in a sealed cavity. Removal is currently from behind, through the three back-case screws into the backboard; front extraction is in development. Keep a spare module.

Failures divide the way power and signal do. A power fault trips the eFuse of its group of five and goes no further. A dead controller stops relaying and silences everything downstream in its chain, though not upstream and not other chains. Mechanical faults stay in their own module. More on Planning an Installation.

Getting parts​

Models, guides and firmware are free. The shop is being set up; sample kits go out via Discord, and anything larger is quoted by mail at hello@flipforward.de, per project and net of VAT. State module count, alphabet, what you need supplied and the deadline. Remaining questions on the FAQ.