SimuCUBE Open Source Firmware Development Update Thread

Its out. I mean, I should get a beer.

1 Like

Thanks for all the hard work folks have put into this. I can’t wait to give it a go tonight.

Just done a quick test on Assetto no problems although using mmos I have ffb when the car is still on the grid but with the new simucube there is none until you start moving and then the difference is clear
so smooth lose of grip is so much better now ! First impressions wow!.

"Pressing “save to Simucube” while in the car and forces enabled, could cause the the wheel to have full force left/right. " Not experienced this so far.

Ha, remember, my driving testing now is conducted with 10k encoder…at least actual drive testing. The super zoom-zoom encoder is sitting on a servo on my bench for testing there, as I need a special mount for it. So 2hat I m currently experiencing whilst driving, is what most of you will find too… :wink:

1 Like

Back in the office at least for some hours today and tomorrow. Baby steps in trying to figure out endstops detection is in work.

Looked at the list of closed beta testers, I recognize many of the names as people that contribute a lot to our sim racing community. Think this will help a lot with good solid feedback.

Good times coming :slight_smile:

1 Like

Good deal Mika!
Endstops are important. :slight_smile:

OK, now I have code that reliably detects and calculates how far from the endpoint user is. Now, on to adding that as an FFB effect… well, Tero had something clever in mind for it, maybe we will implement it together.

2 Likes

Great stuff Mika :wink: Very fast progress!

I have read the docs several times and I still do not quite understand how the indexing will be handled.
In the case of setting up a new control with Mige motor for instance. Do we need to still find the true zero point of the encoder? And if so how will we be able to find it?

Ie: will we be centering the servo
with an offset?
If this is the case how have the servos been behaving when centered outside the +/- 1000 that we found to be a good safe zone?

Mika what servo are you using during testing?

I also was thinking people who are reporting bugs should start including in their post what servo and power supply they are using so we can start to see if things are happening more frequent with certain hardware.

Do we need to still find the true zero point of the encoder?

If you use the “index in relation to end of phasing”, you don’t need to find it. If you decided that you must find it always, then that is possible by selecting the other indexing mode. In that case, the configuration tool will tell you “waiting for index point” when you need to find index point. If you have audible notifications on, then the wheel will also beep at finding of the point.

Ie: will we be centering the servo with an offset? If this is the case how have the servos been behaving when centered outside the +/- 1000 that we found to be a good safe zone?

you can set the center with the wheel at any offset, the point of the “index in relation to end of phasing” mode is that user won’t ever have to care about where the index point actually is, as the index point in encoder is not used at all, for anything, in that mode. Only thing that matters in that mode is that the wheel always phases in the same quadrant in relation to the motor poles. This end-of-phasing position can be, for example, 20 degrees to the left or to the right of the real wheel center, but if user calibrates the center correctly in the motor config wizard, the center position will always be accurately the same.

There shouldn’t have been any more or less safe zones for the index point. MMos might have been just buggy.

Thanks Mika,
Great explination!

Yes MMOS was buggy in relation to centering not close to true index point. Weird thing is it was also random.

The other weird thing was with new builds installing the software the very first time mmos and granity. Upon restart most times the wheel would travel CCW into the stop. After recentering offset in MMOS this normally never happened again.

Day’s report:

got FFB loop running at 2500 Hz so that effects can be implemented in the future.

got initial version of endstop effects working. It has force + damping, Tero’s idea and help was great. It feels very nice, but have to invent some random parameters and scaling factors to make it adjustable. That means, that some parameter names that are placeholders in current closed beta will change.

Also, spent some two hours debugging this endstop effect, as it seemed have a notch in the force. Fixed at the end. Turned out to be loose coupler :rofl:

1 Like

OK you are pretty fast or I am freaking slow… ah probably me slow as I do not have a set-up for that car at all around well anywhere so I was running with a couple of baseline set-ups… To give others an idea though of what the reconstruction filter will do is I tried your settings with my Large Mige at full 1:1 settings and I forgot to set the Reconstruction filter… My best lap with a hideous set-up mind you (car pushes like mad) was 1:22.9… Realized I forgot the Reconstruction filter turned it on to 5 and in one flying lap on the track with the BAD set-up I was at 1:21.2 that is a huge difference… I attribute it to a couple of things… The feel gives you confidence to run over curbs and things without fear of being bullied by the wheel (especially at strong forces) and 2 the tracking of the steering angle I believe is greatly improved allowing you to hold the wheel at optimal grip and find that point better than before the filter… You can notice this one easily as if you do have a loose set-up it will get looser on you because the front is now gripping better as you are not over turning or under turning the wheel.

With cooler weather, I managed a 2:14.8 last night.

The screenshot above is also old, I am now down into the mid 15’s, same conditions…

PS:Don’t forget, I represented the Mad Cows as a Pro driver a couple seasons back, definitely not an alien, but on the fast side - don’t let the iR fool you :lol:

