Skip to content

Commit

Permalink
rcm mode and compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
ranenbg committed Aug 29, 2022
1 parent 20ed37f commit 51af61c
Show file tree
Hide file tree
Showing 10 changed files with 109 additions and 31 deletions.
Binary file modified data/Wheel_control_step0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified data/Wheel_control_step1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified data/Wheel_control_step2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified data/Wheel_control_step2a.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified data/Wheel_control_step3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed data/Wheel_control_v2_3.png
Binary file not shown.
Binary file added data/Wheel_control_v2_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 7 additions & 4 deletions data/manual.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Milos Rankovic
ranenbg@gmail.com
12.08.2022.
wheel control v2.3 - compatible with Arduino HEX versions v200 and newer (backward compatible with v170, v180 and v190)
29.08.2022.
wheel control v2.4 - compatible with Arduino HEX versions v200 and newer (backward compatible with v170, v180 and v190)

About:
Wheel control GUI is made in windows programming environment called Processing v3.5.4, which is based on Java. It opperartes by directly reading HID values from Arduino such as axis and buttons. It uses RS232 or virtual serial port to send many settings that you may like to adjust (check firmware_info.txt for more details). The settings can be stored in Arduino EEPROM, such that they will be saved and automatically loaded at every powerup. Arduino firmware and GUI are developed and tested in Win10.
Expand All @@ -21,7 +21,7 @@ How to use wheel control:
[1] set desired Rotation degrees
[2] manually align your wheel to center position, press center and then save button
[3] select PWM type (phase correct is recommended, but you can use fast top for twice higher frequency at the same resolution)
[4] select PWM mode (pwm+-, pwm+dir or pwm0.50.100-use fast top with this mode)
[4] select PWM mode (pwm+-, pwm+dir, pwm0.50.100-use or rcm)
[5] select PWM frequency (check firmware_info.txt for more details)
[6] press pwm button and close wheel control, restart or replug Arduino to apply new PWM settings, start wheel control

Expand All @@ -30,7 +30,7 @@ Use overall gain to set the master volume or gain for all FFB effects. You may u
The button next to overall gain is for enabling/disabling real time FFB monitor graph. It is extremely usefull for troubleshooting or fine tunning your FFB settings in the game and finding the point of clipping. It is directly showing an FFB signal over COM port, that a game is sending in 1sec time window. It is recommended not to keep it always on, its purpose is only for FFB signal inspection and making sure there is no clipping. Once you are happy wiht your FFB, disable the FFB monitor, not to cause any delays due to COM data transfer.
New feature is profile selector. Select one of the empty slots first. Make changes to the FFB settings as you wish and click store button. Type some name and click ok. This will save a profile into a txt file. Wheel control will look for any existing profiles at each start up, so you can load it. Note that PWM settings are not stored and loaded from a profile config.

Additional startup troubleshooting has been added from v2.0, such that startup problems will be easier to diagnose. Window is no longer white, and it shows some advanced setup info.
Additional startup troubleshooting has been added from v2.0, such that startup problems will be easier to diagnose. Window is no longer white, and it shows some advanced setup info. Since v2.4 I have improved the text info messages in each window from setup process, to contain some more details and to be more user friendly.

Axis color setup:
The axis colors are stored in a axisColor.txt file in a HEX format. This file will be created at startup with default values if it does not already exist. If it exists then the axis colors will be loaded from it. First two letters are alpha channel, so you can leave this at FF and fill in the remaining 6 numbers. In following link you can get those 6 HEX numbers from RGB values.
Expand All @@ -42,6 +42,9 @@ This version of wheel control allows you to setup an analog shifter. The shifter
Manual pedal axis calibration
In this version you can manual set pedal axis calibration limits and save them into Arduino EEPROM. The calibration values are automatically loaded at each powerup of Arduino. Each time you start wheel control it will ask Arduino for latest calibration values and update the sliders accordingly. In order to set calibration limits first press "manual cal" button to unhide the calibration sliders. Move sliders to ther lowest (0) and maximum (4095) positions if they are not already there. Now press each pedal to its full range and set its corresponding maximum slider to a value slightly below the pedal axis value. Once done, now move back each pedal into ther lowest position and set the minimim slider to a value slightly above the pedal axis value. Pedal axis values should show a full range 0-4095 if done correctly. Once happy with your pedal travel and calibration limits you can press "save" button.

