SimuCUBE Open Source Firmware Development Update Thread

Glad to have found this thread! I had read about the proposed Simucube replacement for MMos to bring more versatility and hopefully better plug and play compatibility with many SIM titles that to date still don’t feel great.

iRacing seems to work really well out of the box (using Jason Jodarski’s settings), but those same settings don’t work well with AC, RRE, Rfactor2 etc.

I’m excited to see new developments with this new software and would love to think that through the community we could help create something similar to SC4 that has many different profiles for getting setup quickly with all the many titles available. Is it safe to say that at least for now the potential offer of integrating SC4 with Simucube is ‘off the table’ with the impending launch of the Accuforce V2?

I rarely touch Granity and hope that this new software offers an easy to use interface that makes it a breeze to switch between SIMs without every having to mess around inside Granity.

I would be happy to test out early versions - I like to tinker!

Exciting times for Simucube! I still believe that it’s the best option for SIM racing by a very large margin. It just needs to incorporate the plug and play functionality across the main racing titles. If that can be achieved there is no reason why it can’t crush any competition out there as the physical hardware setup is almost plug and play with the guides for setting index point from people like Jason. I can’t thank him enough for this - my Simucube starts up without issue, always indexed and always read to go.
Just the software part needed.

Cheers!

Please replace that lines in your .rcs of RaceRoom and try it again, i think that will help you.
You can backup you own file before or make a new and use them at the same time.

