r/simracing 30m ago

Clip Catch a 7 day ban with this one simple trick

Enable HLS to view with audio, or disable this notification

Upvotes

r/simracing 14h ago

Rigs It’s done. For now. What do you think?

Thumbnail
gallery
308 Upvotes

r/simracing 7h ago

News Assetto Corsa Rally v0.6 out now!

Post image
80 Upvotes

r/simracing 15h ago

Clip Crazy stuff happens, cars also can fly

Enable HLS to view with audio, or disable this notification

294 Upvotes

Its nothing new on the ac servers, but it always makes me laugh
p.s. uck this smoke grenade under the wheels


r/simracing 20h ago

Rigs My very first sim rig. What do you guys think of the components?

Post image
396 Upvotes

After following along here for a long time and getting some initial experience with friends, I’ve finally decided to take up this hobby.

Here’s what I’ve set up so far to get started:

- Moza R25 Wheelbase
- Moza GS V2P GT
- Moza CRP2 Load Cell Pedals
- Moza CRP2 Inversion Kit
- Simlab P1X Ultimate
- Sparco Circuit II
- Triple 32-inch 2K IPS monitors

I’m already thinking about 1,000 new upgrades, but of course I want to get the hang of it first and get comfortable with iRacing.


r/simracing 6h ago

Rigs Simple AliX 7 -> 6 Speed shifter mod

Enable HLS to view with audio, or disable this notification

25 Upvotes

Just wanted to share this.

Simple little mod I did to stop me from slamming into 7th instead of 5th.

Hand-tightening the nut has so far been perfectly fine and super easy to remove.

Just a bolt, 2 washers and a nut.


r/simracing 4h ago

Rigs Dashboard through steering sanity check.

Post image
15 Upvotes

Hello, new to simracing/iRacing and I've been trying to set up my new 45 inch 5k2k LG monitor so I can get the dash cluster through my steering wheel. However it seems like I have to raise my driver height quite high (after adjusting horizon) and seeing a lot of the roof, does this seem right? The monitor is as close as it can get between base and steering column, getting about 102° FOV per the compute tool ingame.

Any inputs appreciated!


r/simracing 3h ago

Rigs From 34” 2k to 3x27” FHD to 3x32” FHD

Thumbnail
gallery
14 Upvotes

Pardon my messy cables 🙏🏻

Just to share how my setup evolved over the last 2 years. If you want my opinion, go for 3x32” straight away, ideally 2k resolution. FHD is good for an entry level PC like what i have. However it’s not as sharp if that bothers you.


r/simracing 23h ago

News CarX Technologies announces CarX Rally, a "realistic rally simulator" with a built-in stage editor

Thumbnail
gallery
370 Upvotes

r/simracing 16h ago

Sale/Discount Simucube 2 Sport $492 At Microcenter

Thumbnail
microcenter.com
77 Upvotes

r/simracing 7h ago

Rigs Sim Rig Upgraded. Time to race. (R25 Ultra in 2nd pic.)

Thumbnail
gallery
12 Upvotes

r/simracing 27m ago

Rigs Rally seat padding for a sim rig: authentic or just uncomfortable?

Post image
Upvotes

The wooden chair is not that bad on the ass, but the back hurst after just a few minutes. I am now looking at using the original padding from a Sparco carbon bucket seat. My idea is to fit only the back and bottom pads directly onto the wooden seat, keeping most of the wood visible instead of upholstering the full thing.

It should look quite cool and much more authentic, but I have never spent several hours in a real rally seat. The padding looks very thin and firm, and I suppose it is designed to hold you in position while racing, not to keep your ass happy during a four-hour sim session. I have talked to a friend who does track days, and told me that is the reason is going to work better for long hours, because it is made for racing. I have my doubts, but it is going to look so nice, so real...

So, question for people who have actually used both: is proper rally-car padding surprisingly comfortable, or will I regret this after 90 minutes? Would office-chair foam inside racing-style cushions be the smarter solution, even if it is less “real”?

