SimuCUBE Open Source Firmware Development Update Thread 2

firmware

#1

Time to turn a new page in the SimuCUBE firmware development. We have now pushed the code into the open source repository.


SimuCUBE Open Source Firmware Development Update Thread
#2

To add, we already have some notable people in the general simracing enthusiast community given interest in development, so this will be a new boost for end users as well.


#3

Good news, Mika, and a big thank you from my side for all your efforts in establishing and rolling out a very solid baseline FW for the Simucube.

I can see this go from strength to strength with the community involvement, especially NL with his nice ideas about FFB and the general user experience.

I believe this is a big turning moment in the life of Simucube-equipped DD wheels, this will grow to new heights.

Well done, Mate, and thank you :slight_smile:


#4

can’t wait for the build in 360hz Telemetry based FFB for iRacing into the firmware :smiley:


#5

I have just replaced the 0.10.3 release with 0.10.3b which has a tiny fix to the Configuration Tool.


#6

When will that happen? I am interested as well :slight_smile:


#7

#soon they are already working on it (nlprint)


#8

A built in 360hz version would make a huge difference!


#9

not too #soon dough he just told me, he is pretty busy with other stuff at the moment :wink:


#10

I had the option of accuforce,osw,or waiting for the fanatec dd to arrive. Im glad I made the right choice and went osw. The progress you have made in the short time I have had mine is amazing!!! Im looking forward to seeing what you have instore for us next. Keep up the great work and a big thank you from me and im sure all of us that have bought them!!!


#11

Thanks Mika!
Does that mean you are retiring from the project?


#12

Not at all, but now we can focus on developing features that are most needed, and at the same time, incorporating any open dource efforts.


#13

Things we are considering at the moment:

  • Encoder inputs to X11 ports (configurable)
  • Linux port of the Configuration Tool
    – I might do this as academic learning project on my free time :slight_smile:
  • iRacing SDK integration to the Configuration Tool

#14

It turned out I had a boring evening.

… but USB does not connect yet, could be a virtual machine issue or something. Need to find a sacrifical Ubuntu PC to do a real test.


#15

Or a permission issue. But anyway, good groundwork done for Linux port, not too much changes to backport to Windows version either.


#16

Apologies if this has been covered previously in another thread, but I just upgraded to the BISS C and firmware v0.10.3, and now when I first switch on the wheel it spins 360 degrees clockwise before settling down.
Simucube config tool then shows a value of zero degrees (or thereabouts), so it seems when I power up it sees it initially as -360 degress and rotates to put it back to zero.

Hope this makes sense :slight_smile:

Cheers,
Andrew.


#17

I noticed this while developing, and tried to add a workaround that indeed worked fine for me.

Can you verify that you have Absolute Encoder indicated as the indexing mode?

Can you shut down the SimuCUBE and then power on, and after the spin has happened, post a debug log from the Advanced tab?

There was a bug in 0.10.0 and 0.10.1; SimuCUBE did not set up the Absolute Encoder indexing mode always if user did the commutation sensor setup. Because of this, the fix I implemented is not “active” if user has still the Automatic Indexing (or Index related to Initialization) in the Hardware tab.

Solution is to redo the Motor Configuration Wizard with 0.10.3.


#18

and it was indeed a permissions issue :slight_smile:


#19

Once ready, I can test on Linux, kiitos hyvin paljon :slight_smile:


#20

Thanks for the quick reply.
Here’s the text from the debug log:
SimuCUBE Boot : 0
SimuCUBE Boot : 10
SimuCUBE Boot : 3
Flash settings data loaded : 0
Initial config has been previously performed. Initializing Drive. : 0
State: Initializing Drive : 0
First-time drive initialization : 0
SMBus baudrate initialized successfully : 0
event 90 : -8
Read MMC value from Drive : 12000
Read Motor Resistance value from Drive : 2859
Read CPR from Drive : 4194304
Read Drive Version ID from drive : 11201
SM Watchdog disabled successfully : 0
Waiting for faults to clear : 0
Waiting for servo to be ready : 0
event 92 : -13
event 94 : 2419231
SMBus baudrate initialized successfully : 0
State: Drive initialization was successful : 0
SM Watchdog enabled successfully : 0
State: Before operational - calculating new constant values : 0
State: Operational : 0
USB stack was reset due to being stuck busy : -1
USB stack was reset due to being stuck busy : -1
USB stack was reset due to being stuck busy : -1
Command: Request Profile number : 0
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 0
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 1
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 1
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 2
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 2
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 3
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 3
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 4
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 4
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 5
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 5
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 6
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 6
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 7
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 7
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 8
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 8
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 9
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 9
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 10
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 10
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 11
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 11
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 12
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 12
Command: Request profile data is for 55 byte set index : 1
Command: Set calibrated analog axis mode : 0
Command: Request Profile number : 0
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 0
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 1
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 1
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 2
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 2
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 3
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 3
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 4
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 4
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 5
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 5
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 6
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 6
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 7
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 7
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 8
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 8
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 9
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 9
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 10
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 10
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 11
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 11
Command: Request profile data is for 55 byte set index : 1
Command: Request Profile number : 12
Command: Request profile data is for 55 byte set index : 0
Command: Request Profile number : 12
Command: Request profile data is for 55 byte set index : 1
Command: Request hardware settings : 0
Command: Request analog input settings : 0
Command: Event log download request : 0
Command: Start event logging : 0
Command: Event log download request : 0

…and here’s a screenshot from the hardware tab:
image

I’d already tried redoing the motor config wizard, so maybe I was using some incorrect settings??

Thanks,
Andrew.