SimuCUBE Open Source Firmware Development Update Thread 2

firmware

#121

OMG…32? Thirty two?
I thought I was bad with my Oculus room scale with 4 sensors, RGB devices, Gaming KB+M, Bluetooth keyboard (for easy menu access when I’m in VR), Simucube, webcam, studio mic and a bunch of stuff that isn’t ‘usual’.
Even then I am still under 15, which is still a lot in my book!

How many button boxes do you have?
Do they have multiple USB inputs for each box?

Don’t you have serious issues with Windows (device manager errors) due to your motherboard’s USB controllers being overloaded?

I’m assuming you have a high quality USB card that has individual, dedicated USB controllers for each port on the card? If you have one of the many cheaper cards (Inateck is well known) then you won’t resolve your issues.

And even if Mika could get those ports working on the SimuCUBE, I’m pretty sure it’s not designed to handle that kind of bandwidth because once again the SimuCUBE shares the bandwidth on your motherboard’s USB controller, given that it’s connected to a USB port on your PC’s motherboard using a USB cable. :slight_smile:

I use the “Startech 4 Port PCI Express (PCIex4 slot) Sata powered (from the PSU) SuperSpeed USB 3.0 Card” that could allow the additions of another 16-20 ports via 4x 4-5 port powered (wall adapter) USB hubs plugged into each of the Startech ports. Unless most of the devices connected to the each hub connected to each dedicated Startech port were USB 2.0 I would probably limit each hub to 4 USB devices for the same reasons my motherboard has issues with 5 or more concurrently used USB 3.0 devices overloading the on-board controller.

Even then I would likely have to add an additional Startech card on my PCIe 8x slot (I don’t use SLI so that would be fine) to power the remaining devices as those cheap Inateck USB cards with 4-7 ports only have one controller and you could not power that many devices concurrently without running into the same issues most people buy these cards to resolve in the first place!
Also, those cards use the little PCIe x1 slots which will result in a bandwidth issue due to that slots max bandwidth of 500MB/s vs PCIe x4 3.94GB/s bandwidth

Here’s a link to that Startech card just in case you are having USB issues due to USB controller overload:


#122

Read my last post, it will help you resolve your issues.
There’s no other way I have found around this if you have lots of bandwidth hungry USB devices.
And I have a box full of various ‘powered’ external USB hubs, cheap Inateck cards collecting dust.

The common misconception with people buying those 4-10 port ‘powered’ USB hubs is that they ultimately plug into one of your motherboard’s USB ports and that port is managed by a shared USB controller on your motherboard that’s not designed to provide enough bandwidth if all ports (especially if you are using USB 3.0 devices) are used concurrently.
So, you might find that if you are using all the USB ports on your motherboard that these external USB hubs (with their little wall power adapter) are hobbled and as you are finding don’t resolve the issues.
These ‘powered’ USB hubs are really only designed for those who need a way to add a couple of USB devices that might be further away from the PC. The ‘powered’ part in no way means it resolves the bandwidth issue.

The only way around this is to find a way to add additional USB ports that have their own USB controller.

As stated in my last post, just one of these Startech cards (link provided in last post) could safely add 8-12 USB 3.0 devices that would not run into the issues you have now.
Just plug in your external USB hubs to one of 4 individually powered USB ports on the Startech card and you are essentially working with a new USB 3.0 controller that should safely power 3-4 USB 3.0 devices per port.
Yes, it’s a little more expensive, but if you want that many USB devices there’s unfortunately no cheap way around it.
Hope this helps.


#123

I use the regular mainboard USB controllers.

I use a bunch of these USB hubs. https://www.direktronik.se/direktronik/natverk/lan-lokalt-natverk/industriell-ethernet/industriell-hub-for-usb-2.03.0 (link in swedish, ~€65 for 2.0 and ~€130 for 3.x)
They come in both 2.0 and 3.x versions. They are powered by an power adapter. Easy to mount onto things because of mounting brackets. Works all the time. No drop out at all. Well… it happened once when a thunder flash went down near my house.

I have many button boxes, game controllers, keyboards, mice (or are they called mouses when talking about computers!?), soundcards, vibration controllers, VR etc… In those 32 devices the hubs are included. Sorry if that was misleading.


#124

So based on your theory, I have 8 ports on my board, rear, each has its own controller, I would be better off using 4 5 port hubs with each hub on a diff controller, rather than 2 10 port hubs on 2 controllers. ALL the devices are 2.0 on the 2 10 hubs,