One thing I have definitely noticed is the ability to keep the car easily in control on the grassy off track excursions.

This is in the DW12 at Mid-Ohio.

Some notes from upgrade process and short testing in games:

Firmware upgrade was done using MMOS to enter DFU-mode. After using DfuSe to upgrade and first power-cycle, new USB-device was seen by Windows, but device was unknown and drivers were unable to start. Started Simucube Configurator tool, but it didn’t see the Simucube. After waiting several minutes and no changes observed, second power-cycle while keeping Configurator tool open, it informed that IONI firmware upgrade was started and done. Operating mode wasn’t changed even after few minutes of waiting, so third power-cycle was done and after that it was “Operational”. I didn’t take notes during installation, so not very detailed explanation, but hope it helps debugging if there are some variations how installations go.

First game I tried was Assetto Corsa, which I know is not supported yet, but anyway it was working great with new firmware. New force reconstruction filter allows using fastest filtering (value 1) and high TBW (4700hz and unlimited) without mechanical noises from motor (small Mige 5K). Some rumble strips feel a bit harsh with this setting, but if needed those can be tamed by lowering TBW to 1000-1500 or increasing Simucube filtering to 2. In MMOS I was using total filtering of 5 as that was lowest I could go before getting mechanical feeling and noises from motor. Simucube’s reconstruction filter seems to offer more dynamic feeling (more on that in another post) than MMOS as its filtering softened sim’s already quite soft feeling. One thing missing in AC with current firmware is simulated heavy steering when standstill as this is pure damping-effect and normal steering forces activate only when car is moving. No biggie and doesn’t prevent enjoying the sim in current Simucube version.

Next was rFactor 2 and while I could make some cars feel quite OK, I was left with the feeling that with better suited filtering we could get even more out of rF2. The problem with rF2 seems to be that FFB-signal is very spiky and in-game filtering smoothens the spikes, but makes the car feeling quite bouncy, like driving with soft but solid rubber balls. With Simucube’s filtering I couldn’t get the same semi-OK feeling I got from MMOS filter. I need to do more testing, this could be sorted out with correct filter settings I just didn’t find yet.

In related to AC, I’d like to make a feature request: would it be feasible to add a feature which allows setting endstops at different steering angle than effective steering range reported to OS/games? Meaning that wheel could be set to for example 1180 degrees of steering angle which would also be seen by OS and game, but Simucube would start activating endstop forces in user adjustable angle, e.g. in 360 degrees. Probably the best UI implementation would to be add checkbox to Simucube configuration tool which allows separating endstop angles from steering angle range and when checked this would reveal/enable slider where user can adjust angle range where endstop forces activate. This feature would be very welcome at least in AC where software endstop implementation is unusable (feels like sudden 100% force without any ramp up) and controller steering range can’t be set when in track. It would make life easier as one could leave AC’s controller setting to its max. supported 1180 degrees, configure Simucube to the same 1180 degrees and then adjust endstop range when in car alt-tabbing to simucube configuration tool.

At the moment although not working simucube has 5 profiles. It would be a lot easier if we could have a lot more for per cars settings.

A nice option would be if we could have a top level parent profile for different sims containing child per car profile settings.

This would help the main profile from becoming too unwieldy,like my old mmos profiles which was a mess and full.

Cheers

Did it not change from Updating Ioni firmware… or did it go to “System Not Configured”? It shouldn’t go to Operational at all before motor configuration wizard is run at least once.

Yes, AC has not been investigated yet, but as I did the e-stop effect with damping integrated, it should now be easy to start to try to parse damping effect as well. It seems that at least AC and pCars might actually use the damping effect to get weight to steering at standstill/zero speed.

Noted. This should be achievable for the next beta version, people might find it a useful workaround for the very poor endstop effect implementations in various game titles.

1 Like

Didn’t get any meaningful progress today, busy with other things. Issues and reports and feature requests have been noted. The POLL has changed to people wanting the bootloader before endstop effect, but I already kind of did the endstops yesterday, so I will finish that feature first.

Yesterday, we also simulated the new Reconstruction filter using real data.
OFF is direct stepped square wave-like signal from iRacing
1-2 are kind of similar, one cannot really distinguish between them when plotting the filtered wave in Matlab/Octave.
3-8 seem to be quite usable, less and less of the notchiness remains in the signal.
9-10 seem to be very very smooth, but also the spikes (where signal changes direction) in the signal have quite a bit of lag with these, maybe even more than 20ms in some cases, and who would want that…
Requests between 0-1 and 1-2 have been noted, but as 1-2 are so much the same, there might not be scope to do it.
Even if the filter runs at very minimal settings, the result looks more like 1 than 0, so not much point of adding there either.
We will develop this further, but just to update you on what the filter seems to do, etc.