3D Printed Electromechanical 7-Segment Display

by tin-foil-hat in Circuits > Arduino

23149 Views, 214 Favorites, 0 Comments

3D Printed Electromechanical 7-Segment Display

The BEST Mechanical Display You've EVER Seen!!!
20250106_142503123123123123123123.jpg
1234abcdcompressed-ezgif.com-resize.gif
20250101_110017.jpg
FWK2YZEM4PM993P.jpg
20241218_090805.jpg
20241218_091151 - frame at 0m12s.jpg
20241218_152800.jpg
20241218_091151 - frame at 0m8s.jpg
20241218_090932.jpg

I have always been enchanted by the old split-flap designs that used to fill train stations. With the modern digital era, we have lost some of the beauty of moving mechanical displays. The mechanical and tactile approach to displaying numbers and words is an interesting concept, and the clicking noise it makes is like nothing else. However, there are already plenty of people on the internet who have re-created these displays, and for that reason, I decided, why not re-invent a new mashup of mechanical displays?

I am an Australian self-taught young engineer who graduated high school this year and is enrolled in mechatronic engineering Uni next year. For this project, I decided to test all my skills, from custom PCBs to complex Fusion360 design, rendering and animation, film making, editing, programming in multiple languages, fundamental physics and computer networking.

Despite the complexities of this project, most people with a basic level of electronic understanding should be able to follow the steps laid out in the remainder of this Instructable. I have made this project as beginner-friendly as possible and coded easy-to-use graphical interfaces so that anyone should be able to attempt this. However, if you want to build this project and fully understand how it works, then you need a much more advanced understanding of electronics, circuits and programming.

Without further ado, let's begin!

Supplies

20241021_174228 cropped.jpg
20240919_201805.jpg
20240919_200545.jpg

Most of the links below are to my preferred local electronics store, I have included them so that you can find additional information and dimensions about the parts I used so that you can find alternatives near you.

Tools:

  1. 3D printer
  2. Soldering iron + solder
  3. Flush cutters/Wire cutters
  4. Wire strippers
  5. Screwdriver (That matches your chosen M4 bolts & screws)


