8/14/2016: Cost Smackdown – OPP vs Fast vs P-ROC

I’ll try to make this as factual based as possible.  I originally did the above style article comparing the original boards with P-ROC.  (I’m not sure that Fast existed at that point.)  Here is a link to the old article that still gets a good number of hits.  P-ROC versus open pinball project solution.

Here is the current state of affairs.  I’m going to try and be as fair in my assessment as possible, but I’m sure I will tend towards the stuff that I designed because, well, I would have designed it differently if I thought there was a better way.  The OPP hardware is based on the fact that I wanted the absolutely lowest price.  I tend to buy machines that other people have cast off and decided were unsalvageable.  Because of this, I don’t want to spend a ton on a controller.  Pinball is a hobby for me, and I personally don’t want to spend a large amount of money on something that is a hobby.  I do it for fun, and not for any personal gain.  The only money that I’ve ever made back from pinball is by getting free entrance to Pintastic for the weekend, and when I give a talk, I tend to hand out more free stuff than the value of the multiple day pass.

OPP board prices can be found in Gen2Board.pdf.  For basis of this comparison, I’m using the following costs for each OPP board:

  • PSOC4200 – processor board – $4.25
  • Solenoid Wing – 4 solenoids/4 inputs – $4.22
  • Input Wing – 8 direct inputs, just a connector – $0.29
  • Interface board – includes 40 pin header for attaching boards – $3.06
  • Incandescent through-hole board – 8 incandescent/LED bulbs – $2.37
  • Incandescent SM Low side driver – 8 incandescent/LED bulbs – $1.78
  • Incandescent SM high side driver – combined with above to form light matrix – $2.20

Let’s first go though all the available cards from each of the manufacturers and see how they stack up.  I’ll go in alphabetical order to be fair, so Fast is the first one.

Fast

Fast pinball has the following controllers:  they have controllers called Fast I/O 0804, Fast I/O 1616, Fast I/O 3208.  The first two digits is the number of inputs, and the second two digits is the number solenoids.  For examples, Fast I/O 0804 has 8 inputs and 4 solenoids.

0804:  The closest board that OPP could simulate to this one is a 1204.  That would contain a PSOC 4200, interface board, 1 solenoid wing board, and 1 input connector.  The Fast board costs $59.  The OPP setup would cost $11.82 and has an extra 4 inputs.

1616:  That’s a full up OPP board with 4 solenoid wing boards and interface card.  100% match.  The Fast board costs $159.  The OPP board costs $24.19.

3208:  OPP can’t quite match this, but the closes would be is a 2408.  That would contain a PSOC 4200, interface board, 2 solenoid wing boards, and 2 input connectors.  The Fast board costs $159, the OPP board costs $16.33.

One big hole I see in the Fast stuff is that I don’t see anything that you can easily drive incandescent/LED bulbs and flashers.  Yeah, you could use regular drivers, but that is really, really expensive.  Sure, Fast has RGB LEDs, but I would probably use a FadeCandy board to control such things.  Seems like a hole.

Their Fast RGB/LED insert product is interesting. It would make mounting really simple.  The downside is that you still need to solder three wires to each pixel.  That would get tiring really quickly.

Multimorphic/PROC

Multimorphic or Pinball Controllers have the following boards:  PD-16 (16 solenoids/16 inputs), PD-8×8 (8×8 lamp matrix), and SW-16 (16 inputs board).

PD-16:  This is equivalent to the Fast 1616 board.  Multimorphic charges $100 for the board, and the OPP equivalent was $24.19.  The price on this board is not actually too bad.  The only problem is really that I don’t like the density of it.  I don’t have any spots in my machine where I have 16 solenoids in one group.  Maybe if I had a newer machine with more features, this board would make a lot of sense.

PD-8×8:  8×8 lamp matrix.  Gerry argues that switch matrices don’t make any sense, but then sells a lamp matrix.  (Yeah, a lamp matrix is easier to debug).  So doing a lamp matrix with OPP boards requires a PSOC 4200, interface board, high side incandescent driver, and low side incandescent driver board.  Multimorphic charges $100 for the board, and the OPP equivalent costs $11.29.

