As I write this, the OPP platform interface to MPF is done. It went rather well despite simply reverse engineering another platform interface. A couple new commands were added to the board interface to make talking to MPF a lot simpler. These include setting all incandescent bulbs as either on or off in a single command, updating an individual solenoid configuration, and updating the color on a single LED. Easier to add those commands rather than trying to shoehorn the MPF to use the first version of the commands.
MPF works very differently than the OPP pinball framework. OPP framework gathers all the updates to incandescent boards and configuration changes and sends them down to the card in one single command. MPF wants to update solenoids one at a time. This means the OPP framework is a little more efficient on the serial link, but moving to Gen2 the link went from 19.2 kbps to 115 kbps, so that doesn’t seem to be an issue.
I still have a little more work to do. I need to add support for version 1 cards. The only people who probably care about this are Cactus Jack, maybe Joe, and myself. It is mostly for me and updating the SS3 pinball machine. I’m too lazy to rewire all of the solenoids and inputs, so why not just use the old first generation OPP cards as they are, and simply add one or two cards to support incandescent bulbs.
That would make the upgrade to SS3 that much simpler (and forces me to finish the layout on the low side/high side driver card for bulbs). Hey…Iteadstudio is currently having a 10% off sale. That might put a fire under my butt to get it done by the end of the month.
Need to have an easy way to update OPP gen2 cards. Right now, a user would need to download Cypress’ PSoC Creator, and download new code using that tool. (That’s a 604MB download). The bootloader protocol is documented by Cypress. I found a version of cyflash which is supposed to do what I need, but of course it crashes immediately when trying to run it. I have also found some C++ windows code that is supposed to implement the protocol. I’m going to start by basing the updater of cyflash because it is written in Python. That should be the simplest for people to use across multiple different platforms.