SmartDmd is a software that runs on a Rapsberry Pi. It displays DMD images on a screen. But it also does much more
Pinball Browser can be used to colorize images, receive and display DMD images througth the network, configure the system, and more...
Installation
- You can download a ready-to-use SmartDmd image here (v2015-06-28) and flash a 4Gb SD card with DiskImager. You can update this image with the latest SmartDmd executable : v2015-11-04 (beta version) (just replace the executable on your SD card).
The previous version (without the "side-channel" feature, for Raspberries that don't support the turbo overclocking) is here : v2014-10-06.
Display features :
- Display DMD images on any screen (HDMI or video composite)
- Several display modes are available (Raw, Upscaling 2x, Upscaling 16x, Anti-aliasing) ! See examples here
- Display colorized images (16 colors per image, and a different palette can be specified for each image).
- Pinball Browser now has an embedded editor to colorize images. When you select a SmartDmd palette for a specific image, it will also generate a macro so that your can share your mods
- Define as many color palettes as you want with Pinball Browser (15 for side-channel mode); choose the default one for images that are not colorized with Pinball Browser
- In-Frame and Side-Channel color modes (see here)
- Display background bitmaps
- Adjust the DMD dot and shape with Pinball Browser (many models provided or design your own with the integrated editor)
- Choose your screen resolution, orientation, borders, ...
Network features : (wired network or wifi)
- Broadcast your pinball Dmd over your network : any computer running Pinball Browser can display it
- Post DMD snapshots on your Facebook wall
- Change the SmartDmd configuration througth the network with Pinball Browser (and a samba share on the Rapsberry) while SmartDmd is running. The following video show this feature :
Pinball compatibility
- 'SAM' Stern
- Data East (thanks to pinsider Winteriscoming)
- Williams/Bally (thanks to Tatanka1961)
SmartDmd should be compatible with other pinballs in the future
What you need :
- The last version of Pinball Browser and the SmartDmd executable (see above)
- a compatible pinball (see above)
- a Raspberry Pi (model A, B, or B+; not v2 !) with a SD card
- a SmartDmd adaptor or a "DMD Extender" board or a custom cable (described below)
- a SmartDmd license (actually not needed for tests)
and optionaly :
- a screen :-;
- a "side-channel" cable
- a network cable if you want to broadcast your DMD over your network to see it remotely with Pinball Browser, and configure SmartDmd without having to remove the Raspberry SD card.
Ready-to-use kits
PinballMikeD provides a nice kit : See here
This kit includes everything (LCD panel, Raspberry, SmartDmd adaptor, Software, ...).
SmartDmd adaptor
The SmartDmd adaptor is a small PCB that can be plugged on the Raspberry.
It has 2 connectors : 1 for the pinball and 1 for the DMD.
If you want to order one, see here
SmartDmdAdaptor-579.jpg
The adaptor also works with the Raspberry B+ :
Raspberry B+.png
Custom cable
If you don't use a pre-build adaptor (SmartDmd adaptor or DMD Extender), you can build your own cable. You will need the following components :
- a 14-pin HE10 connector that will be crimped on the SAM-DMD cable (example). For those who don't want to crimp anything on the orginal ribbon, there is a solution with male connectors (but hard to find)
- some resistors and 2 HE10 headers (examples : Resistors and Header)
- a ribbon cable (like the one you have in old PC to connect a floppy : example here)
- No PCB or breadboard, just some welding skills...
- The pinout can be seen on the photos below. The connections are as follow (some of them are optional but might be used in future versions of SmartDmd) :
<br />
Pinball Header => RPI Pin / Through resistor<br />
1 => Not connected<br />
3 => 23<br />
5 => 21 (optional)<br />
7 => 19 (optional)<br />
9 => 15<br />
11 => 13<br />
13 => 11 (optional)</p>
<p>For the ground, it is pin 14 and 20 on the Rpi, and all even pins (2,4,...14) on the pinball<br />
I have used the following ones to keep the connector simple :<br />
8 => 20<br />
14 => 14</p>
<p>
How it works :
The DMD signals are taken from the SAM board.
Resistors (along with Raspberry embedded clamping diodes) are used to adjust the SAM signal level (5v) for the Raspberry (3v). Purist won't like it, but many commercial products are doing the same :-; Also note that it will work without these resistors (Raspberry also have them) but it's safer to have them :-;
SmartDmd app is running on linux in real time mode to sample and decode the DMD signals; this app is fully written in C.
It displays the DMD on the screen and deals with network operations.
It works on a linux Raspbian distro, so you also have all the convenient tools that go with it (ssh, samba, ...)
You can stop the app with Ctrl-C, change the config througth network and restart the app (no need to remove your backglass to change the config)
Miscellaneous :
- Only "rom" images can be colorized; images that are dynamically build by the firmware will use the default palette
- I'm currently merging this with another project : Scores on PC
It will be possible to display the current player score above the emulated DMD (in fact, anywhere on the screen as an overlay); usefull for an apron isn't it ?
- When you use both the pinball DMD and a screen, images with specific color palettes might show some corrupted pixels (on the original DMD only); I'm trying to make a firmware patch to hide this
- The upscaling alogorithm I use is not the best one : it's a tradeoff between quality and available cpu time; it will be improved in the future
What do you think about it ?
Without Upscaling :
NoUpscaling.jpg
With Upscaling :
WithUpscaling.jpg
Installation :
Install1.jpg
Install2.jpg
Install3.jpg
Connectors.png
Configuration :
Config.png
with a custom dot :
ConfigCustomDot.png
Image edition in Pinball Browser :
EditImage.png