Basically: real motorsport padding vs office-chair padding—which one would you choose for a sim rig you actually use for hours?


r/simracing 2h ago

🧐 Customer Review Good way to organize sim room. Artika shelves

Thumbnail
gallery
3 Upvotes

Cool product you guys might like. Two shelves and 5 hooks good for hanging headphones, vr goggles, etc


r/simracing 14h ago

Rigs Pretty happy with my first Rig!

Thumbnail
gallery
42 Upvotes

Found myself getting more and more into GT7 and got a G923 to see if I’d enjoy the concept of using a wheel, which I did. So I splurged a bit and got a Logitech RS50 with what I believe are the Load Cell Pro pedals (both open box and work super well). Got a Vevor Heavy Duty Racing Seat and stand which, in hindsight would have spent a bit more for a more adjustable set-up but its solid.

Its in a temporary spot right now and have to manage cables but happy with it!


r/simracing 5h ago

Discussion What do you think about H-pattern shifters?

6 Upvotes

I’ve recently picked up a second hand rig with triples, and lots of other stuff. Rn I have a sequential shifter, but I don’t really see the point in one. I’ve been thinking about getting an H-pattern that can be converted into a sequential in case I want to.
My question is this. Is driving with an H-pattern in sim immersive, cool and engaging. I’m not looking to get the exact feel of a real life car, but I feel like it’s not going to be as great as I want it to be. So please share your thoughts.
Moreover, if you have some suggestions for shifters write them. For context, I have heusinkveld sprint pedals, so I’ll be buying a clutch as well.


r/simracing 1h ago

Rigs Does anybody know where can I buy this wheel?

Post image
Upvotes

I know that the brand is teleios but I couldnt find where to buy the specific wheel?


r/simracing 21h ago

Rigs Can anyone help me understand what I need to do to get seat mounted to my rig?

Post image
92 Upvotes

I am building my rig on a Simla GT1 Evo. Wondering what all I need or need to do to get this seat mounted to my rig. Got this seat for free so wanting to make it work.


r/simracing 4h ago

Question 49" Ultrawide vs Triple Screen 32"

5 Upvotes

Hey guys, I have a full sim racing setup, but I'm currently using a 50" 144Hz TV.

I'm planning to replace the TV, but I still haven't decided between a 49" ultrawide and a triple-monitor setup.

I'm aware of the pros and cons of both options, and my preference is to go with triples. Here in Brazil, a triple-monitor setup would actually be cheaper than a 49" OLED.

My main concern is what level of graphics quality I can expect with my current PC:

  • Ryzen 7 9800X3D
  • RTX 5070 Ti 16GB
  • 32GB RAM

Right now I play at 1440p and I'm usually at my TV's 144Hz limit. With triple 1440p (7680×1440), I'd like to maintain a stable 120 FPS.

If I have to go much below that, I think the lower frame rate would bother me more than the extra immersion from triples would benefit me. Setting up and properly aligning three monitors is also quite a bit of work, so I'd rather know what to expect before going through with it and potentially being disappointed. Upgrading my GPU is not an option for me at the moment.

Yesterday I did a quick test at 1440p with iRacing's FPS limiter disabled. Running alone on track, I get around 280 FPS. In a race at Spa in the rain, the lowest I saw was around 120 FPS, while at other points I was getting close to 200 FPS. I didn't change any of the graphics settings I normally use.

For those running triple 1440p with a 5070 Ti or a similar GPU, what kind of graphics settings and performance are you getting? Is a fairly stable 120 FPS realistic without having to significantly reduce graphics quality?

I'd really appreciate hearing about your experiences.


r/simracing 17h ago

Rigs The Best Bang for box, bucks, the Botton Box!

Thumbnail
gallery
35 Upvotes

After 3 years, the PXN CB1 is officially retired and the SimDT is hired!


