SimuCUBE Firmware User Guide

From Granite Devices Knowledge Wiki
Revision as of 14:22, 9 February 2018 by Mtakala (Talk | contribs) (Peaking and Notch Filter)


Jump to: navigation, search

Welcome to the beta testing program! Thank you for your interest in testing to improve SimuCUBE.

IMPORTANT NOTES
EVERY beta tester should read our SimuCUBE wiki page to get familiar with the SimuCUBE system: https://granitedevices.com/wiki/SimuCUBE
EVERY beta tester should read this guide completely before attempting to install SimuCUBE Open Source firmware during the beta testing phase.

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.

Contents

Notes and Warnings

Hardware support

Due to hardware differences, SimuCUBE firmware is only supported on SimuCUBE builds and will not work on builds based on IoniCUBE or ARGON.

Beta disclaimer

Please take note that the firmware is a Beta version. Unexpected full forces left/right motions could happen at any time. Please take extra precaution and have your e-stop button close by.

Please do not use the beta in official races or other important events.

Bug and problem reporting

Please do not send support requests regarding the beta version to the Granite Devices support emails. Instead, please register to our community forum at https://community.granitedevices.com/ and use appropriate thread there.

Features that work and features that won’t work yet

The SimuCUBE Configuration Tool has many things marked in RED. These features are not currently implemented and do not work. Please do not try to test these items as we already know that they don’t work.

Some screens have obvious warnings, these are also indicated in RED. These are fully functional, working indicators and should be noted when some of the features are used.

Game support

Currently Supported Titles

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

SimuCUBE based Force feedback system (FFB) pose high mechanical danger that may cause serious injuries to living beings, cause damage to external property or loss of profits. Always operate SimuCUBE based system with maximal caution.

  • Beware of very high sudden torques or vibrations produced by motor attached to SimuCUBE - these are expected even in normal operating conditions
  • Be aware that malfunction of misconfiguration may cause uncontrolled or higher than normal motor rotation or torques
  • End-user's responsibility is to ensure that motor, or items connected to the motor can not cause damage due to rotation, torque or vibration
  • Always be ready to let go from the motor or parts connected to it (i.e. take hands off the simulator wheel)
  • Make sure that a reliable stopping method is available and user reachable at all times (reliable method: unplugging AC power). Note that unplugging power might not stop motor immediately.
  • Do not try to stop spinning motor by hands or other mechanical means
  • Note that wheel, cables or other items attached to motor may hit objects or living beings and may have damaging effects. User's responsibility is to control this danger and take responsibility of the possible consequences caused by moving items.
  • Ensure that motor has been rigidly fixed to avoid it getting loose under extreme vibrations
  • Understand that the responsibilities of the manufacturer of the SimuCUBE are limited to fulfilling the technical specifications and functions of the device. The technical function includes production of high torques and speeds on a large motor. Understand that spinning motor or high torques produced by it are considered operation within specifications, so potential damages caused by such operation are not within liabilities of the manufacturer.
  • Commonly used motors may exceed torque of 30 Newton meters and rotation speed of 1000 rpm when attached to SimuCUBE
  • Due to high electric currents, motor, cables or IONI drive may get dangerously hot (skin burns, fire hazard)

For your own safety, do not operate SimuCUBE if you don't understand these dangers

Installation of SimuCUBE Bootloader and Firmware

Bootloader Installation

This step must be done only if you have NOT previously installed a SimuCUBE bootloader. Generally this is the case if your current SimuCUBE firmware is of version 0.5.x or earlier or when migrating from the 3rd party MMOS firmware.

Steps to verify before starting

The following settings must be done, before updating to SimuCUBE firmware.

  • 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.
  • 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.
    • Update IONI firmware manually using Granity.

Actual Bootloader Installation

If Currently Using MMOS - Enable DFU mode within MMOS and install the supplied SimuCube Bootloader DFU file using DfuSeDemo which is available here: http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1533/PF257916


NOTE: Once DfuSeDemo has successfully installed the SimuCUBE Bootloader using the MMOS method click on the Leave DFU mode to reset your SimuCUBE back to run mode. You may need to cycle the power waiting a few seconds in between Power Down and Power Up to get Windows to recognise the new HID Device titled “SimuCUBE in firmware update mode”. The Leave DFU mode will not work when using the dip switch “Case C” method as described below.


Instructions for installing firmware (bootloader) with DfuSeDemo are included in the link below. In addition If you are unable to get MMOS to enable DFU mode, setting DFU mode will need to be done manually, this process is covered as “Case C” under “Setting SimuCUBE into Device Firmware Mode (DFU)”:

