So far everything is looking good. I had to make a small number of MPF config changes, mainly related to the special solenoids. Normally in F-14 and the other earlier Sys11 (and earlier generation) machines, the CPU doesn't get involved in firing coils for things like jet bumpers and slings. For those kind of devices you want the coil to fire as soon as the switch closes, otherwise it appears to lag. Williams were concerned that the CPU wouldn't be able to react quick enough to the switch closure, so they set up these "special" solenoids to fire immediately the switch closed, without any action from the CPU. Nice and snappy.
APC is quick enough to not need that, so instead all the special solenoids need to be activated by the CPU. So I needed to add an "autofire rule" into the MPF config. This basically says "if switch x closes, fire coil y". Instead of MPF handling this, it's then sent to the controller to handle itself. Here is an example from my code for the jet bumper
autofire_coils:
jet_bumper:
coil: c_jetBumper
switch: s_jetBumper
enable_events: mode_base_started
debug: false
ball_search_order: 0 # ball can't get stuck here
disable_events: mode_base_ended`
So adding those in only took a few minutes. I had some concerns over the latency, but as you can see from the video (not the best quality, sorry) it works really well. APC also has individual enables for the flippers, so that opens some interesting game play options where I could disable just the left or right flipper from software.
I also spent some time getting the original F-14 display connected. We had to fix a couple of lines of code in MPF to get the segments mapped properly and now that works really well too. I added some simple attract mode text, and during the game it displays the score of player 1. I'm undecided at the moment what displays to put where. Maybe I'll the little matrix displays on the apron and keep the segment displays for the old school look, not sure yet.
Mounting the APC board was a little time consuming. A lot of the connectors are in different places compared to the original MPU board (plus the board is only one third of the size) so I needed to cut open some cable ties to loosen off some of the wires. Still a little work to do to make that tidy, but no big issue.
Anyway, here is a quick video. Starts in attract mode. You can see that MPF is running the show. On my F-14 the white inserts have RGB lamps behind them and are controlled from MPF via a small FadeCandy board. All the other lamps are regular matrix lamps and run via the Arduino Pinball Controller. They all stay in sync just fine. During the game you can see MPF with APC is controlling all the coils just fine, including the slings/jet, switches are reading fine. All looking good so far
A huge thanks to Jan for the work in MPF and to "Black Knight" aka "AmokSolderer" for support on the hardware side.