SW-16: Simple 16 input board.  This is equivalent to a PSOC 4200, interface board, and 2 input connectors.  Multimorphic charges $60 for the board, and the OPP equivalent costs $7.89.

OK.  None of this stuff is an apples to apples comparison.  The OPP boards, you have to solder them yourself.  Each board takes 5 to 8 minutes to solder, so that is a major pain in the butt.  I accept that.

Many of the OPP boards that I’ve quoted above have extra wing board positions.  (Each processor board supports up to 4 wing boards and the interface board does not count).  The processor and interface board are already built into the prices, so with the extra positions you can add even more functionality.  That’s another big difference.  The OPP boards are much more modular by design.  I tend to put the boards that I need where they need to be.  That means my wiring is really, really short.  My wiring is very easy to diagnose, because most of my wires are less than 8 inches in length.  Put a board where it makes sense, not where it is required because the boards force you to make inconvenient decisions.

Both the PROC system, and Fast system require a RS485 interface board which adds another $5.  This is the best case scenario assuming that you don’t need a USB to serial port converter because that adds yet another board.  If using something like a Raspberry Pi, you can simply use the output of the embedded serial port straight into the RS-485 interface board.  The PSOC4200 prototype board comes with a USB to serial connector, so that interface is already built the system.

Let’s move on to some real world examples.  These include SharpeShooter3 (early 80s solid state pinball machine), Jokerz (late 80s DMD alphanumeric displays), and The Addams Family (just because everybody knows this machine).

SharpeShooter3 Comparison

The SharpeShooter3 pinball machine requires 31 inputs, 10 solenoids (with 10 direct inputs), and 43 incandescent bulbs.

The Fast required hardware would be a 3208, and two 0804s just because I need the extra inputs.  So that ends up being $159 + (2 * $59) + $5 = $282.  At that price, it hasn’t given me the 43 incandescent bulbs that I need to drive, so I’m quite a ways from actually having a working pinball machine.  Frankly, I don’t necessary want to change all of my incandescent bulbs into RGB LEDs, so I’m not sure what I’m supposed to do.

OPP ended up being 4 processor boards with the following:  4 interface, 3 solenoid, 6 incandescent, 5 input connectors.  The 6 incandescent wing boards allow me to keep those boards close to the lamps that they are controlling.  If I had a lamp matrix, all of that wiring would need to go towards one single card, which would make the harness that much more difficult.  The total cost for the OPP boards is $59.42.

Multimorphic ends up requiring a PD-16, PD-8×8, 2 SW-16 and an RS-485 interface board.  The total for that ends up being $325.  To make it as cheap as possible, I ended up using a lamp matrix, which I’ve already mentioned my displeasure.

Jokerz Comparison

So I know a couple of guys doing Jokerz rethemes.  For one of them, I went through the manual trying to figure out everything that was needed to drive the playfield including all the flashers.  So the Jokerz playfield has 19 solenoids (includes direct inputs), 39 inputs, 63 incandescent bulbs (which includes 9 flashers).  The ramp that raises/lowers is a simple direct motor drive with a limiting switch on each end.  At first I thought it was going to need to be an H-bridge to move the motor in both directions, but seems pinball machines tend away from such things and use cams.  Using cams makes the electronics easier because you don’t drive the motor in two different directions, and way back in the 80s/90s they didn’t have an H-bridge available to drive the motor in two different directions.  Other examples of this that I know off the top of my head include the ship motion in Pirates of the Caribbean, Thing in The Addams Family, and the bookcase in The Addams Family.  With a cam, all you do is run the motor until you see a limit switch close, then you know that you are in the final position.  To go to the other position, run the motor again until the next limit switch is detected.  You use what you have available in the machine without adding more electronics.

The Fast required hardware would be two 3208s, and a 0804.  So that ends up being (2 * $159) + $59 + $5 = $382.  At that price, it hasn’t given me the 54 incandescent bulbs and the 9 flashers that I need to drive, so again, I’m a long way from home free.  I once again don’t know where I’m supposed to go from here.