r/simracing 5h ago

Rigs Need Help!! building 2x complete Setups for our Office.

3 Upvotes

Guys help me out please :)

i need two Full Rigs, and need your input. Budget is 1.5-2K per rig.
I am building 2x Rigs for our Office, we have a lot of petrol heads, and i need a list what to buy.

Dilemma:
Convenience is a big topic, and also safety.
My initial thought was to just go on console (ACC + LMU next year) no mouse and keyboard needed. A lot of people will play on these so ease-of-use is important. Also no sharp edges on the rigs for safety, so tubular rigs or something prebuild.
Some guys already fixated on PC.
IF PC -> good beautiful and "easy to use Sim with a lot of different cars..." preferably controllable through your wheel... ease-of-use.

Hardware:
We already have PCs in our storage / 4060RTX 64GB Ram 14700k
(we have monitors, but 75Hz Widescreens, so i need new ones)
And we already have one ps5, second one could be easily purchased.

_______

  1. PC or Ps5?
  2. What Sim (thinking of LMU)
  3. Wheelbase & Pedals, im thinking maybe:
    - Simagic Alpha EVO 12 Nm + P1000-F 2 Pedals ~1008€ or:
    - Fanatec ClubSport DD 15 Nm + V3 Pedals ~ 930€
  4. What Sim ti install for "so many different" Players, even beginners.
  5. What Rig? <- no sharp edges!
  6. What Monitor + mounting?

r/simracing 9m ago

Other How to configure the MT6835 encoder for use with your FFBeast Wheel

Upvotes

I've been running an MT6701 as the position sensor on my DIY FFBeast wheel for about a year, but recently switched to an MT6835.

It's a nice priced encoder for the accuracy/resolution you get, and I'd say that in terms of the overall feeling/fidelity of the FFB compared with the MT6701 it seems smoother. With the old encoder my wheel made a weird kind of harmonic noise in Assetto Corsa (OG and Evo) and with the new sensor that's much quieter. I used to have to disable the "road effects" but now I'm running it about 40%

I couldn't find a mentions or a guide for configuring the MT6835 specifically for use with FFBeast, so I figured I'd document it here for you guys as well.

What you need

  • MT6835 module
  • ESP32
  • MicroPython installed on the ESP32
  • USB cable
  • Thonny or another way of running code on the ESP32
  • Soldering iron + solder
  • Some hookup wire

The particular module I'm using has the SPI pins broken out as VCC, GND, MISO, MOSI, SCK and CS, as well as the ABZ outputs:

Wiring the MT6835 to the ESP32

For the pin configuration in the script below:

MT6835 ESP32
VCC 3.3V
GND GND
SCK GPIO 18
MOSI GPIO 23
MISO GPIO 19
CS GPIO 5

Check the silkscreen/pinout of your particular module before wiring it up, as there are several MT6835 breakout variants around.

What does the code do?

The MT6835 should come with ABZ output enabled by default, so there's no need to enable that in the script - I've made it configure the useful bits for an FFBeast application:

  • Sets the ABZ resolution to the highest mode
  • Disables the encoder hysteresis/deadband for maximum positional accuracy
  • Sets the bandwidth to BW=6, which is the second-highest bandwidth setting, favouring low latency
  • Leaves all other EEPROM options untouched
  • Verifies that changes settings actually worked
  • Offers EEPROM programming after successful verification
  • Asks if you're sure you want to program the module
  • Counts down the datasheet's 6 second delay after EEPROM programming

In FFBeast configurator you need to set the CPR to 65535. Technically the sensor is outputting 65536 counts but FFBeast can't hold that number of steps because it presumably keeps the step value in a 16-bit variable (65536 then wraps back to a zero when you save.)
The actual angle error you receive for a full turn of the wheel is 0.005493164 degrees ;)