FFB Rumble Pad=“0” // Type of FFB controller: 0=wheel, joystick etc with force feedback, 1 = pad with rumble motor
FFB Gain=“1.0” // Strength of Force Feedback effects. Range 0.0 to 1.0.
FFB Min Force=“0.0” // Minumum force, from 0.0 to 1.0
FFB Min Force Linear Percentage=“0.01” // Minumum force linear percentage
FFB Throttle FX on steer axis=“1” // 0 = Throttle effects on throttle axis, 1 = throttle effects on steering axis.
FFB Brake FX on steer axis=“1” // 0 = Brake effects on brake axis, 1 = brake effects on steering axis.
FFB stationary friction=“0.0” // Amount of friction applied to the steering wheel when vehicle is stationary
FFB stationary friction speed=“2.7780001” // Below this speed the stationary friction starts to be applied, in m/s
FFB steer vibe freq mult=“0.0” // Controls frequency of steering vibration. Recommended: 0.5 to 1.0, 0.0 disables steering vibration.
FFB steer vibe zero magnitude=“0.0” // Magnitude of steering vibration at 0mph (reference point).
FFB steer vibe slope=“0.0” // Slope of line defining magnitude as a function of frequency (used with FFB steer vibe zero magnitude).
FFB steer vibe wave type=“0” // Type of wave to use for vibe: 0=Sine, 1=Square, 2=Triangle, 3=Sawtooth up, 4=Sawtooth down.
FFB steer force average weight=“1.0” // How much weight is given to new steering force calculations each frame (0.01 - 1.0). Lower values will smooth out the steering force, but will also add latency.
FFB steer force exponent=“1.0” // Steering force output “sensitivity”. Range 0.0 to infinity. 0.0 to 1.0 = higher sensitivity, greater than 1.0 = lower sensitivity.
FFB steer force input max=“11500.0” // Recommended: 11500 (-11500 if controller pulls in the wrong direction).
FFB steer force output max=“0.03” // Maximum force output of steering force, recommendation 0.8 to 2.0
FFB steer force grip weight=“1.0” // Range 0.0 to 1.0, recommended: 0.4 to 0.9. How much weight is given to tire grip when calculating steering force.
FFB steer force front grip exponent=“0.0” // Range 0.0 to infinity, recommended: around 1.0. Exponent applied to grip weight.
FFB steer force rear grip exponent=“0.0” // Range 0.0 to infinity, recommended: around 1.0. Exponent applied to rear grip loss weight.
FFB steer damper coefficient=“0.0” // Coefficient to use for steering damper. Range: -1.0 to 1.0
FFB steer damper saturation=“0.0” // Saturation value to use for steering damper. Range: 0 - 1.0
FFB steer force balance mode=“0” // Mode for how to add the steering forces together (lateral, load and diff). Acceptable values: 0 = lat + load + diff, 1 = sqrt(lat^2 + load^2 + diff^2), 2 = sqrt(lat^2 + load^2) + diff, 3 = sqrt(lat^2 + (load + diff)^2), 4 = sqrt((lat + load)^2 + diff^2)
FFB steer load multiplier=“0.0” // Multiplier for vertical load on front tires. Range: 0 - infinity
FFB steer lateral multiplier=“10.0” // Multiplier for lateral forces. Range: 0 - infinity
FFB steer rack factor=“0.3” // How much of the lateral forces comes from steering rack. Range: 0 - 1.0
FFB steer load change exponent=“1.0” // Exponent for the change in load on front tires. Range: 0 - infinity
FFB steer load change breakpoint=“1.0” // Breakpoint (value that will not be changed) for the exponent on the change in load on front tires. Range: 0 - infinity
FFB steer spring coefficient=“0.0” // Coefficient for steering spring. Range: 0.0 - 1.0
FFB throttle vibe freq mult=“0.0” // Scales actual engine frequency to force FFB vibration frequency. Suggested range: 0.10 to 0.50
FFB throttle vibe zero magnitude=“0.0” // Magnitude of engine vibration at 0rpm (reference point).
FFB throttle vibe slope=“0.0” // Slope of line defining magnitude as a function of frequency (used with FFB throttle vibe zero magnitude).
FFB throttle vibe wave type=“0” // Type of wave to use for vibe: 0=Sine, 1=Square, 2=Triangle, 3=Sawtooth up, 4=Sawtooth down.
FFB rumble strip magnitude=“0.0” // How strong the rumble strip rumble is. Range 0.0 to 1.0, 0.0 disables effect.
FFB rumble strip freq mult=“0.0” // Rumble stip frequency multiplier 1.0 = one rumble per wheel rev.
FFB rumble strip wave type=“0” // Type of wave to use for vibe: 0=Sine, 1=Square, 2=Triangle, 3=Sawtooth up, 4=Sawtooth down.
FFB rumble strip pull factor=“0.0” // How strongly wheel pulls right/left when running over a rumble strip. Suggested range: -1.5 to 1.5.
FFB jolt magnitude=“0.0” // How strong jolts from other cars (or walls) are. Suggested Range: -2.0 to 2.0.
FFB shift jolt magnitude=“0.0” // How strong jolts you get from shifting. Suggested Range: -2.0 to 2.0.
FFB shift effect duration=“0.0” // Duration of shift effect in seconds
FFB slip effect=“0.0” // Slip effect, from 0.0 to 1.0
ffb slip freq multiplier=“1.0” // Slip effect frequency. 1.0f = 1 cycle per wheel rev
ffb slip wave type=“0” // Slip effect wave type
FFB pedal throttle vibe zero magnitude=“0.0” // Throttle pedal vibration at 0rpm (reference point)
FFB pedal throttle vibe slope=“0.0"
FFB pedal throttle slip vibe=“0.0” // Throttle pedal vibration on tire slip
FFB pedal brake slip vibe=“0.0” // Brake pedal vibration on front tire slip
FFB pedal brake vibe slope=“0.0” // Slope for brake pedal vibration based on speed and braking %
spring based range lock enabled=“1” // Spring based range lock on/off
spring based range lock strength=“1.0” // Strength of the spring based range lock
spring based range lock max rotation=“1080” // Max wheel rotation, used when setting up spring based range lock
Menu Control - Left Click=”(0, 89, 0, 8)“
Menu Control - Right Click=”(0, 89, 0, 8)“
Menu Control - Back=”(0, 89, 0, 8)"

I will try to make this Thursday update a tradition.

