[REL] TinyPedal - open source overlay for rF2 (Pacenotes,Radar,FFB,Deltabest,Relative,Fuel Calculator)

svictor

Registered
TinyPedal
index.php

Project homepage: https://github.com/s-victor/TinyPedal

TinyPedal is a Free and Open Source telemetry overlay application for racing simulation.

Currently supports rFactor 2 and Le Mans Ultimate.

Requirements
TinyPedal requires The Iron Wolf’s rF2 Shared Memory Map Plugin from Download section of following page:
https://github.com/TheIronWolfModding/rF2SharedMemoryMapPlugin

The plugin file rFactor2SharedMemoryMapPlugin64.dll should be placed in:
  1. For rFactor 2, it is rFactor 2\Bin64\Plugins folder.
  2. For Le Mans Ultimate, it is Le Mans Ultimate\Plugins folder.
This plugin also comes with some of the popular rF2/LMU Apps, check corresponding game's plugins folder first to see if it was installed already.

In-game setup:
  1. Enabled rFactor2SharedMemoryMapPlugin64 plugin in game option. For Le Mans Ultimate, user may have to manually enable plugin by editing CustomPluginVariables.JSON file (set " Enabled" value to 1 ) under Le Mans Ultimate\UserData\player folder. After plugin enabled, must restart game to take effect.
  2. Set game display mode to Borderless or Windowed mode. Fullscreen mode is not supported.
If there is an error with "missing vcruntime140" or something, it is likely due to missing vcruntime, try install "Microsoft Visual C++ 2015 Redistributable".

Quick Start
  1. Download latest TinyPedal version from Releases page, extract and run tinypedal.exe.
    Alternatively, run TinyPedal from source, see Run from source section for details.
    For Linux user, please follow Running on Linux section for instruction.

  2. A tray icon will appear at system tray. If not shown, check hidden tray icon. Right Click on tray icon will bring up context menu.

  3. Launch game, overlay will appear once vehicle is on track, and auto-hide otherwise. Auto-hide can be toggled On and Off by clicking Auto Hide from tray menu.

  4. Overlay can be Locked or Unlocked by clicking Lock Overlay from tray menu. While Unlocked, click on overlay to drag around.

  5. Widgets can be Enabled or Disabled by clicking Config and open main window from tray menu.

  6. To quit APP, Right Click on tray icon and select Quit; or, click Overlay menu from main window and select Quit.
User Guide
https://github.com/s-victor/TinyPedal/wiki

Special thanks to:
The Iron Wolf for the permission to use rF2 Shared Memory Map Plugin in TinyPedal.
Tony Whitley for pyRfactor2SharedMemory library.

Widget overview:
pedal.png


fuel.png


gear.png


laphistory.png


radar.png

standings.png


trackmap.png

Changelog:
https://github.com/s-victor/TinyPedal/blob/master/docs/changelog.txt

Troubleshooting:
1. If you have encountered gsync issue while using Tinypedal, try disable fullscreen optimizations for the rfactor2.exe (solution provided by @manashttu)
gsync issue---it crossed my mind to disable fullscreen optimizations for the rfactor2 exe. That fixed it.
 

Attachments

Last edited:
@svictor just curious, what values do you look at to define this?
I would love to make my own indicator for this in my simhub overlay.
If you mean how to find the exact amount offset for ride height, then it is unfortunate that the game does not provide such info through sharedmemory plugin. TinyPedal simply requires user to provide known offset to do subtraction.

However, there is a few way to find near accurate ride height offset:
1. The easiest method is to load vehicle in DevMode (assume mod is not encrypted), then find a flat ground, press down both Ctrl+Shift, and you can get the actual ride height offset reading.

2. Find a way to detach all 4 wheels and land on a flat surface. This is actually hard to do than it appears, but it can be done.
 
Last edited:
Amazing, great job, something I had been waiting since the end of dx9 support.

- Would be interesting to have the driver position in class on the relative screen.
- And add an option to autostart with windows.
 
Last edited:
v1.1.0 update - Delta best now available!
upload_2022-3-21_16-48-32.png


Download link: see newer 1.1.3 version.

This update adds full support for "delta best". The new Delta best widget not only automatically records player's best laptime, compares delta time, but also stores best laptime data which can be auto-loaded in future session, or to be shared and used by other players.

How it works:
The APP saves best laptime data every time player goes back to garage screen (ESC), and auto-reloads best laptime data when player is on track.
Best laptime data is stored as csv data file inside deltabest subfolder.
Each file is named based on format: [full track name] - [vehicle class name].csv

As long as there is a matching file, the previous best laptime and delta time info will be auto-loaded. This can be very useful for quickly getting back into a practice session or doing hotlap, and the file can be shared & used by other players (similar to ghost car).

To remove a best laptime data, first make sure you are not on track (ESC to garage screen), then simply delete the corresponding file from deltabest subfolder.

Known limitation: Currently cutting track will not invalidate best laptime recording. This issue will mostly affect point to point tracks as they have alternative sector/finish detection, which could result wrong best laptime being saved. (hopefully will find a good solution to this issue soon)
This issue was fixed in version 1.1.3.


Other changes:
upload_2022-3-21_17-17-8.png

Timing widget now displays "estimated laptime", which accurately sync with delta best data, and has 3 different layouts.

Customization guide is updated with large amount new adjustable options for new & old widgets:
https://github.com/s-victor/TinyPedal/blob/master/docs/customizations.md