OPP ended up being 5 processor boards with the following:  5 interface, 4 solenoid, 8 incandescent, 5 input connectors.  The 8 incandescent wing boards also have enough power to be used as flashers, so I don’t have to waste expensive high current drivers on those things.  The total cost for the OPP boards is $80.73.
Multimorphic ends up requiring a 2 PD-16, PD-8×8, 2 SW-16 and an RS-485 interface board.  The total for that ends up being $425.  There are enough extra drivers to be used for the flashers, so that works out well.  The lamp matrix is used fro all the normal incandescent bulbs.

The Addams Family

It seems like it consists of the following hardware:
26 solenoids (includes flashers for motors)
4 illumination circuits

6 flashers

63 incandescent bulbs
40 inputs (tried to remove all inputs that directly control solenoids).  Note:  This number

may not be exactly right because I haven’t really spent more than 15 minutes to look at the manual.

The Fast required hardware would be a 3208, two 1616s, and a 0804.  So that ends up being $159 + (2 * $159) + $59 + $5 = $541.  Again, no solution for incandescent bulbs.  I ended up simulating all the necessary drivers for solenoids/illumination circuits and flashers as driver circuits.
OPP ended up being 6 processor boards with the following:  6 interface, 8 solenoid, 9 incandescent, 5 input connectors.  The incandescent wing boards also have enough power to be used as flashers, so the can be placed at the appropriate locations under the playfield to keep wiring simple.  The total cost for the OPP boards is $100.40.
Multimorphic ends up requiring a 3 PD-16, PD-8×8, 2 SW-16 and an RS-485 interface board.  The total for that ends up being $525.  I stole some of the direct inputs to be used as normal inputs to save cost.  Since 36 circuits need high power drivers, it really hurts that I need to buy one more card to get those last 4 drivers I need.  There are enough extra drivers to be used for the flashers, so that works out well.  The lamp matrix is used fro all the normal incandescent bulbs.
That’s the best comparison that I can come up with at this point.  Looks like Fast/Multimorphic ends up being approximately 3-5 times more expensive than the OPP stuff.  That makes a lot of sense because most people use Bill of Materials (BOM) * 4 to figure out what their price should be.  I’m flummoxed with how I’m supposed to drive incandescent bulbs with Fast hardware.  I literally have no idea how I am supposed to drive those elements using their stuff.  If I use how power drivers, their stuff would be hugely more expensive.
I’ve also noticed that the Fast and Multimorphic stuff are approximately the same price.  Why build a new pinball control system where there isn’t a huge cost or feature improvement.  I was expecting Fast to be $100 or $200 cheaper on a full up system, but I just don’t see it.  Truth be told (and for complete disclosure, I have talked with Gerry multiple times and have never talked to the Fast guys), I would probably choose the PROC system to drive a machine if I wasn’t such a tinkerer.  Notice, also, in the above prices there are no main driver cards.  (PROC or P3ROC, or Fast Nano or Core).  Adding one of those controllers really jumps up the price, but I guess is a necessary evil if trying to add a DMD.
Things I don’t like about Fast include not having a way to drive incandescent bulbs, or really any low voltage features.  If I’m retheming a machine, I don’t want to remove all the bulbs and replace them with RGB LED strips.  RGB Neopixels have a really bright “hot spot” which is very difficult to diffuse properly and light a whole insert.  I don’t really like the prices either, it just seems a little too expensive to me.
Things I don’t like about Multimorphic include using a lamp matrix to drive incandescent bulbs.  This complicates wiring immensely.  Besides that, and price, I think that they have a great product.

 

8/5/2016 – Rev 0.2.0.0 of OPP Firmware Released

Firmware guys never like to say anything is done.  I had a bootloader I wrote which was used in medical products that was still at version 0.1 when used in the final products.  The problem is you can always add more features, make things better, etc.  Previous released versions included 0.1.0.0 which was the first version that I accidentally left a debug statement that overwrote the configuration each time it booted.  0.1.1.0 came out as soon as I realized the bug which was wayyy before kickstarters and such.  0.1.1.0 was fully functional, but had the issue that you had to program 0.1.0.0 onto the board and then program 0.1.1.0  to do it.  (Easy to work around, but still annoying).  Here is 0.2.0.0 which boasts a full set of regression tests to verify the functionality.

