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 1: Line 1:
 +
Welcome to the beta testing program! Thank you for your interest in testing to improve SimuCUBE.
 
{| class="wikitable"
 
{| class="wikitable"
 
!IMPORTANT NOTES
 
!IMPORTANT NOTES
Line 7: Line 8:
 
|}
 
|}
 
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 30:
 
'''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 ===
{{warning|SimuCUBE based Force Feedback systems (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 systems with maximum caution.
+
{{warning|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.
+
* 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.
+
* 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.
+
* 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 of the motor or parts connected to it (i.e. take hands off the simulator wheel)
+
* 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.
 
* 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 as injury could occur.
+
* Do not try to stop spinning motor by hands or other mechanical means
* Note that wheel, cables or other items attached to motor could become dislodged and hit objects or living beings with damaging effects. User's responsibility is to control this danger and take responsibility of the possible consequences caused by moving items.
+
* 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 and items attached to the motor are rigidly fixed to avoid becoming loose under extreme vibrations and rotations.
+
* 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 function of the device. The technical function includes production of high torques and speeds on a motor. Understand that motor rotation and torques produced by it are considered operation and within specifications, so potential damages caused by such operation are not within liabilities of the manufacturer.
+
* 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.
+
* 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)
+
* 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'''}}
 
'''For your own safety, do not operate SimuCUBE if you don't understand these dangers'''}}
  
 
== 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 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.
  
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)''
+
** Update IONI firmware manually using [[Granity]].
 
+
=== 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 119: Line 104:
  
 
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.
 
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.
 
 
{{warning| Avoid very short power up / power down cycle right after installing the SimuCUBE firmware. The silent, automatic IONI firmware update could be interrupted and fail, in this case the IONI drive will be left in DFU mode. The SimuCUBE firmware does not currently have the capability to automatically recover the IONI from its Firmware update mode and Granity will be required for recovery. Please see the troubleshooting section of this guide for instructions to recover from this issue and '''please send us a report about it.''' This will enable us to estimate the importance of adding the ability to recover from this mode directly.}}
 
{{warning| Avoid very short power up / power down cycle right after installing the SimuCUBE firmware. The silent, automatic IONI firmware update could be interrupted and fail, in this case the IONI drive will be left in DFU mode. The SimuCUBE firmware does not currently have the capability to automatically recover the IONI from its Firmware update mode and Granity will be required for recovery. Please see the troubleshooting section of this guide for instructions to recover from this issue and '''please send us a report about it.''' This will enable us to estimate the importance of adding the ability to recover from this mode directly.}}
  
If the SimuCUBE Configuration Tool is open while the IONI Firmware is being updated it will indicate that an updating is occurring, along with the percentage of update done. It will NOT provide you with a separate indication of completion. Upon 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 verified by looking at the IONI Drive Firmware Version number on the Advanced Tab of the configuration software. 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.
+
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 http://granitedevices.com/wiki/Granity#Download]
 
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 http://granitedevices.com/wiki/Granity#Download]
  
 
== 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.
 
  
 
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 160: Line 142:
  
 
==== Management ====
 
==== 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.<blockquote>''Add button:'' Adds new active profile to the menu and preselects some default parameters.</blockquote><blockquote>''Copy button:'' Copies the existing profile to a new profile.</blockquote><blockquote>''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.</blockquote><blockquote>''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.</blockquote><blockquote>''Add profiles from file:'' Adds all profiles from simucubeprofiles.ini file. This does not overwrite current profiles.</blockquote><blockquote>''Export profiles to file:'' Saves all profiles to simucubeprofiles.ini file. If file exists already, all existing profiles in the file will be overwritten.</blockquote><blockquote>''Reorder profiles:'' Opens a dialog where profiles can be re-ordered via drag and drop.</blockquote>
+
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.<blockquote>''Add button:'' Adds new active profile to the menu and preselects some default parameters.</blockquote><blockquote>''Copy button:'' Copies the existing profile to a newly created active profile.</blockquote><blockquote>''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.</blockquote><blockquote>''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.</blockquote><blockquote>''Add profiles from file:'' Adds all profiles from simucubeprofiles.ini file. This does not overwrite current profiles.</blockquote><blockquote>''Export profiles to file:'' Saves all profiles to simucubeprofiles.ini file. If file exists already, all existing profiles in the file will be overwritten.</blockquote><blockquote>''Reorder profiles:'' Opens a dialog where profiles can be re-ordered via drag and drop.</blockquote>
  
 
The first profile, “Read-only safe profile” cannot be deleted or re-ordered as it is used by the firmware during calibration.
 
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 on the Advanced -tab 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.
+
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 ====
 
==== General ====
Here you will set the SimuCUBE preferences, power levels, and other working settings.<blockquote>''Profile Name: ''Shows currently selected profile in management and allows you to alter the name of the profile</blockquote><blockquote>''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.</blockquote><blockquote>''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.</blockquote><blockquote>''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.</blockquote><blockquote>''Maximum Motor Current:'' This indicates the actual Maximum Motor Current (MMC) value being used in the visible profile.</blockquote>
+
Here you will set the SimuCUBE preferences, power levels, and other working settings.<blockquote>''Profile Name: ''Shows currently selected profile in management and allows you to alter the name of the profile</blockquote><blockquote>''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.</blockquote><blockquote>''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.</blockquote><blockquote>''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.</blockquote><blockquote>''Maximum Motor Current:'' This indicates the actual Maximum Motor Current (MMC) value being used in the visible profile.</blockquote><blockquote>''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. <span style="color:#ff0000;">Currently this is only not completely accurate, It is not indicating actual estimated torque based on system/servo limitations.</span> </blockquote>
  
 
==== IONI Drive Servo Filtering ====
 
