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)

Pytorch implementation of Learning with Opponent-Learning Awareness

Pytorch implementation of Learning with Opponent-Learning Awareness using DiCE

Alexis David Jacq 82 Sep 15, 2022
Implementation of Research Paper "Learning to Enhance Low-Light Image via Zero-Reference Deep Curve Estimation"

Zero-DCE and Zero-DCE++(Lite architechture for Mobile and edge Devices) Papers Abstract The paper presents a novel method, Zero-Reference Deep Curve E

Tauhid Khan 15 Dec 10, 2022
Breast-Cancer-Prediction

Breast-Cancer-Prediction Trying to predict whether the cancer is benign or malignant using REGRESSION MODELS in Python. Team Members NAME ROLL-NUMBER

Shyamdev Krishnan J 3 Feb 18, 2022
Code for visualizing the loss landscape of neural nets

Visualizing the Loss Landscape of Neural Nets This repository contains the PyTorch code for the paper Hao Li, Zheng Xu, Gavin Taylor, Christoph Studer

Tom Goldstein 2.2k Jan 09, 2023
Robustness between the worst and average case

Robustness between the worst and average case A repository that implements intermediate robustness training and evaluation from the NeurIPS 2021 paper

CMU Locus Lab 16 Dec 02, 2022
Deeprl - Standard DQN and dueling network for simple games

DeepRL This code implements the standard deep Q-learning and dueling network with experience replay (memory buffer) for playing simple games. DQN algo

Yao Zhou 6 Apr 12, 2020
A generator of point clouds dataset for PyPipes.

CloudPipesGenerator Documentation | Colab Notebooks | Video Tutorials | Master Degree website A generator of point clouds dataset for PyPipes. TODO Us

1 Jan 13, 2022
This is official implementaion of paper "Token Shift Transformer for Video Classification".

This is official implementaion of paper "Token Shift Transformer for Video Classification". We achieve SOTA performance 80.40% on Kinetics-400 val. Paper link

VideoNet 60 Dec 30, 2022
Annotate datasets with a semi-trained or fully trained YOLOv5 model

YOLOv5 Auto Annotator Annotate datasets with a semi-trained or fully trained YOLOv5 model Prerequisites Ubuntu =20.04 Python =3.7 System dependencie

Akash James 3 May 14, 2022
SARS-Cov-2 Recombinant Finder for fasta sequences

Sc2rf - SARS-Cov-2 Recombinant Finder Pronounced: Scarf What's this? Sc2rf can search genome sequences of SARS-CoV-2 for potential recombinants - new

Lena Schimmel 41 Oct 03, 2022
The official TensorFlow implementation of the paper Action Transformer: A Self-Attention Model for Short-Time Pose-Based Human Action Recognition

Action Transformer A Self-Attention Model for Short-Time Human Action Recognition This repository contains the official TensorFlow implementation of t

PIC4SeRCentre 20 Jan 03, 2023
This repo provides function call to track multi-objects in videos

Custom Object Tracking Introduction This repo provides function call to track multi-objects in videos with a given trained object detection model and

Jeff Lo 51 Nov 22, 2022
Hippocampal segmentation using the UNet network for each axis

Hipposeg Hippocampal segmentation using the UNet network for each axis, inspired by https://github.com/MICLab-Unicamp/e2dhipseg Red: False Positive Gr

Juan Carlos Aguirre Arango 0 Sep 02, 2021
The implementation for paper Joint t-SNE for Comparable Projections of Multiple High-Dimensional Datasets.

Joint t-sne This is the implementation for paper Joint t-SNE for Comparable Projections of Multiple High-Dimensional Datasets. abstract: We present Jo

IDEAS Lab 7 Dec 18, 2022
Nonuniform-to-Uniform Quantization: Towards Accurate Quantization via Generalized Straight-Through Estimation. In CVPR 2022.

Nonuniform-to-Uniform Quantization This repository contains the training code of N2UQ introduced in our CVPR 2022 paper: "Nonuniform-to-Uniform Quanti

Zechun Liu 60 Dec 28, 2022
Dilated Convolution with Learnable Spacings PyTorch

Dilated-Convolution-with-Learnable-Spacings-PyTorch Ismail Khalfaoui Hassani Dilated Convolution with Learnable Spacings (abbreviated to DCLS) is a no

15 Dec 09, 2022
MTCNN face detection implementation for TensorFlow, as a PIP package.

MTCNN Implementation of the MTCNN face detector for Keras in Python3.4+. It is written from scratch, using as a reference the implementation of MTCNN

Iván de Paz Centeno 1.9k Dec 30, 2022
CROSS-LINGUAL ABILITY OF MULTILINGUAL BERT: AN EMPIRICAL STUDY

M-BERT-Study CROSS-LINGUAL ABILITY OF MULTILINGUAL BERT: AN EMPIRICAL STUDY Motivation Multilingual BERT (M-BERT) has shown surprising cross lingual a

CogComp 1 Feb 28, 2022
(ImageNet pretrained models) The official pytorch implemention of the TPAMI paper "Res2Net: A New Multi-scale Backbone Architecture"

Res2Net The official pytorch implemention of the paper "Res2Net: A New Multi-scale Backbone Architecture" Our paper is accepted by IEEE Transactions o

Res2Net Applications 928 Dec 29, 2022