## PPJoyCOM virtual joystick

PPJoyCOM is an application to read data from a serial port and convert it into joystick input via the PPJoy Virtual Joystick interface. Below is a screenshot of PPJoyCOM:

### Selecting a Virtual Joystick

The drop-down list next to Joystick device selects the virtual joystick to use. The list contains all possible virtual joystick names; it does not detect which virtual joysticks are actually configured in PPJoy. You need to configure at least one virtual joystick in PPJoy.

The text to the right of the drop-down list displays the status of the selected virtual joystick.

### Selecting a serial port

The next drop-down list, next to Serial Port allows you to select the serial port to read. As with the virtual joystick list, the serial port list displays preconfigured ports and does not dynamically detect which ports are actually installed in the system.

The additional drop-down lists (below the serial port list) will be enabled or disabled depending on whether the serial protocol prescribes fixed values for them or not.

The display to the right of the serial port list shows the status of the selected port.

### Selecting a serial protocol

The final drop-down list, Serial protocol determines how PPJoyCOM interprets the data it reads from the serial port. Currently the following protocols are supported:

- FMS PIC 9600 baud (0xF0+ sync) is the original serial PIC interface design for FMS by Ken Hewitt and described on his web page http://www.welwyn.demon.co.uk/fms_lead/fms_lead.htm.
- FMS PIC 9600 baud (Alt) is similar to the Ken Hewitt interface. It uses 0xF0 as sync byte, followed by a byte for buttons and 1-8 bytes for the actual channels. The channel values can be 0x00 to 0xEF.
- FMS PIC 19200 baud (0xFF sync) operates at 19200 baud and uses 0xFF as sync byte. The sync bytes can be followed by 1-8 channel bytes. Each channel byte can be between 0x00 and 0xFE.
- Zhen Hua 5 byte protocol operates at 19200 baud and uses 0xF0 - 0xFF as sync byte; the order of the received bits is swapped around. This protocol is meant to support the Zhen Hua 4 channel radio control transmitter.

The text below the protocol list will display the status of the protocol parser. If you are not getting joystick input it should provide some clues.

### Loading and saving the configuration

PPJoyCOM allows you to load and save the configuration to .INI files. You can also load an .ini file on startup by specifying it on the command-line when starting PPJoyCOM. For example `PPJoyCOM.exe C:\Config\PPJoyCOM.ini` will automatically attempt to load C:\Config\PPJoyCOM.ini on startup.

### Additional notes

- Each instance of PPJoyCOM reads data from single serial port and feeds the data to one virtual joystick. You can run multiple copies of PPJoyCOM if you need to use more than one serial port controller. You can however only use one controller per serial port.