Here is a quick list of things that have been added/fixed:

  • Fixed bug where 0.1.0.0 had to be programmed before updating the firmware.  This means that you can simply program 0.2.0.0 onto a board and you are good to go.  I will update the programming instructions in the next week or so.
  • Feature to add ability for on/off solenoid functionality.  Previously solenoids could not just be turned on at 100%, then turned off at 100% depending on a switch or a command sent by the main controller.  That has now been implemented using a new configuration bit for the solenoid.  This feature was targeted at dual wound flippers low power coil and driving DC motors for all you Jokerz fans out there.
  • Feature to kick a solenoid after a certain delay of a switch.  This feature is for those people out there (all 1 of them) who wants to do a kickback in the outlane, and his switch is pretty high up in the outlane.
  • Fixed bug where serial number was not working properly.  This is for those guys doing head to head machines and requiring a way to tell which group of OPP boards are player 1, player 2, etc.  There is a small remaining bit of work on this that whenever the software is updated, the serial number gets cleared again.  I’m going to add code in the firmware updater to read the serial number, and then replace that information after the upgrade.  Then the user doesn’t need to worry about it.
  • Feature to allow different inputs to kick a solenoid.  This allows things like wacky flippers (left button kicks right flipper) and other really exciting things.  You can now use any input on the board to trigger a solenoid.  Note:  For bat-a-ball mode and white wood mode you still have to use the designated input for the solenoid.  This change is only for people using MPF, OPP framework, or writing their own serial interface.
  • Feature to allow one input to kick multiple solenoids.  Let the dual wound flipper configurations commence.  This is now supported.  If you want to do this in bat-a-ball mode or white wood mode, you still need to pass the flipper button input to all the designated inputs for the two solenoids.  If configuring through serial commands (i.e. MPF), this can now be controlled by the framework.

This firmware contains a completely rewritten digital processing section.  That has allowed the code to become smaller and even more efficient.  There were also some processing that was spread across two different parts of a function that have all been combined.  Essentially, the code just looks cleaner at this point.  At this point the firmware is using less than 65% of the flash and less than 65% of the RAM.  Plenty of space to grow and add more features.

The bootloader which is provided by Cypress toggles all the output lines as it is updating the firmware.  This means that you can’t update the firmware with high voltages going to solenoids.  This would make all the solenoids toggle at once, and would probably trigger the short circuit detection in the power supply.  I could rewrite their bootloader, but that would involve getting people to update the bootloader, which if power is lost during that process, the device will be bricked.  Leaving the default bootloader Cypress provides means that the device can’t be bricked.  At this point, that is much more important.

The documentation still needs to be updated for the added serial command and extra options.  I might be able to get to that this week.  Jan is probably the only person who really cares about that info.  (Jan was the source of half of the feature requests.)  I also need to update the populate boards document with the simplified instructions for updating the firmware.  At this point (because of the work I did on the regression tests), I can probably write a simple one line command that upgrades a blank from the factory card and puts a configuration on the card.  That should make it a lot easier for people.

Next up, I really need to finish the rewire on SS3.  Gah…  I just need to suck it up and finish it.  At that point, I will start hitting the MPF hard.  0.30 has been officially released, so I need to grab that from the repository.  That’s all for today.

8/02/2016 – A couple notes on power supplies

The power supplies in pinball machines are magical things that convert AC voltage into a DC voltage.  Without them, the wonderful toys that we enjoy tinkering with, would not work, and we would be forced to play bagatelle machines.  Not nearly as much fun.

Power supplies come in many different varieties, but the two that you see most frequently in a pinball machine is a toroidal transformer (linear unregulated power supplies), and switched mode power supplies (SMPS).  Toroidal transformers have been used in pinball machines since the beginning of time and just slightly before electricity was added for lighting.  (OK, I just made that last part up).  If you look in your pinball machine and you see a big hunk of metal in the bottom that looks like it weighs 20 pounds, you have a toroidal transformer.

