This application is as is, and you use it at your own risk.
I am not responsible for any damages or injuries resulting from the use of this application.
VERY IMPORTANT: This application is for educational purposes only and should be used with care!.
PyPSADiag is an Python application for sending diagnostic frames over CAN-BUS to PSA/Stellantis based cars
See for additional Hardware/Info: ludwig-v arduino-psa-diag
Currently supporting:
- JSON Configuration for example BSI2010 to setup GUI
See more JSON Configuration Files - Reading Zones that are listed in JSON Configuration file
- Saving Zones to CSV file
- Saving changed Zones (as an list) to ECU
- Flashing of CAL and ULP Files to ECU
What I would like to support:
- More ECU JSON Files
If you need some help, try to look at the Wiki
Help in any way is appreciated, just send me an email with anything you can contribute to the project, like:
- More ECU JSON Files
- Python coding
- GUI design
- ideas / feature requests
- test reports
- spread the word!
- Get release a from Download Release There is Windows, Linux and macOS versions
- Extract archive to your hardrive
- Run with PyPSADiag-windows.exe or any other distibution you downloaded:
PyPSADiag-windows.exe --lang nlOpen Zone Fileand select an ECU JSON fileConnectto correct Arduino hardwareReadZones- RISK: You can save the Zones to the ECU by using the
WriteButton.
Always Check that these zones look correct
To build and run PyPSADiag locally:
- Install Python:
Make sure you have Python 3.12 or newer installed.
You can check with:python --version - Get the code:
Clone the repository:
git clone https://github.com/Barracuda09/PyPSADiag.git
OR use this Download ZIP - Enter the project directory:
cd /path/to/PyPSADiag - Create a virtual environment:
python -m venv .venv --prompt PyPSADiag - Activate your virtual environment:
for Windows:/path/to/PyPSADiag/.venv/Script/activate
for Linux/MacOS:source .venv/Script/activate - Install required dependencies, within the path of PyPSADiag:
pip install -r requirements.txt - Run with:
python main.py --lang nlOpen Zone Fileand select an ECU JSON fileConnectto correct Arduino hardwareReadZones- RISK: You can save the Zones to the ECU by using the
WriteButton.
Always Check that these zones look correct
- On MacOs app bundle will be blocked because it’s unsigned.
If you see a security warning, allow it via:
System Settings → Privacy & Security → Allow Anyway
Note:On macOS, the packaged .app will place resources inside the Contents/Resources directory, following Apple’s bundle structure.
To show information of a CAL or ULP File.
- Run with one of these:
python DecodeCalUlpFile.py --path ulp/9698105080.ulpShow only S0 and S1 recordspython DecodeCalUlpFile.py --all --path cal/9694212680.calShow All S records
For example to make a translation for Dutch use this command:
i18n/Languages.jsonAdd the language code and namei18n/flags/nl.pngAdd the .PNG flag for this language (About 128 x 84 Pixels)python buildi18n.py --lang nl--> Build the qt.ts filepython translate.py --input ./i18n/PyPSADiag_nl.qt.ts--> Google Translatepyside6-linguist ./i18n/PyPSADiag_translated_nl.qt.ts--> Correct translation if requiredpython translate.py --releaseonly --input ./i18n/PyPSADiag_nl.qt.ts--> Only Release translation qm filepython main.py --lang nl--> Run with nl language
If you like my work then please consider making a donation, to support my effort in
developing this application.
Many thanks to all who donated already.
| PayPal |
|---|
If you like to contact me, you can do so by sending an email to:
mpostema09 -at- gmail.com