The complete host protocol for PKONE EX2, Switch and Lightshow, updated from the 18 June 2021 specification and aligned with the current repaired firmware.
Current verified combination: EX2 2.8, Switch 2.4 and Lightshow 2.2. Newer commands are labelled below. Lightshow 2.2 adds mixed RGB/RGBW groups and 20 built-in effects.
Wire format and transport
Frames are printable ASCII, begin with P, and end with uppercase E. Do not append a newline.
Numeric fields are fixed-width, zero-padded decimal unless a field explicitly says hexadecimal.
USB serial uses 115200 baud. Classic CAN uses standard 11-bit frames at 250 kbit/s.
The board connected to the host by USB provides the serial link to the CAN chain. Board addresses come from the DIP switches; restart a board after changing its address.
EX2 and Switch addresses are 0–7. Lightshow addresses are 0–3. Every device on one CAN chain must have a unique address.
Send one request at a time and wait for its reply. Acknowledgements do not contain transaction IDs and several replies may arrive together.
Controller and board discovery
Command
Request and fields
Response
PCN Controller identity
PCNE
PCNF<firmware>H<hardware>E Example: PCNF28H20E is firmware 2.8, hardware 2.0.
PCB Discover address
PCBbE, where b is 0–7.
EX2: PCBbXF…H…PYE Switch: PCBbSF…H…I40C00PNE Lightshow: PCBbLF…H…MIXE No response means no board at that address.
PBI Permanent identity (new)
PBIbE
PBIb<type>S<24 hex digits>E, where type is X, S, or L. Example: PBI3LS003C00363439470F39343637E.
PRS Reset system
PRSE
Clears outputs, effects, servos and watchdog state. EX2 reports PRSNE; each peripheral reports PRSbXE, PRSbSE, or PRSbLE.
Discovery capability tokens
F
Firmware version; the last digit is the minor version, so F28 means 2.8.
H
Hardware revision; the last digit is the minor version in current builds.
PY / PN
48 V power present / absent when the board can report it.
I40
Forty switch inputs.
C00 / C02
Two physical coil connectors disabled / enabled by firmware.
MIX
One Lightshow firmware supports both RGB and RGBW, selected per group with PLT.
Watchdog and safety
Opcode
Format
Meaning and reply
PWS
PWSttttE
Start the watchdog with timeout tttt, 0000–9999 ms. 0000 stops it. EX2 replies PWSE.
PWD
PWDE
Heartbeat/ping. Send before the timeout expires; approximately every 500 ms for a 1000 ms watchdog. EX2 replies PWDE.
PWF
PWFE
Stop the watchdog. EX2 replies PWFE.
PWT
Controller-to-host only: PWTE
The watchdog or protected transport timed out. Outputs are disabled and the watchdog stops.
Switches and optos
Opcode
Format
Meaning
PSA
Request: PSAbE Response: PSAb<states>E
Returns every input as 0 inactive/open or 1 active/closed, in connector order. EX2 returns 35 states (30 switches + 5 optos); Switch returns 40.
PSW
Event: PSWbnnsE
Unsolicited state change. nn is input 01–40 and s is 0 or 1. Example: PSW2171E means board 2 input 17 became active.
Coils
Opcode
Exact format
Reply and use
PCC
PCCbnnmmmpphhrrrE
PCCE. Configure coil nn: pulse time mmm 000–250 ms, pulse power pp 00–99%, hold power hh 00–99%, recycle time rrr 000–500 ms.
PCP
PCPbnnE
PCPE. Pulse using the stored PCC values.
PCH
PCHbnnE
PCHE. Pulse, then hold using the stored hold power.
PCR
PCRbnnE
PCRE. Release a held coil.
PCC1040759900150E # board 1, coil 04, 75 ms, 99% pulse, 0% hold, 150 ms recycle
PCP104E # fire the configured pulse
PCH104E # pulse then hold
PCR104E # release
Hardware rules
A hardware rule connects a local switch directly to one coil for low-latency action. Each coil stores one rule. Creating a new rule for that coil replaces the old one; rule settings are separate from PCC.
Input 01–35. Use 00 for an unused second input. Modes 5 and 6 require an EOS input in sw2.
inv1 / inv2
0 normal, 1 invert that input for the rule.
delay
000–999 ms before activation; used by mode 2.
pulse / pwr / hold
000–250 ms, 00–99% pulse power, 00–99% hold power.
recycle
000–500 ms.
Mode
Action
1
Pulse when switch 1 activates; release of the switch does not cancel the pulse.
2
Pulse after the configured delay when switch 1 activates.
3
Pulse when switch 1 activates; cancel the pulse when it releases.
4
Pulse then hold while switch 1 is active; release when switch 1 releases.
5
Dual-wound flipper rule. Switch 1 drives the power winding; EOS switch 2 releases it while the separately configured hold winding remains enabled.
6
Single-wound flipper rule (EX2 3.1+). Switch 1 pulses the selected coil; EOS switch 2 or expiry of the maximum pulse time changes that same coil directly to hold power. EX2 3.2+ uses stable timer-driven modulation for all held coils. Hold power is rounded to the nearest 10% step, reduced levels repeat at 100 Hz or faster, and 95–99% is steady full power. Releasing switch 1 turns the coil off.
PHRE acknowledges a saved rule. PHDE acknowledges deletion. Example flipper rule without EOS: PHR10140700000001009930000E. Example single-wound EOS rule: PHR00460400500000309912000E.
Servos
Opcode
Format
Fields and reply
PSC
PSCbsspppE
b address 0–7, ss servo 11–14, ppp position 000–250. Position 125 is centre. Reply: PSCE.
PSC411125E # board 4, servo 11, centre position
Current format: the repaired EX2 firmware uses the three-digit 000–250 servo scale. This replaces the ambiguous two-digit servo examples in the 2021 document.
Lighting
Standard and addressable lighting commands are documented in full on Lightshow commands, including RGB, RGBW, batch updates, mixed group type selection, and all 20 built-in effects.
Direct USB firmware entry (new)
Command
Response
Scope
PFUbA55AE
PFUbOKE, followed by reset into the STM32 system bootloader.
EX2 2.9+, Switch and Lightshow, over that board’s direct USB connection. Peripheral boards reject the command over CAN. Use the PKONE Connect Programmer rather than sending this manually.
Errors
Frame
Meaning
PXX1000E
Unknown or unsupported opcode, including a direct-only operation received over the wrong transport.
PXX1001E
Invalid field, malformed frame, unsafe state, unsupported board capability, or output command received while outputs are inhibited.
PWTE
Watchdog or protected transport timeout; outputs were stopped.
Reference · Lightshow 2.2
Lightshow commands
The full lighting protocol: 40 standard on/off outputs, eight groups of up to 64 addressable pixels, per-group RGB/RGBW selection, and 20 animations that run on the board.
Required setup: after reset, send PLTbgcE once for every pixel group you will use. Here c is 3 for RGB or 4 for RGBW. Lightshow echoes the full PLT frame when accepted.
Standard on/off outputs
Opcode
Format
Reply
PLS
PLSbnnvE — set standard output 01–40.
PLSE
PLO
PLObvE — set all 40 standard outputs.
PLOE
PLS1091E # address 1, output 09 on
PLO10E # address 1, all standard outputs off
RGB pixel commands
Opcode
Exact format
Reply
PLW Animate one
PLWbgppmRRRGGGBBBRRRGGGBBBttttE m: 0 off, 1 on, 2 blink, 3 fade. The frame carries first and second RGB colours.
PLWE
PLC Set/fade one
PLCbgppRRRGGGBBBttttE Fade from the current colour; time 0000 sets immediately.
PLCE
PLB Batch
PLBbgppcctttt<RGB × count>E pp first pixel, cc count 01–64.
PLBE
PLA Whole group
PLAbgRRRGGGBBBE Current firmware also accepts optional tttt before E for a whole-group fade.
PLAE
PLC11422550000000050E # address 1, group 1, pixel 42, red over 500 ms
PLA11255255255E # address 1, group 1, all pixels white
RGBW pixel commands
Opcode
Exact format
Reply
PWW Animate one
PWWbgppmRRRGGGBBBWWWRRRGGGBBBWWWttttE m: 0 off, 1 on, 2 blink, 3 fade.
PWWE
PWC Set/fade one
PWCbgppRRRGGGBBBWWWttttE
PWCE
PWB Batch
PWBbgppcctttt<RGBW × count>E
PWBE
PWA Whole group
PWAbgRRRGGGBBBWWWE Current firmware also accepts optional tttt before E.
PWAE
PWC11421380432260430050E # address 1, group 1, pixel 42, RGBW 138/043/226/043 over 500 ms
PWA11255255255255E # address 1, group 1, all pixels white
Built-in board effects: PFX(new)
Effects are rendered by Lightshow itself, so they continue smoothly without repeated browser or CAN traffic. One effect can run independently on each group. A later pixel/group command for that group cancels its effect.
00–20. Effect 00 stops and clears the selected group.
speed
010–999 ms between animation frames. Smaller values run faster.
brightness
000–255 global output scaling.
direction
0 forward, 1 reverse.
primary / secondary
Two RGBW colours, each encoded as four three-digit channels. RGB groups accept the same command and ignore the white channel electrically.
reply
PFXE when accepted.
Example: address 3, group 1, Rainbow Flow, 30 ms, full brightness, forward:
PFX31010302550255032016000000080180000E
PFXE
All built-in effect IDs
ID
Name
Colour inputs
Result
00
Stop / clear
Ignored
Stops the effect and turns the selected group off.
01
Rainbow Flow
Automatic rainbow
A continuous spectrum flows along the strip.
02
Rainbow Chase
Automatic rainbow
Moving rainbow bands with a dim background.
03
Colour Wipe
Primary + secondary
Primary progressively replaces secondary.
04
Colour Chase
Primary + secondary
A repeating primary segment chases over secondary.
05
Theatre Chase
Primary + secondary
Classic theatre-style stepping lights.
06
Scanner
Secondary
A bright point scans back and forth with a fading tail.
07
Comet
Primary + secondary
A primary head with a fading secondary tail.
08
Sparkle
Primary + secondary
Random primary sparkles over the secondary colour.
09
Twinkle
Primary + secondary
Random soft blends between both colours.
10
Confetti
Automatic rainbow
Random coloured pixels appear across the group.
11
Pulse
Primary
Primary colour pulses from dim to bright.
12
Breathing
Primary
A softer breathing brightness curve.
13
Strobe
Primary
Primary flashes on alternate frames.
14
Alternating
Primary + secondary
Alternating pixels shift between both colours.
15
Gradient
Primary + secondary
A moving blend across the strip.
16
Wave
Primary + secondary
A travelling colour wave.
17
Fire
Primary + secondary
Random warm flicker blended from both colours.
18
Ice Shimmer
Primary + secondary
Bright, cool random shimmer.
19
Meteor
Primary + secondary
A bright head, long tail and occasional background sparks.
20
Bouncing Balls
Primary + secondary
Three independently moving bright points.
Connector mapping: Workbench shows physical J1–J8 and performs the firmware’s connector conversion. A raw protocol client must use the logical group number expected by the board firmware.
Reference
Board identity and discovery
A DIP-switch address says where a board is today. The STM32 serial says which physical board it is for its lifetime.
Discovery
PCB3E
PCB3LF22H112MIXE
The reply identifies address 3 as Lightshow firmware 2.2, hardware H112, mixed RGB/RGBW capable.
Permanent identity
PBI3E
PBI3LS003C00363439470F39343637E
PKONE Connect stores this as LS-003C00363439470F39343637. Moving the DIP switches changes the CAN address while preserving this saved board profile.
Every board on one CAN chain needs a unique address. Lightshow uses addresses 0–3; EX2 and Switch support 0–7.
Hardware
EX2 wiring map
EX2 supports direct USB and CAN-chain operation. This annotated map identifies power, coils, switches, optos, servos, status LEDs and communications.
Select the map to open the full-resolution drawing.
CAN bus — CAN 2.0A with standard 11-bit identifiers at 250 kbit/s
Switch inputs
30 numbered dry-contact switch inputs
Optical inputs
5 optical receiver inputs with emitter supply connections
Coil outputs
10 outputs for pulse, pulse/hold and dual-coil assemblies
Servo outputs
4 three-wire outputs, servo IDs 11–14
Communications
USB-B host/programming; RJ45 CAN IN (P1) and CAN OUT (P2)
Power connections
USB powers controller logic for setup; dedicated 48 V DC input powers coil outputs
Board controls
3-position address ID, BOOT header and J1 CAN termination jumper
Status indicators
48 V, 5 V and MPU activity LEDs
Environment
Operating: 0 °C to 60 °C and 5% to 90% humidity; storage: −40 °C to 85 °C and 5% to 90% humidity
Hardware
Switch wiring map
The Switch board expands playfield inputs and carries two protected 48 V coil channels. Use this map for board orientation, power flow, input banks and CAN placement.
Select the map to open the full-resolution drawing.
CAN bus — CAN 2.0A with standard 11-bit identifiers at 250 kbit/s
Switch inputs
40 numbered dry-contact switch inputs
Coil outputs
2 protected 48 V outputs for pulse-only or pulse/hold assemblies
Communications
USB-B host/programming; RJ45 CAN IN (P1) and CAN OUT (P2)
Power connections
48 V DC input, two 48 V output connections and USB logic/programming connection
Board controls
3-position address ID, BOOT header and J1 CAN termination jumper
Status indicators
5 V and MPU activity LEDs
Environment
Operating: 0 °C to 60 °C and 5% to 90% humidity; storage: −40 °C to 85 °C and 5% to 90% humidity
Hardware
Lightshow wiring map
Lightshow combines general on/off lighting with eight addressable RGB or RGBW groups. The map shows output banks, pixel connectors, power, CAN, USB and termination.
Select the map to open the full-resolution drawing.
CAN bus — CAN 2.0A with standard 11-bit identifiers at 250 kbit/s
Addressable lighting
8 RGB/RGBW channels, up to 64 addressable LEDs per channel, 512 LEDs total
General lighting
40 switched lighting channels
Communications
USB-B host/programming; RJ45 CAN IN and CAN OUT
Power connections
Dedicated 5 V DC lighting input and USB logic/programming connection
Board controls
2-position address ID and J1 CAN termination jumper
Status indicators
Power and communications/activity LEDs
Operating temperature
0 °C to 60 °C
Storage temperature
−40 °C to 85 °C
Operating humidity
5% to 90%
Storage humidity
5% to 90%
Hardware
Connector and terminal reference
Match each coloured location marker on the board maps to the corresponding housing, terminal family and wire range in this reference.
Select the reference to inspect part numbers and tooling notes at full resolution.
Connector or terminal
Part number
Use
Molex KK 396 / 3.96 mm
2-circuit friction-ramp housing
09-50-8021
5 V, 12 V and 48 V input
4-circuit friction-ramp housing
09-50-8041
Coil input
6-circuit friction-ramp housing
09-50-8061
Coil input
Crimp terminal, 18–24 AWG
08-50-0106
Series 41695 housings · crimp tool 638279500
Molex KK 254 / 2.54 mm · Series 2695
3-circuit friction-ramp housing
22-01-2037
Servos and LEDs
4-circuit friction-ramp housing
22-01-2047
Opto
6-circuit friction-ramp housing
22-01-2067
Opto
8-circuit friction-ramp housing
22-01-2087
LEDs
10-circuit friction-ramp housing
22-01-2107
Switches and LEDs
Crimp terminal, 22–30 AWG
08-55-0102
Series 2695 housings · crimp tool 638118200
Molex Mini-Fit Jr. / 4.20 mm · Series 5557
4-circuit dual-row receptacle housing
39-01-2040
5 V and 12 V input/output · PKONE Power PCB
6-circuit dual-row receptacle housing
39-01-2060
48 V input/output · PKONE Power PCB
Female crimp terminal, 18–24 AWG
39-00-0039
Series 5557 housings · crimp tool 638190901
Getting started
How PKONE Connect fits together
The hosted application stores projects and guides the workflow. Hardware communication stays on your computer.
Hosted PKONE Connect
Projects, board profiles, Workbench controls, visual design and MPF export.
Web Serial
Chrome or Edge talks directly to EX2 over USB for normal Workbench tests.
Local helper
A small local service that performs guarded firmware programming after pairing.
CAN chain
EX2 routes commands to Switch and Lightshow boards using their DIP addresses.
What requires the helper?
Normal Workbench connection, input monitoring, coil/servo tests and Lightshow controls use Web Serial and do not require the helper. The helper is required by the hosted Programmer because firmware tools must run locally.
Getting started
Install the local helper
Install the helper once on each computer that will program PKONE boards. Packages are available for macOS, Windows and Linux.
macOS beta
Apple-signed installer and launcher for macOS 12 or newer.
A USB data cable connected directly to the board being programmed.
macOS
Download and open the signed PKONE Connect Helper installer.
Complete the standard macOS installation. The Apple-notarized installer places PKONE Connect Helper in Applications and starts its local service.
Open PKONE Connect Helper from Applications. The background helper also starts automatically when you sign in.
Apple verification: The macOS package is signed with a Developer ID certificate and notarised by Apple.
Windows
Download and open the PKONE Connect Helper installer.
Choose the installation folder and select Install. Python and the required serial libraries are included.
Open PKONE Connect Helper from Start or the Desktop. The background helper also starts automatically when you sign in.
Windows security: The beta installer is not yet signed with a Windows code-signing certificate, so Microsoft Defender SmartScreen may show Unknown publisher. Use More info → Run anyway only for the installer downloaded from this documentation site.
Linux
Download and extract the Linux helper ZIP.
Open a terminal in the extracted PKONE Connect Helper folder. Run ./install-pkone-helper.sh. The installer supports Debian/Ubuntu, Fedora, Arch and openSUSE families and installs missing system packages when required.
Sign out and back in if serial-group access was added. This is required once before accessing a PKONE board over USB.
Open PKONE Connect Helper from the application menu. A user service starts the helper automatically when you sign in. Run ~/.local/share/pkone-connect-helper/uninstall-pkone-helper.sh to remove it later.
On every platform, opening PKONE Connect Helper shows http://localhost:8876/helper. Create an eight-character pairing code in PKONE Connect and enter it on that page. The helper sends a desktop notification when firmware programming starts, completes, or fails. Linux notifications require the desktop's notify-send service.
The pairing token is held only in memory. Restarting the helper requires a new pairing code. No inbound internet port is opened.
Getting started
Get and use a pairing code
Pairing authorises one running local helper to accept firmware jobs from your signed-in PKONE Connect session.
Start the helper and open http://localhost:8876/helper. It should say Waiting for pairing.
Sign in to PKONE Connect and open Programmer from the left menu.
Under Local hardware helper, click Create pairing code.
Copy the eight-character code into the local helper page and click Pair with hosted Workbench.
Return to Programmer. The status should change to Connected and ready.
If no code appears
Reload Programmer and sign in again if the session expired.
Confirm the helper page is open on the same computer.
Create a fresh code; codes expire after ten minutes and can only be claimed once.
If the page says Helper offline, restart the helper and create a new code.
Getting started
Connect hardware for the first time
Start with EX2 connected by USB, output power removed, and every CAN board assigned a unique DIP address.
Step 1
Connect EX2 to the computer
Remove 48 V output power. Set EX2 to a unique address, connect its USB-B port directly to the computer, and leave outputs disarmed. USB supplies logic power for the first connection.
Connect EX2, Switch and Lightshow in one CAN line. EX2 connects to the computer by USB, EX2 and Switch receive 48 V, and Lightshow receives a regulated 5 V supply sized for the connected lighting load.
Three-board connection example · select any CAN label for wiring and termination details.
Step 4
Build one terminated CAN chain
Connect up to eight boards in one line. Fit a termination jumper to the two physical ends only; remove it from every board in the middle.
ComputerPKONE Connect
USB
Termination fittedEX2Address 0
CAN
No terminationSwitchAddress 1
CAN
Termination fittedLightshowAddress 2
Step 5
Discover and verify every board
Open Workbench, click Connect USB, and approve the PKONE serial device. Wait for discovery, then confirm the board type, firmware, hardware, address and permanent serial number for every device.
1Connect USB
2Wait for discovery
3Verify every identity
4Test inputs while disarmed
Before arming outputs: confirm the connected load, supply voltage, polarity and connector against the relevant map. Begin with switches and optos, then test servos, coils and lighting individually.
PKONE Connect
How to use PKONE Connect
Build the machine as one project: arrange the playfield, assign physical connectors, plan the CAN chain, test the hardware, install firmware and export the finished MPF files.
The Dashboard is the starting point for every machine. Select an existing project, create a blank project, or import a backup. The active-project card shows the design totals, while Build readiness links directly to anything that still needs attention.
Use New project for a new machine.
Use Import backup to restore a previous PKONE Connect export.
Select a project card before editing any machine pages.
Dashboard and project selection · 1280 × 720
Step 2
Lay out the playfield
Open Playfield to place switches, optos, coils, lights and mechanisms over the playfield artwork. The Parts panel adds devices, Layers selects existing devices, and the inspector edits the selected part.
Upload or replace the background art, then adjust Art alpha.
Use Focus to dim groups that are not being edited.
Name every part clearly; these names become useful throughout rules and MPF export.
Playfield editor · 1280 × 720
Step 3
Assign every physical connection
Machine I/O connects each virtual playfield part to a board and connector. Register the expected boards first, then select one unused compatible connector for every coil, switch, opto, light and servo.
Work through the grouped cards two columns at a time.
A connector already assigned elsewhere cannot be selected twice.
Resolve the red Needs attention total before export.
Machine I/O assignments · 1280 × 720
Step 4
Plan the CAN chain
Setup records the boards in their real cable order. Add up to eight boards, give every board a unique address and fit termination only to the first and last boards in the physical chain.
Add EX2, Switch and Lightshow in the order they will be cabled.
Match each planned board to its permanent serial number after discovery.
Save Setup and clear every review warning before powering the complete machine.
CAN chain setup · 1280 × 720
Step 5
Connect and test safely
Workbench connects to real hardware through Web Serial, or to the built-in Virtual chain when hardware is unavailable. Discovery restores known board settings and keeps outputs disarmed.
Leave the rate at 115200 and select Connect USB.
Test switches and optos while outputs remain disarmed.
Arm outputs only for an intentional coil, servo or lighting test.
Use Stop all or press Escape if anything is unexpected.
Workbench connection controls · 1280 × 720
Step 6
Install approved firmware
Programmer installs verified EX2, Switch and Lightshow firmware through a direct USB connection. The local helper and STM32CubeProgrammer must be installed and running before the board list becomes available.
Disconnect output loads or safely power them down.
Connect one board directly by USB and select its type, port, address and verified image.
Enter the displayed confirmation phrase, then choose Program & verify.
Firmware Programmer · 1280 × 720
Step 7
Review and export the MPF project
MPF Project checks that required switches, coils, shots and rules have valid PKONE mappings. Fix each named issue, review the generated configuration, then download the completed MPF project.
Auto assign PKONE hardware can create a starting allocation.
Open Machine I/O for missing physical mappings.
Review Rules when a shot or rule dependency is incomplete.
MPF export readiness · 1280 × 720
Recommended order: finish the playfield layout and board plan before hardware assignment. Use Workbench to prove the physical machine, then export MPF after every readiness check passes.
Workbench
Using Workbench
Workbench discovers the chain, restores saved board settings and provides guarded tests for the capability selected on the left.
Normal session
Click Connect USB.
Select a board in Connected boards.
Check the address, firmware, hardware, power and serial cards.
Choose a test section. The connection map highlights the related connectors.
Arm outputs only for an intentional output test.
Use Stop all or press Escape if anything is unexpected.
Bench log
TX is a command sent by PKONE Connect. RX is the controller or board reply. Descriptions in brackets explain the raw frame. Errors appear in red with a recovery step.
Reset scope: Selected board reset is available only when that board is the sole device on the direct USB connection. Use All boards to reset a complete CAN chain.
Workbench
Test switches and optos
EX2 exposes 30 switch inputs and five optos. Switch exposes 40 inputs.
Select the board and open Switches & optos.
Click Read all inputs for a baseline snapshot.
Operate one physical switch and confirm its tile changes state and count.
Open the tile to give the connector a useful label or invert its displayed polarity.
Repeat for each connector and save the board profile.
Input 30 on EX2 may appear active when unconnected if the hardware input is floating or uses the opposite polarity. Confirm the connector with a meter and use display inversion only after checking the physical wiring.
Workbench
Test without physical boards
The virtual chain models EX2 3.2 with Switch and Lightshow 3.0 so Workbench and MPF can exercise PKONE discovery, inputs, outputs, watchdogs and recovery before the bench hardware is ready.
Use it in Workbench
Open Workbench and click Virtual chain.
Confirm EX2 address 0 is firmware 3.2 and Switch address 2 and Lightshow address 3 are firmware 3.0.
Select an EX2 or Switch input and click Toggle virtual input.
Arm outputs to test EX2 coil/servo commands or Lightshow lamps, pixels and effects. Only the in-memory model changes.
Use the Fault test menu to verify watchdog, malformed reply, dropped reply, duplicate address and USB-disconnect recovery.
Reset and watchdog expiry return all virtual coils, servos, lamps, pixels and effects to their safe state. Switch has two physical coil connectors but firmware 3.0 reports C00, so the simulator keeps those outputs disabled.
Use it with MPF
Download and install the current helper package. Start PKONE Virtual Chain using the included macOS, Windows or Linux launcher. Developers can instead run python3 pkone_virtual_chain.py. Set the MPF PKONE port to socket://127.0.0.1:8777. The simulator prints both its MPF port and its local input-control address when ready.
Open http://127.0.0.1:8778/status to inspect virtual input, coil, servo and lighting state. The simulator listens on this computer only.
Workbench
Test coils and servos
Output tests are intentionally guarded. Check the load voltage, rating, wiring and clear mechanism before arming.
Coil pulse
Select EX2 and Coils.
Choose the coil connector and begin with a short duration and low power.
Arm outputs, then use Fire one pulse.
Use hold only for a coil designed for continuous reduced-power operation.
Use EX2 firmware 3.2 or newer for held coils. It replaces the legacy slow hold cycle that could make a mechanism chatter or vibrate. Hold power is applied in 10% steps; 95–99% is treated as steady full power.
Servo
Connect signal, 5 V and ground in the correct order. Typical servo colours are white signal, red 5 V and black ground.
Select J2–J5 and set home with the mechanism in a safe position.
Test small moves before 0°–180° travel or repeated cycles.
Use Go home to return to the saved position.
Workbench
Test Lightshow
Lightshow 3.0 supports RGB and RGBW strips in one firmware and provides 20 board-side effects.
Run an effect across the board
Select Lightshow and RGB / RGBW.
Choose an effect, primary and secondary colours, strip type, brightness, speed and direction.
Arm outputs.
Click Run effect. Workbench configures J1–J8 and starts the effect on the board.
Use Turn all off to stop the LEDs.
A successful run shows PFXE for every connector. The animation continues on Lightshow without continuous browser traffic.
Pixel strips need a suitable 5 V supply and a shared ground. USB power alone is not intended to power a large LED load.
Firmware
Program EX2, Switch and Lightshow
The Programmer sends an approved job to the paired local helper. The helper identifies the direct USB board, enters its bootloader, programs, verifies and checks identity again.
Disconnect Workbench and connect USB directly to the board being updated.
Start and pair the local helper.
Open Programmer and refresh available hardware.
Select the board port, address and matching approved image.
Read the displayed board identity.
Confirm the update and keep power connected until verification completes.
EX2 v3 and Switch use STM32 USB DFU. Lightshow uses its CP2102 serial bridge and STM32 UART bootloader. Do not move USB or power during programming.
Help
Troubleshooting
Start with the status shown by the local helper, then check the hosted Programmer and direct USB connection.
The helper page does not open
Confirm the Terminal window is still running.
Open http://127.0.0.1:8876/helper.
If port 8876 is busy, close the old helper process and start it again.
Re-run the installer if Python reports missing serial or certifi.
Pairing failed
Create a new code; the old one may have expired or already been claimed.
Check the computer clock and internet connection.
Confirm the helper can reach https://designer.pennykpinball.com.
Restart the helper after changing networks or waking the computer.
Programmer unavailable
Install STM32CubeProgrammer and restart the helper.
Close Workbench and other serial applications so the helper can open the USB port.
Use a data-capable USB cable and connect directly instead of through an unreliable hub.
Common messages
Message
Meaning
Next step
HELPER_UNREACHABLE
The browser could not contact the local service.
Start the helper and open its local page.
LOCAL_HELPER_REQUIRED
No paired helper is online.
Create and claim a new code.
BOARD_PORT_OPEN_FAILED
Another application owns the USB port.
Disconnect Workbench and close serial tools.
PXX1001E
Unsupported command or invalid field.
Check firmware versions and the preceding TX frame.
PWTE
Watchdog or CAN transport fault.
Stop outputs, inspect the chain, then reconnect.
Help
60-day limited warranty
Penny K Pinball Ltd warrants to the original consumer purchaser that its merchandise will be free from defects in material or workmanship for 60 days from the date of purchase.
What is covered
During the 60-day warranty period, the unit will be repaired or replaced, at Penny K Pinball Ltd’s option, without charge to the purchaser when it is returned prepaid and insured with proof of the date of purchase.
What is not covered
The warranty does not apply to parts damaged during shipment or through improper handling, installation, usage or alteration. It also excludes damage caused by external factors, including excessive electrical surges, liquids, fire, acts of God or excessive externally applied forces.
Damage, wear or breakage that was not caused by defective materials or workmanship is not covered, whether it affects function or appearance.
Returning a unit
Include proof of the date of purchase.
Return the unit with postage prepaid and insured.
Pack the unit carefully in its original box and inside an anti-static bag. If the original box is unavailable, use a strong carton with ample protective padding and secure it well.
Send it to Penny K Pinball Ltd, 41A Thatcher Crescent, Crofton Downs, Wellington 6035, New Zealand.
Repairs outside warranty
A unit returned without proof of purchase, or after the 60-day warranty has expired, may be repaired. Penny K Pinball Ltd will advise the repair cost after inspecting the unit and will perform the repair after payment is received. This non-warranty repair service is available for one year from the date of purchase. The unit must be returned postage prepaid and insured.
Limitations
Penny K Pinball Ltd is not liable for loss of use of the product or other incidental or consequential costs, expenses or damages incurred by the purchaser. Any implied warranties are limited in duration to 60 days from the original date of purchase.
Help
PKONE support
When you need help, include enough information to reproduce the problem without guessing.
Include in a support request
EX2, Switch and Lightshow firmware versions.
Each board’s DIP address and permanent serial.
USB operating system and browser version.
The exported Workbench log or commissioning report.
A photo of the complete powered CAN chain and termination.
The exact action taken immediately before the fault.
Still stuck?
Contact Penny K Pinball with the Workbench report attached.