https://granitedevices.com/wiki/Installing_MMos_firmware_into_SimuCUBE#Setting_SimuCUBE_into_Device_Firmware_Mode_.28DFU.29

If the bootloader firmware fails to install using any of the methods above (retaining MMOS functionality) please see the Trouble Shooting section of this guide.

Successful bootloader installation and startup is noted by the SimuCUBE status LEDs located next to the green power LED lighting up one-by-one, after which they will go off with the power LED remaining lit.

Step by Step Install for Bootloader from MMOS:

This link below is a video that shows the basic SimuCUBE Firmware installation process from start to finish. It also shows the common troubleshooting case where Windows installs an incorrect driver for the STM32 Bootloader device initially, and how to update the driver for it so installation will go smoothly. This issue is also covered in the Trouble Shooting section of this guide.

https://www.youtube.com/watch?v=e16MU0ckcjo

#1: Click on DFU Mode button (USB connection ICON should turn red)
1dfumode.jpg
#2: Close MMOS (not closing MMOS Control panel can cause DFU installation failure)

#3: Open DFUse Demo (verify that "STM Device in DFU Mode" is in the dropdown menu at top)

2dfusedemolist.jpg
#4: Set the SimuCUBE bootloader.dfu as the file to be transferred click on Choose in the Upgrade and Verify Section of DFUse and locate the simucube-bootloader.dfu file within the SimuCUBE Configuration Tool Folder (or the desktop if you have had to extract it separately)
3dfuselect.jpg
3bfilename.jpg

#5: Make sure that "Verify after download" is checked. (in the Upgrade and Verify Section of DFUse)

#6: Click on Upgrade in the Upgrade and Verify Section of DFUse
6upgrade.jpg
#7: Click OK on the Dialog that comes up
7verify.jpg

#8: After Successful upload Click on "Leave DFU Mode" toward the top center of the DFUse interface. If you forget to do this step you will need to power down the SimuCUBE, wait a few seconds and then turn the SimuCUBE back on..

#9: Close DFUse Demo

SimuCUBE Firmware Installation

After installing the SimuCUBE Bootloader, the SimuCUBE will start up in firmware update mode. The SimuCUBE Firmware must be installed using the SimuCUBE Configuration Tool with the Firmware Update Wizard. Installation by ANY other method will not work.

Once the Bootloader is installed via the instructions above Open the SimuCUBE Configuration Tool. As of firmware version 0.9.4 and later, the firmware update wizard will automatically open.

After the SimuCUBE firmware has been successfully installed, SimuCUBE will boot automatically and update the IONI firmware to the latest version automatically. Please wait for the firmwrae update wizard to finish, including the countdown on the last page of the wizard, before doing any power-cycling of the system. After the wizard closes, the Configuration Tool will close and it must be reopened to start using SimuCUBE.

If the SimuCUBE Configuration Tool is open while this is happening it will indicate that it is updating the Drive Firmware, along with a percentage of update done. It will NOT provide you with a separate completion indication. On completion, the Operating Mode status indicator will show the current operation mode. This could be “Hardware settings not configured”, “waiting for index point”, or “Operational”. Successful update can be seen in the actions portion of the configuration software where it will show the IONI firmware version supplied with the firmware. On successful completion of the update to the IONI Firmware the three red SimuCUBE status LEDs, next to the power indication LED on the SimuCUBE mainboard, will flash two times (on-off-on-off) with 1-second on and off times.

At the time of writing this guide, the required and correct IONI firmware version is 10700. An updated version of Granity may be needed for use to configure the IONI drive with this firmware. Granity can be downloaded separately from here: http://granitedevices.com/wiki/Granity#Download

SimuCUBE Configuration Tool User Guide

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.

Fixed Information:

The following information is provided on a constant basis regardless of the Tab you are looking at in the interface.

Operating Mode

This indicator tells the current state of the SimuCUBE. Under normal conditions this will read Operational and your SimuCUBE will be functional in game. Other information could include items like IONI USB Mode, Firmware upgrade mode, as well as other states.

Active Profile

This indicates name of the active profile currently in use.

E-Stop & Motor Status

This area will indicate if you have your e-Stop activated as well as if your motor has faulted for any reason. There will be an indication of what code was faulted to make any sort of troubleshooting easier. Cycling E-stop button will also clear faults.

Save Settings to SimuCUBE button

