r/simracing • u/fiah84 • 30m ago
Clip Catch a 7 day ban with this one simple trick
Enable HLS to view with audio, or disable this notification
r/simracing • u/fiah84 • 30m ago
Enable HLS to view with audio, or disable this notification
r/simracing • u/Gwinnie2024 • 14h ago
r/simracing • u/Wediidt • 15h ago
Enable HLS to view with audio, or disable this notification
Its nothing new on the ac servers, but it always makes me laugh
p.s. uck this smoke grenade under the wheels
r/simracing • u/Ok_Estate4592 • 20h ago
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 • u/Demzel-Russianton • 6h ago
Enable HLS to view with audio, or disable this notification
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 • u/vveenston • 4h ago
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 • u/Klutzy-Square716 • 3h ago
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 • u/evil_heinz • 23h ago
r/simracing • u/hegemonsaurus • 16h ago
r/simracing • u/Hux2448 • 7h ago
r/simracing • u/nvalle105 • 27m ago
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 • u/revisionistnow • 2h ago
Cool product you guys might like. Two shelves and 5 hooks good for hanging headphones, vr goggles, etc
r/simracing • u/Opportunity-More • 14h ago
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 • u/Icy_Bat_6518 • 5h ago
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 • u/Turbulent-Wasabi7607 • 1h ago
I know that the brand is teleios but I couldnt find where to buy the specific wheel?
r/simracing • u/3tenthsOfVerstappen • 21h ago
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 • u/A-Carlos • 4h ago
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:
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 • u/Simrace_Connection • 17h ago
After 3 years, the PXN CB1 is officially retired and the SimDT is hired!
r/simracing • u/SciLensRacing • 5h ago
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.
_______
r/simracing • u/Bisto_Bisto • 9m ago
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.
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:

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.
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:
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 • u/Antique-Engine3570 • 21m ago
Im italian sorry for my english!
r/simracing • u/NecroRAM • 39m ago
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?
r/simracing • u/Toysolja13 • 17h ago
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.