A simple toroidal power supply works like this.  (Note:  This is going to be overly simplified)  It takes the AC voltage from the wall and runs it through a transformer.  That transformer converts from a high AC voltage to a lower AC voltage.  That lower AC voltage is converted to DC using a full bridge rectifier (makes positive and negative voltages all positive), and then a large cap to filter out the 60 Hz noise so a constant DC voltage is output.  The power that it can deliver is based on the number of windings, type of material of the toroid, etc.  The AC voltage is converted using magnetic waves or flux in the transformer.  If too much current is being drawn from the transformer, the output voltage droops.  (In power supply terminology, this would be a linear unregulated power supply).

Switched mode power supplies are being used in newer pinball machines.  They convert the AC voltage to high voltage DC using an itty bitty transformer, and then use buck/boost converters to convert the high voltage to the desired lower output voltage.  Because things are done at a high frequency, energy storage components can be much smaller which means a lot less weight.  They are also more efficient.  They also cost a lot less. A 48V 8.3A SMPS is going for about  $22 shipped on Ebay right now.  A 48V 10A supply goes for about $35 if you prefer.  The equivalent toroidal power supply such as a PS-5N48 goes for $107 and weighs 12 lbs.

You may ask why this matters to you.  One point is that the SMPS seem to always have active circuits to make sure that they aren’t shorted.  (Probably for safety reasons.)  If too much current is drawn they shut down.  If it goes from a relatively quiescent state to full on, they can detect that as a short.  When a solenoid fires, it goes from requiring no current to requiring max current in a very short time.  That can trick the power supply into thinking that it has a short and shut down.  To get around this problem, you need to add some bulk capacitors to reduce the instantaneous current draw of the power supply.  Either 8.2 mF (listed normally as 8200 uF), or 10 mF (listed normally as 0.010 F).  Here are the links for the Mouser capacitors.  (8200 uF, .010 F).  The capacitors run about $4 each in low quantities for the 63VDC ones.  These capacitors act as storage, so when there is an immediate draw of current, the capacitor can help provide that current, so that there is a lower current draw from the power supply itself.

Ahh, but these capacitors come with a terrible curse.  At startup, when they are charging, they look like a very low resistance across the power supply, and because of this, they draw a ton of current.  There are many ways to fix that problem.  One is simple but wasteful and cheap, while the others are more elegant.  The last one requires a lot more components and if you want that you should buy somebody elses power filter board.  (The right way would be to add the appropriate sized inductor to limit the current, but inductors are expensive, so we will ignore that option at the moment).

  1. Easiest way is to add a current limiting resistor before the capacitor.  The main issue with doing this is that you just converted your precious power supply current to heat using the resistor, and now the power supply can’t supply as much current to anything in the system because this resistor is in series with all the solenoids.  It is a solution, and I have used it when I needed to get something working quickly, but it isn’t ideal.
  2. Add a NTC (negative temperature coefficient) thermistor.  If you look at any SMPS you will see these guys.  They look like a big old circular caps that you used to see back in the 80s.  These start at a high resistance when cold, and then after current goes through them to heat them up, they drop to a much lower resistance.  The  Mouser part number is 995-SG26, but there are many others out there.   This one starts out at 5 Ohm when cold, and drops to .022 Ohms as it heats up.  That seems to be the sweet spot because using a 48V power supply, you get 48V/5Ohms = 9.6A and the NTC and handle 12A.
  3. Last option would be to add a resistor that is switched out after startup time.  This would involve a good number of components (a couple caps and a couple of resistors to turn on/off the switch or MOSFET).  The MOSFET that I’m current using (FQP13N06L) has an RDS(on) of .110 Ohms (typical).  Since the NTC thermistor has a lower resistance at steady state, it seems to make a lot more sense.
  4. Inductor, to limit the initial current, but as mentioned before, to get an appropriately sized inductor it is too expensive.

Well that’s about it.  Joe, if you still read this blog and still work on Blue October, my suggestion is to switch out the current limiting resistor for an NTC thermistor.  That should give your flippers a little more snap.

 

7/14/2016 – Pintastic…Done!