This button at the bottom of the interface will save all changes made to the SimuCUBE. If the up to date indicator above this button is green you do not need to save any settings. If this indicator is blinking red it means something has changed and if you want to retain those settings after power cycling the SimuCUBE you will NEED to use this button to save the settings. If you are unsure that you wish to permanently keep the settings that you change then do not save the settings and the next time you restart the SimuCUBE you will revert back to your prior settings. Please note the save action will take around 2 seconds on SimuCUBE hardware. During this time games will not receive inputs and the wheel won’t receive new commands. This could cause unexpected effects in games, as it is possible that games might classify a 2-second freeze as controller disconnection.

Overview Tab:

The overview tab provides you with all of the pertinent information regarding the settings currently on your SimuCUBE.

Wheel Indicator & Reset Center Button

The large wheel in this area represents your wheel. When calibrated correctly the wheel should be positioned so that wheel center is located at its uppermost position when your physical wheel is straight, in addition wheel position should indicate approximately 0 degrees. When you turn your wheel physically the indicated wheel should turn in relation to position exactly. If your physical wheel when straight is not straight with the wheel for any reason you may temporarily reset the center point of the wheel by clicking on the Reset Center button. To permanently change the center offset you will need to run the Configure Motor, Encoder, and Centerpoint wizard on the Hardware Set-up tab.

Analog Inputs Indication

These indicators will allow you to test functionality and output for your analog axis and digital buttons that are connected directly to the SimuCUBE. By pressing on the corresponding buttons or analog inputs (i.e. pedals) you will see their travel or activation in real time along with the HID output value indicated. If you are not receiving full range on a analog output you should calibrate the input of that device via the Configure Analog Inputs dialog on the Hardware Set-up tab.

Profiles Tab:

This tab provides all of the user adjustable features that are saved under each profile setting that you create. SimuCUBE allows for multiple profiles to be saved directly to the firmware and selected at any time. Currently there is a limit of 500 different profiles that can be saved for use at any time.

Management

The attributes of the first profile in the dropdown menu can not be changed - it is a “Read-only safe profile”. to select other profiles just select whichever profile name you wish from the menu.
Add button: Adds new active profile to the menu and preselects some default parameters.
Copy button: Copies the existing profile to a newly created active profile.
Delete button: Deletes currently selected profile. if the default profile is deleted, the "Read-only safe profile" will be set as the new default profile and it will be loaded at next startup. On clicking this button, a Yes/Cancel dialog opens to prevent accidental profile deletion.
Set as default: Sets the profile you wish the SimuCUBE to load by default. The default profile is indicated in green text to the the menu and it is indicated in BOLD in the dropdown menu.
Add profiles from file: Adds all profiles from simucubeprofiles.ini file. This does not overwrite current profiles.
Export profiles to file: Saves all profiles to simucubeprofiles.ini file. If file exists already, all existing profiles in the file will be overwritten.
Reorder profiles: Opens a dialog where profiles can be re-ordered via drag and drop.

The first profile, “Read-only safe profile” cannot be deleted or re-ordered as it is used by the firmware during calibration.

Anytime a change is made to a profile the firmware system will request that you save the settings to the SimuCUBE by flashing a red settings updated message next to the button. If you press this button ANY changes you have made will become permanent and will not be easily reversible. If you have made changes that you don't like, the "Reload settings from SimuCUBE" button will revert to the last saved settings and profiles. Making a change without saving will allow use of those settings until the SimuCUBE is turned off.

General

Here you will set the SimuCUBE preferences, power levels, and other working settings.
Profile Name: Shows currently selected profile in management and allows you to alter the name of the profile
Steering Range: This reports the maximum total range of the wheel to report to Windows allowing programs to recognise the intended rotation of the wheel. The most common settings for steering range are 900 or 1080 degrees though some games may require less rotation to calibrate properly.
Bumpstop Range (from axis limit): This setting allows you to indicate where the maximum force of the bumpstops, when enabled, will fall within the steering range. The actual usable steering range after the bumpstops are placed is indicated to the right of the input box. Using a positive will lower the effective Steering Range before the bumpstops take effect while using a negative number will place the bumpstops outside the effective range of the wheel. If the the Bumpstop Effect Ramp Range, from the hardware settings section, is set at 10 degrees (other values could be used) the ramp up in force to the bumpstop would happen at 10 degrees (in each direction) prior to the Maximum Bumpstop range indicated. If you do not want the bumpstops to take effect within the Steering Range then a Negative Number matching the Bumpstop Effect Ramp Range should be used.
Overall Strength: When using this setting you can limit the overall strength that the SimuCUBE can provide. Starting from Firmware version 0.8.0 this will be a percentage of the value that is read from IONI drive firmware right after motor initialization. Reducing strength of the wheel may be needed for some games that do not have an alternative method of adjusting the the level of force you see in the game. This setting is also useful for temporarily reducing the force of your wheel to a level that is safe for children and inexperienced drivers.
Maximum Motor Current: This indicates the actual Maximum Motor Current (MMC) value being used in the visible profile.
Estimated Max Torque: This indicates the estimated maximum torque of your servo based on your setting of the Torque Constant, Maximum Peak Power, and MMC that the SimuCUBE is currently running at. Currently this is only not completely accurate, It is not indicating actual estimated torque based on system/servo limitations.

