SHWotever / SimHub

Multi sim dashboard, bass shaker driver, ....
http://www.simhubdash.com/
799 stars 98 forks source link

ShakeIt Motors rumble stuck on #1320

Closed wongd-hub closed 1 year ago

wongd-hub commented 1 year ago

Describe the bug

Specs

Simhub version: 8.3.12 Licensed (most recent version as of writing this)

Hardware

Software

To Reproduce

Steps to reproduce the behavior:

  1. With Moza wheelbase, Fanatec pedals, and HF8 haptic seat connected and on, switch on the Fanatec Pedals and Forcefeel Pad / Next Level Racing HF8 outputs in ShakeIt Motors > Output Selection
  2. Enter Automobilista 2, pick any event and play it until the motors start to rumble constantly and the logs print INFO - [WatchDog] Abnormal Inactivity detected

Expected behavior

Signals to not persist when the corresponding action in-game is no longer occurring

Screenshots

Screenshot 2023-05-27 230600 Screenshot 2023-05-27 230544

Log files

sh_logs.zip

This has been tested with both pedals & HF8 on in the Motors Output > Output Selection, with pedals on and HF8 off, and with pedals off and HF8 on. The issue doesn't appear to occur with pedals off and HF8 on.

Uploaded zip file contains:

In general, where this behaviour occurs, it will be accompanied with something similar to the following lines:

[2023-05-27 23:03:47,862] INFO - [WatchDog] Abnormal Inactivity detected
[2023-05-27 23:03:48,518] INFO - [WatchDog] Stacks dump : 
    ManagedThreadId: 1, Name: N/A, OSThreadId: 1572, Thread: IsAlive: True, IsBackground: False
        DomainBoundILStubClass.IL_STUB_PInvoke(System.Windows.Interop.MSG ByRef, System.Runtime.InteropServices.HandleRef, Int32, Int32)
        MS.Win32.UnsafeNativeMethods.GetMessageW(System.Windows.Interop.MSG ByRef, System.Runtime.InteropServices.HandleRef, Int32, Int32)
        System.Windows.Threading.Dispatcher.GetMessage(System.Windows.Interop.MSG ByRef, IntPtr, Int32, Int32)
        System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
        System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
        System.Windows.Application.RunDispatcher(System.Object)
        System.Windows.Application.RunInternal(System.Windows.Window)
        System.Windows.Application.Run(System.Windows.Window)
        ?.?.Main()

[TRUNCATED - full logs in zip file]

Happy to discuss further!

SHWotever commented 1 year ago

Hi ! I took a look at the logs, thanks for getting them sorted like that it was really useful! When the issue appears they always shows issues with pedals communication getting stuck and waiting to get data sent. The final "symptoms" both rumbling or only pedals or only hf8 will depend of the current running effects before the pedals communication is getting blocked. I would try first to try to understand this issue, maybe isolate the pedals on another usb port if you can. Looking at the issue there is a bit of improvement which can be done in simhub: i can prevent a full simhub lock when this appears. but it won't solve the usb communication which is the root cause here and needs to be solved so the pedals effects will continue running too.

wongd-hub commented 1 year ago

Thank you for the quick response!

Absolutely will do - should I unplug my HF8 completely and test plugging the pedals into different slots to see if the issue continues to occur? And at a certain point does this just mean I've got faulty pedals which are at some point just failing to send data?

SHWotever commented 1 year ago

That's hard to say exactly, from the log i can only see the communication not working, most of the time the usb connection is the source, with our rigs we have many devices, emi, vibrations, etc... The most common issues stays usb overload or instabilities (bad hub, bad cable ...) before device failure.

I released an update preventing simhub to wait indefinitely in case of usb issue in the pedals. It will still freeze a bit but for only 1s, that will minimize the effect. I am curious to see if there will be clues of the usb failure for instance with a quick pedals disconnect/reconnect in the log Currently as it was stuck on it those clues would not be logged as it happens later.