The APP now automatically creates backup for config.json file in case of invalid or out-dated values.

There are also many other improvements, see changelog.

Changelog:
TinyPedal 1.1.0 (2022-03-21)
----------------------------
* [New]Delta best widget
- Show delta best based on personal best laptime.
- Show delta bar with customizable range, size and color.
- Record, save, and load player's best laptime data automatically.
- Best laptime file is stored in "deltabest" folder, and can be
used by other players.
- 2 different layouts.

* Core
- Add "deltatime" module, which runs in separated thread at 60fps.
- Add "delta_timing" switch in config.json.
- Add auto-backup function for config.json.
- Restructured "readapi" module.
- Sort all widgets and references in alphabetical order.

* Timing widget
- Add delta estimated laptime.
- Add 3 different layouts.
- Now reads timing data from deltatime module.

* Temperature widget
- Add color swap setting in config.json, which swaps heat map color
between font & background color.

* Fuel widget
- Now reads mLapStartET from "Telemetry" which has higher accuracy.

* Wear widget
- Add unit "bar" for tyre pressure.
 
Last edited:
v1.1.3 update - Add laptime validating

Download: https://github.com/s-victor/TinyPedal/releases/tag/v1.1.3

Now APP will validate laptime. Any invalid laptime will no longer be saved as best laptime.
Delta best now fully works under any track or condition. Whether cutting track, or running with point to point track, best laptime will be properly validated and saved.

Changelog:
TinyPedal 1.1.3 (2022-03-22)
----------------------------
* Core
- Add laptime validating function for "deltatime" module.
Invalid laptime will no longer be saved as best laptime.
Delta best now fully works under any track or condition.

* Misc
- Fixed a few typo in README.md & previous changelog.
- Added missing contributors.md reference to build_py2exe.py.
 
Tried it last night and it’s working great just need to learn how to resize widgets

the FFB meter next to pedals input is very accurate and will replace my self created simhub overlay for sure

thanks so much
 
any chance to do widget size tweaking directly on screen, with the mouse button for example like in RRE, or clicking some widget corners like in AC?

sorry, getting old and tweaking numbers in file you know:p
 
Thanks for the suggestion.

Unfortunately, direct resize is not possible atm, and is unlikely to be added. I understand the inconvenience of manual editing (I too wish things to be easy), but there are some fundamental limitation to the GUI stuff that used by the APP, and the actual underlying stuff works very differently comparing to other games that natively support HUD, which also renders in total different ways.

Adding it would also introduce a lot functions and variables that multiply complicity of the APP code, which is a big concern for performance and resources, as there are many decisions that made to keep the APP simple and run fast without eating extra resources.

Nevertheless, I do wish to improve the way of handling customization in the future.

PS: also many options in config.json provide a lot flexible combinations to size & position.

Here is a few tips for quickly edit config.json and resize widget:
1. If a widget has "font_size" option, then widget size is determined by font_size (increase font_size value will also increase widget size).
2. Any other widget size is controlled by "***_scale" value. For example, change scale value from 1.0 to 2.0 means the size is doubled.
3. You can use find > replace all in notepad to quickly change all font_size to desired size.
For example, search following keyword:
"font_size": 15,
and replace with:
"font_size": 20,
which would make most widgets larger.

Hope helps.
 
Last edited:
Oh I hope I was not sounding like a lazy 50yrs old man not willing to spend few minutes to edit a file.

thanks a lot for having taken the time to provide these hints, I promise to test that during the weekend

I can easily imagine you doing this APP on your private time so I also hope I didn't sound too much pushy with my request for updates on these widgets. sorry again if you took it the wrong way:oops:
 
Last edited:
Thanks, no worries, I will definitely seek any opportunities and possibilities to improve the app. There are still a lot of ideas haven't yet realized, time will tell.
 
Thank you for this wonderful tool! I love that you can easily turn things on or off, reposition and resize them.

One question: Is it possible to have the Delta Best widget compare my time to the fastest driver on track instead of my own fastest lap? While it's very useful to see where I'm gaining or losing time compared with myself, it would help me more to see how I compare to the fastest car.

Thanks again!
 
One question: Is it possible to have the Delta Best widget compare my time to the fastest driver on track instead of my own fastest lap? While it's very useful to see where I'm gaining or losing time compared with myself, it would help me more to see how I compare to the fastest car.
Thanks for the idea.

In theory, it should be possible. However, to put coding difficulty aside, that would require APP to constantly record everyone's laptime on server (since delta time data isn't provided by game, has to be recorded in real-time), then constantly saving and comparing each one's laptime data to pick a best server laptime to be able to compare with yourself, all those process would likely be a great performance hit.

Alternatively, only select and record one player that you know he is going to set a fastest laptime, which would also require to create a window or menu for selecting player. Also player index can change if one player leaves server, so probably will have side effects.
 
Last edited:
Thanks for the idea.

In theory, it should be possible. However, to put coding difficulty aside, that would require APP to constantly record everyone's laptime on server (since delta time data isn't provided by game, has to be recorded in real-time), then constantly saving and comparing each one's laptime data to pick a best server laptime to be able to compare with yourself, all those process would likely be a great performance hit.

Alternatively, only select and record one player that you know he is going to set a fastest laptime, which would also require to create a window or menu for selecting player. Also player index can change if one player leaves server, so probably will have side effects.
I see, sounds like a giant pain. Thank you for your response and especially for this tool!
 
Back
Top