Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
MikePinball

Pin2DMD for < $125 - DIY

Recommended Posts

This thread explains how I built my own Pin2DMD for less than $125. This isn't for everyone but if you have soldering and electronics skills then you should be able to do it.

I have added further details and clarifications to what is already documented on the Pin2DMD website.This is also partly a tutorial and to describe lessons learned. Comments are welcome on what I did right (and wrong).

My thanks to creators of Pin2DMD. If you want a ready built Pin2DMD then I can recommend looking at Dan Pannell's topic where he is selling a few panels.

There are four major steps, each of will be described below:

  1. Order parts
  2. Solder Shield PCB and Nucleo-144 development board
  3. Assemble hardware components
  4. Powering up and testing

Share this post


Link to post
Share on other sites

Step 1:  Order Parts

a) Order LED Panels

To build a DMD display you need two 32x64 RGB LED panels. The LEDs should have a 2.5mm spacing, otherwise known as P2.5. The best place (and seems to be only place) to get these panels is AliExpress.com. It took four weeks to receive the panels so this should be done first. I ordered these panels and received two discounts and saved $7. The first discount was for being a first time customer of AliExpress and the second from the vendor. The total cost was $47.05 with free shipping.

The panels come with the necessary cables including:

  • Two 16 pin IDC jumper cables. You only need one of these to connect the two panels together. I choose to piggy-back the PCB onto the first panel so the second cable was not required.
  • One  5V power cable with Y connections to the four power pins (two 5V and 2 ground) and two spade connectors that can be used with mounting posts.

The picture below shows what I received. Note particularly the pattern of the 6 screw holes (marked in red), and the raised placement buttons (marked in white) on the back of the LED panel.  

Pin2DMD-01.thumb.jpg.013b68758b38707ce333287d4ab59dc0.jpg

b) Order Black Plastic Frame

I decided to mount the LED panels in a plastic frame. Without having seen the panels ahead of time, I ordered the panels as given on the Pin2DMD website in the Arcyl frames folder.

I ordered from Ponoko.com. It looks like the SVG file was setup for ordering from Ponoko because it uses their medium size template to get 3 frames. With a first time user discount, the 3 frames cost $19.81 including shipping.

Unfortunately the frame did not match the LED panels I received. The screw holes have a different placement and there are no holes for the two locating pins on the panel (as shown in the picture above). Luckily I was able to drill the additional holes I needed without cracking the plastic. When I have some more time, I will investigate updating the SVG file and submitting a new one for posting on the Pin2DMD website.

c) Order Shield PCB

PCBs can also take some amount of time to arrive from China. I use Elecrow to make the PCBs. I ordered 5 PCBs using the cheapest shipping option and they arrived 3 weeks later. The total was $12.07. You can pay more for shipping to get the PCBs quicker.

I took the Eagle design files for the Nucleo-144 shield from the Pin2DMD website and modified them as follows:

  • All of the 5V and ground traces were thickened to 24 mil
  • Added micro SD socket (note this requires SMD soldering with 1.1mm pitch pads
  • Added SIL 10K resistor for the 6 pullups needed on the SD socket

Note that the original header for the WaveShare micro SD breakout board is left in place. The picture below shows the modified PCB:

Pin2DMD-02.thumb.jpg.206d142fe1a000fce50bb5bb5c759fd4.jpg

d) Order electronic parts

Because I only intended to use the DMD for virtual pinball, I did not need to populate all of the PCB. I decided not to include the following items:

  • CR2032 battery backup
  • RS232 interface
  • CAN interface
  • Headers for GO-DMD sensors
  • Real pinball input and real pinball signal enhancer
  • HUB-75 extension socket

I did add the optional ESP8266 wifi module. This will be discussed in a separate thread.

The Nucleo-144 is an ARM development board from ST Microelectronics where the 144 signifies a 144-pin chip. Note that there actually many different kinds so make sure you order the one with STM32F429ZI version of the processor. The board actually includes the device programmer which is at the opposite end of the board to the Ethernet socket.

Here is a list of the parts ordered for the PCB:

  • ARM STM32 Nucleo-144 development board with STM32F429ZI MCU - Mouser ($23.00)
  • Amphenol SMD 1.1mm pitch 8 row micro SD connector (1140084168) - Mouser ($1.50)
  • Bourns SIP 2% 10K 7 resistor array (4608X-AP1-103LF) - Mouser ($0.63)
  • Mouser shipping (7.99)

