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

Thanks all, I will explore more options and possibilities and see what I can do, and there are quite a few things on todo list as well, just need to find more time to work on it.
 
Closer to the old and dear Trackmap :rolleyes:

I5BgEX.jpg
 
Can you please offer imperial units for all of the different gauges? You offer psi and MPH but the temperatures (tyres) are all Celsius.
 
@svictor I can hack some python if you're willing to let me attempt it. I could add a `temp_unit` config flag and then simply add a second set of variables for "calculated temp" that's only used for the display. Would that be OK with you?
 
hi, thanks for asking. Of course, it's open source, any contribution is very welcome, feel free to hack the code.

And very good suggestions as well, if you are not in a hurry, I can add that to the code soon. I have also started coding improved handling to config file, which is important for future expanding options. But I will need find more time for it, as currently I have been working on several other projects.
 
hi, thanks for asking. Of course, it's open source, any contribution is very welcome, feel free to hack the code.

And very good suggestions as well, if you are not in a hurry, I can add that to the code soon. I have also started coding improved handling to config file, which is important for future expanding options. But I will need find more time for it, as currently I have been working on several other projects.

Just submitted a hacky PR:
https://github.com/s-victor/TinyPedal/pull/1

In the cases where you hadn't handled unit conversions there was some weirdness between strings and numbers that I probably did not handle in the prettiest way.
 
v1.1.5 update - Imperial unit & Pressure widget
Download: https://github.com/s-victor/TinyPedal/releases/tag/v1.1.5