IONI Drive Servo Filtering

This section describes the use of the those filters on the IONI drive that are adjustable within the SimuCUBE configuration tool. With these filters you can significantly alter the feel of your wheel to maximize your experience. Please note extreme settings on some filters can cause them to become unstable and cause oscillations or other unintended and unwanted behavior.

SimuCUBE Force Reconstruction Filter
This filter is only available in the SimuCUBE firmware and allows the IONI to take a slower digitized incoming signal from a program at any frequency and reconstruct it based on a complex algorithm to increase the accuracy and smoothness of the signal while fully retaining the integrity of the original signal. This allows the SimuCUBE to update positioning and force information to the servo at the IONI’s maximum possible rate which smooths the action of the wheel while retaining all detail in the signal with minimal drawbacks. Setting this filter off disables it and the standard signal from the program being used is passed to the firmware. Currently the numbered options for the filter indicate the aggressiveness of the filter relative to the the most optimized setting for iRacing’s 60Hz signal (setting 5). At higher numbers the filter is more aggressive and will take longer to reconstruct the signal which will induce more latency (delay) into the signal. Currently the effects of the numbers are NOT linear and can result in many differing effects which vary between smooth and abrupt. Games other than iRacing may work best with a setting other than the iRacing optimized. As well you may find that you enjoy a setting different than the most optimized for your driving style. NOTE: We are still determining the best settings for this filter and the best way to determine the filter effects so things could change as far as the filtering available for use with subsequent Firmware releases.
Torque Bandwidth Limit
This setting is a filter point for the incoming set point information received by the IONI. The lower the setting the more smoothing due to cutting higher frequency information from the signal and in turn will slightly increase latency which result in a more dull subdued feeling at the wheel. There is also a possibility that lower numbers also lose some set point information which can result in inaccurate representation of position for a split second. Generally, you want to set this to as high as possible to allow for the most unfiltered information to get to the IONI. When using the reconstruction filter it is best to set this has high as possible (usually Unlimited). Some game titles do require lower TBW settings due to noisy or sharp feedback signals being implemented in their system.
Peaking and Notch Filter
  • This filter provides specific localized suppression or enhancement to a certain frequency range. Generally used to eliminate unwanted peaks (use notch) or dips (use peak) in the signal that provide unwanted abnormalities wheel reaction. An example would be excessive or extreme oscillation in the wheel.
    • Center Frequency (Hz) - Sets the frequency where the filter is to take effect within the signal. When setting this attribute, it tends be most effective to adjust it while in program as it is so specific in what it will actually affect it is hard to just guess as to what frequency it should be located at.
    • Attenuation - This setting controls how much notch filter will subdue the signal in db. The deeper the notch the wider the frequencies are that are affected and the more dramatically diminished the designated center frequency is. If the number used in this location is positive you are now using a peaking filter (raising the signal frequency), negative numbers are notch and what is normally used with the SimuCUBE.
    • Q Factor (Quality Factor) - The quality factor determines how narrow frequency band is being affected by this filter. Higher Q-value means more narrow the filter is for frequencies around the given Center Frequency.