This week, we have started the configuration tool implementation. Some things work already, most of the things do not.

7 Likes

Wow that looks great well done

Top effort, luv it! Thanx for the regular updates, Mika!

Cheers,
Beano

Hi again, its me.

Analog axises and wheel are now being updated in the main UI window, as well as some motor parameters.

This week, some stuff happened in the background regarding analog inputs. Now they work. All that is left to do is to make the UI to configure them, while at the same time learning how to make such UI. And add all those axises to show up on the main window as well. This first dialog will take some hours tomorrow to implement correctly.

Then we will move on to finally implement our new “dropdown and select motor & encoder” feature. For that, unfortunately we have to update SimpleMotion library to a new version first, on the SimuCUBE firmware side of things. Not to say that its not had a small restructuring in itself this week…

We have noted feedback on having the Ioni MMC available for user to tinker with, and that will be added to the profile settings. All currently adjustable filters on Ioni will be there too.

I think we will defer button inputs, working endstop effect, desktop spring effect, working profile management and force effects other than iRacing to after first CLOSED beta version. Open Beta will have at least compatibility with more simulators. But as you can see, progressing steadily…

5 Likes

Thanx Mika for the update once again, significant progress since I saw it 2 weeks ago, very impressed how fast you are going down the list and ticking the boxes!!

Great stuff!!

Cheers,
Beano

Thanks for the update. Think are looking great. Can’t wait to test it!

Thank you for the updates. It’s nice to see the progress and I look forward to testing when it’s ready with support for other titles.

Dean

sounds great. And button support is not a priority at the start, I think.
Desktop spring effect not at all.

Today, configuration of analog inputs, and everything related to their visibility, also work completely. I discovered that they are a bit noisy as-is, so I implemented average of eight last values filtering for them. To be tested with some leftover Logitech Momo (Red) potentiometers on Monday.

This setting-up of some configs from the tool to SimuCUBE was a first, and opens up fast progress from here onwards.

1 Like

Nice job Mika!!

I was trying to remember once the open source firmware is implemented will we only be using the FTDI ( MMOS) chip side of the simucube?
To be more clear we just plug the USB into that port and the other port that we connected to Granity will not be used anymore?

Talk soon,
Joe

That is indeed the target, to have everything needed on the UI, and motor&encoder config via a simple dialog. Granity connection via the other USB port could remain on the UI, or enabled via a secret command line switch, for example.

I think we are going to need a pool of saved .drc:s for various motors, power supplies and encoder configs. More on that later…

1 Like

Ok Thanks.
Yes indeed we still need to be able to access Granity for development purposes.

Ok back to work! :grinning:

2 Likes

This week was spent on improving the UI and restructuring some analog stuff in the background. I also successfully packaged a first-ever zipped firmware + tool for internal testing. First test on another machine resulted in one snapped USB wire, so I had to try to implement some failsafes too.

Next I will start on the motor and encoder configuration menu. If that gets boring, I will get debug data from rFactor 2 to try to get its effect working. I already installed that on my office computer.

2 Likes

Tomorrow I also made the step, based on some testing, to install the new firmware at home. You know, familiar motor, rig, and stuff.

I was able to feel things. :wink:

3 Likes

Tomorrow? You code in the future? just joking hahahahaha, good to see the progress.

Finglish :wink:

I understand Mika perfectly …been working for a Finnish company for almost 20 years now…

The things I’ve been feeling, have been quite normal. Just like the popular 3rd party firmware, without any filtering. As it should be, as we are not doing any special filtering yet.

Did 1h iRacing Blancpain Sprint series race last night, and today VLN for 4 hours (with two 50min stints). 0 problems with firmware.

Maybe I’ll just polish up the configurator tool, implement rFactor2 effects to get more test cases, and then the beta :slight_smile:

1 Like

That sounds like a good idea.

“Maybe I’ll just polish up the configurator tool, implement rFactor2 effects to get more test cases, and then the beta”
:slight_smile: