Editing SimuCUBE Firmware User Guide

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help page.

Latest revision Your text
Line 7: Line 7:
 
|}
 
|}
 
The Firmware and this Guide are both work in progress, please make sure that you are using the '''latest version''' of the guide, which is posted on our wiki site.
 
The Firmware and this Guide are both work in progress, please make sure that you are using the '''latest version''' of the guide, which is posted on our wiki site.
 
== Simucube 2 ==
 
 
This user guide is not for Simucube 2, but some filter descriptions are still valid.
 
 
Simucube 2 user guide will be published on https://www.simucu.be website when it is ready.
 
  
 
== Notes and Warnings ==
 
== Notes and Warnings ==
Line 35: Line 29:
 
'''Currently Supported Titles'''
 
'''Currently Supported Titles'''
  
As of firmware version 0.9.4, most of the DirectInput FFB games are supported.
+
As of firmware version 0.9.4, most of the DirectInput FFB games are supported. One of the remaining titles that is known not to work is Codemasters F1 2017.
  
 
=== Safety disclaimer ===
 
=== Safety disclaimer ===
Line 54: Line 48:
 
== Installation of SimuCUBE Bootloader and Firmware ==
 
== Installation of SimuCUBE Bootloader and Firmware ==
  
=== Steps to verify before starting ===
+
=== Bootloader Installation ===
  
The following settings must be done, before updating to SimuCUBE firmware, to get the most easy upgrade. Note, that these only concern those that already use the third-party MMOS firmware.
+
This step must be done only if you (or your retailer) have '''NOT''' previously installed a SimuCUBE bootloader. If you have a system with MMOS Drive Firmware installed start at step #1, If you have a NEW SimuCUBE purchased direct from Granite Devices or from a retailer that does not install firmware the device should be in DFU mode and you can start at step #3. If the SimuCUBE is not in DFU and MMOS is not installed you will need to manually enable DFU mode by using the #CASE C  method described in the "Setting SimuCUBE into Device Firmware Mode (DFU)" section of the [[Installing MMos firmware into SimuCUBE]] page.
  
Connect to drive via [[Granity]], and then
+
==== Steps to verify before starting ====
  
* Check that SMO value (SM Bus Address Offset), found on the Goals tab, is 0. If not, change it to 0.
+
The following settings must be done, before updating to SimuCUBE firmware.
* Check that you have NOT enabled any homing function in the IONI drive settings.
+
* Please connect to drive with Granity and make sure that SMO value (SM Bus Address Offset), found on the Goals tab, is 0. If not, change it to 0, save to drive, and restart drive.
* Check that you have NOT configured a limit switch function to do something in IONI drive.
+
* Check that HV Bus Voltage on the Testing tab in Granity, and verify that your Overvoltage Fault Threshold is at least 1.5 V or 2.0 V above it. Later IONI firmwares require this additional margin.
+
* Check that the Maximum Motor Current is slightly above the Maximum Continuous Current.
+
** All of the above points mostly concern DIY builders, who have configured their systems by themselves.
+
** If any changes had to be made, save settigns to drive, and restart drive.
+
 
* Please make sure the drive has been updated to at least IONI firmware version 1.6.1 (version code 10601) or later. Earlier IONI firmware versions lack the support for automatic firmware update mechanism that SimuCUBE firmware utilizes.
 