Materials:

  1. PLA filament (Two colours)
  2. Primary Colour: 104g per digit
  3. Secondary Colour: 3g per digit
  4. Other: 82g for the electronics case and 7g for 14 bolt washers and covers (per digit). You may choose to build a spooler (shown later) to help with winding coils which will use a small amount more filament - this is a tool and will not be a part of the final assembly
  5. PETG filament (One colour) - 4g per digit (This is used for a PCB clip, you can probably get away with using PLA if you don't have any PETG)
  6. Four Short M3 Screws (The exact length isn't important, these can be salvaged and are used for the electronics box)
  7. 5x2mm N50 Rare earth magnets (You need 7 per digit) - Example pack of 50 (The example pack says 5x3mm but they turned out to be 5x2mm... make sure you measure whatever magnets you buy in person if possible)
  8. M4 40mm Zink Plated Bolts (You need 14 per digit, I couldn't buy 40mm so I bought 80mm bolts and cut them in half & welded the nut on one end - this is shown later)
  9. Masking tape/Electrical tape to protect the electromagnets we wind
  10. 0.1mm Enamelled copper wire (I salvaged mine as I didn't initially know this project was going to work, but I would highly recommend buying some) - Make sure you can solder this wire
  11. Superglue


Circuitry Components (Main controller):

  1. Link: Up to 8x 12v relays (You need one per digit)
  2. Link: Up to 8x 1N4004 diodes (You need one per relay)
  3. Link: One LD1117V33 & Matching heatsink + bolt + thermal paste
  4. Link: One 5mm coloured LED (Optional)
  5. Link: One 220Ohm resistor (Only needed if you include the LED above)
  6. Link: 3x ULN2803A Darlington Transistor Arrays (I highly recommend buying a pack of assorted ICs on Amazon as they are much cheaper)
  7. Link: 3x 18-pin IC Holder
  8. Link: 3x 74HC595 Shift Regesters
  9. Link: 3x 16-pin IC Holder
  10. Link: One NodeMCU ESP8266 (Note - the link is a pack of 2 but you only need 1)
  11. Link: One 100uF 63V Electrolytic Capacitor
  12. Link: One 10uF 63V Electrolytic Capacitor
  13. Link: 7x 0.1uF 50V Ceramic Capacitor
  14. Link: 2x 10K Resistors
  15. Link: One 3-way screw terminal
  16. Link: Straight Male pins (3x 8-way)
  17. Link: Female pins (2x 15-way)


Circuitry Components (Digit breakout board + 2x Joiner PCBs) - You need all this for every digit you make (Max 8 digits - unless you design an expansion board):

  1. Thin cable (Less than 1m per digit, used to connect electromagnetics internally)
  2. Link: 14x 1N5408 Diodes
  3. Link: 14x 1N4004 Diodes
  4. Link: Straight Male pins (2x 8-way for each joiner PCB - so 32 in total for both of them)
  5. Link: 90 Deg. Male pins (2x 2-way for the common anode connector and make-shift plug (I will explain this later))
  6. Link: ~21AWG wire for connecting the common anode back to the main controller (length is determined by how far away the digit is from the main electronics box)
  7. Link: Female pins (1x 2-way)
  8. Link: 1x 10K Resistor
  9. 15x Dupont female crimps (or similar to match housings)
  10. Dupont connector housings (or similar) - (1x1 for the common anode & 2x7 for the cathodes - I couldn't find a 2x7 so used a 2x6 and a 2x4 which I had on hand)


Additional Header Pins (This will change depending on what 'type' of digit it is - this is explained later)

  1. Standalone digit (Wires connected to both in & out)
  2. Straight Male Pins: 4x 8-way
  3. End digit (A digit that is next to one other, thus has wires connecting to either in or out)
  4. Straight Male Pins: 2x 8-way
  5. Female Pins: 2x 8-way (When you cut female pins you lose 1x pin, so you need a row of at least 17 pins)
  6. Middle digit (A digit that has another digit on both sides, thus has no wires connecting to it)
  7. Female Pins: 4x 8-way (When you cut female pins you lose 1x pin, so you need a row of at least 35 pins)


Other Electronics:

  1. 12v power supply (Minimum 1A)
  2. LM2596 Buck converter
  3. Link: ~21AWG wire for connecting the fuse, switch, buck converter etc. (~1m)
  4. Link: Fuse holder + Fuse (I am using a 2A fuse) - Doesn't have to be chassis mount as it is hidden inside the controller
  5. Link: One 2-way 2.54mm housing (for the fuse)
  6. Link: One 2-way 2.54mm 90 Deg. pin header (for the fuse)
  7. Link: SPST Switch
  8. Link: 8-way 2.54mm Crimp Housing (4x for the first digit, 1x for the relay connection, and if you run cables between digits (for example if you want a gap between them) you need 4x per gap)
  9. Link: 2.54mm Crimps (2x for the fuse, 32x for the first digit, 1x per digit for the relay connector, and if you run cables between digits you need 32x per gap)
  10. Link: 10 Wire IDC Cable (We only need 8 wires, so you can simply pull off 2 wires) - (This is to join the first digit to the main controller and any two digits that you choose to space apart (otherwise you can use the included PCBs to connect digits to each other), the length you need will differ depending on how far apart you want to space things)
  11. Heat shrink for protecting solder joins... or electrical tape if you are a caveman/cavewoman :)

Plan Out Your Displays

1734316328961-9b54d3f8-41f9-4c3c-bdc8-353edebf3ec6_1.jpg
1734316328961-9b54d3f8-41f9-4c3c-bdc8-353edebf3ec6_2 inked.jpg
1734316328961-9b54d3f8-41f9-4c3c-bdc8-353edebf3ec6_3 inked.jpg

Before you rush into soldering and printing parts, you need to plan out your display(s). This will determine the lengths of cables and 'types' of digits you need to make. As you can see in the images above, there are 3 types of digits:

  1. Standalone/Solo digit (Wires connected to both in & out) - Not shown
  2. Left & Right end digits (A digit that is next to one other, thus has wires connecting to either in or out)
  3. Middle digit (A digit that has another digit on both sides, thus has no wires connecting to it)

The type of digit only changes the type of case you print, and the additional header pins needed. Digits that are next to each other are connected with a joiner PCB which I will touch on shortly, digits that are separated by a gap need to be connected with cables, and the first digit that connects back to the main controller needs to be connected with a cable.


PLEASE READ IF YOU ARE BUILDING A CLOCK

After designing these digits I decided to add a clock mode, which also meant adding a colon. This colon makes connecting the digits adjacent to it more difficult (as they are spaced further apart so a small joining PCB cannot bridge the gap). There are a few options here, but assuming that you have digits [4][3][Colon][2][1], the best option is to make digits 3 and 2 middle digits (like they normally would be) so that you can use the 3D printed plugs to connect the colon to both of them. You will need to make a cable to connect them to each other and this cable will need a DuPont connector (not 2.54mm crimp housing) as the middle digit has a narrower slot on the back. If you want the cables to sit flush, you will need to solder male header on the back of the digit-joining PCB on the side that is adjacent to the colon (as oppose to the normal female headers). Suppose you do use female headers like normal. In that case, you will have to make a male DuPont connecting cable, and this will stick out the back more than usual (In this case you could try to make your own connector that joins at 90deg using 90deg male headers or use prototyping perf-board to solder your own joining PCB).

How Do the Digits Work?

Screenshot 2024-12-16 094804.png
page0.png

For those who are interested, I thought I'd break down how these digits work;

Each digit has a main centre panel with 14 electromagnets screwed into it. An electromagnet (as the name suggests) is a magnet that can be electrically controlled. Since any current-carrying conductor (in this case, the enamelled copper wire) generates a magnetic field, when we wind these around a soft iron core (in this case, the M4 bolts) and apply a current, the magnetic fields of each wire will concentrate and be directed in a uniform direction, creating a noticeable magnetic effect.

Each flap has a permanent magnet pressed into it, and these are attracted to the iron cores of the electromagnets even when no power is applied, meaning the overall power consumption is relatively low after a number/word has been displayed. When current flows in the correct direction through an electromagnet, it will generate an opposing magnetic pole (given two like poles; north-north or south-south will repel each other), and thus the magnet in the flap (and hence the flap itself) to be repelled from the electromagnet, and then the flap flips over.

This means that a microcontroller can determine and control which flaps need to be flipped to display a letter or number. However, since the electromagnets run on 12V at 500mA, a microcontroller such as the ESP8266 is unable to directly power the electromagnets. This is where we use the Darlington transistor arrays, which is simply an IC (integrated circuit) chip that contains 8 smaller transistors (which act like electronic switches in this case). This means that by using a lower voltage (of 3.3V from the ESP microcontroller) we can open/close (turn on or off) the 12V circuits that control the electromagnets.

However, that means for every digit we would need 14 digital IO (in-out) pins on our microcontroller! This is where multiplexing comes into play, which in simpler terms, is like building a grid. If you had a grid of 5x5 you have 25 possible "locations" in that grid despite only using 5+5 (10) pins! This is very similar to how we multiplex these digits. By joining all the anodes (positive wires) of the electromagnets in each digit, and then joining the corresponding 14 cathodes (negative wires) across digits, we effectively get a 14xN grid (where N is the number of digits you have). That way, we only need 1 more pin per digit added! It gets a bit confusing as we have 14 electromagnets, one that turns the flap "coloured" and one that turns it "black", rather than 7 where if it is "on" the flap is coloured, and "off" the flap is black. So if we (for example) wanted to turn the top flap on the first digit black we would power the (1, 1) "cell" in the "grid".

Despite only needing one extra digital IO pin per digit added, we still need to use at least 14 for all the cathodes. This means we use a shift register which for this project, just provides you with more digital IO pins. Since you can chain shift registers together, we can use 4 digital pins of our microcontroller and easily control 8 digits! Finally, we need to be able to open/close the circuit to the positive common anode of each digit. Unfortunately, the Darlington transistor arrays used in this project can only sink a pin to ground (aka negative) meaning that without additional components we can only pull pins low (aka to ground). This is fine for the 14 cathodes, but we need to use a relay (another type of electrical switch - but with moving parts) for each common anode. Thus the transistor can turn on or off the relay, which uses a mini internal electromagnet (yes... more electromagnets) to physically open or close a circuit.

Then with about 10,000+ lines of code, we can display some cool numbers and letters... wirelessly!!!

Print the Parts (No Multicolour Needed)

20241021_174236.jpg
Screenshot 2024-12-18 072852.png
20241021_164942.jpg
20241018_144407.jpg
20241018_161514.jpg
20241019_213246.jpg
20241021_174250.jpg

The first step is to print all the parts. Everything is printed in PLA except the PCB Clips which should ideally be printed in PETG. Make sure you test print a few parts to ensure they fit together otherwise, you will have a lot of post-processing to do (trust me... I made the mistake). You will also need to calibrate your 3D printer tolerances as some of the parts need them quite tight.

I would recommend choosing two colours that stand out from each other, in my case I chose black and white, but you could do black and green, purple and yellow, etc. The coloured flaps are really easy to swap out, meaning you can change your mind later on. For the remainder of this Instructable I will refer to the primary colour as "black" and the secondary colour as "white" as those are the colours that correspond to my digits.

I recommend printing both a white & black flap section to ensure the magnets fit and both sit flush with each other. I would also recommend printing the centre panel and inserting a flap by simply pushing it into place, it should flop around freely with very little resistance. Similarly, try screwing in one of the M4 bolts into a hole in the back of the centre panel, it should be tight, but easy enough to screw in by hand. Finally, test print a bolt cover and washer and test that they both slide snugly over an M4 bolt. If all of these parts fit nicely, then you should be ok to print the remaining parts.

Always test build your first digit before jumping into making lots to avoid silly mistakes and print failures due to incorrect tolerances.

You can find all the print files for free on Makerworld. If you use Orca slicer (or Bamboo slicer) I would highly recommend using the .3mf file as I have laid out all the parts on build plates for you and manually added support where needed. The white and black parts print separately so that people without multicolour printers can still build this project. More details about print settings can be found on Makerworld.

Order the PCBs

20240925_155214.jpg
0x0.png
pcbway.png

For this project, we also need two custom PCBs, one acts as a "digit breakout" board whilst the other is the "main controller" board. Every digit will need its own breakout board and you will only need one controller board overall. After looking around online I stumbled across PCBWay who manufacture affordable PCBs. Full disclosure, they sent me the PCBs free of charge, however, they are not paying me to promote their products. I was however pleasantly surprised at their quality of service and final product. It was comforting to know a qualified technician did a final check over the PCB given this was only my second ever custom PCB and I didn't want any glaring rookie mistakes. They reached out to clarify anything they were uncertain about rather than simply guessing and proceeding anyway, which I appreciated given my lack of conventional PCB design. The final PCBs turned up within a week, which is outstanding given shipping to Australia from overseas often takes upwards of 2-3 weeks. The final PCB quality was also amazing and they worked with no issues straight out of the box. They were also shipped in vacuum-packed bubble wrap which was comforting given the often rough handling of packages. Overall I was thoroughly impressed and I highly recommend their PCB-making service. Once again, thank you PCBWay for sending these to me free of charge.

You can find the Gerber files needed to upload to PCBWay on my GitHub page. If you do not know how to use GitHub, please refer to Step 17. You will only need 1 main controller board (although the minimum order quantity is 5) and depending on how many digits you plan on making you will need anywhere from 1 to 8 digit breakout boards. At the time, ordering 5 or 10 boards from PCBWay cost the same amount, so I opted to order 10 and my plan is to eventually build 6 digits.

Cut the Bolts (Skip If You Already Have 40mm M4 Bolts)

20241024_144055.jpg
20241024_144500.jpg
20241024_135055.jpg
20241024_140336.jpg
20241024_141754.jpg
20241024_141203.jpg
20241024_144538.jpg

As mentioned in the Supplies step, I only had access to 80mm M4 bolts. If this is also the case for you, I found welding an M4 nut to one end and then using an angle grinder to cut the bolt in half worked well to make two 40mm M4 bolts. We don't need any M4 nuts so welding them to the bolt is no issue. Using a grinding wheel, belt sander or file to round over the cut ends will help you when installing these bolts at a later step.

Build a Spooler (Optional)

20241027_105234.jpg
20241027_112231.jpg
20241027_114431.jpg
20241027_105239.jpg
20241027_112316.jpg
20241027_112328.jpg
20241027_112740.jpg
20241027_112803.jpg
20241027_112814.jpg
2878002d49e300e85c7a0f43d96333ed7e38fee0_2_1024x644.png
l293d_11-3.jpg

This is an optional step for those who plan to make a few digits or want to efficiently and accurately wind the electromagnetic coils. The spooler files are available on the Makerworld page. If you have access to a fast yet strong stepper motor, such as a NEMA 17, I would recommend modifying the spooler to use that, as it will be easier to count rotations and power, otherwise, you can use a DC motor paired with an IR sensor like me. First, insert a small DC motor into the casing (mine was salvaged from an old printer). Then gently push the IR sensor LEDs into the two holes located at the back of the motor mounting bracket. Then screw the bracket to a piece of scrap wood (if you cannot access one of the two screw holes due to the length of your motor, you will need to mount the bracket before inserting the motor). Then press on both the disk and coupler to the DC motor as shown in the images above. Depending on your light conditions, you will need to colour half of the disk white, you will see that one half has been recessed so that you can do it whilst also keeping it flush. I found snapping off the thinner half of the disk entirely worked best.

After the motor and IR sensor are mounted, screw on the servo housing and attach the servo motor. I found I needed the servo motor to be slightly lower than the DC motor due to the length of the servo horn, thus I mounted it on a separate piece of scrap wood and then mounted the DC motor's piece of wood on top.

To wire everything, connect 5V and ground to the servo motor and IR sensor module where appropriate and then connect the servo data pin to the Arduino UNO's pin 9 and the IR data pin to the UNO's pin 2. Then use an L293D or similar H-bridge IC to connect the DC motor to an external 12V source as shown below (Credit: Last Minute Engineers). Since we only have one motor you only need to wire up one side of the H-bridge and you should connect the input wires as so; (Enable: pin 11), (Input 1: pin 4), (Input 2: pin 3) - You can refer to the pinout below (Credit: Hackatronics)


You can then upload the code found on GitHub to the Arduino Uno. If you do not know how to use GitHub, please refer to Step 17. By reading the README file, you can find out how to modify the number of turns of wire the spooler will wrap onto the bolt. If you do not already have Arduino IDE (or similar) for uploading the code, you can search online for instructions on how to install the latest version.

To use the spooler, first take one 40mm M4 bolt, one printed bolt cover, one printed bolt washer and the spooler bolt spacer. Insert the bolt cover, washer and then spacer (in that order) onto the M4 bolt, and then screw it into the shaft coupler that is already mounted to the DC motor. Then feed the copper wire through the server horn, and wrap it around the bolt a few times (leaving some excess sticking out). Then using a small piece of masking or electrical tape, stick down the coils so they don't come unraveled. Then stick the excess to the head of the bolt, such that it won't flap around as the bolt spins (this prevents it from getting tangled). Make sure the copper wire spool is free to spin, and then turn on the spooler. It will slowly accelerate and decelerate so that the wire isn't snapped, and the servo will help to maintain a level wind. After the spooler has finished making the electromagnet, use a larger piece of electrical tape/masking tape and fully wrap the coil. You can then remove the tape holding the excess to the head of the bolt, and unscrew it from the coupler. Finally, cut the copper wire still attached to the spool, once again leaving some excess to solder wires too.

Wind the Coils

20241027_123108.jpg
20241027_105535.jpg
20241027_105251.jpg
20241027_110206.jpg
20241027_160410.jpg
20241024_212743.jpg
20241027_121418.jpg
20241027_121422.jpg
20241027_105247.jpg
20241027_124559.jpg
20241027_123103.jpg

To not overheat the Darlington transistor arrays used in this project, the max current draw of each coil must not exceed 500mA (so around 400 - 450mA to be safe). Using Ohms law, this means we need coils with a resistance of around 26.6 - 30.0 ohms (absolute minimum of 24 ohms). This is very important, and given every enamelled wire will have a slightly different resistance, you will need to experiment with the number of turns you put on each electromagnet until you get the correct resistance. If you overshoot and the resistance is too high, you can either unwind some wire, or just leave it as is (a higher resistance will lead to a lower current draw, and thus won't blow anything up). Because of that, I recommend overshooting your first tests, as you can still use the "failed" coils. Being able to track the number of windings, or at least being able to change them and get repeatable results is why building a spooler (see last step) is so useful.

To manually wind the coils you can use a power drill. First take one 40mm M4 bolt, one printed bolt cover and one printed bolt washer. Insert the bolt cover and washer (in that order) onto the M4 bolt, then tighten it in the drill chuck. Wrap the copper wire around the bolt a few times by hand (leaving some excess sticking out). Then using a small piece of masking or electrical tape, stick down the coils so they don't come unraveled. Then stick the excess wire to the head of the bolt, such that it won't flap around as the bolt spins (this prevents it from getting tangled). Make sure the copper wire spool is free to spin, and then slowly power on the drill, such that it slowly accelerates. Using a glove, gently guide the wire up and down the bolt to help maintain a level wind. After you think the electromagnet is finished, use a larger piece of electrical tape/masking tape and fully wrap the coil. You can then remove the tape holding the excess to the head of the bolt, and unscrew it from the coupler. Finally, cut the copper wire still attached to the spool, once again leaving some excess to solder wires too.

I found pre-cutting some tape to length and sticking it on the table was super useful, and the masking tape I used was slightly too wide, so I had to trim a bit off lengthwise. Since all my wire was salvaged, each thickness and coating would change from spool to spool, this meant I had to do a lot of testing. Make sure your wire is very thin (~0.1mm) as the thicker wire has a much lower resistance, and I couldn't use any of my 0.15mm wire (as a full electromagnet would only be 12 ohms). I experimented with many different coil prototypes and found this thinner and longer coil design works best, make sure you don't over-spool it, otherwise, it will become too wide to fit next to the other coils when screwed into the centre panel (at a later stage).

Assemble the Centre Panel

20241027_164235.jpg
20241021_175615.jpg
20241028_183515.jpg

Now that you have wound all 14 coils it is time to assemble the centre panel. To do this, simply screw all 14 electromagnets into the 14 holes in the back of the panel. They should sit almost flush with the panel, leaving around 1-2mm of a gap for fine-tuning later. You can also superglue the small white half-semi circle into the cutout on the front (as shown in the image above).

Make the Flaps

20241021_175443.jpg
20241021_175108.jpg
20241027_174321.jpg
20241021_175640.jpg
20241021_175148.jpg
20241021_191343.jpg

For this step, you will need your black and white flaps, along with seven 5x2mm rare earth magnets. First of all, push the white flaps onto the respective black flaps (the underside of the white flap is marked with two small dots). Then push in the magnets such that all north and all south poles face the same way. To check the magnet's polarity, try to stack your flaps such that all white sides face upwards, if any two white flaps face each other, flip one of the magnets around. Then using a drop or two of superglue, remove and then re-stick the white flap to the black one. Make sure you leave the flaps with the white side facing upwards on a flat surface unstacked to prevent any white residue from forming as the glue drys.

Identify the Coil Polarities

20241029_074025.jpg
20241028_210450.jpg
20241029_082039.jpg
20241029_083404.jpg

To identify which of the two wires coming out of the electromagnets should be negative and positive, you first need to install all the flaps into the centre panel. To do this, simply insert one end of the flap into the small hole in the pillar of the centre panel, and then leverage it so that it snaps into place. By using my finished digits as a reference, you should easily be able to figure out which flaps go where, and how they should be orientated (such that the white flap faces the middle). Then using a 12V power supply, you can connect each of the two electromagnet's cables to positive and negative, if the flap flips over, then mark the negative wire with a small piece of tape or a black pen. If the flap doesn't flip, then reverse the polarity. If the flap still doesn't flip, unscrew the bolt 1 turn and try again (repeat this process until it flips). If you find the flap is too loose (and doesn't retain its state when turned upside down - tighten the bolt half a turn until the magnet has a strong enough attraction to the metal bolt, then check the electromagnet is still strong enough to repel it by connecting the positive and negative wires to 12V). The flap will only flip when the magnet is adjacent to the electromagnet you are testing, hence if the white flap is visible, you should be testing the inside electromagnet, and if the black flap is visible, you should be testing the outer electromagnet.

You will need to scrape off the enamel coating before connecting the 12V power supply. I would highly recommend using a hot soldering iron to quickly tin the very ends of each wire to speed up the process.

Finish the Coils

20241029_121412.jpg
20241030_171355.jpg
20241030_163842.jpg
20241027_215838.jpg
20241027_223729.jpg
20241027_221247.jpg
20241027_221309.jpg
20241027_221223.jpg
20241027_221226.jpg
20241027_221152.jpg
20241027_221107.jpg
20241027_220615.jpg
20241027_230647.jpg
20241029_121422.jpg
20241028_193317.jpg
20241029_132147.jpg
20241030_163620.jpg
20241030_163624.jpg
20241030_164028.jpg
20241030_164601.jpg
20241030_171320.jpg
20241030_171346.jpg
20241030_171351.jpg
20241030_171420.jpg
20241030_172046.jpg
20241030_172048.jpg
20241030_172604.jpg
20241030_172703.jpg
20241030_173025.jpg
20241030_173115.jpg
20241030_173424.jpg
20241030_173633.jpg
20241030_174000.jpg
20241029_132244.jpg
20241029_132255.jpg
20241217_155111.jpg

Once you have tuned all the electromagnets (by screwing them further in/out) and identified all the polarities, you now need to solder cables to them. To do this, strip the end of an insulated wire, then wind the enamelled wire around the stripped end. Then apply flux and solder (most solder already has flux in it). Once both wires are soldered, tape them securely to the electromagnet so that the soldered connections are insulated and ensure neither wire is touching the other (I like to tape one cable, then the other, so there is an additional layer of tape between them).

For the negative connections, you will need to make up some plugs with dupoint headers (or similar). Cut 14 thin cables ~90mm long, and then crimp female connections to one end. Then press fit them into a housing. You can then solder the other end of each cable to the respective coil.

Pay close attention to the letters on the PCB as to which coil is soldered where (Bk refers to which electromagnet flips the flap to black and Wt refers to which electromagnet flips the flap to white). A, B, C... refers to which flap you should be soldering to, please refer back to the images below for clarity. You can find the sequence and the layout on the digit break-out board PCB.


For the positive wire of each electromagnet, you simply need to solder them all together and crimp a single female dupoint header to the end. I did this by first soldering a cable to every positive wire of the electromagnets (each pair has a longer and shorter cable). Then the shorter cable of the pair is soldered to the longer one, and the longer one is soldered to the adjacent pair. See the images included in this step for reference.

Make the Digit Joiner PCBs

20241022_093816.jpg
20241022_101127.jpg
20241022_105400.jpg
20241022_100811.jpg
20241022_094700.jpg
20241022_105356.jpg

To make the digit joiner PCBs you first need to use a sharp knife to score both the top and bottom sides just below the dotted line (located on the base of the digit break-out board). Try to score as close to the first terminal as possible, if you score directly on the dotted line, you will have to sand them down later. Then gently break them away by clamping them along the scored line to a hard surface and pushing downwards. Then take four 8-long straight male header pins, and solder them in place (so that the text saying "Black Connector" and "White Connector" faces away from the male header pins).

Solder the Digit PCBs

20241031_153452.jpg
20241022_092345.jpg
20241022_092614.jpg
20241031_153513.jpg
20241022_110631.jpg
20241022_105341.jpg
20241023_174606.jpg
20241101_130402.jpg
20241101_130650.jpg
20241022_105348.jpg
20241031_154955.jpg

After breaking off the digit joiner PCBs (or leaving them attached if you do not need to use them), we can now proceed to solder the remaining components onto the digit break-out boards. Cut and solder all fourteen 1N5408 diodes into their respective positions (leaving the bottom two empty), paying close attention to polarity (indicated by the white stripe). Then solder all fourteen 1N4004 diodes with the white stripe facing downwards (into the PCB) into the 2x8 connection pads (leaving the top two empty). You can then trim the top side of the diodes so that they are the same length as a standard male header pin. You will see in some images I have soldered a resister and additional wires on the PCB, this was due to a design oversight and the PCBs that you ordered do not have this issue. You will however need to solder a 10K resistor in its respective position (that is not shown on my outdated boards).

Then solder a 1x2 male 90 Deg. header to the common anode (CA) connection as shown (pointing downwards), as well as one 1x2 female header to the common anode input. Depending on the 'type' of digit you are making, will determine if you solder male or female headers to the four 1x8 way rows on the back of the PCB. Female headers should be where a digit is adjacent to another (and will have a smaller slot in the case) and male headers should be where a digit is going to have a cable connected to it (and will have a wider slot in the case).

At this stage, you can check both digit joiners fit by pushing them into the female headers (either the in/out ones - depending on the type of digit you are making). If they don't both sit flush (one overlaps the other) you will need to sand them down until they do. You should wear a mask when sanding fibreglass PCBs to protect your lungs, as well as other PPE such as gloves and eyeglasses. If you find they don't sit flush, try to cut them closer to the solder pads on the next digit (if you are making multiple). This was a design oversight that I will talk about how to improve in the final steps.

Finish the Digit

20241030_181710.jpg
20240917_164209.jpg
20241022_105458.jpg
20241021_184540.jpg
20241022_091424.jpg
20241022_111646.jpg
20241022_105453.jpg
20241022_105803.jpg
20241022_111224.jpg
20241022_111519.jpg
20241022_111524.jpg
20241022_111535.jpg
20241022_111551.jpg
20241030_180723.jpg
20241030_180906.jpg
20241030_180932.jpg
20241030_181414.jpg
20241021_183151.jpg

Now that the PCB has been soldered, and the coils have been wound, it is time to finish the digit assembly! First, take the digit case, and push in both PCB clips into the rectangle slots (such that the one with additional alignment tabs is at the top, and the tabs are facing upwards). These clips should be a tight fit, and if not, you can add some glue (after checking you can clip in the PCB). If you are unable to push the PCB into the clips, you can remove the clips, push them onto the PCB, and then install both clips and PCB into the case at the same time. The PCB will need a bit of extra force to push the female headers through the slots on the back, so be gentle and take your time.

After that, align the centre panel so that the top of the case lines up with the top of the centre panel. You will then need to plug the cathodes and anodes into their respective positions on the PCB (make sure you get the cathodes in the correct order so that A, B, C... and Wt & Bk line up with the markings on the PCB). You can then push the centre panel into the case until it snaps into place. Make sure all the 8 tabs have located themselves into the small rectangular holes on the side of the case. You can then install all 7 flaps, making sure they can rotate freely and are orientated correctly. Then push in both front filler panels, by aligning the middle cut-out to the middle of the digit, and pushing them onto the hexagonal posts of the centre panel. Finally, lock everything in place by installing the front outer trim. Once again, check all flaps can rotate freely. If they cannot, try cutting/sanding a very small amount of both ends of the "nubs" that jut out of them. Even if they could rotate freely before, the front outer trim will pull the posts closer together (locking in the flaps) so you should check all flaps again by hand. If you need to remove a flap, you will first need to remove the front outer trim.

If you are making multiple digits and you want to join them together later, insert the 3 hex joiners before anything else into the side of the two cases. These can be a bit fiddley, and if they don't clip into place, try scaling them down and printing them again.

Optionally you can add feet to the digits by pushing them into the circular holes on the bottom of each digit.

Build More Digits!

20241101_204312.jpg
20241030_212858.jpg
20241102_074846.jpg

Horray! You have built one digit. Trust me, the first is by far the hardest. To test that you haven't made a mistake, take a 12V power supply and connect the positive to the common anode input. Then take the negative and insert it into the female/male headers from top to bottom. It should (in this order) flap A, B, C, D, E, F, G, (and then the bottom one should do nothing) to black, then A, B, C, D, E, F, G, (and again the bottom one should do nothing) to white. Whether you connect the negative cable to the "in" or the "out" female/male headers should make no difference.

Now it is time to build more!!! (Or continue with the next few steps to properly test this digit, and then go back and make more)

Solder the Main PCB

20240919_201805.jpg
20240919_200545.jpg
20240920_084138.jpg
20240920_084149.jpg
20240920_084429.jpg
20240920_084419.jpg
20240920_084900.jpg
20240920_084136.jpg

Now it's finally time to solder the main controller. With the use of the schematic and the photos above, you should be able to identify where every part goes. Additionally, the PCB has markings and polarities written on it. For those who are new to electronics, resistors can go in any orientation, ceramic capacitors (small brown disks) can go in any orientation, electrolytic capacitors and diodes have a white line indicating the cathode, and LEDs have a flat edge. For the ICs and IC holders, you will see a small semi-circle on one end, you will also see a small semicircle drawn on the PCB, these must be orientated in the same direction.

For the main ESP8266 chip, first, cut your 15-way female header pins and press them onto the NodeMCU Male pins. Then check what width of pins you need to use (There are extra holes marked "Esp8266 Extra Pins" which can be used if your NodeMCU is wider). Make sure you orientate the chip correctly (with the squiggly PCB antenna facing outwards - as indicated on the PCB).

Upload Code & Add Wifi Credentials

Screenshot 2024-12-16 091706.png

To upload code first download it from my GitHub page. For those who don't know how to use GitHub follow these steps;

  1. Open the page (by following the link)
  2. Go to the green button "<> Code"
  3. Click "Download ZIP"
  4. Find the file (Flippy-main.zip) in your downloads folder and extract all the files to your desired location
  5. Then navigate to "Flippy-main\Flippy-main\V8.2_Seven_Segment_Display\main" and open the README

Once you have downloaded the code, follow the instructions in the README text file. It will show you how to download Arduino IDE, all the drivers needed, and how to upload both basic code and the file system. You will need to add the SSID and password of a wifi network for your ESP8266 to connect to, the line number and file are noted in the README.

Solder the Electronics Box

20241119_111831.jpg
20241119_122340.jpg
20241119_122550.jpg
20241119_111949.jpg
20241119_112049.jpg
20241119_112109.jpg
20241119_112130.jpg
20241119_115349.jpg
20241119_115400.jpg
20241119_121215.jpg
20241119_122326.jpg
20241119_122509.jpg
20241119_111855.jpg
20241119_111900.jpg
20241119_112020.jpg
20241119_112026.jpg
20241119_111852.jpg
20241119_111837.jpg
20241119_111844.jpg
20241119_111848.jpg
20241119_111840.jpg
20241218_090718.jpg
20241218_162050.jpg

The main PCB requires 5V and 12V DC to be supplied in the screw terminals as written on the PCB. This means you can directly run a 12V cable into the electronics case, through the switch and then into both the PCB and a buck converter. You must use a multimeter and the adjustable trimpot on the buck converter to step down the 12V to 5V which can then be wired into the PCB. Follow the wiring diagram as shown below;


Make sure you push the switch into the front panel before you solder wires to it. To mount both the PCB and buck converter, push them onto the raised tabs as seen in the images above, and then use two small M3 Screws (one for each PCB) to hold them in place. You will also need to solder a fuse to bridge the two solder pads labelled "fuse" on the main PCB, right of the ESP.

There are two rows of "extra pins" which means if you have other projects or functionalities you want to add (for example a speaker, as shown in one of the images) you can easily do so. Similarly, there are solder pads for 3.3V, 5V, 12V and GND, should you need them.

Assemble the Electronics Box

20241119_112250.jpg
20241119_112259.jpg
20241119_112232.jpg
20241119_112202.jpg
20241119_112246.jpg

To assemble the electronics box, simply slide the lid into the right-hand side, then use two M3 screws in the top and bottom left-hand corners. If you want to redesign this box to use 4 screws you can, I was trying something new and still need to work on the slide-in design. You can see some other improvements I'd make in one of the final steps.

Connect the Digits and Electronics Box

20241028_091210.jpg
20241022_200544.jpg
20241028_091055.jpg
20241023_084954.jpg
20241022_174920.jpg
20241022_175540.jpg
20241022_180255.jpg
20241022_180306.jpg
20241022_195842.jpg
20241022_195854.jpg
20241022_200602.jpg
20241023_084952.jpg
20241023_175657.jpg
20241023_175701.jpg
20241023_175849.jpg
20241024_134825.jpg
20241024_134831.jpg
20241028_091020.jpg
20241028_091027.jpg
20241028_091037.jpg
20241028_091103.jpg
20241028_091134.jpg

Note: The electronics box has been removed from the images for clarity, you should plug the cables into the box

For this step, you need to pull off the outer two cables of the 10-way IDC so that it becomes an 8-way cable. Then cut two lengths that match the desired distance between your digits and the main controller (leaving a bit extra for the plugs we are about to crimp on). Then strip the ends of both cables and crimp eight 2.54mm female crimps on both ends of both cables. These can then be pressed into four 8-way 2.54mm crimp housings. These can then be plugged into the black and white connectors on the main PCB and then into the first digit. You can optionally spray paint these cables to blend in, I painted mine black.

For the common anodes, you need to crimp a 2.54mm female crimp to the end of your ~21 AWG cable and then a 2-way male 90 Deg. header pin to the other end (see the image below) which is then sealed in heat shrink. You can then plug the male header pins into the back of each digit in the common anode socket, and then push the crimps into an 8-way 2.54mm crimp housing. This housing is then plugged into the relay header pins on the main PCB. Take special note of the order written for digits 1-8 as indicated with the arrow on the PCB. The digits are numbered 1 to 8 from right to left (rightmost being 1 - see step 1 for some example layouts). You can then also make any additional cables needed to join digits that are separated by a gap in the same way, and then join the remainder of the digits by inserting the joiner PCBs into the backs of them.


PLEASE NOTE:

For some reason, the first time you turn on the counter you may hear the relays click, then the blue light on the ESP dim as it continues this cycle. If this happens, unplug the relay plug, power the ESP on, wait 5 seconds, and then plug the relays back in. This will prevent the cycle and boot up the ESP. I have no idea why it does this, and if you have any ideas, please leave a comment.

Done!!!

20241218_103802.jpg
flipCCC-ezgif.com-resize2.gif
20241218_153021.jpg
20241218_105033.jpg
20241218_103922.jpg
20250101_102557.jpg
20241218_103859.jpg
20241218_103843.jpg
20241218_105046.jpg
20250101_102556.jpg

Congratulations! The hard work is now done... phew! The next few steps will walk you through using the web interface and show some provided example modes!

The Configuration Menu

config 1.png
config 5.png
config 4.png
config 6.png
config 7.png
config 3.png
config 2.png
config 8.png

The configuration menu is at the heart of this design. Once the counter is switched on, make sure you are connected to the same network as the counter and go to http://flippy.local, make sure you enable JavaScript and allow the insecure connection. For those who don't understand why it is an insecure connection, it is because your ESP hasn't provided an SSL certificate (hence HTTP not HTTPS) to the web browser, but this isn't an issue in our case as you own the server so know it isn't malicious. Regardless, it is best practice not to enter passwords, bank details or sensitive information.

This will open up the config menu and will welcome you with some instructions on how to use it. From here you can add digits, create groups of digits (displays) and assign modes to them via a dropdown. Some modes need a certain number of digits and thus will not be available for all displays. You can also turn on or off override mode which changes the way the display updates. It will remember all your changes and prompt you if you forget to save them, and will load them back up when you re-open the page. You can also choose to completely reset the settings back to the defaults if you mess something up. Once you save your displays, you are able to click the blue "settings" button and you will be redirected to the mode of your choosing.

If this page, or any page fails to load properly, reload the page until it works. Due to the ESP8266 having a slow upload speed, and modern browsers expecting super fast server responses, sometimes your browser will interrupt and cause an error. Reloading a few times will fix this.

Basic Input Mode (Manual Mode)

Manual.png

As the mode implies, this is simply an input menu where you can choose what you wish to display. You can choose the alignment, left, right or centred. You can also choose the type of input, text or numbers (to be safe, just leave it on "text" as setting it to "number" doesn't do anything special in this case, and text will work for a combination of letters and numbers). After typing in your phrase or number, simply hit enter and listen to the clicks!

If you input a number or word that is too long, depending on your alignment, it will truncate (cut off) the extra letters/digits. Some letters are impossible to display with a 7-segment display such as "m", these will be replaced with a blank digit. Similarly, in some cases, only the lower case or upper case is possible, such as the letter "A". The counter will give preference to your inputted case where possible (for letters where both are possible such as "o" and "O").

Special characters will become blank digits, apart from hyphens "-" which will allow you to display hyphenated words and negative numbers.

Countdown Mode

Countdown.png

Countdown mode allows you to pick a date and time. This lets you have a display show you just how long until your favourite day of the year arrives! Given it is the festive season (as I am writing this) maybe you could count down until Christmas or New Year's Eve! First, it will display the number of days "XXd" then the number of hours "XXh" and finally the minutes "XX" until you reach 0, at which a quick animation will play and then it will remain at 0. You can start and pause this countdown as you desire. Don't forget to choose the correct timezone too!

Dice Mode (Random Number Generator)

Dice.png

Dice mode (as the name suggests) turns your counter into a game of chance! By first selecting the number of faces of your dice (most commonly that would be 6), and then choosing the alignment (out of left, right, and centre), you are ready to roll. Hit the large green button and watch a "rolling" animation play before the final result is shown. You can also optionally choose to have the number displayed to the screen (incase your counter is a bit faulty).

Clock Mode

Clock 1.png
Clock 2.png

I imagine this will be one of the more popular modes I have coded. You can download and print a colon which can be inserted between digits to make your counter look more like a clock. Depending on if you have 4 or 5 digits will determine which of the two screens above you are shown. With 4 digits you can choose between a 12 or 24-hour clock, whereas with 5 digits you are forced to use a 12-hour clock, but will have the letter A or P shown (which represents am or pm). You also have the ability to choose any timezone, as well as stop or start the clock as you desire.

Counter Mode

Counter.png

Counter mode is the final mode I have coded and left available for you. This mode will give you a set of buttons (more digits equals more buttons) which will allow you to add or subtract a set amount. This lets you keep track of whatever you want, in an easy and fun way. You can also add or subtract custom amounts via the input field! It will allow you to display numbers up to 99 (if you have 2 digits) or 999 (if you have 3 digits) and so on. It will also allow you to display negative numbers (if you have more than one digit) down to -9 (if you have 2 digits) or -99 (if you have 3 digits) and so on.

Using This Display in Other Projects, APIs and Adding Modes (Advanced)

Screenshot 2024-12-13 085043.jpg

This step is intended for more advanced use of this project and can be skipped if you only wish to use the pre-programmed modes.


The goal of this project was to make it highly modular. This counter can easily be added to other projects, either as a completely separate wireless component or as a fully incorporated section. The code is object orientated with each counter being a separate object. If you wish to use the ESP8266 as the main controller for a completely different task, you can edit main.ino and add your own code at the end of the start-up. Additionally, there is only one line in "void loop" which is wifiChecks(), simply call this as often as possible in your personalised loop. You can directly create Counter objects and call predefined functions such as "displayNumber", "displayWord" or "clearDisplay". I have tried to comment as best as possible if you wish to further edit the code.

Once you have uploaded my code, you can open the API Help menu on the configuration menu which will show you the API endpoints you can call, and what JSON to pass in (also included as an image above). This allows you to keep your project separate (with another ESP) that can then wirelessly call this API as you desire.


If you want to add your own modes, simply edit the function getModesJson in modes.cpp to add another menu option;

The first array parsed in should contain {modeName, constraint logic (AND/OR), number of constraints} and the second 2D array should contain all the constraints {{logic (>/</=), number} ...}. The constraints determine how many digits are needed before the mode is allowed. For example, a clock needs 4 or 5 digits (HH:MM or HH:MM A/P for am/pm), this means the constraint logic should be OR and the two constraints are = 4 and = 5. Similarly, if you wanted a mode to have between 3 and 6 digits the constraint logic should be AND and the two constraints would be > 2 and < 7. You can see an example below:

// Mode: Countdown
const char* arr1_1[3] = {"Countdown", "AND", "2"};
const char* arr2_1[2][2] = {{">", "2"}, {"<", "7"}}; // between 3 and 6 digits
addMode(modes, arr1_1, arr2_1);


Then add an additional HTML file in the "data" folder, which should be called {modeName}.html (without the {}), you can then obviously add JavaScript and CSS files to style the page as you wish, and in your JavaScript, you can call the API endpoint as described on the main config menu. You will also notice that you have 1 URL parameter which includes information you will need when calling the API, this is base64 encoded and simply needs to be decoded (if you include modes.js as a module you can access some helpful basic functions).

Adding More Than 8 Digits (Highly Advanced)

Screenshot 2024-12-13 091133.png

If you choose you want more than 8 digits you can build an expansion board. The shift register pins are available on the main controller and with a multimeter you can find which pins they correspond to (or use the schematic). You will then need to add an additional shift register and Darlington transistor array for every 8 additional digits you want. You will also need to add a relay for each digit (connected to the Darlington transistor array) as well as supporting components (diodes etc. - please refer back to the schematic). There are also spare 3.3V, GND, 5V and VDC (12V) pads which you will need. The code is also designed for 8 digits so you will need to re-program the configuration menu page, as well as some code in counter.cpp and possibly wifi.cpp, this is an extremely advanced thing to do compared to just building this project and should only be attempted if you know how to design PCBs and how to code in C++, HTML, CSS and JavaScript.

I don't expect anyone to do this as building more than 8 digits would be very tedious :)

But it is possible should you choose you want to attempt it.

Adding a Decimal Point (Highly Adcanced)

FJL6POKM4PM9D50.jpg

This design doesn't include any decimal points or colons, however, if you want to take on that challenge of adding those yourself you can. The digit breakout boards have room for diodes for a decimal point (Dp) and they are already wired into the main controller. However, you will need to modify the code to add decimal point functionality, as well as add a physical decimal point in CAD.

Pros and Cons of These Digits

FWK2YZEM4PM993P.jpg
20240925_130433 - frame at 0m2s.jpg

So why is this digit any good??

Pros:

  1. They have a really nice mechanical sound
  2. They don't use continuous power once something has been displayed
  3. You retain the full functionality of a 7-segment display, allowing you to display any letters, numbers or animations you'd otherwise be able to display
  4. You can chain large amounts of digits together
  5. They are much cheaper than other mechanical commercial displays (~$9 AUD per digit) - at the cost of more tedious work
  6. And they are very achievable for a slightly advanced DIYer to build


Cons:

  1. Far more expensive than LEDs
  2. Very time-consuming to build
  3. They are affected by other magnetic sources
  4. They are somewhat fragile (And thus not suitable for high-impact environments)
  5. Isn't very scalable (to a very large or very small display)
  6. And compared to LEDs, you need a huge amount of extra components to control them (but no more than similar commercial mechanical 7-seg displays)


It is important to note that part of this project involves the controller circuit. This could be adapted to suit other commercial mechanical 7-segment displays. The main controller is the most expensive and technical part of the project, and you would still need to build an equivalent if you bought a commercial mechanical display.


EDIT: As I was making this project, Engineezy released his design of a "rack-driven mechanical 7-segment display". If the electronics of this project scare you, then you can check out his design on YouTube (you do have to pay for it). He has done an amazing job and for those not sure which one to build, here are some quick pros and cons when compared to his:

Pros:

  1. His can only display numbers 0-9, whereas mine can display any character normally possible on a 7-segment display
  2. Due to the camshaft design, you must display every number from 0-9 when changing from displaying a 0 to displaying a 9, whereas mine can go directly from one number to another
  3. I have preprogrammed modes you can use, although I do believe he may have a dice mode available (as shown in a YouTube short)
  4. Mine has free downloadable files & code


Cons:

  1. More complicated to code and connect electronically (Although I have done that for you)
  2. Mine is much more tedious to build due to additional wiring and winding of electromagnets
  3. Mine has an initially higher cost due to needing a separate controller PCB (that at first glance appears more complex, and thus expensive than his controller PCB)


Improvements

Screenshot 2024-12-16 094910.png
Screenshot 2024-12-16 094338.png
Screenshot 2024-12-16 093802.png
Screenshot 2024-12-16 093754.png

This project still has room for improvement! Below I have listed some of them that you may choose to tackle;

CAD Improvements

  1. Increase the space between digits so that the magnets don't interfere with each other (Note this will require a design change to the PCB joiners)
  2. Consider a more efficient way to make the electromagnets
  3. Add a chassis mount for the fuse
  4. Design a better way to clip digits together
  5. Add a lip to the electronics box so that the lid doesn't sag inwards
  6. Fix the positioning of the flash and reset button cutouts so they actually line up with the NodeMCU in the electronics box panel


PCB Improvements

  1. Flip the direction of the NodeMCU (so the USB is more accessible)
  2. Fix the footprint of the NodeMCU as it turned out to be too narrow
  3. Change the tab system of the PCB joiners so rather than 2 separate joiners, there is just one. Hence, decreasing the distance between the black and white in & out sockets and headers so you can use one long female header strip rather than two shorter ones


I invite you to remix and personalise this project and share it in the "makes" section on Instructables. If you do share or remix this project, please credit me and this original design (as per the licence). This model is not intended for commercial use (aka the files must be free) so that hobbyists can continue to enjoy making! However, if you are interested in making these to sell to others, please be in touch with me.

Final Comments

20241022_113346.jpg
20241022_114137.jpg
20241028_193311.jpg
20241030_212858.jpg
20241218_091016.jpg
20241101_204312.jpg
20241102_074846.jpg
20241022_113044.jpg

Hopefully, if you've made it this far you've got a super cool mechanical 7-segment display! Thank you so much for reading this instructable and watching the YouTube video, I hope you found it entertaining and interesting. If you have any queries don't hesitate to drop them in the comments! Best of luck!!