Vpw analyzer - A visual J1850 VPW analyzer written in Python

Overview

VPW Analyzer

A visual J1850 VPW analyzer written in Python

Requires Tkinter, Pandas, serial, and Python3 These can be installed with pip or a package manager.

pip3 install tk pandas serial

Running the program is as simple as pointing the python3 executable to the vpw_analyzer.py file with

python3 vpw_analyzer.py

How to use

Any ELM327 device should be compatible with this, as it uses only basic AT commands to listen to the bus.

You need to enter the serial port into the "OBD Device Serial Port" box. For Windows, this is typically a "COM1" name. Check device manager to get the actual COM port. For Linux, you need to specify the full /dev/tty device path. Once the serial device is entered, press the "Read" button to connect and begin listening to the bus.

There are 2 boxes in main window. The bottom box shows the messages that were received in order. The top box shows unique messages. For example, if duplicate messages are received, then you would see it twice in the bottom box, but only once in the top box. By changing the "Compare First # Bytes" dropdown changes how many bytes of a data payload are compared to determine if a message is unique or not. Most data responses contain 2 bytes that are an acknowledgement and an ID confirmation.

Known Issues

  • Sending messages does not work
  • Exiting software crashes it
Comments
  • ELM commands are not verified

    ELM commands are not verified

    Right now, the software opens the port and sends off commands. Sleep delays help with higher latency connections. Need to write functions to check the response from these requests to improve responsiveness and do some error checking

    enhancement 
    opened by jonofmac 1
  • Stability bug fixes and OBD configuration improvements

    Stability bug fixes and OBD configuration improvements

    Software now checks output of device before sending more commands. Also adds some error checking Some device verification is done. Graceful shutdowns are now possible

    opened by jonofmac 0
  • Sending messages is broken

    Sending messages is broken

    Currently vpw_analyzer does not have the ability to send messages.

    This is primarily due to the fact that the ELM327 command set does not allow a graceful way to send a message without risking losing a message incoming.

    The basic process to send a message while datalogging with a ELM327 device is this:

    1. Configure device
    2. Enter AT MA (monitor all) mode to see all bus traffic (vpw_analyzer's primary mode)
    3. Cancel AT MA mode
    4. Configure desired headers
    5. Send message
    6. Device waits some amount of time to see if it gets a response to the specified headers (ignoring other traffic)
    7. Enter AT MA mode to continue seeing messages

    Steps 3-6 mean that there's a window of time that messages can (and most probably will) be dropped. This is an inherent weakness with the standard ELM327 commands.

    Some more advanced devices (OBDX VT Pro) offer additional modes to allow transmission while receiving messages. The decision needs to be made to support both modes or only the safer OBDX modes.

    enhancement 
    opened by jonofmac 0
  • Replace direct function calls to UI thread with a queue

    Replace direct function calls to UI thread with a queue

    Right now the forked thread directly calls the UI thread's functions. Normally this would cause issues, but somehow it works in python... The correct way would be to use a queue to safely pass data between the threads. This should also improve performance.

    bug enhancement 
    opened by jonofmac 0
  • Message numbers incorrectly tagged

    Message numbers incorrectly tagged

    Seems to be an issue where duplicate messages are not always properly getting recognized as duplicates or the message pointer from the summary to the message ID field is incorrect.

    bug 
    opened by jonofmac 0
  • Crashes when closed

    Crashes when closed

    Trying to close the script often times causes the program to crash or hang.

    I believe this is due to the serial thread not receiving the command to close and causing a hang-up.

    bug 
    opened by jonofmac 2
Releases(v0.2)
  • v0.2(Feb 1, 2022)

    Version 0.2 fixes the following bugs

    • [x] Fixed shutdown issue caused by hanging thread
    • [x] Responses from OBD device are verified now before sending additional commands. Should fix issues with communication
    • [x] Added some OBD device checking (STN, OBDX, and generic ELM checking)

    What's Changed

    • Dev by @jonofmac in https://github.com/jonofmac/vpw_analyzer/pull/5

    New Contributors

    • @jonofmac made their first contribution in https://github.com/jonofmac/vpw_analyzer/pull/5

    Full Changelog: https://github.com/jonofmac/vpw_analyzer/compare/v0.1...v0.2

    Source code(tar.gz)
    Source code(zip)
  • v0.1(Jan 26, 2022)

Hierarchical Attentive Recurrent Tracking

Hierarchical Attentive Recurrent Tracking This is an official Tensorflow implementation of single object tracking in videos by using hierarchical atte

Adam Kosiorek 147 Aug 07, 2021
Deep Anomaly Detection with Outlier Exposure (ICLR 2019)

Outlier Exposure This repository contains the essential code for the paper Deep Anomaly Detection with Outlier Exposure (ICLR 2019). Requires Python 3

Dan Hendrycks 464 Dec 27, 2022
sktime companion package for deep learning based on TensorFlow

NOTE: sktime-dl is currently being updated to work correctly with sktime 0.6, and wwill be fully relaunched over the summer. The plan is Refactor and

sktime 573 Jan 05, 2023
Google Landmark Recogntion and Retrieval 2021 Solutions

Google Landmark Recogntion and Retrieval 2021 Solutions In this repository you can find solution and code for Google Landmark Recognition 2021 and Goo

Vadim Timakin 5 Nov 25, 2022
Notebooks, slides and dataset of the CorrelAid Machine Learning Winter School

CorrelAid Machine Learning Winter School Welcome to the CorrelAid ML Winter School! Task The problem we want to solve is to classify trees in Roosevel

CorrelAid 12 Nov 23, 2022
VarCLR: Variable Semantic Representation Pre-training via Contrastive Learning

    VarCLR: Variable Representation Pre-training via Contrastive Learning New: Paper accepted by ICSE 2022. Preprint at arXiv! This repository contain

squaresLab 32 Oct 24, 2022
A C implementation for creating 2D voronoi diagrams

Branch OSX/Linux Windows master dev jc_voronoi A fast C/C++ header only implementation for creating 2D Voronoi diagrams from a point set Uses Fortune'

Mathias Westerdahl 481 Dec 29, 2022
Reinfore learning tool box, contains trpo, a3c algorithm for continous action space

RL_toolbox all the algorithm is running on pycharm IDE, or the package loss error may exist. implemented algorithm: trpo a3c a3c:for continous action

yupei.wu 44 Oct 10, 2022
Film review classification

Film review classification Решение задачи классификации отзывов на фильмы на положительные и отрицательные с помощью рекуррентных нейронных сетей 1. З

Nikita Dukin 3 Jan 21, 2022
The code for replicating the experiments from the LFI in SSMs with Unknown Dynamics paper.

Likelihood-Free Inference in State-Space Models with Unknown Dynamics This package contains the codes required to run the experiments in the paper. Th

Alex Aushev 0 Dec 27, 2021
A Factor Model for Persistence in Investment Manager Performance

Factor-Model-Manager-Performance A Factor Model for Persistence in Investment Manager Performance I apply methods and processes similar to those used

Omid Arhami 1 Dec 01, 2021
This is the source code for generating the ASL-Skeleton3D and ASL-Phono datasets. Check out the README.md for more details.

ASL-Skeleton3D and ASL-Phono Datasets Generator The ASL-Skeleton3D contains a representation based on mapping into the three-dimensional space the coo

Cleison Amorim 5 Nov 20, 2022
Project Tugas Besar pertama Pengenalan Komputasi Institut Teknologi Bandung

Vending_Machine_(Mesin_Penjual_Minuman) Project Tugas Besar pertama Pengenalan Komputasi Institut Teknologi Bandung Raw Sketch untuk Essay Ringkasan P

QueenLy 1 Nov 08, 2021
[NeurIPS 2021] Official implementation of paper "Learning to Simulate Self-driven Particles System with Coordinated Policy Optimization".

Code for Coordinated Policy Optimization Webpage | Code | Paper | Talk (English) | Talk (Chinese) Hi there! This is the source code of the paper “Lear

DeciForce: Crossroads of Machine Perception and Autonomy 81 Dec 19, 2022
Sparse Progressive Distillation: Resolving Overfitting under Pretrain-and-Finetune Paradigm

Sparse Progressive Distillation: Resolving Overfitting under Pretrain-and-Finetu

3 Dec 05, 2022
PyTorch implementation of Deformable Convolution

Deformable Convolutional Networks in PyTorch This repo is an implementation of Deformable Convolution. Ported from author's MXNet implementation. Buil

411 Dec 16, 2022
Modifications of the official PyTorch implementation of StyleGAN3. Let's easily generate images and videos with StyleGAN2/2-ADA/3!

Alias-Free Generative Adversarial Networks (StyleGAN3) Official PyTorch implementation of the NeurIPS 2021 paper Alias-Free Generative Adversarial Net

Diego Porres 185 Dec 24, 2022
Official PyTorch(Geometric) implementation of DPGNN(DPGCN) in "Distance-wise Prototypical Graph Neural Network for Node Imbalance Classification"

DPGNN This repository is an official PyTorch(Geometric) implementation of DPGNN(DPGCN) in "Distance-wise Prototypical Graph Neural Network for Node Im

Yu Wang (Jack) 18 Oct 12, 2022
PyTorch implementation of U-TAE and PaPs for satellite image time series panoptic segmentation.

Panoptic Segmentation of Satellite Image Time Series with Convolutional Temporal Attention Networks (ICCV 2021) This repository is the official implem

71 Jan 04, 2023
Контрольная работа по математическим методам машинного обучения

ML-MathMethods-Test Контрольная работа по математическим методам машинного обучения. Вычисление основных статистик, диаграмм и графиков, проверка разл

Stas Ivanovskii 1 Jan 06, 2022