1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

pyDashRF1 - FOSS Python app for SRD-9c display

Discussion in 'Automobilista - Links & Resources' started by gongo, May 14, 2016.

  1. gongo

    gongo Dan Allongo

    Joined:
    Mar 21, 2016
    Messages:
    370
    Likes Received:
    349
    I've written a free open source Python application for R3E/rFactor 1/Stock Car Extreme/Automobilista that runs the Renovatio SRD-9c sim instrument display. You can get it here: Releases · dallongo/pySRD9c · GitHub
    Here's a video of the display working in-game with R3E:

    There are a few things that this does that Renovatio's software doesn't:
    1. Push-to-Pass/DRS support - R3E only right now, will add functionality for AMS once the DRS information is published.
    2. Sector times - Able to switch sector split comparison from session best or personal best to self last lap.
    3. Pit window open - Works fully in R3E right now, needs more testing in AMS.
    4. Fuel warning - I wanted a fuel indicator that would warn me based on number of laps of fuel left, not number of Liters. There's enough to worry about during a race and having to figure out my fuel consumption on the fly is annoying.
    5. Lap times - I wanted the ability to compare my lap time to my previous lap, not just my own best or the session best. This helps me see how much time I'm losing to tire wear or position battles
    6. Position and lap display - I only need to know this stuff right at the start of every lap so setting my displays to constantly show it in SRD-M3 is pointless. I wanted something that would automatically show this information to me at the start of the lap for just a few seconds and then switch back to my regular view.
    7. "Live"/running lap timer - I think it's more immersive to have the lap timer clicking off tenths of a second in real time.
     
    • Like Like x 3
  2. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    Srd9c is a great piece of hardware, they produce it on my city...I really should by it...
     
    • Like Like x 1
  3. gongo

    gongo Dan Allongo

    Joined:
    Mar 21, 2016
    Messages:
    370
    Likes Received:
    349
    I really like the SRD-9c, it's a good dash. It makes such a difference to have a real display in front of you, that way you can turn off the HUD and be much more immersed in the sim. I know everyone loves to have their screens cluttered with the HUD and track map and this and that, but it ruins the feeling for me. If I have all of that stuff on the screen, it feels more like an arcade game and not like a sim. Aside from the GT Omega Wheel Stand, the SRD-9c is the best investment I've made in my sim racing purchases. It's not cheap, but I think it's very much worth the asking price.
     
  4. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    I have the GT Omega too!!!Do you have the seat too??I haven't enough space and not sure about seat quality...
     
  5. gongo

    gongo Dan Allongo

    Joined:
    Mar 21, 2016
    Messages:
    370
    Likes Received:
    349
    The rear seat frame isn't available yet here in the USA, but the sales rep that I spoke to said that it should be available sometime in Q3 2016. As far as the seat, I have a Sparco EVO II US seat that I pulled from my race car (yes, a real car, '07 Corvette) before I sold it, so I'll just be using that.

    Back on topic: I'll be adding support for rFactor 2 in the next month or so and then I'll merge the individual pyDashX programs into a single program that detects which sim is running and all that. The plan is only to support rFactor 1, Stock Car Extreme, Automobilista, rFactor 2, and RaceRoom Racing Experience. I own Dirt 3 and GRID Autosport, but I don't play them enough to really care about having support for the dash.

    I don't intend to buy Project CARS, Assetto Corsa, or iRacing, so I won't be supporting those. Besides, it seems that Renovatio is mostly focused on supporting those sims as they're currently the more popular ones, so there's not much need for my software there anyway.
     
  6. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    Good idea my friend,I am a noob but I love the hardware-software and mechanical part of sim racing I will buy it this week (hope so), really love your idea to give better support to ISI based games...
     
    Last edited: May 16, 2016
  7. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    My girlfriend gifted srd9c/m to me!!!I really love her...specially when she does things like this, lol. Btw, hope will arrive soon so I will use your plugin for sure, looks great...
     
    • Like Like x 2
  8. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    Arrived, tonight is test time!!will you add reiza17 too?
     
    • Like Like x 1
  9. gongo

    gongo Dan Allongo

    Joined:
    Mar 21, 2016
    Messages:
    370
    Likes Received:
    349
    Good to hear that you'll get to play with it this weekend. I think you'll like it a lot. I find that I can't drive without it now, lol.
    As far as Reiza's next title, it all depends on what the new engine export mechanism looks like and what my time commitments are like, but I'm guessing I should be able to adapt it. The good news is that I've open-sourced my work so if I get run over by bus or something, someone else could pick up where I've left off.

    PS - Your girl sounds like a keeper. ;)
     
  10. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    I installed it...
    but messed all my game profiles and wheel settings....
    no way to test your plugin...
    any idea?
     
  11. gongo

    gongo Dan Allongo

    Joined:
    Mar 21, 2016
    Messages:
    370
    Likes Received:
    349
    Place rFactorSharedMemoryMap.dll in the Plugins folder. Double click pySRD9c.self_test.exe. The display should show something. Then double click pyDashRF1.exe. The display will show all "-". Now start AMS and go into a session. Start the engine and the display should show live data.
     
  12. gongo

    gongo Dan Allongo

    Joined:
    Mar 21, 2016
    Messages:
    370
    Likes Received:
    349
    Oh, hang on, I just realized what's happening. The SRD-9C also shows up as a joystick in the game and will often take the JOY1 slot and ruin the mappings.
    I had to create an alternate mapping for my wheel as JOY2.
    I wish there was some way to say "ignore this device" or something.
    Sometimes I start up the game and the wheel is detected as JOY1 again, so then I load my other mapping. It's annoying, but it's because of the SRD-9C showing up as a joystick.
    I'm so used to it by now that I didn't even think about it, lol.
     
  13. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    Yep, It looks a bit strange, when playing r3e I can Still steer with my wheel (g27) but is like a pad imput (180° and pad driver animation)...
    I got a win error too at first start...
     
  14. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    The two exe where should be located?
    And for R3E?
     
  15. gongo

    gongo Dan Allongo

    Joined:
    Mar 21, 2016
    Messages:
    370
    Likes Received:
    349
    I honestly have no idea what you're talking about with "180 pad input driver animation".
    You need to delete your input mappings and start from scratch.
    It's not hard, and you'll spend more time trying to make your current config work than if you just deleted it and started from scratch.
    The exe files can be anywhere, it doesn't matter.
    There's nothing to do for R3E, just run the exe, then run R3E.
    The SRD-9C hardware includes the ability to be used as a joystick. This is something that Renovatio have done with the hardware, it has nothing to do with my software, and there is no way to disable it.
    The sim controls need to be remapped because you've added a new joystick to the system and the joysticks get renumbered.

    I'm not sure how else to help, I'll put a step-by-step below, but I truly have no idea why you're encountering such strange issues.

    For Automobilista:
    1. Open Steam
    2. Install Automobilista
    3. Download https://github.com/dallongo/pySRD9c/releases/download/v1.1.0.0/pyDashRF1-v0.9.0.0-win32.zip
    4. Unzip pyDashRF1-v0.9.0.0-win32.zip in Downloads folder
    5. Copy rFactorSharedMemoryMap.dll into c:\Program Files (x86)\Steam\steamapps\common\Automobilista\Plugins
    6. Plug wheel into USB port
    7. Plug SRD-9c into USB port
    8. Double-click Downloads\pyDashRF1-v0.9.0.0-win32\pySRD9c.self_test.exe (the SRD-9c should light up and do a self test. If it doesn't, then let me know)
    9. Double-click Downloads\pyDashRF1-v0.9.0.0-win32\pyDashRF1.exe (it will open a little black terminal window. Leave this running in the background)
    10. In Steam, go to Library, select Automobilista, click Play, then select Play Automobilista
    11. In Automobilista, go to Settings, Controller, and create a new controller profile
    12. Map each of the controls on your wheel and pedals
    13. Click Save and name the profile
    14. Go back to the main menu, select a car and start a Test Day session
    15. Turn on the ignition, start the car, and select a gear. You should see the SRD-9c display showing data now. If it doesn't, then let me know
    16. Exit Automobilista
    17. Close the little black terminal window

    For R3E:
    1. Open Steam
    2. Install RaceRoom Racing Experience
    3. Download https://github.com/dallongo/pySRD9c/releases/download/v1.1.0.0/pyDashR3E-v1.1.0.0-win32.zip
    4. Unzip pyDashR3E-v1.1.0.0-win32.zip into Downloads folder
    5. Plug SRD-9c into USB port
    6. Plug wheel into USB port
    7. Double-click Downloads\pyDashR3E-v1.1.0.0-win32\pySRD9c.self_test.exe (the SRD-9c should light up and do a self test. If it doesn't, then let me know)
    8. Double-click Downloads\pyDashR3E-v1.1.0.0-win32\pyDashR3E.exe (it will open a little black terminal window. Leave this running in the background)
    9. In Steam, click on Library, click on RaceRoom Racing Experience, click on Play
    10. In R3E, go to Settings and map all controls from your steering wheel and pedals
    11. Select Single Player, Practice, and start a practice session
    12. Turn on the ignition, start the car, and select first gear. The display should show data now. If it doesn't, please tell me
    13. Exit R3E
    14. Close the little black terminal window.
     
    • Like Like x 2
  16. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    Thanks for your help mate, problem was the Bodnar shifter adapter, all starts working again after I removed it...strange but at least I found the problem..
    Just a question, can you also code led brightness or color?

    Btw, thanks for your time making a such great app!!!I will do a set of stickers for srd9c front next days...
    The Renovatio team lives in my city...maybe I can try to talk them about your work...hummm
     
  17. gongo

    gongo Dan Allongo

    Joined:
    Mar 21, 2016
    Messages:
    370
    Likes Received:
    349
    Unfortunately the LEDs are single color only, not full RGB, so we're stuck with the colors as they are. The display would be *much* more expensive if they were RGB LEDs. The same is true of the brightness, we're stuck with it as it is. The blue LEDs are very bright, but they're supposed to be so that you know when you're at red line without having to look down at the display. You get used to it after a while.

    The labels really help and I think it makes the display look like real equipment instead of a toy (if that makes sense). I also label all of the buttons on my shifter and wheel so that I can easily remap them or remember what they do when I switch sims.

    As far as working with Renovatio on incorporating my changes... I'm publishing all of my code as open source under the GPL v2 license and I intend to keep it that way. I'm a strong believer in open source projects. A lot of programmers (especially in Windows, but there are some in Linux too) live in fear of others seeing their coding mistakes, or that they might not ever come up with something clever again in the future, so they're very protective of their code as a form of job security. In certain circumstances it makes sense to remain closed-source, especially if you have a patented proprietary algorithm or protocol that you're using. In this case Renovatio are using the USB HID interface which is very well documented at usb.org. There is nothing proprietary in the code that I've published and it doesn't expose or nullify any competitive advantages.

    It seems that Renovatio's display hardware itself, while attractive and well-made, is really quite generic. They seem to see their SRD-M3 software as the real differentiator from their competitors. They have no interest in open-sourcing anything, and I don't expect that to change any time soon. I've been very careful to primarily implement things that SRD-M3 doesn't do and largely avoid replicating most of the SRD-M3's functionality so that they don't see me as a threat. I've done everything in Python with open-source libraries using standard methods so that they can see that I haven't reverse-engineered their software or the plugin libraries they use.

    In short, I don't expect them to ever implement the things that I've done in my app. They appear to be very focused on saying things like "We support over 25 sims!" or "We support changing the display using a steering wheel button!", but they don't actually test or verify the timing functions in the sims they "support", nor do they appear to care about the experience being consistent across all of the sims.

    I only ever intend to support the few sims that I own and run, and I never intend to implement any sort of steering wheel button control since the point of my app is to intelligently show different data on the display depending on where you are on the track during a lap. It's designed to be automated, and that's how it will remain.

    I posted on their Facebook page once with a link to my github repo and they immediately deleted my post and never responded again. Considering that the SRD-M3 appears to be their focus for why they're better than the competition, I think it's unfortunate that they don't actually care about getting things right. Oh well.
     
    • Like Like x 1
  18. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    Thanks mate for your work, and I agree with your decision, I can understand your point and I hope they will open their eyes soon or later. The board is great, I think has great potential and I am sure your project will let us explore it further.
    Btw, I have the srd 9c/m board, this specific model let you install encoders, buttons, etc on the board...you think can be possibile add support to them too?I hope yes becuse the board can be used as base for a f1 wheel too...
     
    Last edited: May 23, 2016
  19. gongo

    gongo Dan Allongo

    Joined:
    Mar 21, 2016
    Messages:
    370
    Likes Received:
    349
    I think that was the original point of this display, to use it as some sort of integrated F1-style wheel. If you look under "Devices and Printers" you'll see the display listed there, and if you open up the calibration page you'll see that it already exposes all of those functions to Windows (via the USB HID spec for joysticks). If you hook up buttons and encoders, they should already just work natively in Windows without needing to do anything else.
     
    • Like Like x 1
  20. DaVeX

    DaVeX Active Member

    Joined:
    Mar 8, 2016
    Messages:
    544
    Likes Received:
    202
    Nice to hear mate!!!
    So I can use your awesome software without losing any function!!!
     
    • Like Like x 1

Share This Page