Posts

Game Plan Star Trip: Interfacing with the lights

Image
LDR-1 (Light Driver) Next up is the LDR as if I lock on one of the lights it won't burn up like a coil. The process of driving the LDR is very similar to driving the SDR so I should be able to take my learnings onto driving the SDR in the future. The LDR has three 74HC4514  ICs. These ICs have 4 input pins which can configure one of 16 outputs to be active, giving a maximum light count of 48. The Star Trip pinball machine has less than this so some outputs are not connected. The IC also has an enable pin which when set to HIGH will disable all the output pins. The original MCU had the 4 input and 3 enable pins connected via J2. By pushing all three enable pins HIGH the LDR will disable all the lights. The idea of the LDR is you set the 4 pin input to an individual light number, enable the correct 74HC4514 chips enable pin (corresponding to the light you want to light). If you want to turn on multiple lights at once you actually turn on and off each individual light re...

Game Plan Star Trip: Interfacing with the switches

Image
Switches In this first detail blog on bringing my Star Trip Pinball back to life I will cover the pinball switches. The switches are the only item that connected directly to the original MCU-1 Board without a driver board in between. As with most non-modern pinballs the switches are wired as a matrix. You can read more about switch matrixes  here . I recreated part of the original MCU board, in order to interface with the switches, in the same way the old MCU did. While it may have been possible to detect the switches using a different/simpler circuit I knew that if I replicate the circuit from the MCU it should work just fine without changing the existing wiring and switches. The Circuit The original circuit was using two LM339  voltage comparators to read the lines and a single 74HC154 to drive the strobes. Both of these ICs are still available at the local electronics store. The circuit is pretty simple when you boil it down. Lets take a deeper look int...

Bringing a Game Plan Star Trip back from the dead

Image
Game Plan Star Trip So I recently acquired a Game Plan Star Trip which had MCU issues. No life on the MCU. After testing voltages, checking clocks, replacing capacitors and transistors for a few days my next move was to start ordering some replacement ICs. Not knowing if it would lead to a resolution and deciding that I didn't have the knowledge to go any further with debugging this MCU board I shelved it. Next plan was looking into finding a replacement. Some searches turned up some old posts which had Jim Francesangeli from Echo Lake Pinball Service & Sales selling a replacement MCU board. After contacting Jim my name was on the list to get a replacement board, but it could be 12 months before the next batch is processed. In the mean time I have a pretty cocktail pinball machine that does nothing but lights up. So my interim plan is to get this thing going by building a replacement MCU myself. I will probably still order the board from Echo Lake Pinball...

MPF Unittest automation with Bitbucket Pipelines

Image
The Mission Pinball Framework ( http://missionpinball.org ) supports unittests ( http://developer.missionpinball.org/en/latest/testing/index.html ) which is super awesome.  We all should be writing and running unittests for the code we write, even if thats just writing yaml files for MPF. First off running the unittests in your local development environment should be as simple as a single command: Python -m unittest I do not recommend away from runing the tests locally, in fact I will in the process of explaining how to use Bitbucket Pipelines ( https://bitbucket.org/product/features/pipelines ) I will give you a quick script that you can use to ensure the code your about to commit "should" pass in pipelines. So if we can run the test locally why use pipelines? Well humans are forgetful, its likely over the long period of time that I will be building a pinball machine I am going to forget to run tests so I want a way that ensures they get run and what is easier tha...

Using Trello to track progress

Image
If you follow any other custom pinball blogs you will realise that building a custom pinball machine is a long process, with many of life events halting progress. As I have two little ones that will always take priority over building a pinball machine, it is totally inevitable that I will have down periods. Which will only ever lead me to forget where things are up to and what items remain. With this in mind I have decided I should use tools to track my progress. It is no secret that I work for Atlassian and while I use JIRA day to day to track my work I don't need something so structured to track things at home. Since we acquired Trello at the start of the year it makes perfect sense for me to use the tools we make at work. Trello has the benefit of unstructured workflows, providing a simple to use Web and Mobile interface to just do what is needed, keep track of things. The first thing I setup was the lists (or swimlanes for those familiar with sprint style agile develop...

Pinball Compute Setup

Image
First off the computer I am using is an Intel NUC . I got the NUC5CPYH with a 120GB SSD and 4GB RAM, which I hope will be enough power but should at least get me developing and I can upgrade to a bigger unit in the future if needed. My intention is to develop from my primary iMac or my laptop and use remote connection (VNC) to access the NUC. This blog is to outline some of the process I went through in setting up my NUC and environment to work with it. I am going to use Linux (Ubuntu) and to keep the OS as light as possible I will use the Xubuntu variant as this installs the XFCE window manager by default which is lighter than the normal Unity Window Manager. TIP: There are good docs on setting up Mission Pinball here:  http://docs.missionpinball.org/en/latest/install/xubuntu.html  However I went a little off script in setting up Mission Pinball Framework as I wasn't too keen on their installer, it installs the python packages into the system python instead of creat...