Other Filters
The other filters affect the tactile characteristics of the SimuCUBE allowing changes to be made that can dramatically alter the feel of the wheel allowing you to achieve the the most natural and comfortable experience you can.
Damping Filter
Damping within the IONI is designed to limit overshoot that the servo itself is inducing due to velocity of the armature. The filter works by trying to resist all movement by creating a signal that tries to reposition the servo back to it’s intended location, Increasing the % adds dampening. Think of this setting as a shock absorber for the wheel does not change the feedback but will slow the resulting effect as it reaches or returns to it's destination. The goal of this setting is to cut out unwanted positional errors due to the servo overshooting the intended positioning which could cause unintended forces to be delivered to the servo due to the positioning of the servo being out of position when a force is sent to the wheel. This overshoot error can show up as oscillations of the wheel when dampening is set to low since the wheel will overshoot and the game will try to correct the issue causing the wheel to overshoot in the opposite direction creating a feedback loop. In the case of the SimuCUBE if you turn the damping up too far and over dampen the system the steering will feel dull as it continually will try to adjust to return to the intended position resisting both your actions as well as the feedback signal. It is normal to have a small bit of over damping in the system to be able to reduce the possibility of the oscillation. This setting is best used to dull the feel of the wheel as it reduces the reactiveness of everything and sort of flattens out the feedback feel. This can make the wheel feel at times sluggish. But at the same time due to the nature of dampening trying to stay on position it can also ease steering effort at load because the wheel will be actively trying to stay in its intended position.. In terms of car feel more dampening feels a bit like soft or under inflated tires while less dampening feels like tires that have been inflated or have harder sidewalls.
Friction Filter
The friction parameter adds artificial dead weight to the feel of the SimuCUBE. The friction filter adds resistance across the entire signal bandwidth. Going too far on this parameter can actually override the forces applied by the software and cause the wheel to not move. In essence this parameter slows the reaction of the wheel. This filter is best used to mimic what would be steering hardware in a real car and all the friction in the steering caused by the steering rack, ball joints, bushings, ect.. Including tire contact patch drag. This filter will also limit a feedback by-product that feels a bit like a rubber band. This effect comes from the fact that force feedback for the most part is designed to return the steering wheel to the next position point no matter what you do and to do that it adds power in the opposite direction that you are turning.. The rubber band feeling comes from when you quickly turn in the direction that the force is wanting you to go and then back into the force.. When you do this with a high speed system, such as the OSW, that can move the wheel faster than you can turn it yourself, you effectively lose all feeling of force when turning with the power making the turn motion overly light. if you weave like this around a constant radius corner you will find that you get this heavy feeling and then no feeling, heavy and then none, like stretching and releasing a rubber band. By adding a friction % you will slow the wheels ability to return to center in a more progressive manner allowing you to turn the wheel back toward center and retain some feeling of force in the return motion. Note, that the higher you set the friction the more friction you will have in both directions of movement so by adding friction you can increase the force required to turn the car to a possibly unacceptable level and as well diminish the speed of wheel return which can affect your ability to catch a slide. This should be adjusted to a level that you feel is realistic. This setting would be best used if you feel the forces of the wheel are correct but the steering feels overly light in nature during certain movements, by increasing it you are not seriously affecting the way the feedback translates to the wheel but you are adding weight to the steering mimicking the drag that would be in a real life steering rack.
Inertia Filter
The Inertia filter provides a signal to the wheel that attempts to reduce the Inertia of the wheel. In essence a wheel of zero inertia would spin forever and a wheel of infinite Inertia would never be able to be moved no matter how much force you put to it. Adding % lowers inertia, the main effect of this is that when the wheel is given a signal it will try to add force in the same direction as the rotation of the wheel making the wheel have less inertia so it spins more freely. However, in relation to force feedback this is a bit of a double edged sword in that if you are turning the wheel into the force being applied the inertia filter will attempt to apply additional force to the wheel to get it moving in the direction that the signal from the feedback system is telling it to go in. This in feel is very similar to the rubber banding feedback effect mentioned in the Friction filter as when you turn the wheel further from the intended target return point the forces applied by the inertia filter will ramp up making the wheel feel heavier. If you turn into this force and let off the return forces will feel much lighter than the initial forces as the inertia filter can freely apply force to return the wheel to its intended location. This feel can seem like power steering in a way as if you are turning with the force the feel will be lighter than normal. In addition this has the effect of softening (but not reducing strength) of some jolts due to the ramp-up of the forces when turning into the force. Using too much Inertia will cause a vague center feel as the wheel tries to continue moving past center even though you would want it to stop.
NOTE: Correlation between the Friction filter and Inertia filter - The Friction filter when applied has stiction which means that the weight of signal being applied creates friction that resists movement (adding inertia) which causes an abrupt stop of the wheel when you let go. The Inertia filter can be used to allow the Friction filter to apply this weight to the wheel while softening the stopping action by reducing the stiction effect and allowing the wheel to not stop abruptly but to slowly ramp down to a stop in rotation.

DirectInput Effect Settings

