-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FAST 2nd-Gen Hardware: Support for V2 Controllers #1629
Conversation
# Conflicts: # mpf/platforms/fast/fast.py
# Conflicts: # mpf/platforms/fast/fast_serial_communicator.py
@jabdoa2 I've updated the code per our conversation, to reduce the FAST-specific workarounds. On the topic of the System11 Overlay, after further investigation I believe that the recursive loop would impact all platforms except virtual—even the SNUX sample configs rely on virtual, which itself has its own implementation of |
Kudos, SonarCloud Quality Gate passed!
|
FAST 2nd-Generation Hardware Support
This PR merges a branch that includes support for the second generation of FAST platform hardware, including both direct-drive controllers and Retro controllers. It contains numerous other improvements and upgrades as well.
All changes have been verified on both V2 hardware and V1 hardware (i.e. the Nano), so these changes are fully backwards-compatible on existing hardware setups with no configuration changes needed.
V2 Hardware Controllers
The base work of this PR is to support to the second generation controllers, which have a number of differences from the first generation. In the code, these "V2" controllers are considered the default and the "V1" controllers are identified as
is_legacy
.ID:
strings that don't explicitly includeNET
are assumed to be NETRetro Hardware Controllers
One family of V2 hardware is a set of Retro controllers for drop-in replacement in older machines. Retro controllers are configured in one of three flavors:
wpc95
,wpc89
, andsys11
.This PR refactors the deprecated FAST
WPC
configuration options and uses those old code paths as the basis for the Retro hardware integration. This PR also extends the FastHardwarePlatform to inherit from the System11OverlayPlatform, which enables System11 behaviors when the Retro board is typesys11
. For all other controllers, the overlay has no effect.Other changes related to the Retro controllers include:
ticks
behavior (Sys11)WPC
-series of mappings)CH:
) is required at connection, to ensure compatibility and prevent possible damage if a machine configuration is connected to the wrong type of Retro boardBREAKING CHANGE: This PR removes support for the FAST WPC hardware. Only a handful of these controllers were ever manufactured and none were sold publicly. No such hardware is known to be in existence anymore, but if anybody is still using
driverboards: wpc
in their configuration, they cannot update to this version of MPF.Other Changes