
Configuration settings for KL25Z CPU ID unknown
Number of MOSFET power boards: | |
Number of chime boards: |
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.
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 LED (transmitter) pin: | Requires a PWM-capable pin | |
IR receiver input pin: | Requires an interrupt-capable pin |
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.
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.
SI (serial data): | ||
CLK (serial clock): | ||
AO (analog data): | Requires an ADC-capable (analog in) pin |
Wiper: | Requires an ADC (analog in) pin |
Channel A: | Requires an interrupt-capable pin | |
Channel B: | Requires an interrupt-capable pin |
SDA: | |
SCL: | |
GPIO0/CE: |
Button input: | |
Indicator lamp output: |
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") |
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 |
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: |
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: |
Button input number: | 0 = no input button assigned | ||
(see Button Setup) | |||
Button type: |
|
||
Indicator lamp output port: | 0 = no indicator output |
Port No. | Type | Location | Pin | Port | Options [?] | Description |
---|