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)

[CVPR 2021] MiVOS - Mask Propagation module. Reproduced STM (and better) with training code :star2:. Semi-supervised video object segmentation evaluation.

MiVOS (CVPR 2021) - Mask Propagation Ho Kei Cheng, Yu-Wing Tai, Chi-Keung Tang [arXiv] [Paper PDF] [Project Page] [Papers with Code] This repo impleme

Rex Cheng 106 Jan 03, 2023
Official implementation of "Learning Forward Dynamics Model and Informed Trajectory Sampler for Safe Quadruped Navigation" (RSS 2022)

Intro Official implementation of "Learning Forward Dynamics Model and Informed Trajectory Sampler for Safe Quadruped Navigation" Robotics:Science and

Yunho Kim 21 Dec 07, 2022
Self-Supervised Pre-Training for Transformer-Based Person Re-Identification

Self-Supervised Pre-Training for Transformer-Based Person Re-Identification [pdf] The official repository for Self-Supervised Pre-Training for Transfo

Hao Luo 116 Jan 04, 2023
Matthew Colbrook 1 Apr 08, 2022
Model search is a framework that implements AutoML algorithms for model architecture search at scale

Model search (MS) is a framework that implements AutoML algorithms for model architecture search at scale. It aims to help researchers speed up their exploration process for finding the right model a

Google 3.2k Dec 31, 2022
Selective Wavelet Attention Learning for Single Image Deraining

SWAL Code for Paper "Selective Wavelet Attention Learning for Single Image Deraining" Prerequisites Python 3 PyTorch Models We provide the models trai

Bobo 9 Jun 17, 2022
Fully Convlutional Neural Networks for state-of-the-art time series classification

Deep Learning for Time Series Classification As the simplest type of time series data, univariate time series provides a reasonably good starting poin

Stephen 572 Dec 23, 2022
An updated version of virtual model making

Model-Swap-Face v2   这个项目是基于stylegan2 pSp制作的,比v1版本Model-Swap-Face在推理速度和图像质量上有一定提升。主要的功能是将虚拟模特进行环球不同区域的风格转换,目前转换器提供西欧模特、东亚模特和北非模特三种主流的风格样式,可帮我们实现生产资料零成

seeprettyface.com 62 Dec 09, 2022
A Python framework for conversational search

Chatty Goose Multi-stage Conversational Passage Retrieval: An Approach to Fusing Term Importance Estimation and Neural Query Rewriting Installation Ma

Castorini 36 Oct 23, 2022
Official PyTorch Code of GrooMeD-NMS: Grouped Mathematically Differentiable NMS for Monocular 3D Object Detection (CVPR 2021)

GrooMeD-NMS: Grouped Mathematically Differentiable NMS for Monocular 3D Object Detection GrooMeD-NMS: Grouped Mathematically Differentiable NMS for Mo

Abhinav Kumar 76 Jan 02, 2023
This repo contains the code required to train the multivariate time-series Transformer.

Multi-Variate Time-Series Transformer This repo contains the code required to train the multivariate time-series Transformer. Download the data The No

Gregory Duthé 4 Nov 24, 2022
This is the official Pytorch implementation of the paper "Diverse Motion Stylization for Multiple Style Domains via Spatial-Temporal Graph-Based Generative Model"

Diverse Motion Stylization (Official) This is the official Pytorch implementation of this paper. Diverse Motion Stylization for Multiple Style Domains

Soomin Park 28 Dec 16, 2022
PEPit is a package enabling computer-assisted worst-case analyses of first-order optimization methods.

PEPit: Performance Estimation in Python This open source Python library provides a generic way to use PEP framework in Python. Performance estimation

Baptiste 53 Nov 16, 2022
AFLFast (extends AFL with Power Schedules)

AFLFast Power schedules implemented by Marcel Böhme [email protected]

Marcel Böhme 380 Jan 03, 2023
Pytorch implementation of face attention network

Face Attention Network Pytorch implementation of face attention network as described in Face Attention Network: An Effective Face Detector for the Occ

Hooks 312 Dec 09, 2022
Zero-Cost Proxies for Lightweight NAS

Zero-Cost-NAS Companion code for the ICLR2021 paper: Zero-Cost Proxies for Lightweight NAS tl;dr A single minibatch of data is used to score neural ne

SamsungLabs 108 Dec 20, 2022
Leveraging OpenAI's Codex to solve cornerstone problems in Music

Music-Codex Leveraging OpenAI's Codex to solve cornerstone problems in Music Please NOTE: Presented generated samples were created by OpenAI's Codex P

Alex 2 Mar 11, 2022
A PyTorch implementation of "Semi-Supervised Graph Classification: A Hierarchical Graph Perspective" (WWW 2019)

SEAL ⠀⠀⠀ A PyTorch implementation of Semi-Supervised Graph Classification: A Hierarchical Graph Perspective (WWW 2019) Abstract Node classification an

Benedek Rozemberczki 202 Dec 27, 2022
A collection of easy-to-use, ready-to-use, interesting deep neural network models

Interesting and reproducible research works should be conserved. This repository wraps a collection of deep neural network models into a simple and un

Aria Ghora Prabono 16 Jun 16, 2022
The Illinois repository for Climatehack (https://climatehack.ai/). We won 1st place!

Climatehack This is the repository for Illinois's Climatehack Team. We earned first place on the leaderboard with a final score of 0.87992. An overvie

Jatin Mathur 20 Jun 09, 2022