This section allows for adjustment of the Game generated DirectInput effects. By adjusting these filters you can change how much the SimuCUBE reacts to Game Generated filtering.
Friction Effect: Changes to the weight of the wheel based on game provided data
Damping Effect: Changes how well the wheel controls overshoot of the wheel based on game provided data.

Hardware Set-up Tab:

Encoder Counts Per Revolution
Indicates your encoder point count based on the settings provided to the IONI drive.
Indexing Mode
The indexing mode is determined at the time of Configuring the motor, encoder, and index.
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.
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.
Higher pole count servos/steppers are more likely to experience this boundary position issue.
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.
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.
Maximum Motor Current
Indicates the amperage provided to your motor (MMC) based on the settings provided to the IONI drive.
Bumpstop Effect Enable
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.
Bumpstop Maximum Force
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.
Bumpstop Damping Effect
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.
Bumpstop Effect Ramp Range
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.

Audible Notification Beeps

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.

Configure Motor, Encoder, and Centerpoint button

This wizard steps you through the process of setting up your SimuCUBE firmware.

Step 1: Selecting your motor configuration
Use Existing Ioni Configuration as-is
If you know your IONI is currently set up correctly for your servo, power supply and encoder you can use this option to retain those settings and to only configure the SimuCUBE firmware for usage. This is the recommended option after migrating from a working MMOS setup or when there is such an update to SimuCUBE firmware that caused the wizard to be mandatory to be run again.
Select a Motor & Encoder from the dropdown
if you know what motor and encoder you have but have not previously set up your IONI to work with them you will want to select the motor and encoder that you have. This will properly setup the IONI for your configuration. The DRC files for this feature have not yet been released so even though this feature is functional there is nothing currently to select. Testing this feature during the beta testing phase is of course important.
Step 2: Select Indexing Point
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.
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.
Step 3: Motor Initialization
Motor phases and determines the index point based on settings that you have chosen.
Step 4: Setting the Center Point
Waiting for Index Point - If manual indexing was chosen during setup you will be asked to turn the wheel so SimuCUBE can locate the physical index point of the encoder. Automatic index setup will not see this page.
Set Wheel Center Point - finalizes the offset value of the wheel when Next is pressed so that wheel centering is correct whenever you turn on the SimuCUBE. Note: Automatic index point requires the wheel to be positioned straight at SimuCUBE start-up while manual indexing does not.

Configure Analog Inputs

In this sub-dialog you will find access to be able to have complete control over the analog inputs on the SimuCUBE. The dialog cannot be accessed before the Motor, Encoder and Centerpoint wizard is run and the SimuCUBE is configured.

The SimuCUBE offers up-sampled 16-bit resolution (sampled at high rate and then averaged) for analog devices. The SimuCUBE input resolution is 12-bit. The Configurable axis are Y, Z, Brake, Throttle, Clutch, Rudder, and Analog Hat. Granted these do not have to be these exact items and can be used for any type of analog input. With the SimuCUBE set up as a wheel you are most likely to use the Brake, Throttle, and Clutch inputs for your pedal set.

Input Select: These drop down menus allow you to set what physical pin on the SimuCUBE X11 ports you wish to have associated with the particular analog function you are using. The SimuCUBE does have a few specific ports that are indicated in the SimuCube Wiki as being associated with the Brake, Throttle, and Clutch so if you have already attached your pedals using the SimuCUBE Wiki pinout setup they are as follows: Brake - X11 upper 1, Throttle - X11 upper 2, and Clutch - X11 upper 5.

Calibrated Value: This is the calibrated current output value based on the values placed in the Minimum and Maximum Value fields.

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.

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.

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.

Reset: Reverts the channel to default settings.

Export analogsettings.ini: This button will save your current analog input settings to analogsettings.ini file in the program installation directory. This can be copied to load settings in a new version of the configuration tool, if a new firmware version makes settings incompatible.

Import analogsettings.ini: This will try to load analogsettings.ini from the program installation directory and set those settings to the SimuCUBE.

Update Firmware

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)
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.

Advanced Tab:

Reload Settings from SimuCUBE

This button will revert the profiles and their settings in memory to the last saved state.

Enable IONI USB Configuration

This button will enable you to connect to the IONI using the Granity software for advanced configuration. When IONI USB configuration is enabled the SimuCUBE will not work as Granity is using the communication connection to the IONI. You will need to disable IONI USB configuration to return SimuCUBE to operational state.
NOTE 1: If you have changed Maximum Motor Current (MMC) parameter via Granity, you should re-run the Configure Motor, Encoder and Center Point -wizard to let the Firmware know about this.
NOTE 2: MMC parameter will be changed to the maximum value right before the USB connection is enabled (SimpleMotion bus is released).