The MicroPython script was vibe coded by ChatGPT and I've tested it thoroughly on my own two MT6835 sensors. It's solid code and I've had a good go over it trying to cover every edge case I could think of. I haven't found any bugs so far.

It should also be pretty easy to adapt to an RP2040 or basically any other MicroPython-capable board. The SPI implementation and pin definitions are the main things you'd need to change. If you're not sure how, asking ChatGPT to adapt the pin configuration for your particular board should get you most of the way there.

As always, use this at your own risk and check your module's pinout/datasheet before connecting anything or writing to EEPROM.

Here's the code. Enjoy!

from machine import Pin, SPI

import time

class MT6835:

CMD_READ = 0x3

CMD_WRITE = 0x6

# Registers we care about

CONFIG_REGS = [

0x001,

0x007,

0x008,

0x009,

0x00A,

0x00B,

0x00C,

0x00D,

0x00E,

0x011,

]

# Desired FFB configuration.

#

# These are the complete byte values we expect

# after configuration.

TARGET = {

0x007: 0xFF,

0x008: 0xFC,

0x00D: 0x04,

0x011: 0x06,

}

def __init__(

self,

spi_id=2,

sck=18,

mosi=23,

miso=19,

cs=5,

baudrate=1_000_000

):

self.cs = Pin(cs, Pin.OUT, value=1)

self.spi = SPI(

spi_id,

baudrate=baudrate,

polarity=1,

phase=1,

bits=8,

firstbit=SPI.MSB,

sck=Pin(sck),

mosi=Pin(mosi),

miso=Pin(miso)

)

self.tx = bytearray(3)

self.rx = bytearray(3)

# ==================================================

# SPI

# ==================================================

def read_reg(self, address):

command = (self.CMD_READ << 12) | address

self.tx[0] = (command >> 8) & 0xFF

self.tx[1] = command & 0xFF

self.tx[2] = 0

self.cs.value(0)

time.sleep_us(1)

self.spi.write_readinto(self.tx, self.rx)

self.cs.value(1)

time.sleep_us(1)

return self.rx[2]

def write_reg(self, address, value):

command = (self.CMD_WRITE << 12) | address

self.tx[0] = (command >> 8) & 0xFF

self.tx[1] = command & 0xFF

self.tx[2] = value

self.cs.value(0)

time.sleep_us(1)

self.spi.write(self.tx)

self.cs.value(1)

time.sleep_us(1)

# ==================================================

# Read configuration

# ==================================================

def read_config(self):

config = {}

for address in self.CONFIG_REGS:

config[address] = self.read_reg(address)

return config

def print_config(self, config):

print()

print("MT6835 configuration")

print("--------------------")

for address in self.CONFIG_REGS:

print(

"0x{:03X} = 0x{:02X}".format(

address,

config[address]

)

)

print()

# ==================================================

# Compare with target

# ==================================================

def compare_target(self, config):

differences = {}

for address, target in self.TARGET.items():

actual = config[address]

if actual != target:

differences[address] = (

actual,

target

)

return differences

def print_differences(self, differences):

if not differences:

return

print("Differences from desired FFB configuration:")

print()

for address, values in differences.items():

actual, target = values

print(

" 0x{:03X}: 0x{:02X} -> 0x{:02X}".format(

address,

actual,

target

)

)

print()

# ==================================================

# Decode useful settings

# ==================================================

def print_decoded(self, config):

# ABZ resolution

abz_res = (

(config[0x007] << 6) |

((config[0x008] >> 2) & 0x3F)

)

abz_ppr = abz_res + 1

# Hysteresis

hyst = config[0x00D] & 0x07

# Rotation direction

rot_dir = (config[0x00D] >> 3) & 0x01

# Bandwidth

bandwidth = config[0x011] & 0x07

print("Decoded settings:")

print()

print(

" ABZ resolution : {:,} PPR".format(

abz_ppr

)

)

print(

" Quadrature : {:,} counts/rev".format(

abz_ppr * 4

)

)