This small update brings several changes, improvements, and new features.
New additional imperial unit types (by thoraxe) for Fuel, Temperature, Weather widgets are now available. Thanks to thoraxe's contribution.
Added new Pressure (tyre) widget to APP, which also displays tyre load info. (note, many DLC cars don't output load info, so the value shows zero)
Wear (tyre) widget now displays additional tyre wear usage info from last lap (color changes based on severity of wear), which is handy for endurance races.
upload_2022-4-2_14-27-52.png


Full changelog:
TinyPedal 1.1.5 (2022-04-02)
----------------------------
* [New]Pressure widget
- Tyre pressure is now a separated widget that show pressure & load.
- Tyre load display can be turned off separately.

* Wear Widget
- Show new Tyre wear usage from last lap.
- No longer shows Tyre pressure.

* Core
- [New]Add additional unit types (by thoraxe) for Fuel, Temperature, Weather widgets.
- Improved laptime validating function for "deltatime" module.
- Moved most string formatting from calculation.py to individual widgets,
which avoids repetitive string & number conversion.
- Updated setting entries & code cleanup

* Misc
- Updated README.md, moved Feature section to features.md file.
- Updated customization.md with new config options (by thoraxe).
- Updated contributors.md with new contributor (thoraxe).
 
Last edited:
Following the @thoraxe proposal, I decided to look into the code and try to add the option to replace the Position on relative screen to "Position In Class". Problem is, this information doesn't exists in the pyRfactor2SharedMemory module.

@The Iron Wolf
Does the shared memory DLL has this information?

Maybe it's just a matter of updating the pyRfactor2SharedMemory.

upload_2022-4-3_18-13-32.png


upload_2022-4-3_18-20-44.png
 
Last edited:
thanks for help.

unfortunately, this info is not available from sharedmemory (it is not a limitation of plugin), in fact there are many data not available directly from rf2's API (however they can be indirectly obtained by calculating). The API only provide some of the basic but important raw data, which requires further process. Many of those relative/deltabest/timing widget data have to be calculated from those raw data, that's why there are a few functionalities aren't straight forward available.

(for example both relative & deltabest calculation modules took me two more weeks of time to research and code from scratch, with the help from @zxd1997 )

Class position will need an additional set of functions to calculate the data. From a quick brainstorm, the idea should be first to arrange all cars into class group(create lists), then within each class list retrieve "position place" info from API and then sort by number order and assign new class place index to each car, and finally assign those indexes onto the specific cars on relative list.

(i'm currently working on isle of man, so have to wait a bit until have time to look into this and many other ideas)
 
Last edited:
thanks for help.

unfortunately, this info is not available from sharedmemory (it is not a limitation of plugin), in fact there are many data not available directly from rf2's API (however they can be indirectly obtained by calculating). The API only provide some of the basic but important raw data, which requires further process. Many of those relative/deltabest/timing widget data have to be calculated from those raw data, that's why there are a few functionalities aren't straight forward available.

(for example both relative & deltabest calculation modules took me two more weeks of time to research and code from scratch, with the help from @zxd1997 )

Class position will need an additional set of functions to calculate the data. From a quick brainstorm, the idea should be first to arrange all cars into class group(create lists), then within each class list retrieve "position place" info from API and then sort by number order and assign new class place index to each car, and finally assign those indexes onto the specific cars on relative list.

(i'm currently working on isle of man, so have to wait a bit until have time to look into this and many other ideas)

Ok, it's not an urgent thing, I just thought that this could be a simple thing to do, but as you explained, it isn't. So I prefer to wait and let you do it.
 
The app costs around 5% CPU usage with all 15 widgets, which shouldn't be any issues, unless CPU is not strong enough (less than 3.0ghz). (note, most of CPU usage of the app is from GUI graphic updating)

Also RF2 has a default option that will greatly reduce game speed(to conserve power) if RF2 window is unfocused. Although TinyPedal has already implemented a code to never gain focus on itself, it may still possible that some other stuff takes window focus and cause RF2 to lose focus.
(one possible case is that by enable or disable a widget, RF2 can lose focus probably due to system tray menu gaining focus, and require to click on RF2 once to gain focus back on RF2).

So it is a good idea to manually disable auto speed reduction feature in RF2( it's in player.json file).

Other than those things, I would suggest to turn off unused widgets. at least half of the available widgets are there to aid racer for practicing and specially for making setup easier, and those widgets are best to turned off while racing, to improve performance and reduce information flooding that is not very useful for races.
 
Last edited:
The app costs around 5% CPU usage with all 15 widgets, which shouldn't be any issues, unless CPU is not strong enough (less than 3.0ghz). (note, most of CPU usage of the app is from GUI graphic updating)

Also RF2 has a default option that will greatly reduce game speed(to conserve power) if RF2 window is unfocused. Although TinyPedal has already implemented a code to never gain focus on itself, it may still possible that some other stuff takes window focus and cause RF2 to lose focus.
(one possible case is that by enable or disable a widget, RF2 can lose focus probably due to system tray menu gaining focus, and require to click on RF2 once to gain focus back on RF2).

So it is a good idea to manually disable auto speed reduction feature in RF2( it's in player.json file).

Other than those things, I would suggest to turn off unused widgets. at least half of the available widgets are there to aid racer for practicing and specially for making setup easier, and those widgets are best to turned off while racing, to improve performance and reduce information flooding that is not very useful for races.

But, did you notice any FPS drop? For me every single one is important cause I'm on a 240hz monitor.
Do you think running other apps at the same time like CrewChief could cause problems?


"So it is a good idea to manually disable auto speed reduction feature in RF2( it's in player.json file)."

I will try this, thank you.

EDITED: I didn't find any "auto speed reduction" line on the player.json :(
 
Last edited:
But, did you notice any FPS drop? For me every single one is important cause I'm on a 240hz monitor.
Do you think running other apps at the same time like CrewChief could cause problems?


"So it is a good idea to manually disable auto speed reduction feature in RF2( it's in player.json file)."

I will try this, thank you.

So you're trying to keep 240 fps all the time? It's a good idea to limit the fps or set the gsync to a value that you know your PC can keep in the worst conditions possible, like rain plus 40 cars at night.

I should say limit to 144 fps can be a option, will help to improve the stability feeling, less tearing and stuttering.

"Max Framerate" in player.json.
 
Last edited:
So you're trying to keep 240 fps all the time? It's a good idea to limit the fps or set the gsync to a value that you know your PC can keep in the worst conditions possible, like rain plus 40 cars at night.

I should say limit to 144 fps can be a option, will help to improve the stability feeling, less tearing and stuttering.


Yes, I have G Sync enabled and rF2 limited to 240 FPS in the player.json. Normally I have a stable 200 FPS in normal conditions on a new circuit with the updated PBRs, with this app it drops to around 180. On older circuits I can keep 240 with no problems. I haven't tested in the rain, but it doesn't worry me because obviously I already know that I'm going to lose performance and there aren't that many races that I normally run in the rain.

It's not that I have stuttering or tearing problems, Gsync solves that for me, it's just that the feeling of going above 200 FPS is much better, everything runs smoother and my eyes don't get too tired.
 
Back
Top