==== IONI Drive Servo Filtering ====
Line 173: Line 155:
  
 
===== SimuCUBE Force Reconstruction Filter =====
 
===== 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. 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, abrupt, or even unstable.
+
<blockquote><span style="color:#000000;">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. </span><span style="color:#ff0000;">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.</span></blockquote>
*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  =====
 
=====  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. Generally, you want to set this to as high as possible to allow for the most unfiltered information to get to the servo drive. 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 excessively noisy or sharp feedback signals being implemented in their FFB signals.
+
<blockquote>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.</blockquote>
  
 
=====  Peaking and Notch Filter =====
 
=====  Peaking and Notch Filter =====
Line 183: Line 164:
 
*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.
 
*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.
 
*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 the frequency band being affected by this filter is. Higher Q-value means the filter affects a narrower band of frequencies around the given Center Frequency.
+
*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 =====
 
===== 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.
+
<blockquote>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.</blockquote>
  
 
=====  Damping Filter =====
 
=====  Damping Filter =====
Line 197: Line 178:
 
<blockquote>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.</blockquote><blockquote>''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.</blockquote>
 
<blockquote>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.</blockquote><blockquote>''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.</blockquote>
  
==== DirectInput Effect Settings and Descriptions ====
+
==== DirectInput Effect Settings ====
The sliders in this section allow for adjustment of DirectInput effects. Adjusting these effect sliders allow you to change how much the SimuCUBE reacts to Game Generated Effects via DirectInput and control their output.<blockquote>''Friction Effect:'' Changes to the weight of the wheel based on game provided data.</blockquote><blockquote>''Damping Effect:'' Damping is used by some games to dampen the wheel. Damping is a resistive force that is proportional to the wheel rotating speed. Some game titles use this to dampen oscillations.</blockquote><blockquote>''Spring Effect:'' Spring is used to localize or return the wheel to always at the same position. Note, that games can also set positions other than center for the spring effect.</blockquote><blockquote>''Sine wave effect:'' Sine wave is used in some games to make sinusoidal vibrations to the torque signal.</blockquote><blockquote>''Square wave effect:'' Square wave is used to output sharp low to high to low type effect to the torque signal.</blockquote><blockquote>''Sawtooth effect:'' Sawtooth effects are used to create slowly rising and sharply dropping or sharply rising but slowly dropping ripples to the torque signal. This effect slider controls both the SawtoothUp and SawtoothDown effects.</blockquote><blockquote>''Triangle wave effect:'' Triangle wave can be used to output torque signals that rise and fall with constant rate.</blockquote>The "'''Active'''" column to the right of the sliders indicates the effects in use or created using the symbols described:<blockquote>- effect not in use</blockquote><blockquote>○ effect is created and running, but its values are not actively changed by the game</blockquote><blockquote>● effect is created, and its values are being actively controlled by the game</blockquote>
+
This section allows for adjustment of the Game generated DirectInput effects. By adjusting these effect sliders you can change how much the SimuCUBE reacts to Game Generated filters and control the output of the DirectInput effects.
  
=== Hardware Set-up Tab: ===
+
The "Active" column has indicators of the effects usage:
'''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:'' (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====
+
- effect not in use
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 ====
+
○ effect is created and running, but its values are not actively changed by the game
<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 ====
+
● effect is created, and its values are being actively controlled by the game
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.
+
''Friction Effect:'' Changes to the weight of the wheel based on game provided data
  
 +
''Damping Effect:'' Damping is used by some games to dampen the wheel. Damping is a resistive force that is proportional to the wheel rotating speed. Some game titles use this to dampen oscillations.
 +
 +
''Spring Effect:'' Spring is used to localize or return the wheel to always at the same position. Note, that games can also set positions other than center for the spring effect.
 +
 +
''Sine wave effect:'' Sine wave is used in some games to make sinusoidal vibrations to the torque signal.
 +
 +
''Square wave effect:'' Square wave is used to output sharp low to high to low type effect to the torque signal.
 +
 +
''Sawtooth effect:'' Sawtooth effects are used to create slowly rising and sharply dropping or sharply rising but slowly dropping ripples to the torque signal. This effect slider controls both the SawtoothUp and SawtoothDown effects.
 +
 +
''Triangle wave effect:'' Triangle wave can be used to output torque signals that rise and fall with constant rate.
 +
 +
=== Hardware Set-up Tab: ===
 +
'''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>
 +
 +
==== 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>
  
 
====  Configure Motor, Encoder, and Centerpoint button ====
 
====  Configure Motor, Encoder, and Centerpoint button ====
Line 243: Line 218:
 
===== 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 237:
 
'''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 251:
  
 
====  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 310: Line 281:
 
==== Reset FFB Device State button ====
 
==== Reset FFB Device State button ====
 
<blockquote>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.</blockquote>
 
<blockquote>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.</blockquote>
 
==== Debug log ====
 
<blockquote>Download debug log -button can be used to download a log of the last 1000 events from the SimuCUBE memory. This can be useful in giving support for various issues. User can also change what events or valus are logged via the associated dropdown and Set verbosity level -button.</blockquote>
 
  
 
==== Debug Notes ====
 
==== Debug Notes ====
Line 356: Line 324:
  
 
==== #2 Communication Faults ====
 
==== #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. These should become less common as communication methods with IONI are being constantly improved.
+
These faults (''481001 & others'') are normal and can be ignored they are self induced by the way the SimuCUBE firmware communicates with the IONI. They should become less and less common as the communication methods with IONI are being constantly improved.
  
 
==== #3 Centerpoint Loss after using Granity ====
 
==== #3 Centerpoint Loss after using Granity ====
Line 385: Line 353:
  
 
'''''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)