Settings
Configuration settings for KL25Z CPU ID unknown
System type. Are you using this KL25Z on its own,
or with a set of expansion boards? Help
| Number of MOSFET power boards: | |
| Number of chime boards: |
USB Identification. This is how the KL25Z identifies itself to
Windows through the USB port.
Pinscape ID. This is a separate ID from the LedWiz
unit number. DOF R3 and the
DOF Config Tool use this ID to identify the unit.
Set this to 1 for your first unit, 2 for the second, and so on.
This is completely unrelated to the LedWiz unit number, so it doesn't need to match that, and by the same token doesn't need to be different. This doesn't affect the USB ID or the Windows device drivers. It's purely for DOF and other Pinscape-aware software.
Reset on disconnect. If the USB connection is broken, and
can't be re-established within a time limit, the KL25Z can
automatically reset itself as an attempt to fix whatever's wrong.
Select the time interval (in seconds) before this happens.
TV ON switch. If one or more of your monitors needs to be turned
on manually every time you power up your cabinet, you can use this feature
to switch them on automatically. See the Build Guide for wiring instructions.
| Power status input: | ||
| Status latch output: | ||
| Relay output: | ||
| Startup delay time (seconds): | This is how long to wait after power-on before pulsing the relay |
IR Remote Control. The controller can send and/or receive IR
remote control signals if you attach some additional components. This
can be used with the TV ON feature to turn
your cabinet TVs on via IR commands at system startup. See the Build
Guide for details on the components required and how to connect them.
If you don't have any IR components attached or wish to disable them,
simply set the pin assignments here to "Not Connected".
| IR LED (transmitter) pin: | Requires a PWM-capable pin | |
| IR receiver input pin: | Requires an interrupt-capable pin |
Joystick input. The controller acts like a Windows USB Joystick
in order to send the plunger position, accelerometer readings (for nudging),
and button inputs to the PC. You can disable these inputs if desired.
A real joystick reports the position of the stick by sending an "X Axis" value for the left/right position of the stick and a "Y Axis" value for the up/down position. It can also send a "Z Axis" value to represent another control like a throttle. Normally, Pinscape uses these same three axes, by sending accelerometer readings on the X and Y axes, and plunger readings on the Z axis. The USB protocol for joysticks also defines a set of "rotational" axes called Rx, Ry, and Rz. Real joysticks that allow twisting motions report those motions on these "R" axes. If you wish, Pinscape can report its normal readings on the "R" axes in place of the normal X/Y/Z axes.
Why would you want to use the "R" axes? In most cases, you wouldn't; the normal X/Y/Z settings are recommended because they're compatible with most software. However, the "R" axes can be useful if you have other joysticks in your system that are conflicting with Pinscape. If your other joystick is reporting its input on the normal X/Y/Z axes, and it's creating problems with VP or other software, you might be able to fix the conflict by telling Pinscape to use the Rx/Ry/Rz axes instead.
If you change the Pinscape axes, you also have to reconfigure Visual Pinball and any other pinball players to use the Rx/Ry/Rz axes. Future Pinball has no way to read the Rx/Ry/Rz axes, so using these in Pinscape will make it incompatible with FP. You might run into the same limitation in other software. Because of the compatibility issues, you might find that it's better to reconfigure the other joystick that's creating the conflict, if possible, since that would let you continue using the more compatible X/Y/Z axes for Pinscape.
This lets you set the time between the joystick reports that the device sends to the PC on the USB connection. These reports send current information on the accelerometer readings, plunger position, and the button-press status for any buttons assigned to the joystick.
Pinscape is capable of sending reports as fast as every 1 to 2 milliseconds. (The exact speed depends on the type of plunger sensor and other external hardware you're using.) But we actually don't want to send reports as fast as we can, because Windows and Visual Pinball can't digest them at that pace. This setting lets you slow down the reports to a suitable rate for the PC.
Recommendation: start with an input time of 8.333ms and an "accelerometer stutter" setting of 2. This should work well on most systems, but it's not necessarily optimal for everyone, because VP's timing characteristics can vary according to your PC setup. You might have to experiment to find the ideal settings for your system. After adjusting the timing, test nudging with VP. If it seems natural, keep the settings. If VP's response to nudging seems erratic (for example, it ignores some nudges, but overreacts to others), try different timings. It's best to keep the setting in a range from about 5ms to 20ms. Anything shorter than 5ms will be too fast for Windows to digest properly, and anything longer than 20ms might produce excessive latency (games respond slowly to button presses and nudges).
The "stutter" setting works in connection with the joystick report interval above to set the interval between accelerometer reports. The accelerometer reading is sent as part of the joystick report, so the base interval between accelerometer readings is exactly the same as the joystick report interval. This setting lets you slow down the accelerometer readings to a multiple of the joystick interval.
The stutter is the number of times that each physical accelerometer reading is repeated in sequential joystick reports. If you set the stutter to 1, it means that a new reading is sent with every joystick report sent to the PC. If you set it to 2, a new reading is sent with every other report, and the alternating reports simply repeat the prior reading. If you set it to 3, a new reading is taken every three reports.
Why would you want to slow down the accelerometer readings? Because VP can't use the readings if they arrive too quickly. For best results in VP, readings should only be sent once per video cycle. If your graphics card is set to a 60Hz refresh rate, the video cycle is 16.667 milliseconds long, so VP will work best if you send accelerometer readings every 16.667ms. However, you might want to send joystick reports faster than this, so that joystick button updates are sent closer to real-time. This is where the stutter setting comes in: it lets you send joystick reports at a fast pace for lower button latency, but slow down the accelerometer readings to accommodate VP's slowness reading them.
Recommendation: start with a joystick report interval of 8.333ms and a stutter setting of 2. This will read the accelerometer at 60Hz, which is usually optimal for VP, but will send button input updates twice as often, which might make other programs that use joystick buttons more responsive. The optimal timing in VP can vary according to your PC setup, though. Check your video card refresh rate (use the video card rate, not the monitor's refresh rate). If it's not 60Hz, choose a report interval close to 10ms that divides evenly into the refresh interval, and choose a stutter time equal to the refresh interval divided by the report interval. If your video card refreshes at 120Hz, for example, use an 8.333ms interval and set stutter to 1.
Accelerometer orientation. If you're using the accelerometer
(for nudge sensing), the software needs to know how the KL25Z is oriented
in the cabinet so that it can report motion in the right direction. Install
the KL25Z in one of the orientations shown below, level with the floor of
the cabinet, with the chips and LEDs facing up.
The KL25Z accelerometer hardware has three native range settings: ±2G, ±4G, and ±8G. (A "G" is the acceleration of the earth's gravity, 9.8m/s².) The device offers the options because each is a compromise between precision and dynamic range, and some applications care more about precision while others care more about range. Precision is the ability to discern the difference between nudges that are very close together in strength. Dynamic range is the ability to tell the difference between nudges that are very far apart in strength. In the 2G range, the device has the best precision, but the tradeoff is that readings are capped at 2G, so real accelerations that are higher than 2G will read as 2G. The 4G and 8G ranges increase the cap, allowing for true readings up to the respective limits, but the tradeoff is that they lose some of the ability to distinguish readings that are very close together.
For virtual pinball use, the 1G or 2G settings are recommended, because precision is more important to us than range. It makes it more realistic if the game can discern fine shadings of strength. It's not as important to distinguish very high accelerations from one another, since anything beyond a certain point is just a TILT anyway.
1G is the default because it was the fixed setting in older versions of the Pinscape firmware, before this option existed. 1G will produce the same effects you're used if you had previous versions installed. If you wish, you can change to 2G with no loss of precision, because 1G and 2G use the same native device settings. If you do change to 2G, you should adjust your VP "axis gain" settings (in the keyboard preferences) to compensate, by doubling the old settings. Similarly, if you decide to try 4G or 8G, double the gain settings again at 4G, and yet again at 8G.
Plunger sensor setup
TSL14xx optical sensor. This is a large
optical sensor with the pixels arranged in a single row, about 3" long.
We detect the plunger position by reading the image from the sensor and
looking for the shadow cast by the plunger. The edge of the shadow tells
us the plunger position.
TSL1401CL bar code sensor. This is a small optical sensor that we
use to read the plunger position from a bar-coded "scale". The scale has
a series of tiny bar codes across its length, with each bar code representing
its position. As the plunger moves, the sensor slides along the scale, and
we can read the current position by scanning the nearest bar code. This
requires the specially printed scale with bar codes in the format
the software recognizes.
| SI (serial data): | ||
| CLK (serial clock): | ||
| AO (analog data): | Requires an ADC-capable (analog in) pin |
Potentionmeter. This uses a slide potentiometer,
which is a variable resistor with a control knob that moves linearly
across the length of the device. Attach the control knob to the
plunger so that the knob moves with the plunger. The pot's
electrical resistance changes as the knob moves, proportionally to
the position, so the controller can determine the plunger position
by reading the voltage on the input.
| Wiper: | Requires an ADC (analog in) pin |
Quadrature sensor. This uses an optical sensor that tracks its
position along a special reflective guide rail, with bars marked at
regular intervals. The sensor keeps track of its position by counting
the bars it passes as it moves.
| Channel A: | Requires an interrupt-capable pin | |
| Channel B: | Requires an interrupt-capable pin |
VL6180X distance sensor. This sensor determines the distance
to a nearby object by bouncing pulses of light off the object and
measuring how long the light takes to return, using a very precise
clock.
| SDA: | |
| SCL: | |
| GPIO0/CE: |
Plunger calibration button. If you wish, you can install a
pushbutton in your cabinet to activate plunger calibration mode.
This is optional, since you can also run the calibration from this
setup program. See the Build Guide for wiring instructions.
| Button input: | |
| Indicator lamp output: |
ZB Launch Ball setup. You can set up your mechanical plunger
to act as a "virtual" Launch Ball button for tables that use a button
instead of a plunger.
Details
| Output port number: | Important! Set this port to "ZB Launch Ball" in the DOF Config Tool | |
| Key/button: | Most PC pinball software uses the Enter key for ball launch | |
| Push distance (inches): | Recommended value is 0.063 (about 1/16") |
Button inputs. You can use the KL25Z as a key encoder to
connect pinball-style buttons on your cabinet to the PC. Set up
the wiring connections and key assignments below. Each input can
be mapped as a joystick button or keyboard key. Click an input
pin or key assignment to change a setting.
TLC5940 (external PWM controller chip) setup
What's this?
These chips let you go beyond the KL25Z's limited PWM capabilities. The KL25Z only has 10 PWM channels of its own, which isn't enough for most virtual pinball machines. Each TLC5940 chip provides 16 PWM outputs, and you can connect two or more of the chips in a daisy chain to add almost unlimited outputs. Only five GPIO pins are needed to control the whole chain.
The Pinscape Expansion Boards use these chips to provide extra PWM outputs. You can also install them with your own custom wiring. The circuitry needed is outlined in the Build Guide. The settings below configure the data signal connections between the KL25Z and the TLC5940's.
| Number of TLC5940 chips: |
| SI (serial data) output: | Requires an SPI MOSI output pin | |
| SCLK (serial clock) output: | Requires an SPI SCLK output pin | |
| XLAT output: | ||
| BLANK output: | ||
| GSCLK output: | Requires a PWM-capable output pin |
TLC59116 (external PWM controller chip) setup
What's this?
These chips let you go beyond the KL25Z's limited PWM capabilities. The KL25Z only has 10 PWM channels of its own, which isn't enough for most virtual pinball machines. Each TLC59114 chip provides 16 PWM outputs, and you can connect up to 14 of the chips. Only three GPIO pins are required no matter how many of the chips are attached.
The TLC59116 is a successor to the TLC5940 (see above) with a more modern design. It's only available in a surface-mount (SMD) package, which makes it a little harder to work with than the traditional DIP form factor of the TLC5940NT. This chip is not interchangeable with the TLC5940, even though it has a similar function, since it has a different physical pin layout and a different software interface.
| SDA: | |
| SCL: | |
| RESET: |
74HC595 (external digital out chip) setup
What's this?
The Pinscape "Chime Board" uses this chip to add outputs for replay knockers and chime units. You can also add these chips with your own custom wiring; the circuitry is described in the Build Guide. The settings below let you configure the data connections between the KL25Z and the 74HC595's.
| Number of 74HC595 chips: |
| SI (serial data) output: | |
| SCLK (serial clock) output: | |
| LATCH output: | |
| ENA output: |
Pinscape After Dark. You can set up a button or switch to
activate Night Mode, which disables the feedback device outputs
that you designate as noise-makers. This lets you play during late-night
hours without disturbing your party-pooper housemates and neighbors.
Details
| Button input number: | 0 = no input button assigned | ||
| (see Button Setup) | |||
| Button type: |
|
||
| Indicator lamp output port: | 0 = no indicator output |
Feedback device outputs. Pinball software on the PC can control
output devices connected to the KL25Z to create special effects during play,
such as tactile feedback and lighting displays. The PC software uses the
port numbers in the list below to address the outputs. Use these
port numbers when you set up your DOF configuration.
For each port, you can select the physical output pin that the port is wired to.
| Port No. | Type | Location | Pin | Port | Options [?] | Description |
|---|















