SimuCUBE Open Source Firmware Development Update Thread

If you have any wishes for an SDK, please PM me, or email.

We plan to keep the Configuration Tool closed source, so that there is always a consistant user experience that we can control. However, loading any types of data, commands, etc can be facilitated easily via that api, by defining new types of packets. For developers, simple connect, send data, ask data, disconnect -example will be provided as needed.

3 Likes

Ok, no problem for the closed source of the configuration tool, as Iā€™m willing to have a different approach. I will email you in january.

Hi Chichi. Can you verify that PID and VID work for simucube in dirt 4? I canā€™t get the ffb to work. Thank you very much

Dirt Rally works. Any info about Dirt 4 not working is news to me. Has someone experienced the same difficulty with that title?

Did you use the files I sent you via email?

In Dirt 4 controller settings:

  1. What is shown as steering device ā€¦ should be SimuCUBE with my files copied in the right directories, if not click the entry and change it to SimuCUBE
  2. Open device management is SimuCUBE set as wheel? If not use arrows to change its type to wheel.

Maybe you can check that one in addition - Hopefully it is ok to add link to steam community ā€¦

Multi-Input Device Configuration for DiRT 4

Btw. I think in Dirt4 it is essential to assign all controls to the regarding input device
a) steering and, if used, buttons connected to SimuCUBE to the SimuCube controls in the device manager
b) if pedals are separate the assgn them to their controller (thatā€™s what I have)
c) buttons of the steering wheel to their USB controller or as for me to the bluetooth controller

I too have QR1 and what i do is set my wheel in position (my case thats about 75 degree turned to the right), when I turn on, this references the original MMOS ā€œexactā€ index center. The wheel initializes in this position (75 degree to the right). Then in Simucube software if i need to change the center I just click recenter and its perfect at 0 degrees. MUST replace the wheel to 75 degrees to the right when turning the simucube on, I also turn on the simucube and let the wheel index before starting the software, if I am a little off 10-20 degrees from my exact index, the wheel will rotate to the initial index, automatically. If simucube (software) is loaded, the wheel will index in whatever position the wheel is. Hope this helps.

I had trouble getting FFB in Dirt4 but, that was due to the SimuCube not being properly recognized by the title. IIRC, that was already addressed.

Update:

Good news:

  • Sine effect works.
  • Spring effect works.

Bad news:

  • a bug has been found which causes effects not to be created sometimes into SimuCUBE memory. A new effect creation request from PC will be assigned the same ID as the previous effect. This could explain why sometimes there is no FFB in games.
6 Likes

Hi,

Open Source, like in -> possible to modify and adapt it to Argon devices ? I feel a bit trapped with my Argon, as I could sell it for a Simucube system, but it is almost impossible to find a second hand buyer. Iā€™d love to upgrade to a SinCos encoder for my mige, but I canā€™t just put a 500 euros device away to take up dust.

Nope, specifically for the SimuCUBE platform.

Further analysis of this bug:

Iā€™m inclined to say that its not anything usb related, as everything works in a logical way. The ā€œfind next free slot for a new effectā€ just returns the same slot twice. There arenā€™t even interrupts doing this, judging from the USB trace, as the answer to the first effect slot reservation is seen at the PC side before PC asks the second one.

:thinking::thinking::thinking::thinking::coffee:

Tricky one then, Mika, good luck sorting it out. Anyway looking forward to the new FW, let me know if you need a crazy Aussie test monkey to do some testing.

1 Like

@Mika, ok, fair enough, as I made the mistake to put the Argon on the Simucube layer, but Argon is the servo driver like the Ioni, and SimuCube is the controller between the application and the servo drive like the STM32F4 board, so it is wrong to expect the Simucube firmware to be compatible with Argon. For that to work the Simucube board would have to be compatible towards Argon, but that was never your intention. Well, in the end in the CNC scene some people are interested in Argon, iā€™ll hope I get lucky there.

It seems that Iā€™ve found the mechanism that makes the bug happen.Happy days, as this could also be the cause for the F1 2017 crash (need to check out the logs I recorded of thatā€¦)

Bad news is that this can prove to be difficult to fix right away.

Short explanation of what is happening, is that there are two pipelines in USB. When everything goes right:

ClearEffects (on report pipe)
CreateEffect (on control pipe, effect gets ID 1)
CreateEffect (on control pipe, effect gets ID 2)

For the creations, there is also commands that asks the ID from the device, but Iā€™ve omitted them from here.

All reports on the report pipeline get into a report buffer, where they are being read as fast as possible. The control pipeline stuff is handled in an interrupt right away.

If SimuCUBE is handling something time consuming, such as forming the simplemotion command to the IONI and sending it, the clear effects command doesnā€™t get performed right away. If the commands via USB are being sent at fast enough speed, then execution order is this:
CreateEffect (on control pipe, effect gets ID 1)
ClearEffects (on report pipe)
CreateEffect (on control pipe, effect gets ID 1)

So, sometimes there are effects lackingā€¦ Some games seem to actually check what effect idā€™s they got, and reinit accordingly if needed. Some games just send-and-forget. It seems that ETS2 gracefully forgets IDs, but if the same happens with F1 2017 and if this is the cause of itā€™s crash, there might be some exception / wrong indexing of a table, and game would crash/hang/etcā€¦

Fix is not a one-day thing to do. Might need to perform the incoming report pipe parsing already in the interrupt service, at least for those commands that touch the effects table.

2 Likes

Great find, this will resolve almost all of the potential USB issues with certain games by the sounds of it!

Remind me to buy you a couple beers when I am in Tampere in March! Seems I will be there for some meetings!

1 Like

loaded up iracing and didnā€™t have any ffb. exited out and noticed this.
is it anything to worry about?

If that is not constantly increasing and generally says at the same value, then it is nothing to worry about.

Can you try a good quality USB cable directly connected to an on-chip usb2 port. Avoid connecting to USB3 ports, especially those AsMedia 3rd party chipsets, often found on Asus boards.

I generally use only on-chip (native) usb2 ports for my wheels/pedals et al.

Cheers,
Beano

i did a test, Just to see if usb 3 is a problem i donā€™t know which chipset i have( i wil look it up later its a asus board dough), but i have been running my simucube on usb 3.0 for months now, never a single problem.

Congratz on that find Mika, Iā€™m not a programmer, but it seems you found the needle in the haystack :slight_smile:
It would be awesome if I could race in F1 2017 again.