The remaining parts I already had and did not need to order:

  • 2 x 8 pin Arduino long-legged socket - Free (from parts bin)
  • 4 x 36 pin female socket (40 pin cut to size) -Free (from parts bin)
  • 4 x 35 pin male header (40 pin cut to size) - Free (from parts bin)
  • 1 x Green LED, 470R, 10K, 100K resistors - Free (from parts bin)
  • 2 x pushbutton click switches - Free (from parts bin)
  • 1 x 5 mm 2 pin terminal block  - Free (from parts bin)

Share this post


Link to post
Share on other sites

Step 2:  Solder Shield PCB and Nucleo development board

e) Prep Nucleo-144

In order to use the Nucleo-144 development board on the Pin2DMD shield, it needs to be modified as follows:

  • Snip pins on the ZIO sockets under the board – these are not used and get in the way/can cause unwanted shorts
  • Solder in dual header for “outside”  pins – 2x35 pins. Note that the 36th row is already populated with a 2-pin header and a jumper to connect the two ground pins.

The area in red in the picture below shows the pins that need to be cut:

Pin2DMD-03.thumb.jpg.27ba55b00be3a51a6a8cd7b333d38c4e.jpg

At this stage I also updated the firmware on the board and downloaded the Pin2DMD firmware. Note that you must plug the USB cable into the end that is opposite to the one with the Ethernet socket. After programming, the USB cable can be moved to the other USB socket because that is the one used for all of the DMD commands from the PC.

f) Solder HUB75 socket for LED panel

I used two 8-pin Arduino stackable headers for the HUB75 socket. I didn’t know the exact height placement so I plugged them in the headers  on the LED panel one at a time and then put the PCB on top to get the correct height. It is somewhat fiddly to do as it is hard to see the holes for the pins. After doing the second one, I ended up with a result like this:

Pin2DMD-04.thumb.jpg.6736caa10570253a8b28b0836398b85a.jpg

As you can see about half of the length of the pins are sticking out below the board next to the female header and the other half of the pin length is either in the PCB or above it. You could crop off the extra length but I left it because it doesn’t hurt anything.

g) Solder remaining parts

Now all of the other parts can be soldered starting with the SMD parts. The ESP2866 wifi module is relatively straightforward as the pins are large and well-separated. The micro SD socket has 1.1mm spacing of pins and is a little harder if you haven’t done it before. Note that the original header for the WaveShare micro SD breakout board is still available but unused on my board .

The completed board is shown below. Apart from the sockets for the Nucleo-144, I only soldered what I needed for virtual pinball (shown in white). The ESP2866 is shown in red. Missing from the picture is the SIL resistor array which I put on the bottom of the PCB.

Pin2DMD-05.thumb.jpg.8264e0615f16900597d327318c9c2f60.jpg

 

Share this post


Link to post
Share on other sites

Step 3: Assemble hardware components

h) Add LED modules to plastic panel

The LED modules need to be screwed to the panel. I used 4-40 screws but elsewhere I have seen them mentioned as M3. The #4 screws were plastic and seemed to hold. I used plastic because metal can be a problem as some of the screws can touch the back of the shield PCB.

Below is a picture of the frame. Note the arrows for the ordering of how the LED panels are connected and also the jumper cable between the two panels. The power plugs only fit one way around. If you look closely you can see where I had to drill out the holes in the panel because they were in the wrong positions.

Pin2DMD-06.thumb.jpg.48843244d1e890a1317e29235b845c8c.jpg

i) Add shield and Nucleo-144 development board

The next step is to attach the shield to the “first” LED panel. Here is a view of the panel with just the shield and no Nucleo-144 development board. I added this picture because I couldn’t find anyone else who had posted what this looks like. Note the cutout in the PCB to accommodate the power socket on the LED panel.

Pin2DMD-07.thumb.jpg.380e0801456e1aa33b1cbc08ae9a5ca7.jpg

j) Power wiring

I didn't like the Nucleo shield to be powered from the USB socket when the LED panels didn’t have power. Therefore I wired the shield board power and LED panel power together. The picture below shows the completed module.

Pin2DMD-08.thumb.jpg.695a9fd361b477dc888618c84710663f.jpg

At the end is a two pin “quick plug” that is typically used in radio control. This allows me to disconnect the DMD completely from the rest of the cabinet. The black leads (ground) are connected using a simple crimp connector. The red leads (5V) use spade connectors into an inline ATC fuse rated for 5A.

Note the Nucleo-144 development board needs to be modified in this configuration when 5V power is coming from an external source. The jumper (as shown by the red arrow), needs to be moved over to the “E5V" (external 5V) position.

