Add Pac-Man power-on flow and document Odin integration
- Add a four-second arcade-style boot sequence followed by the Character / Nickname introduction. - Separate cabinet power-on from RFID credit and player Start. - Add operator Power on control and cabinet power-state reporting. - Prevent repeated power commands from restarting boot or gameplay. - Ignore RFID scans received before the cabinet is ready. - Add power-state, RFID, controller, and GPIO feedback regression tests. - Expand the master walkthrough with export, packaging, file transfer, fresh-Pi setup, RFID compilation, and end-to-end testing instructions. - Correct tester hardware documentation: BCM23/J20 drives an LED; physical buttons connect through a separate I2C1 input board. - Document operator-triggered power-on as the current test workflow and retain the temporary 2.4 configuration compatibility notes. - Record successful physical testing of power-on, RFID credit, and player Start. - Add an Odin integration README describing the proposed Rust/NATS bridge, shared messages, Flutter GM interface, autopilot sequencing, hardware ownership, and Starfish SSH-management role. - Define migration milestones and information needed from the framework owner; link the integration guide from the root README. Validation: 69 controller tests, 10 GPIO tests, Pac-Man power/RFID checks, managed-cabinet lifecycle checks, and visual screen inspection.
This commit is contained in:
1 parent
c1b2195834
commit
41ef12f954
27 files changed
+577
-48
No files matched your search
@@ -12,6 +12,7 @@ The Arcade software is separate from Odin. Its RFID helper follows the tester PC
|
||||
|
||||
| Task | Guide |
|
||||
| --- | --- |
|
||||
| Plan integration with Rust/NATS, Odin autopilot, and Flutter | [Target architecture and next requirements](docs/odin_integration/README.md) |
|
||||
| Export and package a matching release | [Master walkthrough, section 3](docs/pacman_rfid_first_setup.md#3-export-package-and-copy-one-complete-release) |
|
||||
| Run Cabinet 1 with RFID credits | [Full master walkthrough](docs/pacman_rfid_first_setup.md) |
|
||||
| Configure cabinet controls | [Launcher and control setup](games/launcher/README.md) |
|
||||
@@ -118,14 +119,15 @@ Optional device panels show RFID identifiers, digital input activity, electrical
|
||||
|
||||
Select **Cabinet 1: Pac-Man RFID credit** (`pacman_rfid_credit_test`):
|
||||
|
||||
1. Prepare Cabinet 1: Pac-Man displays **SCAN CARD / CREDIT 0**.
|
||||
2. A new accepted scan on **J1 / cab1_rfid1** grants **CREDIT 1** and plays the credit sound.
|
||||
3. The player presses mapped Start, consumes the credit, and begins play.
|
||||
4. Clear one board to win; reset/re-prepare for another session.
|
||||
1. Prepare Cabinet 1: Pac-Man displays **WAITING FOR POWER**.
|
||||
2. Press **J20 / BCM23** (`cab1_btn_ylw`) or operator **Power on**. After the four-second ROM-check recreation, Pac-Man shows its Character / Nickname introduction.
|
||||
3. A new accepted scan on **J1 / cab1_rfid1** grants **CREDIT 1** and plays the credit sound.
|
||||
4. The player presses mapped Start, consumes the credit, and begins play.
|
||||
5. Clear one board to win; reset/re-prepare for another session.
|
||||
|
||||
Credit is capped at one. Historical/stale samples, duplicate events, scans on J2, and scans during gameplay do not bank extra credits. The initial scenario accepts any compatible readable card; `rfid_allowed_uids` optionally restricts accepted identifiers. No card-writing step is required. No motor/relay reward is configured for this test.
|
||||
|
||||
This needs **arcade-cabinet-2.3**, real GPIO feedback, the updated bridge, and the compiled RFID helper. The helper follows Odin's 32-bit identifier representation and is not full-length UID support for every card type. Compilation and physical reader testing on the tester Pi remain to be verified.
|
||||
This needs **arcade-cabinet-2.4**, real GPIO feedback, the updated bridge, and the compiled RFID helper. The helper follows Odin's 32-bit identifier representation and is not full-length UID support for every card type. Compilation and physical reader testing on the tester Pi remain to be verified.
|
||||
|
||||
## Configuration and credentials
|
||||
|
||||
@@ -162,7 +164,7 @@ Use the [master walkthrough's release workflow](docs/pacman_rfid_first_setup.md#
|
||||
4. Configure site-specific files separately; compile the RFID helper on the cabinet.
|
||||
5. Validate launcher settings, start the services, and run the physical acceptance test before enabling startup.
|
||||
|
||||
The existing `setup/pc` and `setup/pi` folders are manual staging areas, **not proof of a current build**. Their checked-in artifacts are not automatically rebuilt when source changes. Do not assume they contain the 2.3 RFID feature until explicitly exported and verified. Exclude staged exports from the game PCK.
|
||||
The existing `setup/pc` and `setup/pi` folders are manual staging areas, **not proof of a current build**. Their checked-in artifacts are not automatically rebuilt when source changes. Do not assume they contain the 2.4 power/RFID features until explicitly exported and verified. Exclude staged exports from the game PCK.
|
||||
|
||||
The deployment tools provide a terminal setup wizard, separate site credentials, SSH enrollment, per-cabinet preflight, versioned uploads with manifest hashes, explicit activation, and service/status/log commands. They do not install a private DHCP/firewall configuration or offer a browser provisioning wizard. RFID-only provisioning still needs the manual route described above.
|
||||
|
||||
@@ -195,7 +197,7 @@ Last recorded verification during this work: 66 controller tests and the RFID cr
|
||||
| Unauthorized | Correct role/token and cabinet ID; check inherited environment overrides. |
|
||||
| Cabinet offline | Master URL/8766, network, running client, matching export version. |
|
||||
| Game unavailable | Cabinet capabilities and matching exported catalog/resources. |
|
||||
| RFID scenario rejected | Cabinet 2.3, real GPIO, matching reader ID in the exported PCB inventory. |
|
||||
| RFID scenario rejected | Cabinet 2.4, real GPIO, matching reader ID in the exported PCB inventory. |
|
||||
| RFID pin conflict | Explicit empty `pins =` for RFID-only testing. BCM17/27/22/20 and SPI0 are reserved for readers. |
|
||||
| UID visible but no credit | Prepare the RFID scenario, then remove/re-present at J1; check the accepted-card list. |
|
||||
| Output delivery unconfirmed | GPIO acknowledgement/electrical state does not confirm physical movement; use an appropriate sensor. |
|
||||
@@ -223,3 +225,5 @@ tests/ Godot/Python checks and isolated fixtures
|
||||
## Remaining work
|
||||
|
||||
Physical RFID commissioning, complete RFID support in the fleet wizard, browser doorway rendering, additional cabinet artwork, general sensor-to-scenario rules, detailed puzzle-step views, coordinated finale variants, and room timers/hints remain future work. The hub can link to other services; it is not yet a full multi-room orchestration system.
|
||||
|
||||
Pac-Man power-button wiring, the `devices.json` input entry, and the complete power → boot → RFID → Start acceptance test are included in the [master walkthrough](docs/pacman_rfid_first_setup.md).
|
||||
Reference in new issue
Block a user