So Pintastic came and went and now it is over.  Here is a little secret about all these pinball shows that no one ever mentions.  They have a ton of EMs that are just a blast to play.  Yeah, I played the Game of Thrones, Big Lebowskis and the Lexi Lightspeeds of the world.  I might have played a good amount of Metallica.  But what was I playing on Saturday?  EM after EM after EM.  I spent about 1/2 hour playing a Chinatown which was kind of like a bingo machine/pinball machine hybrid and discussing the rules of the game with a random person also fascinated by the machine.  Yes…EMs have rules, and some are quite complex.  It was probably one of the simplest looking games, but the depth in it, and how scoring occurred were wonderful.  Where do you see EMs on location anymore?  Never.  Pintastic, Allentown, The York show, all of them tend to have a whole bunch of EMs that most of the people are overlooking.  I think I fell in love with the little flippers this time.  (Before I was shying away from those, but I decided to give them another chance this time).  Maybe it is because I’ve been playing more pinball, or maybe it is because I can predict the ball motion a bit better now, and maybe (unlikely), but maybe, I’m starting to actually learn how to nudge the machine and have it do something.  (Probably not on the last point, but I can always dream).

So Friday night, I tried to start a new trend.  If you happen to see Jaap (guy from Dutch Pinball who does The Big Lebowski) at a bar, send him a White Russian anonymously.  He was out with the Mezels and a bunch of other pinball people (maybe a couple of the LED people).  Just buy a White Russian and have the bartender give it to him.  Why not.  Not everybody puts a drink prominently on their pinball machine.  It’s got to taste better than Genievre…really.

So the homebrew pinball panel happened, and the person who won the free boards was…somebody who wanted to do a 60s style Batman.  OK.  The contest was really short.  Basically there were three people who said they had ideas.  The first guy  stumbled around his idea and I can’t even remember what he said.  The second guy said 60s style Batman.  Last guy I knew, so, well, I disqualified him from the contest.  (He sees me every week at pinball league, so if he really wants boards, I’ll probably just give them to him).  Michael Ocean chose the 60s style Batman and the rest is history.

I guess I should say something useful about the OPP project.  I’m done with the new version of firmware, and I’m writing regression test scripts to make testing the firmware easier.  Yes, they take a long time.  (Mostly because I’ve been busy).  There are already tests created that verify the code download, board serial numbering, reset, and jump to bootloader, and reading state input functionality.  I’ve visually tested the solenoid driving stuff, but I have to write those regression tests so, well, they are reproducible.  Hopefully in the next couple of weeks (maybe the beginning of August?) I will be done.  None of the stuff that I’m adding is really necessary, but there are a couple nice to haves in there.  The newest version of firmware doesn’t require the firmware to be loaded twice.  Woohoo.  I found that bug and kicked it really early.  (Turns out that if you don’t have any Neopixels, the interrupt for the Neopixel driver keeps hitting since the FIFO is always empty.  I forgot to disable that interrupt if there weren’t any Neopixels.  By burning twice (the first image had a number of Neopixels configured), it gave it a number which made sure that it was happy.  That is now fixed, so with the new version, you only need to burn the code once.)

Well, that’s all I have time for tonight.  Go out, find a couple of EMs and play the heck out of them.  They are an absolute blast.  Side story which is somewhat related:  There was a Haunted House machine in the Pintastic auction and Mike T asked me if I would want it.  (Yeah, I know it isn’t an EM)  I told him no, I don’t want it, but it is definitely a machine that I would like one of my friends to have.  Used to be one at the Pinball Wizard arcade, but Sarah absconded with it to her house.

7/4/2016 – Come to the Pintastic panel

Pintastic is 7/7/2016 to 7/9/2016.  If possible support your local pinball shows so that they keep happening.  As an added bonus on Friday (7/8/2016) there is a homebrew pinball panel.  I will hand out a set of OPP cards (up to 20 wing boards) to the best deemed design.  (Michael Ocean is the judge and gets to pick who he thinks has the best design.)  More than likely, nobody else will be there who wants the cards, so if you are interested, just show up, and you will probably get a set of cards.  The panel is on Friday at 4:00 pm.

