All Projects → dmwnz → SimCycling

dmwnz / SimCycling

Licence: MIT license
Use your bike and your home trainer as a controller in racing simulation games.

Programming Languages

C#
18002 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to SimCycling

Flux
Indoor Cycling App for Structured Training
Stars: ✭ 145 (+417.86%)
Mutual labels:  cycling
AssettoServer
Custom Assetto Corsa server with focus on freeroam
Stars: ✭ 112 (+300%)
Mutual labels:  assetto-corsa
knooppuntnet
Route planner and quality assurance for walking and cycling networks in OpenStreetMap.
Stars: ✭ 20 (-28.57%)
Mutual labels:  cycling
bikenwgrowth
Source code for the paper "Growing urban bicycle networks", exploring algorithmically the limitations of urban bicycle network growth
Stars: ✭ 39 (+39.29%)
Mutual labels:  cycling
gpedal
Virtually ride indoors with Google Street View and bluetooth bike power meters (Web Bluetooth API)
Stars: ✭ 83 (+196.43%)
Mutual labels:  cycling
waldbasketbag
Pattern and instructions for a MYOG Wald 137 basket bag
Stars: ✭ 25 (-10.71%)
Mutual labels:  cycling
SmartSpin2k
Transform your spin bike into a Smart Trainer!
Stars: ✭ 88 (+214.29%)
Mutual labels:  cycling
strava
PHP Class for the Strava API (v3)
Stars: ✭ 117 (+317.86%)
Mutual labels:  cycling
ciclomapa
Beautiful, interactive & open bike maps of Brazilian cities. Powered by OpenStreetMap.
Stars: ✭ 56 (+100%)
Mutual labels:  cycling
AAT
Another Activity Tracker for Android
Stars: ✭ 137 (+389.29%)
Mutual labels:  cycling
accweb
Assetto Corsa Competizione Server Management Tool via Web Interface.
Stars: ✭ 103 (+267.86%)
Mutual labels:  assetto-corsa
Strava-local-heatmap
Python script to generate a high resolution heatmap from Strava GPX files
Stars: ✭ 102 (+264.29%)
Mutual labels:  cycling
assetto-server-manager
A web interface to manage an Assetto Corsa Server.
Stars: ✭ 170 (+507.14%)
Mutual labels:  assetto-corsa
bikeanjo
Platform where you can get help to learn how to ride a bike and improve your cycling, route recommendations, commute together in traffic, tips and much more.
Stars: ✭ 12 (-57.14%)
Mutual labels:  cycling
goat
This is the home of Geo Open Accessibility Tool (GOAT)
Stars: ✭ 50 (+78.57%)
Mutual labels:  cycling
ble-utilities-unreal
This is Unreal Engine plugin that allows to scan for BLE devices with Cycling Power service running, connect to one of them and subscribe for its notifications.
Stars: ✭ 48 (+71.43%)
Mutual labels:  cycling
Strava-Analysis-Tool
A Python tool to analyze and display Strava activity data.
Stars: ✭ 32 (+14.29%)
Mutual labels:  cycling
zwift-workout-file-reference
Reference documentation for the Zwift workout file format
Stars: ✭ 54 (+92.86%)
Mutual labels:  cycling
cycling
🚴 My cycling trip from ShangHai to Wuhan in China.
Stars: ✭ 34 (+21.43%)
Mutual labels:  cycling

SimCycling

Use your bike and your home trainer as a controller in racing simulation games.

Short demo video
Simcycling Video

Prerequisites:

  • Software
    • Assetto Corsa
    • .NET Framework 4.8
    • VJoy (used to create a virtual joystick for gas and steering control)
  • Hardware
    • ANT+ USB stick
    • Bike home trainer with ANT+ FE-C or ANT+ Power capability
    • (optional) ANT+ heart rate sensor
    • (optional) ANT+ cadence sensor
    • (optional, if you want manual steering control) Android phone mounted on your handlebars with Monect PC Remote app

Usage:

  1. Extract archive in assettocorsa install directory
  2. Make sure settings in apps/python/ACSimCyclingDash/bin/SimCycling.exe.config are correct (cp = FTP)
  3. Launch Assetto Corsa
  4. Configure controls to bind vJoy axis 3 to steering & axis 1 to throttle (example config supplied)
  5. Enable ACSimCyclingDash python app in the game settings
  6. Load up your favorite car & track combo
  7. Enable ACSimCyclingDash (& WorkoutDash) apps on the HUD, click "Start"
    ACSimCyclingDash WorkoutDash
  8. Start pedalling to make the car move 😎
    Load up a workout file if you want to follow a structured workout.

Frequently Asked Questions (most common issues)

Q: When I click start, nothing happens
A: Make sure you have all the prerequisites matched. Make sure your antivirus is not blocking SimCycling.exe in apps/python/ACSimCyclingDash/bin

Q: When I pedal, I can see the power and speed update in the app but the car doesn't move
A: Check your control bindings. Use Vjoy feeder in the settings menu to see if the axis are properly mapped. Also make sure the driving aid "automatic gears" is enabled, otherwise the car will stay in neutral

Q: What workout file formats are supported?
A: ZWO (Zwift Work Out), ERG/MRC

Q: Are my virtual activities recorded and where?
A: Yes, output FIT files are recorded in My Documents/Assetto Corsa/SimCyclingActivities

Q: Can I upload my activities to Strava?
A: Yes

Q: After I upload my activity to Strava, the map isn't showing
A: This is normal. There is no conversion of ingame positions (X, Y, Z) to WGS coordinates (Longitude, Latitude, Altitude) yet.

How it works

In-Game Python App launches a compiled executable whose job is

  • to take care of the communication with Ant+ devices (i.e home trainer / power sensor, cadence sensor and heart rate sensor)
  • to send throttle signal to the Game to replicate the home trainer speed onto the ingame car
  • to send steering signal to keep the ingame car on track
  • to record the activity into a FIT file

Python App UI :

  • displays read data from the executable (heart rate, speed, power...)
  • displays workout data
  • sends commands and game-specific data to the executable

Communication protocols

  • between Assetto Corsa and Executable (car position, incline, etc) : Assetto Corsa Shared Memory Library
  • between Executable and Assetto Corsa (throttle) : VJOY virtual joystick
  • between Executable and Python App (power, heart rate, speed, etc) : memory mapped JSON object (AntManagerState)
  • between Python App and Executable (car position, user control...) : memory mapped JSON object (RaceState) + 1 byte for UI control (start / stop / load workout)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].