3.0 Hubs I ran into limited resources with 20 devices, hence downgrade to 2.0 hubs …?


#125

Most of your devices must be low powered USB 2.0 that are power managed by Windows as you would be running into constant issues with devices that need USB 3.0 bandwidth with those devices.
Even with USB 2.0 I’m still very surprised that you can attach that many concurrent devices without issue.
What motherboard do you have?

Given the high price (about $75 USD) for those hubs, maybe they actually have their own USB controller on board, although I could not see that in the description so I am guessing you are paying more for the ‘industrial’ enclosure that’s likely made of metal and designed for use in commercial environments?
The only thing I could find that’s similar is the following item, but this device does not have it’s own USB controller and will once again be limited by the PC’s motherboard USB controller:

The ‘Industrial’ part is really for the ruggedness of the case enclosure for mounting in work environments, but does not create more bandwidth.


#126

The common denominator is always going to be your motherboard’s USB controller bandwidth and unless you have a high end board (I have the Asus ROG Maximus IX Hero that has two 10GB/s controllers) you will always still be using up that bandwidth regardless of whether you use all the motherboard USB ports on the back of your PC or ‘split’ that bandwidth by those external hubs.

Unless you add more USB controllers you cannot create more bandwidth.
The only way to do that is to add a PCIe card (I didn’t find one better than the Startech) that has it’s own USB controllers that are separate from the onboard motherboard controllers.
You could then connect your external powered USB hubs to ports on the new card as you are now tapping into new USB bandwidth.

Hope that makes sense.


#127

None of the devices I have is high bandwidth devices. I don’t know what I should do with high bandwidth devices!?

They are actually $155 (3.x) in the largest online store in Sweden.


#128

If you are having USB connection issues (little yellow warning symbols in Windows device manager), then you don’t have enough bandwidth for all your devices and there is only a couple of solutions.

One is as I detailed, the other is to find a way to not use all of them at once.

But since you don’t have any issues then you don’t need to buy anything else.

What I mean by high bandwidth devices are USB 3.0 specific devices such as the Oculus Rift and it’s sensors.
A single Oculus sensor can use 400MB/s USB Bandwidth. Add 3 plus the headset and you have already completely saturated the maximum USB controller bandwidth on the majority of motherboards and is why the forums are full of people with bandwidth issues.

USB 2.0 devices on the other hand use a maximum of 60MB/s, but likely less than that.
So, assuming you have at least 10GB/s (1000MB/s) of bandwidth on your motherboards USB controller, and let’s average each USB 2.0 device to 50MB/s then you could in theory have 20 devices connected and being used concurrently. Windows USB power management will turn off power to unused USB devices until they are used, which also might be why you don’t have any issues.
If you have a higher end motherboard (like mine) that has twice that bandwidth then you could have up to 40 USB 2.0 devices.
But I would definitely spread the devices across as many of your motherboard’s USB ports as you can - don’t leave any unused in favor of an external hub.

In the SIM racing community, most USB bandwidth issues are almost exclusively related to VR.


#129

1.6GB/s just for knowing where you head is? That sounds unbelievable.
We’re lucky the images goes through HDMI then.


#130

HDMI is actually part of the problem - bandwidth issues.
Next gen will use thunderbolt.

For SIM racing I use only 1 sensor. But for other VR titles in my VR space I need 3.


#131

I’m at Simracing Expo this afternoon. If you find me, there might be a free SimuCUBE baseball cap for you!


#132

Keep one for me for when I visit next, please Mika :slight_smile:


#133

Looking forward to meeting you Mika, I’m lucky to live 8 minutes from the Nordschleife :slight_smile:


#134

I understand that the reconstruction filtering is done on the Ioni firmware.
But wouldend it be better if the Filtering was done on the SimuCUBE STM32 ? The timing will be more accurate and can write to the motor drive much faster than from Windows.

Just a thought after a discussion with someone who knows more than me :slight_smile:
or what is the reasoning behind it ?


#135

Servo drive is much more closer to the current that goes to motor coils. Timing is much, much more accurate there.


#136

Status update:

There will be more time to debug outstanding issues after this week. We have been busy with other upcoming projects lately.

0.11.1 will be this month for sure.


#137

Any news about the integration of irFFB (iRacing) in SimuCUBE?


#138

No news yet from Nick (the irFFB developer). It would not take much for someone else to implement it, but we haven’t had the time recently.


#139

Ok, thank you so much for the information :wink:


#141

Some guys will be happy to know, that this mode now works wonderfully.
image