I’m currently working on a new version of the firmware.  This took precedence over other things that I was expecting to be doing because somebody ask for a new feature.  Basically he needed a kickback for an outlane like F14 has.  The switch for the outlane is a bit above the kickback spot, so he needs to delay kicking the solenoid for the appropriate amount of time.  That was a big enough feature request that I decided to take the time to get that done.

As part of the update, I’m planning on writing regression tests to test all the different features of the firmware.  Right now, I basically run all of the commands by hand, it takes quite a while, and I may miss some of the commands.  By automating it, I won’t have any possibilities of missing commands and it should be much more robust.  The regression tests will be in the repository when they are finished.

A couple more people are now starting to run the cards, and they send me questions as necessary.  Feel free to toss me a note.  I’m working on a lot of different things, and usually answer people’s questions rather quickly.  If there are things in the documentation that aren’t clear, make sure you ask in lieu of accidentally destroying your cards.  A couple people have asked me to add different sections to the document, and I’m trying to keep up with the requests.  (As a note, the populate board document has been updated recently with a lot more information.  Make sure to grab a new version at:  populateBrd.pdf in the repository.)

That’s about all.  See you on Friday (7/8/2016) at 4:00 pm if you get a chance.

6/15/2016 – Let’s install MPF 0.30

Well here we go.  I’m following the instructions on the How To: Migrate from MPF 0.21 to MPF 0.30.  I can skip on down to instruction 2A because that is where the real fun starts. I’m on a Windows 10 (yes, I was one of those lucky souls that Microsoft updated automatically even though I said I wanted to update later.  Grrr).  This machine was previously running MPF 0.21 so Python 2.7 is currently installed on the machine.

In a command prompt I did the “echo %PROCESSOR_ARCHITECTURE%” and found that I have an AMD64.  That means I need to use the 64-bit installer and proves that I’m a cheapskate because I don’t buy the more expensive Intel processors.  I went ahead and downloaded the 64bit installer file as described.

I dislike installing Python in my path, so the commands that I type out will give the full path to start the Python executable.  After install Python 3.4.4 I went ahead and checked the version which the command is “c:\Python34\python –version” and it reports back that Python 3.4.4 is running.  Yeah!

To install MPF, I typed “c:\Python34\python -m pip install mpf-mc” or alternately I could have typed “c:\Python34\Scripts\pip install mpf-mc”.  It warned me that I’m using an older version of pip but, I don’t believe that I care.

I have a special font that I use, but we will see what happens without trying to install the default MPF fonts.  Who knows if it will work.

I already have Git GUI installed, but if you don’t you can grab Git GUI here.  Git GUI allowas you to easily download Git code repositories.  The nice part is that you can right click and create a repository folder without going through the command prompt.  (You may need to reboot to get the right click context menus, but I don’t remember that being necessary).

Okay, now lets grab the git examples repository.  So all of MPF files are located in the Desktop\Pinball folder.  The Desktop folder on Windows 10 is located at \Users\YourUserName\Desktop.  This includes the Desktop\Pinball\mpf-docs folder which includes the current MPF 0.30 documentation that I need to do a couple updates for the OPP configuration information.  Now I need to create the Desktop\Pinball\mpf-examples folder that has all the example code.  To do that, I right clicked in the Desktop\Pinball folder, and chose the Git GUI menu item.  That opens up the Git GUI.  Next I clicked Clone Existing Repository in the Git GUI program.  The source location is https://github.com/missionpinball/mpf-examples, and for the target directory, I browse to Desktop/pinball and add “/mpf-examples” to the directory name.  Note:  The folder does not exist and Git GUI feels it must create it by itself.  The target directory should have something C:/Users/YourUserName/Desktop/Pinball/mpf-examples in it.  Now press the clone button.  That will take a minute to finish.  I used to have to move the Git to the dev branch, but looking at the repository, it seems like the configuration files for demo man on the trunk are currently for 0.30 version of MPF.