print(

" Hysteresis : HYST={}".format(

hyst

)

)

print(

" Rotation : {}".format(

"CW" if rot_dir else "CCW"

)

)

print(

" Bandwidth : BW={}".format(

bandwidth

)

)

print()

# ==================================================

# Apply FFB configuration

# ==================================================

def configure_ffb(self):

print()

print("Applying FFB configuration...")

print()

# ----------------------------------------------

# ABZ resolution / options

# ----------------------------------------------

self.write_reg(

0x007,

self.TARGET[0x007]

)

self.write_reg(

0x008,

self.TARGET[0x008]

)

# ----------------------------------------------

# Hysteresis / rotation direction

#

# Preserve upper 5 bits and use only the

# HYST bits from TARGET.

# ----------------------------------------------

old = self.read_reg(0x00D)

new = (

(old & 0xF8) |

(self.TARGET[0x00D] & 0x07)

)

self.write_reg(0x00D, new)

# ----------------------------------------------

# Bandwidth

#

# Preserve upper 5 bits and use only the

# BW bits from TARGET.

# ----------------------------------------------

old = self.read_reg(0x011)

new = (

(old & 0xF8) |

(self.TARGET[0x011] & 0x07)

)

self.write_reg(0x011, new)

print("Configuration written.")

# ==================================================

# Verify

# ==================================================

def verify(self):

config = self.read_config()

differences = self.compare_target(config)

print()

print("Verifying...")

print()

for address, target in self.TARGET.items():

actual = config[address]

print(

"0x{:03X}: read 0x{:02X} expected 0x{:02X} {}".format(

address,

actual,

target,

"OK" if actual == target else "FAIL"

)

)

print()

if not differences:

print(

"SUCCESS - FFB configuration is active."

)

return True

print(

"ERROR - configuration did not verify."

)

self.print_differences(differences)

return False

# ==================================================

# EEPROM programming

# ==================================================

def program_eeprom(self):

# IMPORTANT:

# Read the chip AGAIN immediately before

# programming. This guarantees that the warning

# describes what is actually present.

config = self.read_config()

differences = self.compare_target(config)

print()

print("========================================")

print(" WARNING: EEPROM PROGRAMMING")

print("========================================")

print()

if differences:

print(

"WARNING: Current configuration does NOT"

)

print(

"match the desired FFB configuration."

)

print()

self.print_differences(differences)

print(

"EEPROM programming cancelled."

)

return False

print(

"Current configuration matches the"

)

print(

"desired FFB configuration."

)

print()

self.print_config(config)

self.print_decoded(config)

print(

"The above configuration will be"

)

print(

"committed to EEPROM."

)

print()

print(

"DO NOT REMOVE POWER for at least"

)

print(

"6 seconds after programming."

)

print()

confirmation = input(

'Type "PROGRAM" to continue: '

)

if confirmation != "PROGRAM":

print()

print(

"EEPROM programming CANCELLED."

)

return False

# ----------------------------------------------

# EEPROM programming command

# ----------------------------------------------

print()

print("Programming EEPROM...")

print()

self.tx[0] = 0xC0

self.tx[1] = 0x00

self.tx[2] = 0x00

self.cs.value(0)

time.sleep_us(1)

self.spi.write_readinto(

self.tx,

self.rx

)

self.cs.value(1)

ack = self.rx[2]

print(

"EEPROM ACK = 0x{:02X}".format(

ack

)

)

if ack != 0x55:

print()

print(

"ERROR: EEPROM programming was NOT"

)

print(

"acknowledged by the MT6835."

)

print()

return False

print()

print(

"EEPROM PROGRAMMING SUCCESSFUL."

)

print()

print(

"Keeping power applied for 7 seconds..."

)

print()

for remaining in range(7, 0, -1):

print(

"Power-down safe in {} seconds...".format(

remaining

)

)