Share this post


Link to post
Share on other sites

Step 4: Powering up and testing

k) Power on

I connected the module to 5V and all I saw was a few random LEDs turned on. That randomness changed as I modified the input voltage slightly. I realized that the controller was not operating correctly but initially didn’t understand why not.

It turns out that I forgotten to put a freshly formatted micro SD card in the socket. You can format these cards on your PC quite easily given the appropriate adapter or USB dongle. Windows will default FAT32 for anything up to 32GB. Above 32GB (which is much more than you will ever need), a special program is needed to format the SD card.

On power up the module shows the firmware version number (2.60) and then a demo screen for a minute that includes the website name (www.pin2dmd.com) and color bars.

l) Connection to a PC using Pin2DMD.exe

The module is connected to a PC using the USB socket at the same end as the Ethernet socket. At that point you can install the LIB-USB-WIN32 driver. Make sure the device name “PIN2DMD” is selected. If the device name of "PIN2DMD" doesn't show then you have done something wrong.

m) Activation

After power on for approximately one minute, the screen will then alternately show the demo screen and the activation code. Here is a picture of what the activation code looks like (with part of my code blocked out).

Pin2DMD-09.thumb.jpg.9e6272efdec10b71b495093bc6fa6c55.jpg

I received the key file from “Lucky1” by sending him a tip (minimum of 10) with the activation code and my screen name on vpuniverse.com. I found that he was very responsive and I got the code in approximately 6 hours (on a holiday). I downloaded the key to the micro SD card and the activation message disappeared.

n) Download test picture

I used the Pin2DMD executable to change the color palette and screen brightness. I used the command line version and the option “i” to download a “Black Knight” test image as shown below.

Pin2DMD-10.jpg.e89388e8c3523776acf5400d89440353.jpg

The next step is to try it out with some actual tables.

Share this post


Link to post
Share on other sites

 thanks for sharing. this is a great step by step for anyone looking to build their own.

Share this post


Link to post
Share on other sites

I have fixed a couple of problems on my first PCB and I have made it available in this append for anyone who wants it. As a reminder the "*ONLY* change is the addition of a SMD socket for the micro SD card and a SIL resistor array. If you are not familiar with SMD soldering then I would use the original PCB design. This PCB design has no warranties and you should verify before using it.

Mike Pinball

PIN2DMD_Nucleo144-MikePinball-20190106.zip

  • Like 2

Share this post


Link to post
Share on other sites
Posted (edited)

I don't have much experience with ordering PCBs, however I have ordered once on another project from PCBs.io.  They accept both Eagle board files, or Gerber files, so I ran a little experiment.

I downloaded the latest AutoDesk Eagle (v9.4.1) for Linux and attempted to generate a set of Gerbers myself.

When launching the CAM Processor and using the Elecrow_Gerber_Generater_DrillAlign.cam template found on Elecrow's Wiki (which generates a combination of EXCELLON Drills&Holes and GERBER_RS274X files), I get the following Mixed CAM Job warning:

Quote

This job contains a mix of legacy and new CAM outputs which may result in layer misalignment.
Tip: Right click on legacy sections to update to the new format.

When I upload these Gerbers to PCBs.io, the resulting stencils are not identical (especially the drill holes) to that of uploading the .brd file directly.

As an additional experiment, I uploaded the originals provided by lucky1 directly to PCBs.io:
https://github.com/lucky01/PIN2DMD/raw/master/hardware/V4 NUCLEO-144/PIN2DMD_Nucleo144.brd
https://github.com/lucky01/PIN2DMD/raw/master/hardware/V4 NUCLEO-144/V4 GERBER.zip

Maybe PCBs.io is just not very reliable at converting Gerber files or perhaps they require a slightly different format, as the resulting thumbnails were quite different.

Since I'm not sure if it's possible to provide Eagle files directly to many PCB houses, I'm wondering two things:
1) Would it be possible for you to also provide Gerber files similar to lucky1?
2) Do you think it would be possible to reference a previous order number with Elecrow (one that you were happy with the results), so that Elecrow are not starting from scratch every time one of us uploads your files to them?

Many thanks to you and @lucky1 for the excellent work here!

 

EDIT: After reading a thread on EEVblog, I installed and viewed the Gerber files in Gerbv. The output looks good after editing the drill file format, so I suspect something is amiss with the PCBs.io rendering process.

Edited by skyblaster

Share this post


Link to post
Share on other sites

I have another run of evos coming up, so if you are concerned to order yourself you might want to send me a pm. ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...