SimuCUBE Hardware Version

Displays the hardware revision information of the SimuCUBE board.

SimuCUBE Firmware Version

Displays the currently installed firmware version.

Configuration Tool Version

Displays the currently installed configuration tool version.

IONI Drive Firmware Version

Displays the currently installed IONI firmware version.

Start everything from scratch (not currently implemented)

Returns SimuCUBE to default state, erasing all flash memory and settings.

DirectInput Notes

These notes include all of the DirectInput Game created effects, Items shown in bold have been altered by the game within the last 30 seconds. This is currently a debug tool that is being used to determine which effects are being used by which games for possible future DirectInfout implementation.

Reset FFB Device State button

This button resets the DirectInput Filters to a default state. This is good to return feedback to a default state should a DirectInput using game crash while effects are still created and running.

Debug Notes

The bottom area of the Advanced tab is reserved for debug counters, displays of miscellaneous values, etc. Users can disregard them if there are no other issues.

Configuration Tool Customization and Branding

The Wheel image in the Configuration Tool can be replaced by your own image, starting from the Configuration Tool version 0.9.4. Suitable image is 400 x 400 px sized PNG file, with transparency set. Save the image as wheelimage.png to the same folder as the Configuration Tool.

The Granite Devices SimuCUBE logo on the top of the Configuration Tool can be replaced by white-listed logo of a reseller or other partner. Send us image files for whitelisting. Suitable image size is 400 x 50 px PNG file with transparency set. Save the file as brandbanner.png to the same folder as the Configuration Tool.

Troubleshooting Guide

Bootloader Installation issues

#1 DFUse failing to recognize STM Device in DFU Mode when trying to install bootloader

This issue is due to a missing or wrong driver being installed into Windows. Symptom is that your SimuCUBE is showing up in device manager under other devices as "STM32 Bootloader", with a yellow exclamation mark as the icon, under other devices. This means that your Windows installation does not have the correct STM32 Bootloader driver installed for the device.

To correct you will need to install the correct driver for the SimuCUBE bootloader by following the steps below. The correct driver should be located within the STMicroelectronics programs folder. If it is not please use one of the links below to locate the correct driver for installation.

