Assembly - BaconBett/Split-Flap-Display GitHub Wiki

Build the Character Drum

You can bend the flaps until they fit into the holes on the character drum.

It helps to organize the flaps before assembly.

Unorganized flaps Organized flaps

It is important that the flaps arount the magnet are the blank flaps and that the next flap is the letter A. Follow the images for guidance.

Magnet A Magnet A 2 Magnet C

Use a small dab of superglue to fix the magnet in position. You can use something flat to ensure the magnet is correctly seated

Complete drum top down

IMPORTANT NOTE FOR INSTALLING MAGNETS

The hall effect sensors are unipolar, meaning they will only detect the magnet if it is in the correct orientation. You will need to build a module/test for yourself on a breadboard which magnet direction is correct.

Wire the Modules

1 . Remove LEDS from ULN2003 Motor Driver (Optional But Recommended)

  • Removing the LEDS can easily be done with pliers, no need to even use the soldering iron.

  • This stops any light from seeping between the enclosure gaps and also allows us to route the motor cable without risk of it being snagged by the led pins.

Remove LEDs

2 . Bend Pins

  • Packaging requires that the black plastic base piece for the ULN2003 motor driver be removed, and then the pins bent so that the PCF8575 is at the correct angle inside the enclosure.

  • The two power pins for the ULN2003 should also be bent so that the protoboard fits correctly as shown in the photos.

Bend Pins

3 . Create Protoyping Board

  • Snap yourself a prototyping board with an area of 4x3 holes, as in the photos.
  • This allows us to easily wire multiple connections in parallel to the board, to supply 5v to the motor driver, PCF8575 IO expander and ESP32 (master module only).

  • The protoboard is also where the power wires of the 4 pin JST connectors are wired into.

  • Cut the connector wires so that there is approx 60-70mm of wire left after the connector, this will be the correct length for the enclosure.

  • You need to run two wires from the prototyping board to the PCF8575, for 5V power, before soldering the PCF8575 to the ULN2003

  • It is recommended to solder the protoyping board up before wiring to the ULN2003. Follow the photos is you are stuck.

3.1 (Master Module Only) - Solder Wires for ESP32 and Power Connector

  • The ESP32 and power connector have two wires each that need to be connected to the protoboard, this is only needed for the master module.
  • The ESP32 also has two wires (SDA and SCL) which need to go to the PCF8575

4 . Solder I2C Communication Wires

  • Solder the white wires to SCL, and the yellow wires to SDA. You will need to strip and twist the wires together as there is only one hole for these on the PCF8575.

5 . Set Module I2C Address

  • Solder the pins on the back of the PCF8575 (A0,A1,A2) to set the address of the module.

6 . Solder PCF8575 to ULN2003

  • Directly solder the bent pins of the ULN2003 to pins PO1 to PO4 on the PCF8575, this is the neatest method I could come up with for wiring.

7 . Solder the Prototyping Board to the ULN2003

  • Make sure the 5V side of the board goes to the 5v pin on the ULN2003, if this is wrong, you will probably damage the ULN2003 (I know because I did it!)
  • Do not use the photos as reference because this is the one that broke. :D

8 . Solder the Hall Effect Sensor

  • The sensor needs 5V, Gnd and a signal pin to run to P17 on the PCF8575.

9 . Attach Motor to Enclosure

  • Insert the motor and route the cable, the ears of the motor need to be bent so that they don't hit the character drum.

  • 10 . Slide the Electronics Into the Enclosure

  • At this point, slide the completed electronics board into the module enclosure.

  • Be careful of the hall effect sensor wires, these will need to be tucked under the threaded bar hole.

11 . Assemble the Module

  • Place the motor gear plate onto the motor, route the cable nicely and place the wire retainer in place, with the hall effect sensor also in its little slot.
  • The M3x30mm screws can now be inserted. Use captive nuts on the gear plate to tighten the assembly together.
  • Add the gears, with a little grease if assembling for final, followed by the assembled character drum.

ToDO:

Organize wiring images:

Upload the Code

For the firmware you have two options:

  1. Use my original firmware, which i have tested working for ESP32-S3 on Arduino IDE
  2. Use firmware written by Jordan Hoff (@jhoff on Makerworld). He has done some amazing work with the firmware, adding support for more boards and adding PlatformIO support. You are already in his repo.

I would recommend trying Jordan's firmware first because it will be more up to date, with more features, but here are the instructions for mine anyway:

Instructions for my original firmware ### 1. Download Code and Setup
  • Head to the project github, download the src repo and open with Arduino IDE 2
  • You will need to install the following packages and plugins:
    • ESPAsyncWebServer & AsyncTCP - Installed Through IDE
    • LittleFS Plugin (For Uploading Files) Find Here

2. Upload Web Server Files to ESP32 Flash

  • Press Cntr + Shift + P in the IDE, and select "Upload LittleFS to ...."
  • This will upload the HTML, CSS and JS for the web server onto the flash memory of the esp32

3. Configure and Upload Code

  • Enter the file "SplitFlapDisplay.cpp"
  • Change the numModules variable to reflect how many characters you have in your display
  • Ensure that the moduleAddresses variable correctly shows your module address, in order
  • Compile and upload the code to the ESP32

4. Wifi Setup

Since the ESP32 does not initially know your wifi credentials, it will host it's own open WiFi network "Split Flap Display" which you can connect to to setup the device.

  1. Connect to the network "Split Flap Display"
  2. Open your browser and visit "splitflap.local" (This should bring you to the config page)
  3. Go to settings, and enter the correct wifi credentials
Config Page
  1. The ESP32 will then attempt to connect:
    • If fail: it will host it's own network again
    • If successful: the esp32 will connect to your network and stop hosting it's own access point

After setup, the esp32 will remember the last used wifi credentials, so it should connect automatically.

Official instructions for the firmware on this repo:

Setup Instructions

  1. Install dependencies
  2. Download or clone this git repository.
  3. Open a terminal and cd to the project root
  4. Install required version of npm for the project - nvm install
  5. Install build dependencies - npm install
  6. Connect the ESP32 to your computer using a USB cable.
  7. Build everything and upload to the board - npm run build
  • Automatically formats all source code ( npm run format - if needed )
  • Compiles and minifies all frontend assets ( npm run assets )
  • Downloads all required arduino / esp32 libraries
  • Compiles and uploads the esp32 firmware ( npm run pio:firmware or pio run -t upload -e <environment> )
  • Compiles and uploads the littlefs filesystem ( npm run pio:filesystem or pio run -t uploadfs -e <environment> )
  1. Enjoy!

Using OTA to update the firmware

On the settings page set an OTA password to enable OTA updatable firmware. Use this same password for your auth flag in platformio.ini, and then use a device environment with *_ota appended (ie esp32_s3_ota) to upload a new firmware and/or filesystem

Final Assembly

At this point you should have a fully working, but floppy, split flap display.

Final Assembly
  • Cut some M3 threaded rod. The formula for rod length is (Number of Modules*37.9) + 11mm

  • Use the sandwich plates to squash the modules together. Do not tighten the lower front screw too tight or it will jam the system.

  • Use a soldering iron to place heat-in inserts into the sandwich plates and mount the endplates.
  • Push the USB-C connector through the endplate hole so it is still visible.

Enjoy

Showcase your Split Flap Display! Enjoy the Envy

⚠️ **GitHub.com Fallback** ⚠️