RCM pwm mode settings
Some RC servos and other brushless motor drivers require a special pwm mode for their operation, called RCM or PPM. This version of wheel control supports the lattest version of firmware fw-v21X where I have added this new pwm mode. Note that not all frequencies are available due to the nature of this mode. A zero force is represented as a square wave with a pulse width of 1.5ms, while full left force has 1.0ms pulse width and full right force has 2.0ms pulse width. This imposes a limit for the max allowed frequency of 500Hz which corresponds to 2ms period. Any higher frequency than 500Hz would have a lower period, therefore it does not allow to achieve the full range of right (positive) forces. For that reason I have labeled such frequencies as NA - not available. I have implemented some safety features in this version of wheel control, such that you can't select or send incorrect pwm settings to firmware.

Hopefully everything else will be self explanatory, enjoy :)
rane.

Expand Down
34 changes: 20 additions & 14 deletions data/processing_3_5_4_status_log.txt
Original file line number Diff line number Diff line change
@@ -1,31 +1,37 @@
=======================================================
Arduino Leonardo FFB user interface
wheel control v2.4 created by Milos Rankovic
=======================================================
GameControlPlus V1.2.2 created by
Christian Riekoff and Peter Lager
=======================================================
Instance: org.gamecontrolplus.ControlIO@54dd0999
Instance: org.gamecontrolplus.ControlIO@5a93fb1f
##########################################################################################
Game Control Plus - available devices
--------------------------------------
0 Mouse [Mouse] on [Unknown]
1 Keyboard [Keyboard] on [Unknown]
2 Lenovo USB Keyboard [Unknown] on [Unknown]
3 Lenovo USB Keyboard [Unknown] on [Unknown]
4 Arduino Leonardo [Stick] on [Unknown]
2 G203 LIGHTSYNC Gaming Mouse [Unknown] on [Unknown]
3 G203 LIGHTSYNC Gaming Mouse [Unknown] on [Unknown]
4 G203 LIGHTSYNC Gaming Mouse [Unknown] on [Unknown]
5 G203 LIGHTSYNC Gaming Mouse [Unknown] on [Unknown]
6 Lenovo USB Keyboard [Unknown] on [Unknown]
7 Lenovo USB Keyboard [Unknown] on [Unknown]
8 Arduino Leonardo [Stick] on [Unknown]
##########################################################################################

Device: Arduino Leonardo
COM: searching...
[0] "COM1"
[1] "COM4"
[2] "COM5"
Arduino Leonardo at COM5
config: saved
COM: loaded from txt
axis colors: loaded from txt
=======================================================
G4P V4.3.8 created by Peter Lager
=======================================================
Wheel parameters:
1080.0 1.0 0.5 0.5 1.0 1.0 1.0 0.5 0.7 1.0 0.0 128.0 1 500 2400 9; 11ms
WB:V, RB:fw-v170h; 1ms
WB:V, RB:fw-v170h; 6ms
ControlP5 2.2.6 infos, comments, questions at http://www.sojamo.de/libraries/controlP5
1080.0 1.0 0.5 0.5 1.0 1.0 1.0 0.5 0.7 1.0 0.0 128.0 1 500 2400 9; 2ms
WB:V, RB:fw-v210zf; 2ms
WB:V, RB:fw-v210zf; 14ms
WB:HG, RB:255 511 767 255 511 0; 21ms
WB:YR, RB:0 4095 0 4095 0 4095 0 4095; 11ms
WB:V, RB:fw-v210zf; 9ms
ControlP5 2.2.6 infos, comments, questions at http://www.sojamo.de/libraries/controlP5
profile1.txt found
Loading

0 comments on commit 51af61c

Please sign in to comment.