Let’s try and get it running.  So now open up two command prompt windows.  (I still have one open from doing the original install, so I only have to open one.)  Run the “cd C:/Users/YourUserName/Desktop/Pinball/mpf-examples/demo_man” in each of the windows to get to the correct directory.  In the first window, I type “C:\Python34\python.exe -m mpf mc”.  Hey!  It says “Loading Assets: 100%” on the fake DMD window that it creates.  That sounds good.  In the second command window, I type “C:\Python34\python.exe -m mpf -x”.  The extra “-x” says that you don’t have any real hardware.   (I’m sure most people running MPF don’t actually have a Demo Man pinball machine sitting next to them.)  You should hear some fan fare play.  With the created “Mission Pinball Framework” as the active window, you can press ‘s’ to start a game.  ‘x’ gives you some points.  Hitting ‘b’ crashes it, and hitting ‘t’ sends it into tilt mode where I can’t figure out how to make it recover.  The only thing that really matters is that it is working.  You can close out the program by closing the “Mission Pinball Framework” window.

That seemed to be even a little easier than the last time I installed MPF.   Next up will be trying to move the little bit of SS3 MPF 0.21 script files that I have over to MPF 0.30.  That should show the SS3 attract mode which would be a nice next step.

6/12/2016 – Where does this site go from here?

The Kickstarter is over and completed.  (Yes, I still have to send stickers to a couple people), but all the supporters have been sent their packages.  I’m still working on rewiring the SS3 playfield so that I can start running the Gen2 cards on it, but that is a background task that I’m not looking forward to, so it is going very slowly.  I’ve been rolling around in my head ideas on where I want the site to go from this point.

The people who supported the Kickstarter will need support, so questions that they ask and how to address them will be written up on this blog.  That isn’t going to be a lot of stuff and it will probably be pretty sporadic.

After much consideration, I think that I will blog about converting the SS3 rules to Mission Pinball Framework (MPF).  There is a lot of information on their site about how to do things, but it seems like many things can be done multiple ways.  I’m going to try and give insight into why I wrote my scripts in the way that I did, and what choices I made.  I’ve already completely coded SS3 in Python, so this will give an interesting perspective into scripts vs straight Python coding.

I’m going to focus only on the 0.30 branch of MPF.  It seems that the people who are driving MPF are trying to let the 0.21 branch die and move on from there.  MPF 0.21 is based on Python 2.7, while MPF 0.30 is based on Python 3.x.  There were some major changes between those versions of Python, so it will be a little bit of a learning curve for me.

The other nice thing is that I have my own code repository.  (Well, Source Forge does and it contains all of my source code).  I should be able to point to the exact version of source code that I’m currently working on, and with a few clicks, you can go back in time and see what the code looked like at that point.  Many times people write about issues they were having, but the code has morphed significantly from the time they were having issues to the current time.  Since all of my code is in the repository, I can simply say, at this point, I’m on version 240 of the repository.  When you grab the repository, you can say that you want to see version 240, and that allows you to go “back in time” to that point in development.  That will allow people to follow fixes and changes at their own pace, and even go back a couple years, and see how I solved certain things.

I’m pretty excited about that aspect of it.  (I’m not exciting to go back down to the basement and keep working on the rewire, but it is simply the drudgery that must be done.)  Much of the issue comes from the fact that I don’t want to simply rip off all the wires and start from scratch, but maybe that would have been easier in the long run.  Oh well, we will see.

I have a bunch of other blog entries that I want to write up too.  At some point I need to compare the current state of the OPP hardware with PROC and Fast.  It’s been something I’ve been meaning to do for over a year, but never got around to it.  The last blog entry that I need to write up is going the after the fact on the Kickstarter.  How much did Kickstarter take in fees?  Did I make money, or did I fall into a hole with all the shipping to different countries?  (I did have a box which cost about $34 to ship.  Didn’t see that one coming).

Pintastic New England is coming on July 8th & 9th.  I’m going to be on a panel about the state of homebrew pinball on Friday at 4:00 pm.  Stop by if you have a chance, and say hi.  I’ve never been on a panel before, so we will see how that goes.   Hopefully we will get some interesting questions.  I’m particularly interested in talking to mocean who is also supposed to be on the panel.

That’s all I can think of at this point.  Hopefully it will be interesting enough so people can continue to get good information from the blog.