Silicon ChipFlip-dot Message Display - April 2019 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: Nannies want to stop you building mains-powered projects
  4. Feature: Big Brother IS watching you: Facial Recognition! by Dr David Maddison
  5. Project: Flip-dot Message Display by Tim Blythman
  6. Feature: Introducing the iCEstick: an easy way to program FPGAs by Tim Blythman
  7. Project: Ultra low noise remote controlled stereo preamp – Part 2 by John Clarke
  8. Serviceman's Log: A laptop, spilled tea and a crack by Dave Thompson
  9. Project: iCEstick VGA Terminal by Tim Blythman
  10. Review: Altium Designer 19 by Tim Blythman
  11. Project: Arduino Seismograph revisited – improving sensitivity by Tim Blythman
  12. Vintage Radio: Healing 404B Aussie compact by Ian Batty
  13. PartShop
  14. Product Showcase
  15. Market Centre
  16. Advertising Index
  17. Notes & Errata: DAB+/FM/AM Radio, February 2019; Four-channel sound system using a single woofer, February 2019; Low voltage DC Motor and Pump Controller, October & December 2018; USB Port Protector, May 2018
  18. Outer Back Cover

This is only a preview of the April 2019 issue of Silicon Chip.

You can view 38 of the 96 pages in the full issue, including the advertisments.

For full access, purchase the issue for $10.00 or subscribe for access to the latest issues.

Items relevant to "Flip-dot Message Display":
  • Set of four Flip-Dot PCBs (AUD $17.50)
  • Flip-Dot Coil PCB [19111181] (AUD $5.00)
  • Flip-Dot Frame PCB [19111183] (AUD $5.00)
  • Flip-Dot Pixel PCB [19111182] (AUD $5.00)
  • Flip-Dot Driver PCB [19111184] (AUD $5.00)
  • Firmware files for the Flipdot Display project (Software, Free)
  • Flip-dot Display Driver PCB pattern (PDF download) [19111184] (Free)
  • Flip-dot Display Coil PCB pattern (PDF download) [19111181] (Free)
Items relevant to "Introducing the iCEstick: an easy way to program FPGAs":
  • Software files for the iCEstick FPGA tutorial and VGA Terminal project (Free)
Items relevant to "Ultra low noise remote controlled stereo preamp – Part 2":
  • Low-Noise Stereo Preamplifier PCB [01111119] (AUD $25.00)
  • Input Switching Module PCB for the Low Noise Preamplifier [01111112] (AUD $15.00)
  • Input Selection Pushbutton PCB for the Low Noise Preamplifier [01111113] (AUD $5.00)
  • Universal Voltage Regulator PCB [18103111] (AUD $5.00)
  • PIC16F88-I/P programmed for the Low-Noise Stereo Preamp with Six Input Selector [0111111M.HEX] (Programmed Microcontroller, AUD $15.00)
  • PIC16F88-I/P programmed for the Low-Noise Stereo Preamp [0111111B.HEX] (previously 0111111A.HEX) (Programmed Microcontroller, AUD $15.00)
  • Firmware and source code for the Low-Noise Stereo Preamplifier [0111111B.HEX] (previously 0111111A.HEX) (Software, Free)
  • Low-Noise Stereo Preamplifier PCB pattern (PDF download) [01111119] (Free)
  • Low-Noise Stereo Preamplifier Input Switcher PCB pattern (PDF download) [01111112] (Free)
  • Low-Noise Stereo Preamplifier Input Selector Pushbutton PCB pattern (PDF download) [01111113] (Free)
  • Ultra-LD Mk3/Mk4 Amplifier Power Supply PCB [01109111] (AUD $15.00)
  • Ultra-LD Mk.3 Power Supply PCB pattern (PDF download) [01109111] (Free)
  • Universal Voltage Regulator PCB pattern (PDF download) [18103111] (Free)
Articles in this series:
  • Ultra low noise remote controlled stereo preamp, Pt.1 (March 2019)
  • Ultra low noise remote controlled stereo preamp, Pt.1 (March 2019)
  • Ultra low noise remote controlled stereo preamp – Part 2 (April 2019)
  • Ultra low noise remote controlled stereo preamp – Part 2 (April 2019)
Items relevant to "iCEstick VGA Terminal":
  • iCESTICK VGA Adaptor PCB [02103191] (AUD $2.50)
  • Software files for the iCEstick FPGA tutorial and VGA Terminal project (Free)
  • iCEstick VGA Adaptor PCB pattern (PDF download) [02103191] (Free)
Items relevant to "Arduino Seismograph revisited – improving sensitivity":
  • Firmware (.ino sketches) for the Arduino Seismograph with Geophone (Software, Free)
Articles in this series:
  • Low cost, Arduino-based 3-Axis Seismograph (April 2018)
  • Low cost, Arduino-based 3-Axis Seismograph (April 2018)
  • Arduino Seismograph revisited – improving sensitivity (April 2019)
  • Arduino Seismograph revisited – improving sensitivity (April 2019)

Purchase a printed copy of this issue for $10.00.

BUILD YOUR OWN E-X-P-A-N-D-A-B-L-E If you want a dot matrix display which has digits/letters over 90mm high, is visible under a wide range of lighting conditions and uses no power except when the display is changing, then our new and very cool FLIP-DOT display is for you. Seeing (and hearing) a flip dot display is quite something, so it makes a great conversation starter too! Y ou’ve probably seen the large yellow dot displays on the front of many Australian buses, trains, etc or perhaps in airports. They’re highly visible in bright sunlight or under cloudy skies, and they’re usually illuminated at night too. Contrary to what you might believe, they’re generally not electronic signs as such: they’re actually electromechanical flip-dot displays. They’re made from panels that are yellow on one side and black on the other. They rotate to change state, accompanied by a pleasing “clack-clackclack” sound. Well, now you can build your very own home flip-dot display! It’s easy to build, uses just a handful of readily available parts and is controlled by an Arduino or MicroMite microcontroller. So you can make it read just about anything you want. If you use a micro with a WiFI adaptor, you can even get it to download and display data from the internet, such as the temperature forecast or sports scores. So-called flip-dot or flip-disc displays have been around for over 50 years and are still commonly used in countless applications. Their simplicity and reliability have stood the test of time, and now, you can build your own. For those not familiar with this type of display, each disc or flap which forms a pixel in the dot-matrix display 22 Silicon Chip discs to remain stationary until commanded to move. Our version has been simplified to make it as easy as possible to build, but it will still make a practical stationary display, and one which can be seen quite well in various lighting conditions and across a large room. Many commercial flip-dot displays use numerous small coils wound onto tiny armatures – see the photo of one on page 24. How our flip-dot display works One complete unit – here displaying the letter “S” – sits upright of its own accord. We have fitted a small length of female header strip to CON1 and CON3 to allow connections to be made with jumper wires. See video: siliconchip.com.au/Videos/Flip-dot also contains a small permanent magnet. An electromagnet can flip this magnet and thus the disc, to control which colour is visible from the outside. The polarity of the coil drive current determines which side of the disc appears. When power is removed, the display remains in its last state. These displays are designed for the Australia’s electronics magazine To simplify our display and make it substantially cheaper and easier to build, we have formed coils using PCB tracks instead. One PCB contains fifteen such coils on both layers – enough to produce a single character display by itself. Each board consists of a matrix of fifteen pixels, arranged three wide by five high. This is just enough to display a capital letter, number or symbol. Each pixel consists of a piece of fibreglass that’s black on one side and white on the other, with an embedded rare-earth magnet. These sit over the PCB-track coils and are attached to that board in such a way that they can rotate through 180° on a pair of simple hinges, allowing either side of the black/white panel to be made visible. The PCB underneath is also white on one side and black on the other, so that when the panel with the magsiliconchip.com.au Features: • • • • • • • • 15-pixel display per board (three pixels wide, five pixels high) Each board can display a single letter, number or symbol Display boards can be daisy-chained for multi-character displays Customisable colours (BYO paint!) 5V/3.3V 4-wire serial interface 12V power supply required – 1.5A or higher (see text) Each pixel controlled individually Stackable for multi-row displays net flips, the whole area changes from black to white or vice versa. All that the driver board needs to do to cause it to flip is to energise the coil underneath with the correct polarity. This will repel the magnet initially, causing the panel to swing through 90° until it is at right angles to the panel below. The magnet will then be attracted to the coil and continue moving due to inertia, until it is laying flat on the panel below but with the opposite orientation. The pixel size (19mm wide and 17mm tall) is a compromise between siliconchip.com.au the magnetic strength of the coil and the weight of the moving elements. Each coil has around 60 turns and measures just over 1.5m in track length, but is packed into an area less than four square centimetres. This is about the limit of what is possible with a two-layer board. The magnets are 3mm x 1.5mm rare earth magnets glued into a hole on the flap PCB. It is important that the magnets all face the same way relative to the colours. This ensures that the flaps are interchangeable and consistently display the same colour. Australia’s electronics magazine The pixel flaps and the brackets holding the flaps to the panel are small PCBs too. A completed unit including the driver PCB will consist of 23 separate PCB pieces. The bracket PCBs are soldered to the main coil PCB, and the flaps are slotted in place, pivoting around their end tabs. PCBs are a cheap, convenient way to achieve the correct mechanical dimensions required of multiple identical parts. By using PCBs with a black solder mask and white silkscreen printing, we can use the silkscreen layer to create pixels with very high contrast April 2019  23 between the ‘on’ and ‘off’ states. Due to the limited strength of the electromagnets, the display will only work reliably when standing upright, which it will comfortably do without any extra parts. Driving the display The display driver circuit is shown in Fig.1. It is designed to be controlled by a microcontroller using a simple serial bus, and is powered from a 12V DC supply. It connects to the coil circuit, shown in Fig.2, via headers CON5CON8. This circuit represents one set of 3 x 5 pixels that can display a single character; characters can be daisy chained to form larger displays. We’ll explain how that works shortly. The driving signals from the microcontroller are fed in via six-pin header 24 Silicon Chip CON1. They pass to IC1 and IC2, two 74HC595 shift registers, which decode the serial data stream and use it to control the state of sixteen separate digital outputs (QA-QH on each IC). These control signals will normally be either 0V (low) or 3.3-5V (high). These digital outputs connect to the control inputs of IC3-IC6, four L293D dual H-bridge motor drivers, which provide the current required to drive the fifteen coils, as well as converting the 0-3.3/5V control signal voltage swing into a higher 0-12V swing to drive the coils. Fifteen of the motor driver outputs connect to one end of each coil, with the sixteenth output driving the other The mechanism of a commercial flipdot display. The discs are around 9mm across and are driven by coils of enamelled wire. The magnetism remaining after the current has ceased is enough to hold the discs in their last position, or even snap them back if they are moved. Australia’s electronics magazine siliconchip.com.au Fig.1: the circuit of the driver for one 3 x 5 pixel Flip-dot display. The control signals and logic supply from CON1 are fed to IC1 & IC2, two 8-bit serial-to-parallel latch ICs. These drive the 16 control inputs of L293D dual H-bridge motor drivers IC3-IC6. Here, they are driving 15 coils etched in a separate PCB, shown in Fig.2. end of all the coils, which are joined together (common or COM). So to flip a single pixel, the common (COM) output goes either low or high, and one of the other fifteen outputs (P1-P15) is driven with the opposite polarity. This causes current to flow through that one coil in a direction determined by the output polarities. The direction of current flow determines whether the coil produces a North or South magnetic pole in proximity to the permanent magnet. The software needs to ensure that only one coil is driven at a time, because all the coil currents return to the same common driver pin. While this pin may be capable of sourcing/sinking enough current to flip more than one pixel at a time, we’ve found it to be a bit marginal, and it results in IC6 siliconchip.com.au (which drives the COM pin) getting rather hot. So our software flips one pixel at a time. To achieve this, all outputs are set high or low, except for one, which is set to the opposite polarity. Any output that is set the same polarity as the COM pin will cause no current to flow through the connected coil. Only the single coil that is driven with a different polarity will receive current. The instantaneous current requirement of the coils is around 1A with a 12V supply, which is above the continuous rating of the L293D. But the coils only need to be pulsed briefly, so the average current is much less than the peak current. The microcontroller pauses briefly between updating each pixel, to keep the average current under the thermal limit and to allow the Australia’s electronics magazine pixel time to finish its flip manoeuver. Since the display holds its state with no power applied, the circuit’s average operating current is not usually terribly high. Note that no more than two of the four drivers on any IC should be active at a time. The enable pins of the four L293Ds (pin 1 of IC3-IC6) are joined together and held low by a 1kΩ pull-down resistor, so that the default state of all the outputs is off (high-impedance). It isn’t until the microcontroller pulls the enable lines high, via pin 6 of CON1, that IC3-IC6 are activated and that is only done once the control data has been shifted through IC1-IC2 and latched at their outputs. The enable pins are only pulled high for 100ms at a time, to limit the current pulse duration, as explained April 2019  25 COM P1 COIL COM P2 COIL P4 COIL P6 COIL P5 COIL CON5 P7 COIL P1 1 2 P4 3 4 CON7 P2 P8 COIL P5 P10 COIL P3 1 2 P6 P8 3 4 P9 P12 COIL COM COM CON8 CON6 SC 20 1 9 P9 COIL P11 COIL COM P13 COIL P3 COIL P10 1 2 P7 P13 3 4 P14 P14 COIL FLIPDOT COIL PCB CIRCUIT COM 1 2 P12 P11 3 4 P15 P15 COIL ALL COILS ARE COMPOSED OF TRACKS ON THE PCB Fig.2: the fifteen coils on this PCB are driven by the circuit of Fig.1 and either attract or repel permanent rare-earth magnets mounted in pixel flaps on top of them. Because those rare-earth magnets have a North pole on one side and a South pole on the other side, depending on the direction of current flow through a coil, the flap flips to one side or the other, exposing a different colour. above. Due to this relatively long drive time, the extra time taken to shift control data from the micro through IC1IC2 is negligible. As required by the L293D, the logic ground and power ground are common. Separate connections for 12V power and 3.3V/5V logic supply are available, via CON3 and CON1 respectively. Construction Being a mechanical design with moving parts, a fair degree of precision in the construction is required to ensure proper operation. The primary requirement is that all the parts are put together squarely and lined up correctly before fixing them in place. The first step is to glue the magnets in the pixel flaps. We highly recommend that the flaps be left in the PCB frame during this step, to avoid pieces getting lost. The flaps are spread out enough that interaction between the magnets is minimal. We do this step first to allow time for the glue to cure. We used epoxy resin as it has a bit of resilience and is quite strong; cyanoacrylate-type glue (superglue) is probably too brittle and might causing the magnets to come loose after some use. 26 Silicon Chip To make this process easier, you need a disposable, flat plastic surface. The lid from an ice-cream tub or takeaway container is ideal, as epoxy will not stick to this. Another helpful item is a flat sheet of ferrous material (something that a magnet would stick to, such as plain steel). This can be used to help hold the magnets in place. We used a steel case, but you could also use the lid of a Milo tin. Place the ice-cream tub or takeaway lid over the ferrous material, then sit 19111183 Flipdot Display Pixel Frame (1) (2) (3) (4) (5) (6) (7) the PCB frame on this. Once you insert the magnets in their holes, they should be held in place by their attraction to the steel, but the ice cream lid will allow them to be removed without too much force. The most critical point of this step is that all the magnets’ poles line up. To achieve this, take the stack of magnets (they’ll form into a stack of their own accord), and push the magnet at the end of the stack into one of the holes in the pixels. Then detach it from the stack by sliding the stack to the side, leaving a single magnet sitting in the hole. The PCBs are 1.6mm thick, so the magnets should sit just below the surface of the PCB. You will see that there are 16 pixel flaps in the frame, but we only need 15, so there is a spare if needed. Then repeat for the other 14 or 15 pixels, without changing the orientation of the stack. When you’ve finished, you may want to check the magnetic polarity by moving another magnet nearby (but not so close that it pulls them out). You should feel that all the magnets are attracted to the magnet in your hand without changing its orientation. Mix up a small amount of epoxy resin, and apply a film to the top of each magnet in its hole. Try to work it down the sides if possible. The rough edges of the PCB will provide good purchase on the glue. Finally, wipe down any excess. Any extra glue may foul and unbalance the mechanism. You should also ensure that the PCB panel is still flush with the plastic below, as if it is sitting up, the magnets may end up protruding slightly. Allow the resin to harden. We recFig.3: this PCB can be cut apart into eight separate frame pieces - enough to make one 3 x 5 pixel flipdot display with two pieces left over. The holes form the ‘hinges’ for the pixel flaps to rotate about, while the exposed copper is soldered to the coil PCB to hold the frame in place. Cut carefully where shown using a sidecutter to separate the pieces. The frame pieces are quite thin and could be damaged if handled roughly. (8) SC 20 1 9 Australia’s electronics magazine siliconchip.com.au 111191 1 819111181 111191 1 819111181 1 819111181 111191 Building the frame CON5 CON7 CON2 You will need six frame elements to build one fifteen-pixel display. But note that if you are going to be stacking two frames vertically, you will only need eleven in total; one frame will be shared between two boards. The frame pieces are cut from a 72.5 x 75mm PCB which contains eight separate frame 3.3 12V GND /5V GND D LT CK EN IC2 74HC595 33F IC1 74HC595 1k 12V GND 3.3 GND D LT CK EN /5V CON1 Flipdot Display Driver PCB 19111184 RevC CON3 L 1 819111181 111191 L ommend that you leave it longer than suggested by the manufacturer to enP3 COIL P3 COIL P2 COIL P2 COIL P1 COIL P1 COIL P3 COIL P3 COIL P2 COIL P2 COIL P1 COIL sure it is fully cured. If it is still sticky, (4) (2) (1) (4) (2) it may gum up the mechanism and make handling difficult. If you wish to change the colour of the flaps, P6 COIL P6 COIL P5 COIL P5 COIL P4 COIL P4 COIL after the resin has cured is an P6 COIL P6 COIL P5 COIL P5 COIL P4 COIL ideal time. A thin coat of paint should (16) (8) (32) (16) (32) be used to ensure that the flaps do not CON5P CON5P CON7P CON7P become too heavy. You could use spray P3 P3 P1 P1 P6 P6 P2 P2 P4 P5 P5 P4 P8 P8 P9 P9 paint, one colour on one side, and a P9 COIL P9 COIL P8 COIL P8 COIL P7 COIL P7 COIL P9 COIL P9 COIL P8 COIL P8 COIL P7 COIL second colour on the other side. You could apply the same colours to (128) (64) (256)(128) (256) the coil PCB, although this will need masking to ensure the colours are kept separate. P12 COIL P12 COIL P11 COIL P11 COIL P10 COIL P10 COIL P12 COIL P12 COIL P11 COIL P11 COIL P10 COIL However, we think most constructors will be happy with the black and (1024)(512) (2048) (1024) (2048) white as supplied, since it provides CON8P CON6P CON8P CON6P P7 P7 P10 contrast under just about any P10 P12 P12 COM COM good P15 P14 P15 P14 P11 P11 P13 P13 lighting conditions. P15 COIL P15 COIL P14 COIL P14 COIL P13 COIL P13 COIL P15 COIL P15 COIL P14 COIL P14 COIL P13 COIL Note that if you are building multiple displays to be ganged together, (8192) (16384) (4096) (8192) (16384) it’s a good idea to ensure that the magnetic polarity is consistent across all UNDERSIDE VIEW OF COIL UNDERSIDE PCB VIEW OF COIL PCBdisplays, to avoid extra software TOP VIEW OF COIL PCBTOP VIEW OF COIL PCB the complexity. Fig.4: the coil board. Each coil is made from copper on both sides of the board. If different characters have different Solder four 2x2-pin SMD headers to the back side of this board, as shown. pixel black/white orientation, this will The only parts soldered to the top side of the board are the six frame strips which hold the pixel flaps in place. Add numbers in parentheses for each pixel need to be programmed into the softthat you want to be ‘on’ to determine the code used to produce a particular ware, so that it can give a consistent character. For example, 2+8+32 = 42 will give you a caret (^) on the display. display across characters. CON4 C 2019 IC3 L293D CON6 IC4 L293D 1000F + 419111184 8111191 IC5 L293D CON8 IC6 L293D Fig.5: use this PCB overlay diagram and the photo above as a guide to assembling the driver board. Note the location of the headers for CON1 - CON4 and the orientation of the ICs. The two capacitors will need to be laid over to sit under the coil PCB. The female headers are convenient for using jumper wires to a Micromite or Arduino, although you may substitute anything that suits. At right is the Flipdot display main PCB – it may not be immediately obvious that the circles on this board are in fact coils (see inset) which are responsible for “flipping” the “pixel” either white or black. siliconchip.com.au Australia’s electronics magazine April 2019  27 19111182 Flipdot Display Pixel Elements x 16 Fig.6: as with the frame pieces, the sixteen pixel flaps are made from PCB material and come joined together. Cut along the red lines using a sharp pair of side cutters, then separate them at the ‘mouse bites’. You can use a file to gently clean up the rough edges if necessary. The magnets are glued into the grey-shaded holes in the middle of each pixel. SC 20 1 9 pieces, as shown in Fig.3. Carefully break the frame pieces out of the PCB panel. You may find it easier to cut one side out of the panel with side-cutters before separating each element along the perforated mouse-bites. The frame pieces do not need to be cleaned up to work correctly, although they can be filed flat along the mousebite edges if you prefer. The PCBs are made of fibreglass, so any filing should be done outside with a mask, to avoid breathing in fibres. The long, flat edge is visible from the front of the display when mounted, so you may wish to colour this black (eg with a marker or paint) to improve the contrast of the display. Note that while our photos show green frames on our prototype, the final boards (available from the SILICON CHIP ONLINE SHOP) will have a black solder mask instead. The frames sit on the front of the coil PCB but are soldered at the back, so you won’t see any solder when looking at the display later. Line up the edges of the two PCBs; the frame should sit at right-angles to the coil PCB. You will need a fairly large soldering iron tip and be generous with the solder to ensure the fillet bridges the gap. It’s a good idea to solder one of the tabs at the back and check the position before soldering a tab at the other end. You might like to leave just one tab soldered until the flaps are fitted, as this will give a small amount of flex to the frame, allowing the flaps to be slotted in with less effort. 28 Silicon Chip If you do this, though, make sure to come back later and solder at least one more tab on each frame piece, once you have confirmed that the unit works correctly. The coil PCB is probably the most delicate part, as the fine copper traces are near the limit of manufacturing tolerances. The traces run quite close to the edge of the board, and if they are damaged, they will be next to impossible to repair and the display may not work correctly. So be careful with it. On the reverse of the coil PCB, there are pads for four 2x2 pin SMD male headers - see Fig.4. These headers are a similar size overall to their throughhole equivalent. It’s a good idea to push the female header sockets (which will be soldered to the driver board later) over the pins on the SMD headers before soldering them. This way, if too accidentally apply too much heat, they should stay in alignment. The use of surface mount headers here means that the front of the display remains unspoiled by soldered joins. As with any other SMD part, the simplest way to locate the headers correctly is to solder one pin in place, then, after checking that it is in the correct location, solder the remainder. The mating holes for the female headers on the driver PCB are slightly oversize, to allow for minor inaccuracies in the placement of the male headers. Driver PCB construction The driver PCB can be built next. We recommend fitting the ICs first, as their placement is not critical. Refer to Fig.5, the PCB overlay diagram, to see which parts go where. IC1 and IC2 are both 74HC595s and these are fitted at the top of the PCB, with their pin 1 facing down. IC3-IC6 are L293D types, and these go at the bottom of the PCB, with their pin 1 to the left. All six ICs have 16 pins, so take care that they do not get mixed up. We recommend soldering them all directly to the board, rather than using sockets, for reliability (and because the pins of IC3-IC6 carry fairly high currents). You could use sockets for IC1 & IC2 if you really want to. After confirming that the ICs are well seated and correctly orientated, solder all the pins to the PCB, ensuring that you do not put too much heat into the IC. The ground pins on IC3IC6 (the four pins closest to the centre) sit on a large copper area to provide some heatsinking, so these pins may require extra heat to ensure a good solder joint. Next, mount the capacitors. Both are the polarised electrolytic type, so observe the polarity marks on the PCB. The longer leads go into the pads marked with a “+” sign, while the striped side of the can is negative. The smaller 10µF capacitor sits The pixel flaps are a simple press-fit into the holes. Ensure that the colours are aligned as shown, slot one tab in the lower hole and then rotate the flap to snap the other tab into the upper hole. Australia’s electronics magazine siliconchip.com.au (per each 3 x 5 pixel display) 1 black double-sided PCB coded 19111181, 96x58mm (coil board) 1 green double-sided PCB coded 19111184, 96x58mm (driver board) 6 pieces from black PCB coded 19111183, each piece 58x8mm (frame pieces) 15 pieces from black PCB coded 19111182, each piece 19x10mm (pixels) 15 3mm diameter, 1.5mm thick rare earth magnets 4 2x2-way SMD male header [eg, snapped from Altronics P5415] 8 2-way or 4 2x2-way female header sockets 1 9-pin female or male header (CON1,CON3) (see text for details) Epoxy Resin for gluing magnets into flaps Semiconductors 2 74HC595 8-bit shift registers, DIP-16 [Altronics Z8924, Jaycar ZC4895] 4 L293D motor driver ICs, DIP-16 [Altronics Z2900, Jaycar ZK8880] Capacitors & resistors 1 1000µF 16V electrolytic capacitor 1 33µF 6.3V electrolytic capacitor 1 1kW 1/4W 1% metal film resistor Additional parts 1 12V DC 1.5A power supply (higher current may be needed for multi-character displays) 1 Arduino or Micromite board for control 1 set of jumper leads to connect to microcontroller and power supply Note: the four PCBs are available as a set at a discounted price (SC4950) the driver PCB. You may prefer this if you are building a larger display made of smaller modules, although it will obviously be harder to repair any faults. Finally, you will need a way to connect the driver PCB’s input pins to Flipdot Display Driver PCB 19111184 RevC SC IO 12/MISO +5V GND ARDUINO UNO, UNO , FREETRONICS ELEVEN OR COMPATIBLE IO 11/MOSI IO 10/SS CON3 RESET +3.3V IO 9/PWM IO8 GND 33F GND IO 13/SCK CON2 5V GND D LT CK EN AREF 5V GND D LT CK EN SCL CON5 12V GND 20 1 9 SDA +5V a microcontroller and power. There are two headers for this. CON3 has two connections for 12V and ground, while CON1 has six connections for 3.3/5V power, ground and logic-level control signals. CON1 and CON3 are spaced 0.1” 1k USB TYPE B MICRO CON1 DC VOLTS INPUT Parts list 12V GND between IC1 and IC2. You will need to lay it over on its side, as the coil PCB will sit quite close above it. The 100µF capacitor fits between IC5 and IC6. It too will need to be laid over. It does not matter which way the capacitors are laid as there is ample space on the PCB. Fit the female headers next. A good way to ensure that they are mounted square and parallel is to push them over the male header pins on the coil PCB, and use this as a jig to line them up with the holes in the driver PCB. Note that if you fitted the female headers to the back of the driver board (which we don’t recommend) then you could still plug the two boards together. But you would need to modify the software to make it work, since the connections on CON5-CON8 would all be reversed. Our code assumes that these headers are on the same side as the other components, so the driver ICs are sandwiched between the two boards. Ensure that the two boards sit parallel before soldering the female header pins. The holes are slightly oversize, so these pins may need more solder that you might expect. An alternative to using the female headers is to simply solder the male headers of the coil PCB directly into CON4 CON7 C 2019 VIN IO7 IO 6/PWM ADC0 IO 5/PWM IO 4/PWM ADC2 IO 3/PWM 5 3 1 IO 2/PWM ADC3 ICSP ADC 4/SDA ADC 5/SCL 419111184 8111191 6 4 2 CON6 IO 1/TXD 1000F + ADC1 CON8 IO 0/RXD – + TO 12V POWER SUPPLY Fig.7: this wiring diagram shows how the Flip-dot Display can be connected to just about any Arduino-compatible board. The microcontroller needs just four digital outputs to control the display. siliconchip.com.au Australia’s electronics magazine April 2019  29 +5V +3.3V CON3 26 25 24 MICROMITE LCD BACKPACK CON2 33F GND 5V GND D LT CK EN 5V GND D LT CK EN TX 5V CON5 CON7 12V GND RX 1k CON1 20 1 9 GND 12V GND (CONNECTIONS TO LCD) Flipdot Display Driver PCB 19111184 RevC SC CON3 CON4 C 2019 22 21 18 17 419111184 8111191 10 CON6 9 1000F + 16 14 CON8 5 4 3 RESET – + TO 12V POWER SUPPLY Fig.8: a microcontroller with 3.3V I/O can also control the Flip-dot Display directly, such as the Micromite shown here. This is the recommended wiring, which allows you to use our test and sample programs without having to modify them. (2.54mm) apart, so a nine-pin header can be fitted for both, and that is what we’ve done. It can be broken or cut off a longer header strip if necessary. Solder this to the holes on the left-hand side of the PCB. For the first board, which will be wired back to the controlling device (Arduino, Micromite etc) it’s best to use female header(s) for CON1 and CON3, to allow male-to-male jumper wires to be used. But for subsequent boards in a multi-character display, you’re better off using a male pin header for CON1 and CON3 instead. This can then be soldered directly to the CON2/CON4 positions on the adjacent board, which holds the two together and allows the PCBs to butt right up to each other, thanks to the two shallow cut-outs on the edges of the board, into which the header’s plastic block slots. Another option would be to fit a female header (socket) for CON2/CON4 on one board, and a male pin header for CON1/CON3 on the next board, and plug them together. This would make it easier to disconnect the boards later if necessary, but they would then have a gap between them. And you would need to come up with a way to hold them together, since the socket won’t provide enough friction. 30 Silicon Chip CON2 and CON4 are not needed for a single display. You can leave them off at this point, and fit something later after you have tested the unit, if you decide to combine it with additional display boards. Final assembly Now that the glue and paint on the pixel flaps has cured, these can be fitted to the coil PCB’s frames. But first, they need to be removed from the PCB panel. The best way to do this is to carefully cut the panel into smaller pieces using a sharp pair of side-cutters. Take care that the PCB material is quite brittle, and the cut pieces may tend to fly off. Aim away from the body, and use eye protection. Fig.6 shows the recommended cutting locations. Now, without using any tools, break the flaps by hand from the panel along the mouse-bites. We found that the rough edges were generally not a problem, but they can be filed back a small amount (one or two passes only) with a fine file. Again, beware of breathing the dust from the PCB. A good test to check that the pixels are all magnetically aligned correctly is to allow them to attract each other into a single stack. If all the flaps show the same colours on the same side, Australia’s electronics magazine then they are aligned magnetically. The pixel flaps are simply a firm press fit into the frames. Line up the colours so that the white side of the flap is adjacent to the white side of the coil PCB and the black side of the flap is adjacent to the black side of the coil PCB (see photo). Sit the bottom tab into the hole in the frame, and then gently rotate the upper tab into the hole. Once all the flaps are installed, check that the pixels will all flip freely. This can be done by rotating the entire assembly in your hand and allowing the flaps to move under the influence of gravity. Connect the coil PCB to the driver PCB by plugging the headers together. The assembly should sit upright on its bottom edge, with a very slight backwards tilt. The backwards tilt will help the flaps to stay in their last driven position. Connect the micro The final step for testing is to connect a microcontroller to control the pins. You will also need a source of 12V DC, with preferably at least 1.5A capacity. The ground and 12V supply are connected to CON3, while the 3.3V/5V power and logic signals go to CON1. See the diagrams for either the Arduino (Fig.7) or MicroMite (Fig.8) to siliconchip.com.au A small amount of epoxy resin is all that is needed to hold the magnets in the flaps. The steel panel (underneath) keeps the magnets flush, and the plastic inbetween stops the magnets sticking to the steel. suit what you are using. If you are using a microcontroller which has been previously programmed for other purposes, we suggest that you re-program it with the software for this project before wiring it up, since if it drives the enable pin high without resetting the latch ICs first, that could cause the driver ICs to overheat. Testing Our first test program for either the Arduino or Micromite just cycles between all pixels white and all pixels black. Load this into your micro board (at this point, we’re assuming you’re comfortable working with Arduino or Micromite modules). Both programs define which micro output pins control the flip-dot display via constants at the top of the program code. The pin configuration can be changed by changing the #define or CONST values. The default pins are grouped together, in order, for simplicity of wiring. Check that the board works as expected and that the driver ICs and the coils don’t get hot. They may get warm, but if any are too hot to touch, something is not right. If this case, there may be a wiring problem or the driver PCB may be assembled wrong. For example, swapping the clock (CK) and latch (LT) lines between the micro and driver board will cause problems. If you see multiple pixels flipping at the same time, that is also a sign that the wrong data is being received from the board, pointing to a wiring error siliconchip.com.au between the micro and the driver PCB. Depending on the rating of your power supply, a fault may cause the L293Ds or the coil PCB to get very hot. Take care when touching the display if you suspect a fault. Once you have confirmed that it’s working correctly, check that the pixels flip in sequence. If you find one or two are not turning over correctly, the tabs at the end of the flaps may be catching against the adjacent pixel. In that case, remove any sticky pixels by gently pushing them down against the frame and tilting them out of the mounting holes. File the ends with just one or two passes of a file, again being wary of the PCB dust. Double-check that the other pixels are seated correctly in their mounting holes and that they can rotate freely. Then refit the ones you filed, ensuring that the colours line up correctly. You may find that they will operate more smoothly after bedding in (ie, running the test program for a while). Once you are happy with the operation and wiring, try the other example programs. The Flip-dot ASCII 2 example sketch also contains a routine that only changes pixels that need to be changed, improving the update speed and reducing the power requirement. Using the display Both the Micromite and Arduino programs make use of a 16-bit value to store the displayed data for a single board. Fig.4 shows the bit mask values of each pixel. To create a particular configuration, add up the values for each pixel that you want to be black and ignore those which you want to be white. The resulting number represents that configuration and can then be used in the software. If you find the colours are reversed to what you expect, then there are constants defined at the start of the program which can be changed to reverse the colours. Check the comments in the files to see. This can be caused by all the magnets being reversed relative to what the program expects. So it’s entirely possible that you will have to change these constants. Multi-character displays As mentioned earlier, multiple displays can be chained together to make Australia’s electronics magazine a larger display by fitting a male header for CON1/CON3 on the second and subsequent boards and soldering these to the CON2/CON4 positions on the adjacent board. This results in all the control and power pins being connected in parallel, except for the data pin. The data out signal (pin 3 of CON2) connects to the data in signal (pin 3 of CON1) on the subsequent board, so that serial data passes from one board to the next and therefore, the controlling micro can independently set the state of all pixels in the chain. Note that the enable pull-down resistors of connected boards are effectively connected in parallel, so you only need to fit this resistor to the first board (ie, the one that will be connected to the micro). The coil PCBs can also be joined by soldering the tabs of the frame PCBs on adjacent boards. This can also be done to connect multiple rows of boards vertically. While a single Flip-dot display is modestly sized by itself, with four or six units placed side by side, you could create an attention-demanding clock which gives you a gentle audible alert every time the minutes or seconds digit changes. With multiple displays, each panel is capable of updating one pixel at a time, so the update time does not increase as you add more characters, as long as your power supply is capable of supplying enough current for all the displays to be driven simultaneously. 12V supply You may need a 12V supply capable of several amps for a multi-character display, and we recommend that you parallel the 12V bus with wires that have a decent current-carrying capability, to help deliver that extra current to all the boards. The software uses the shift registers to shift in the new data for each panel, then toggles the global enable line and they all update in sync. The largest and most complicated sample program provided allows you to define the number of characters in your display, then update them all with a new text string as required. Note that lower case letters in this string are automatically mapped to upper case, since those are much clearer when displayed on a 3 x 5 pixel matrix. Numbers and symbols are left as-is. SC April 2019  31