* Please make sure the drive has been updated to at least IONI firmware version 1.6.1 (version code 10601) or later. Earlier IONI firmware versions lack the support for automatic firmware update mechanism that SimuCUBE firmware utilizes.
** If your installed IONI Fimware is prior to the one listed above then you must update the IONI firmware manually using [[Granity]]. ''(see Troubleshooting: #1 Automatic IONI Firmware update fails)''
+
** If your installed IONI Fimware is prior to the one listed above then you must update the IONI firmware manually using [[Granity]]. ''(see Troubleshooting: Granity Related Errors #1)''
 
+
=== Bootloader Installation ===
+
 
+
This step must be done only if you (or your retailer) have '''NOT''' previously installed a SimuCUBE bootloader. If you have a system with MMOS Drive Firmware installed start at step #1, If you have a NEW SimuCUBE purchased direct from Granite Devices or from a retailer that does not install firmware the device should be in DFU mode and you can start at step #3. If the SimuCUBE is not in DFU and MMOS is not installed you will need to manually enable DFU mode by using the #CASE C  method described in the "Setting SimuCUBE into Device Firmware Mode (DFU)" section of the [[Installing MMos firmware into SimuCUBE]] page.
+
 
+
  
 
==== Actual Bootloader Installation ====
 
==== Actual Bootloader Installation ====
Line 128: Line 112:
 
== SimuCUBE Configuration Tool User Guide ==
 
== SimuCUBE Configuration Tool User Guide ==
  
'''NOTE:''' Before using the SimuCUBE Firmware with your system please make sure that ALL previous drivers and software from any other wheel systems has been un-installed or deactivated to mitigate any possible incompatibilities or conflicts that could cause unusual or erratic behavior from the SimuCUBE.
+
NOTE: Before using the SimuCUBE Firmware with your system please make sure that ALL previous drivers and software from any other wheel systems has been un-installed or deactivated to mitigate any possible incompatibilities or conflicts that could cause unusual or erratic behavior from the SimuCUBE.
  
 
The purpose of this firmware and tool combination is to simplify and optimize the SimuCUBE to improve the user experience and simplify the set-up of your wheel. To this extent we are trying to keep this tool as easy to use and straight forward as possible with all of the needed information regarding the function of the SimuCUBE and any connected devices readily accessible and understandable. This firmware includes advanced features to improve and allow the SimuCUBE to be vastly adjusted in feel to give any user the experience that they prefer in (eventually) any game. As of firmware release 0.8.11 the new Tabbed interface was introduced.. The older style implementation will no longer be referenced.
 
The purpose of this firmware and tool combination is to simplify and optimize the SimuCUBE to improve the user experience and simplify the set-up of your wheel. To this extent we are trying to keep this tool as easy to use and straight forward as possible with all of the needed information regarding the function of the SimuCUBE and any connected devices readily accessible and understandable. This firmware includes advanced features to improve and allow the SimuCUBE to be vastly adjusted in feel to give any user the experience that they prefer in (eventually) any game. As of firmware release 0.8.11 the new Tabbed interface was introduced.. The older style implementation will no longer be referenced.
Line 201: Line 185:
  
 
=== Hardware Set-up Tab: ===
 
=== Hardware Set-up Tab: ===
'''Encoder Counts Per Revolution'''<blockquote>Indicates your encoder point count based on the settings provided to the IONI drive.</blockquote>
+
'''Encoder Counts Per Revolution'''<blockquote>Indicates your encoder point count based on the settings provided to the IONI drive.</blockquote>'''Indexing Mode'''<blockquote>The indexing mode is determined at the time of Configuring the motor, encoder, and index.</blockquote><blockquote>''Index in reference to the phasing:'' This mode sets the index point to where the wheel is positioned '''after '''phasing and requires no user action for the wheel to be used in game after turning on the SimuCUBE. An offset to this index point is set during the motor configuration wizard setup. Using this mode will cause the wheel to index "off center" if not positioned approximately straight before phasing. This form of Indexing will work with all servo types and supported encoders, please see technical notes below for issues and how to fix them.</blockquote><div style="margin-left:0.953cm;margin-right:0cm;"><blockquote>''Technical Notes (phasing index)'' - This form of indexing is accomplished due to phasing of the servo/stepper motor always beginning and ending in the same location within magnetic pole quadrant. If you find that the servo is not correctly centering consistently via this method your wheel is attached where the center position falls on or near a boundary between pole quadrants causing phasing to start in either quadrant. When this happens the phasing may finish in the wrong quadrant based on the position of the wheel before phasing which will cause the index to be offset from center. To correct for this and make sure your wheel phases in the correct manner the wheel must be slightly nudged off center before phasing into the quadrant that correctly phases center. To determine this you will need to determine where your wheel is positioned before phasing and then nudge the wheel to one side of center or the other depending on which side pole quadrant phases as center.</blockquote><blockquote>Higher pole count servos/steppers are more likely to experience this boundary position issue.</blockquote><blockquote>This form of indexing works regardless of the position of the physical index point of your encoder so it will work with encoders that do not have indexing capability.</blockquote></div><blockquote>''Index in reference to encoder:'' This mode indexes to the encoder index location when the wheel is centered. When using this style of indexing the wheel must be rotated past the encoder index point after phasing for the centerpoint to be recognized. Generally turning the wheel left and right 180 degrees will cross the index point. Using this index method will always result in the wheel being indexed straight. Turning the wheel past the index point is absolutely required with SimuCUBE open source firmware, as the IONI drive does not detect the index point while phasing. If audible notification beeps is are enabled, you will hear a beep when the wheel crosses index point. A visual indicator (LED) on the SimuCUBE board lights up after phasing and goes out when index point has been found only when this centering mode is set up via the motor configuration wizard.</blockquote>'''Maximum Motor Current''' <blockquote>Indicates the amperage provided to your motor (MMC) based on the settings provided to the IONI drive.</blockquote>'''Bumpstop Effect Enable'''<blockquote>This checkbox determines whether or not the firmware based bumpstops at the extents of wheel travel will be active. Enabling these bumpstops will not override any software bumpstops/endstops that are enabled in some games. NOT Enabling the endstop effect could result in continual wheel rotation beyond the set steering angle if the game you are using does not have software based endstops, this rotation beyond your set steering angle setting can cause issues in locating the centerpoint of the wheel after a rotation event. Checking the box enables the function.</blockquote>'''Bumpstop Maximum Force'''<blockquote>This setting determines the percentage of maximum force to use for the endstops of your wheel. If you set this to 50% it means that when you reach the firmware bumpstop it will exhibit a force equal to 50% of the maximum force of your wheel. You can set this to whatever feels comfortable when you reach the extents of the steering rotation, the higher the number the harder the bumpstop will feel.</blockquote>'''Bumpstop Damping Effect'''<blockquote>This setting sets the percent of Damping to add to the wheel when it enters the Bumpstop effect ramp range. The Damping effect dulls the feel of wheel while it is in the Bumpstop ramp range as the force increases to the bumpstop force level.</blockquote>'''Bumpstop Effect Ramp Range'''<blockquote>This setting determines the number of degrees it takes for the bumpstop to ramp up to the set Maximum Strength. This feature acts as a steering wheel bushing and setting it to a lower degree provides a more abrupt stop of the wheel. This feature is currently limited to a maximum of 20 degree ramp.</blockquote>
'''Indexing Mode'''<blockquote>The indexing mode is determined at the time of Configuring the motor, encoder, and index.</blockquote>
+
<blockquote>''Index in reference to the phasing:'' (note: this is notified as "Automatic Indexing in some firmware versions)
+
This mode sets the index point to where the wheel is positioned '''after '''phasing and requires no user action for the wheel to be used in game after turning on the SimuCUBE. An offset to this index point is set during the motor configuration wizard setup. Using this mode will cause the wheel to index "off center" if not positioned approximately straight before phasing. This form of Indexing will work with all servo types and supported encoders, please see technical notes below for issues and how to fix them.</blockquote><div style="margin-left:0.953cm;margin-right:0cm;"><blockquote>''Technical Notes (phasing index)'' - This form of indexing is accomplished due to phasing of the servo/stepper motor always beginning and ending in the same location within magnetic pole quadrant. If you find that the servo is not correctly centering consistently via this method your wheel is attached where the center position falls on or near a boundary between pole quadrants causing phasing to start in either quadrant. When this happens the phasing may finish in the wrong quadrant based on the position of the wheel before phasing which will cause the index to be offset from center. To correct for this and make sure your wheel phases in the correct manner the wheel must be slightly nudged off center before phasing into the quadrant that correctly phases center. To determine this you will need to determine where your wheel is positioned before phasing and then nudge the wheel to one side of center or the other depending on which side pole quadrant phases as center.</blockquote><blockquote>Higher pole count servos/steppers are more likely to experience this boundary position issue.</blockquote><blockquote>This form of indexing works regardless of the position of the physical index point of your encoder so it will work with encoders that do not have indexing capability.</blockquote></div>
+
<blockquote>''Index in reference to encoder:''  
+
This mode indexes to the encoder index location when the wheel is centered. When using this style of indexing the wheel must be rotated past the encoder index point after phasing for the centerpoint to be recognized. Generally turning the wheel left and right 180 degrees will cross the index point. Using this index method will always result in the wheel being indexed straight. Turning the wheel past the index point is absolutely required with SimuCUBE open source firmware, as the IONI drive does not detect the index point while phasing. If audible notification beeps is are enabled, you will hear a beep when the wheel crosses index point. A visual indicator (LED) on the SimuCUBE board lights up after phasing and goes out when index point has been found only when this centering mode is set up via the motor configuration wizard.</blockquote>
+
<blockquote>''Absolute Indexing:''
+
This mode is shown when there is an absolute serial encoder and user has configured the Commutation Sensors into use in the Configure Motor, Encoder and Center Point wizard. In this mode, the angle of the wheel can be always correct at any position on power-up.
+
'''Maximum Motor Current''' <blockquote>Indicates the amperage provided to your motor (MMC) based on the settings provided to the IONI drive.</blockquote>
+
 
+
====Bumbstop Effect====
+
Bumbstop effect determines whether or not the firmware based bumpstops at the extents of wheel travel will be active.  
+
'''Bumpstop Effect Enable'''<blockquote>Enabling these bumpstops will not override any software bumpstops/endstops that are enabled in some games. NOT Enabling the endstop effect could result in continual wheel rotation beyond the set steering angle if the game you are using does not have software based endstops. This rotation beyond your set steering angle setting can cause issues in locating the centerpoint of the wheel after a rotation event. Also, if your wheel's button plate is connected with USB, then it could coil around motor shaft. Checking the box enables the function.</blockquote>
+
'''Bumpstop Maximum Force'''<blockquote>This setting determines the percentage of maximum force to use for the endstops of your wheel. If you set this to 50% it means that when you reach the firmware bumpstop it will exhibit a force equal to 50% of the maximum force of your wheel. You can set this to whatever feels comfortable when you reach the extents of the steering rotation, the higher the number the harder the bumpstop will feel.</blockquote>
+
'''Bumpstop Damping Effect'''<blockquote>This setting sets the percent of Damping to add to the wheel when it enters the Bumpstop effect ramp range. The Damping effect dulls the feel of wheel while it is in the Bumpstop ramp range as the force increases to the bumpstop force level.</blockquote>
+
'''Bumpstop Effect Ramp Range'''<blockquote>This setting determines the number of degrees it takes for the bumpstop to ramp up to the set Maximum Strength. This feature acts as a steering wheel bushing and setting it to a lower degree provides a more abrupt stop of the wheel. This feature is currently limited to a maximum of 20 degree ramp.</blockquote>
+
  
 
==== Audible Notification Beeps ====
 
==== Audible Notification Beeps ====
 
<blockquote>The Audible Notification Beeps, when checked, will provide an audible confirmation when there is a completion of a SimuCUBE task. Currently there will be a slight musical tone at the end of phasing (successful IONI initialization) and upon finding your set index point.</blockquote>
 
<blockquote>The Audible Notification Beeps, when checked, will provide an audible confirmation when there is a completion of a SimuCUBE task. Currently there will be a slight musical tone at the end of phasing (successful IONI initialization) and upon finding your set index point.</blockquote>
 
==== Desktop Centering Spring ====
 
Desktop centering spring is an effect, which tries to center the wheel whenever there are no effects in SimuCUBE's effect memory. This means, that the Desktop Centering Spring is not typically active when there are any games running.
 
'''Centering Spring Enabled'''<blockquote>This enables the desktop centering spring effect.</blockquote>
 
'''Centering Spring Strength'''<blockquote>This controls the strength of the centering spring, when the wheel is at -450 or +450 degrees of rotation. You can set the force at this point to maximum of 200%, which would mean that the maximum centering force is reached already at -225 or +225 degrees.</blockquote>
 
'''Saturation'''<blockquote>This controls the maximum force that the centering spring produces. By using this value, you can adjust very sharply centering wheel (via the Strength setting), but with ultimate force limited to this saturation torque percentage.</blockquote>
 
 
==== USB Settings ====
 
These two USB checkbox can be used to toggle on/off some support of USB features.
 
'''USB Suspend support'''<blockquote>This enables support for USB on SimuCUBE pausing all updates. This was developed to get around an issue, where the PC will not boot if the SimuCUBE is connected and powered on.</blockquote>
 
'''USB Recovery support'''<blockquote>This enables support for trying to recover automatically from issue, where the SimuCUBE is present in the device manager and game controllers, but still shows "Disconnected" to the configuration tool.</blockquote>
 
 
If you find any issues using these features, then please report them on our Community Forum.
 
 
  
 
====  Configure Motor, Encoder, and Centerpoint button ====
 
====  Configure Motor, Encoder, and Centerpoint button ====
Line 243: Line 198:
 
===== Step 2: Select Indexing Point =====
 
===== Step 2: Select Indexing Point =====
 
<blockquote>'''Automatic Indexing''' - Sets index immediately upon phasing completion. Please see ''Index in reference to the phasing'' section in the Hardware Settings / Indexing Mode section of this guide for a full explanation of how this index method works.</blockquote><blockquote>'''Manual Indexing''' - Sets index after you turn the wheel past the physical encoder index point. Please see ''Index in reference to encoder ''section in the Hardware Settings / Indexing Mode section of this guide for a full explanation of how this index method works.</blockquote>
 
<blockquote>'''Automatic Indexing''' - Sets index immediately upon phasing completion. Please see ''Index in reference to the phasing'' section in the Hardware Settings / Indexing Mode section of this guide for a full explanation of how this index method works.</blockquote><blockquote>'''Manual Indexing''' - Sets index after you turn the wheel past the physical encoder index point. Please see ''Index in reference to encoder ''section in the Hardware Settings / Indexing Mode section of this guide for a full explanation of how this index method works.</blockquote>
 
'''Note:''' If you have absolute encoder, then step to use absolute indexing will come up automatically in the wizard.
 
  
 
===== Step 3: Motor Initialization =====
 
===== Step 3: Motor Initialization =====
Line 264: Line 217:
 
'''Raw Value:''' This number represents the Raw 16bit value that the channel is showing at any particular moment. The SimuCUBE does exhibit some noise in the analog system which can be seen in this raw value as constant fluctuation.
 
'''Raw Value:''' This number represents the Raw 16bit value that the channel is showing at any particular moment. The SimuCUBE does exhibit some noise in the analog system which can be seen in this raw value as constant fluctuation.
  
'''Deadzone Low:''' The value placed in the deadzone low field adds deadzone to the analog input. This value can be adjusted so that the static noise of the SimuCUBE or any devices connected are eliminated. An example for using this adjustment would be if your analog pedal is exhibiting a value of being pressed slightly when stationary, increasing the low deadzone will create a hardware deadzone so that the static signal is not seen by windows and subsequently any game. Having a value reduces the overall raw range of the device at input but allows for a cleaner signal at idle position.  
+
'''Minimum Value:''' The value placed in the minimum value moves the low value of the analog input. This value can be adjusted so that the static noise of the SimuCUBE or any devices connected are eliminated. An example for using this adjustment would be if your analog pedal is exhibiting a value of being pressed slightly when stationary, putting a minimum value will create a hardware deadzone so that the static signal is not seen by windows and subsequently any game. Having a value reduces the overall raw range of the device at input but allows for a cleaner signal at idle position. To easily figure out how to set this watch the number shown in the raw input and put a value in that is above the highest number shown. This number may jump around a bit.
  
'''Deadzone High:''' The value placed in the deadzone high field adds deadzone to the analog input's high end. To set this you should add deadzone until the maximum travel or input of your device shows at 100%. Once calibrated windows will recognise these settings as full range. This can be used effectively for a short throw clutch, or making sure that you have 100% throttle.
+
'''Maximum Value:''' The value placed in the maximum value moves the endpoint percentage to match the maximum voltage output of the device connected. To set this you should lower the number until the maximum travel or input of your device shows at 100%. Once calibrated windows will recognise these settings as full range. To easily set this number press the pedal or device to its full extent and place the value shown in the raw input (or a number below) into the Maximum Value. By placing a number below the absolute Maximum you are creating a 100% zone at full travel. This can be used effectively for a short throw clutch, or making sure that you have 100% throttle.
  
 
'''Invert:''' If your axis is showing up as being backwards from the intended input you will want to check the box for that channel.
 
'''Invert:''' If your axis is showing up as being backwards from the intended input you will want to check the box for that channel.
Line 278: Line 231:
  
 
====  Update Firmware ====
 
====  Update Firmware ====
<blockquote>This button starts the Firmware Update Wizard which will place the SimuCUBE in update mode and install the firmware. ''(please see “Firmware Installation:” under Installation of SimuCUBE Bootloader and Firmware''' - '''for more information)''</blockquote><blockquote>When there is an firmware update, the new version will be shipped as a new zip file, and the configuration tool from the new version should be used to update firmware.</blockquote><div style="margin-left:0.953cm;margin-right:0cm;"></div>
+
<blockquote>This button starts the Firmware Update Wizard which will place the SimuCUBE in update mode and install the firmware. This will also automatically update the IONI to the latest firmware once installed. ''(please see “Firmware Installation:” under Installation of SimuCUBE Bootloader and Firmware''' - '''for more information)''</blockquote><blockquote>When there is an firmware update, the new version will be shipped as a new zip file, and the configuration tool from the new version should be used to update firmware.</blockquote><div style="margin-left:0.953cm;margin-right:0cm;"></div>
 
+
The Configuration Tool will automatically suggest an update after you launch a new version of it. This manual button can be used to place the SimuCUBE in to Firmwrae Updgrade Mode. If user quits the wizard when the wizard says "Found SimuCUBE in Firmware Upgrade mode", a downgrade to a previous firmware version can be performed..
+
  
 
=== Advanced Tab: ===
 
=== Advanced Tab: ===
Line 385: Line 336:
  
 
'''''Warning:''''' if you are using the SimuCUBE acrylic case please be careful when opening as the acrylic can be brittle and crack
 
'''''Warning:''''' if you are using the SimuCUBE acrylic case please be careful when opening as the acrylic can be brittle and crack
 
[[Category:SimuCUBE]]
 
[[Category:SimuCUBE_troubleshooting]]
 
[[Category:SimuCUBE_user_guide]]
 
[[Category:Software]]
 
[[Category:Troubleshooting]]
 

Please note that all contributions to Granite Devices Knowledge Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Granite Devices Knowledge Wiki:Copyrights for details). Do not submit copyrighted work without permission!

Select categories:

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)