vJoy for Assetto Corsa: DIY Handbrake, Extra Axes and Combined Devices

Assetto Corsa drivers meet vJoy from the workbench side of sim racing. The typical project is a DIY handbrake — a lever, a load cell or a converted control — that needs to appear in the game as an analogue axis. Or it is an extra axis for a homemade sequential shifter, a clutch built from spare parts, or a button box whose controls need combining with a wheel the game already sees. vJoy gives those projects a standard destination: a DirectInput virtual joystick with up to 8 axes, up to 128 buttons and up to 4 POV hats per device. A feeder application reads the real hardware or script and writes the axis values to vJoy, and Assetto Corsa binds the virtual device like any other controller.

Combining devices is the second job. A wheel, pedals on a separate USB connection, a DIY handbrake and a button box can present as a confusing set of controllers. Passing the DIY and auxiliary controls through a feeder into one vJoy device keeps the in-game assignment screen manageable and lets you document one mapping instead of hunting across devices after every Windows update reshuffles the list.

What you need

  • vJoy from our download page — BrunnerInnovation 2.2.2.0 first on Windows 10 and Windows 11; 2.1.9.1 is the fallback if your feeder misbehaves on 2.2.x.
  • A feeder suited to your project: UCR for remapping physical devices (see our UCR (Universal Control Remapper) guide), or Joystick Gremlin for merging and shaping (see our Joystick Gremlin guide).
  • Your DIY device finished electrically before software setup begins: the axis should move cleanly in its own test or in Windows before vJoy enters the picture.
  • Your wheel and pedals already working in Assetto Corsa, so the virtual device is an addition, not a rescue mission.

Setup, step by step

  1. Install vJoy and create one device in Configure vJoy with the axes and buttons your project needs. A handbrake needs a single axis; a combined auxiliary device might need two or three axes plus a block of buttons.
  2. In your feeder, map the DIY handbrake’s raw input to a chosen vJoy axis. Watch joy.cpl while you pull the lever slowly: the axis should start at rest, rise smoothly, and return fully when released. Fix dead travel or a reversed direction in the feeder, not in the game.
  3. If the handbrake’s useful motion occupies only part of the raw range, scale it in the feeder so a firm pull reaches full lock without needing to strain the lever, while the first part of travel stays progressive for gentle use on gravel or in drifting.
  4. Add any extra axes or button-box controls to the same vJoy device, one at a time, testing in joy.cpl after each addition and noting the virtual numbers on paper.
  5. In Assetto Corsa’s control assignment, bind the handbrake axis from the vJoy device, then bind any combined buttons. Make sure the wheel, pedals and shifter keep their existing assignments and that no function is bound to both a physical and a virtual source unintentionally.
  6. Test on a low-grip surface and in a car you know well. A handbrake that engages too abruptly will spin you before you learn anything; adjust the feeder scaling until initiation is firm but predictable.
  7. Save the feeder profile and a screenshot of the game’s assignments together. DIY setups evolve — a new lever or a moved button — and a saved baseline turns each change into an experiment instead of a rebuild.

Binding and driving tips

Treat the handbrake axis as a control you will use at the limit of grip, often with one hand already busy steering. Put it where the motion is natural, keep its throw consistent, and practise the release as much as the pull: a handbrake that stays fractionally engaged after release drags speed and overheats tyres without an obvious cause. In joy.cpl, confirm the axis returns exactly to its rest value every time. For button boxes, assign the functions you use mid-corner or on straights under pressure — pit limiter, brake bias, lights — before cosmetic functions.

Limitations

vJoy cannot make a digital switch feel analogue. If your DIY handbrake is a simple on-off microswitch, the feeder can only write on or off, and no curve will invent the middle values. Build the sensing side to match the control you want. Latency in a well-configured local feeder chain is a practical non-issue for a handbrake, but a sloppy script that polls slowly can feel steppy, so keep the feeder script simple. Finally, vJoy is DirectInput only and does not emulate XInput — fine for this use, since the virtual joystick path here is DirectInput by design.

Hardware and game links for this setup

If the DIY route leads to a full wheel upgrade, readers compare the Logitech G923 — check current price. A ready-made button box — check current price is the shortcut for the auxiliary controls in this guide. For the game or DLC, check Loaded — check price and Green Man Gaming — check price.

Affiliate links — we may earn a commission at no cost to you. See our affiliate disclosure.

Find the other builds in the vJoy setup guides by game hub, start DIY remapping with the UCR (Universal Control Remapper) guide, and see our vJoy for Euro Truck Simulator 2 setup for another extra-axes project with a different feeder.

Similar Posts