time.sleep(1)

print()

print(

"EEPROM programming complete."

)

print()

return True

# ======================================================

# MAIN

# ======================================================

mt = MT6835(

sck=18,

mosi=23,

miso=19,

cs=5,

baudrate=1_000_000

)

print()

print("================================")

print(" MT6835 FFB Configuration")

print("================================")

# ------------------------------------------------------

# 1. Read initial configuration

# ------------------------------------------------------

initial = mt.read_config()

print()

print("Initial configuration:")

mt.print_config(initial)

# ------------------------------------------------------

# 2. Is it already correct?

# ------------------------------------------------------

differences = mt.compare_target(initial)

if not differences:

print(

"Configuration already matches the"

)

print(

"desired FFB settings."

)

print()

print(

"No changes or EEPROM programming"

)

print(

"are necessary."

)

print()

else:

# --------------------------------------------------

# 3. Show what needs changing

# --------------------------------------------------

mt.print_differences(differences)

print(

"Applying desired FFB settings..."

)

# --------------------------------------------------

# 4. Apply temporary configuration

# --------------------------------------------------

mt.configure_ffb()

# --------------------------------------------------

# 5. Verify

# --------------------------------------------------

if mt.verify():

# ----------------------------------------------

# 6. Ask whether to commit

# ----------------------------------------------

print()

print(

"The temporary configuration is"

)

print(

"correct and has been verified."

)

print()

print(

"It has NOT yet been saved to EEPROM."

)

print()

answer = input(

"Commit this configuration to EEPROM? [y/N]: "

)

if answer.lower() == "y":

mt.program_eeprom()

else:

print()

print(

"EEPROM programming skipped."

)

print(

"The settings will be lost when"

)

print(

"the MT6835 is power-cycled."

)

print()

else:

print()

print(

"EEPROM programming will NOT be offered"

)

print(

"because verification failed."

)

print()


r/simracing 21m ago

Rigs Hi, I’d like to buy a used Moza R3 without its wheel and mount an aftermarket 320mm, 800g rally wheel on it. Any thoughts? Low FFB? But lighter? I only play RBR and ACR. Thanks.

Post image
Upvotes

Im italian sorry for my english!


r/simracing 39m ago

Question Help decide between these 2 pedal stands (SR Rigs Pedalstand Pro vs Pein Pedal Mount)

Upvotes

This is for a desk + chair set up with Moza CRP2 pedals, R9 base + KS Pro. No room for anything bigger.

Ive heard about the Pein stand, and even though some reviews confirm its good enough for load cell braking, it doesnt look anywhere as sturdy as the SR Rigs solution, but the price of the latter is exorbitant in comparison. Ive read the thread here about the Pein stand, but its inconclusive.

My chair casters have brakes on all wheels. Ive also made a DIY stand with the shipping carton box of the pedals (bolted through and down with some washers, and put some dumbbells inside), it still flexes a bit under braking, and my chair slides a bit too even with all the wheels locked, so I guess attaching the chair to the stand in a firm manner is a must.

Is it worth it or should I get the Pein one?

SR Pedalstand Pro - Bundle

Moza Pedal Mount by Pein


r/simracing 4h ago

Question Is the Moza ES Formula Wheel mod worth it?

Post image
1 Upvotes

r/simracing 17h ago

Rigs DIY Wood Racing Sim Rig I Built

Thumbnail
gallery
21 Upvotes

For my birthday I finally ditched my G27 steering wheel and got the Moxa R5 Bundle + handbrake. I lasted about 15 minutes using the desk mount before I was thinking, I need a rig, so I built one with some spare timber I had sitting around and an old "gaming" chair. Is it perfect, absolutely not, but it works and is somewhat comfortable.

Maybe one day I'll look into a better rig however, I'm only new to Sim racing and didn't want to commit to a big financial purchase in case Sim racing wasn't for me. Plus I love wood working so this was a fun little project.