1. - Left click on the STM32 Bootloader to bring up the device properties.
2. - Click on Update Driver
3. - Click Browse my Computer for Driver Software
4. - Click "Browse..." and locate the driver. (PC / C Drive / Program Files (x86) / STMicroelectronics / Software / DFuSe v3.0.5 (or version being used) / Bin / Driver / (select your system use Win8.1 for win10)
5. - Click OK to Set Path for Driver
6. - Click Next (windows should now install the correct driver)
Once completed the SimuCUBE STM32 Bootloader should relocate to the USB bus under the name "STM Device in DFU mode", at this point you should be able to open up DFUse and see the device in the available DFU devices menu. You will now be able to install the Bootloader.

If the correct driver is not currently present on your system then you will need to download it from one of the following links:

http://www.st.com/en/development-tools/stsw-stm32102.html for Windows 7 or 8

http://www.st.com/en/development-tools/stsw-stm32080.html for Windows 8.1 or 10

With Windows 10 you may also be able to delete the STM32 Bootloader device from the device manager menu and it could reinstall with the correct driver.

#2 Bootloader fails to upload to SimuCube and MMOS Firmware is retained

There have been some issues with the Bootloader DFU not being retained on the SimuCUBE Firmware processor, where the MMOS software is retained and the installation has failed. There are a few things that can be happening. 

2a. - If the upgrade fails as unsuccessful and you entered DFU mode via MMOS electrically please make sure the MMOS control panel is closed, It seems that if it is open it can cause the upload to fail with an error.
2b. - Try extracting the bootloader.dfu directly from the .zip file to the desktop, instead of pointing the DfuSeDemo tool to open the file from inside the zip file. There appears to be an issue with the way the Windows standard extractor / Windows Explorer Shell Extension handles the files when not extracting the full archive that can corrupt the .dfu file to where it will not pass verification when installed.
2c. - Though it is NOT Suggested to not verify the upload to the STM32 it appears that by disabling the verification process you could be successful in installation. This could be a byproduct of #2 in that the .dfu is correct but some checksum is not failing verification and bypassing this step allows it to work correctly. This method is not recommended because if something does go wrong you can cause the SimuCUBE to lock itself up requiring the use of the “Case C” method of forcing the SimuCube into DFU mode for installation.

Granity Related Errors

#1 Automatic IONI Firmware update fails

In the case of the IONI Firmware failing automatic updating you will need to install the latest IONI firmware manually. This should be done immediately upon failure to prevent locking the system in DFU mode and causing you to have to reinstall everything over. To correct the issue you will need to download the latest version of Granity and the Latest IONI Firmware from the links below and follow the subsequent steps:

http://granitedevices.com/wiki/IONI_firmware_releases - IONI Firmware Download

http://granitedevices.com/wiki/Granity#Download - Granity Download

1. Place the Simucube into IONI communication mode by pressing on the Enable IONI USB Configuration button in the actions section of the configuration tool.
2. Open Granity
3. Connect to IONI Device through the connection tab (IONI may already be listed in firmware upgrade mode)
4. Click upgrade firmware
5. Choose the firmware file (latest) that you downloaded.
6. After firmware has completed installation reconnect to the IONI to verify success
7. Close Granity, Save, and Restart drive if requested.
8. Go back to the SimuCUBE Configuration tool and Disable IONI USB Configuration.
SimuCUBE should now be operational and ready for you to configure your Motor, Encoder, and Centerpoint at this time.

#2 Communication Faults

These faults (481001 & others) are normal and can be ignored they are self induced by the way the SimuCUBE firmware communicates with the IONI.

#3 Centerpoint Loss after using Granity

If you restart the IONI drive in Granity when making changes the Simucube firmware will generally reset your centerpoint location to unknown. The IONI drive restart is sometimes forced upon leaving Granity. Click on the center wheel button and this will set the correct offset for the session. 

#4 Other Faults

Please look up the fault number that will be present in Fault Location ID 1 or Fault Location ID2 on the following page:

https://granitedevices.com/wiki/Fault_location

Most of these faults are self explanatory and can be fixed with an adjustment to the fault or machine setting related to the trigger.

iRacing Related Errors

#1 When Configuring the wheel a “Steering Required a Dual Axis Device” error comes up

This is an issue with the iRacing calibration tool. Make sure that you do not touch any pedals or other analog input when you are calibrating the steering. If you have pedals connected to the SimuCube either disconnect them temporarily or make sure that their dead zone (set in the Analog Configuration window in the Simucube Configuration Tool) is set high enough to remove any low level noise..

What is occurring is that between the rotation and the angle steps, iRacing will reset the calibration device to whatever it sees first,  If the first seen device is a single axis analog input (i.e. Pedal), iRacing will cause the calibration to fail. The device being calibrated must remain the same or be auto reset to back to the dual axis steering device. To force iRacing's auto detect to change back to the wheel (dual axis device) you must turn the wheel well past the requested 90 degrees (to maybe about 180) and then back to 90 degree location before confirming.

iRacing has been contacted about this issue it is unknown whether it will be fixed or on what timetable.

Returning to using 3rd-party firmware (MMOS)

To return to using 3rd-party firmware you will be required to access the SimuCUBE board by opening the case that it is in and manually setting the simuCUBE to DFU mode described in "Case C": Installing MMos firmware into SimuCUBE#Case C

The SimuCUBE must be powered down when enabling DFU mode manually, when you turn the SimuCUBE back on it will be in DFU mode

Please follow these instructions for installation Installing MMos firmware into SimuCUBE

Warning: if you are using the SimuCUBE acrylic case please be careful when opening as the acrylic can be brittle and crack


In no event the Product Information or parts hereof shall be regarded as guarantee of conditions or characteristics. The Product Information or any part thereof may also not be regarded as a warranty of any kind. No liability of any kind shall be assumed by Author with respect to Product Information or any use made by you thereof, nor shall Author indemnify you against or be liable for any third party claims with respect to such information or any use thereof.

As content of this Wiki may be edited by user community, Granite Devices Oy or it's affiliates do not take any responsibility of the contents of this Wiki. Use information at your own risk. However, Granite Devices staff attempts to review all changes made to this Wiki and keep information trustworthy.

Without written consent, Granite Devices' Products or Intellectual Property shall not be used in situations or installations where living beings, material property, or immaterial property could be harmed by the operation, features or failures of Product. Products may only be used in a way where hazards like moving parts, electric shock, laser radiation, or fire can't be realized even if the content of this Wiki would suggest otherwise.