Skip to content

A K-Line shift indicator for manual transmission cars like my Mazda MX-5

License

Notifications You must be signed in to change notification settings

Rav4s/diy-shift-indicator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

K-Line (ISO9141) Shift Indicator

A DIY shift indicator for manual transmission cars like my Mazda MX-5 with a K-Line (ISO9141) OBDII interface. The device uses a series of LEDs that illuminate based on engine speed (RPM) to help the driver know when to shift gears in high-pressure situations. My technical writeup for this project, which includes rationale, insight into my design/development process, and future plans can be found here. Additionally, here are videos of the startup sequence and the device in action.

Features

  • Displays engine RPM using a set of seven LEDs
  • Has three distinct LED colors to show progression from low to high RPM (green -> blue -> red)
  • Begins illuminating LEDs at the lower end of shift range (3.5k) and fully illuminates by the higher end (6k), with equal steps in between
  • Mounts to the dashboard without significantly obstructing the driver's view of the road
  • Doesn't require any modifications to wiring/electronics of the car (plug-and-play)

Files

The file structure of this repository is as follows:

diy-shift-indicator
│   K-Line (ISO 9141) Shift Indicator Writeup.pdf -- technical writeup on design/development process and future plans
│   LICENSE
│   README.md
│
├───Code -- all Arduino code
│   ├───arduino_obd_reader_display -- code for polling and displaying RPM using LED series
│   │       arduino_obd_reader_display.ino -- handles initialization/communication over LIN bus
│   │       LED_driver.ino -- defines functions to drive and reset LEDs, provides displayRPM functionality
│   │
│   ├───LED_test -- tester sketch to ensure LED series is working
│   │       LED_test.ino
│   │
│   └───modified_iso9141_library -- modified version of the OBD9141 Arduino library used in display program
│           OBD9141.cpp
│           OBD9141.h
│
├───Debug -- Saleae logic analyzer capture files, useful for debugging initialization/connection with ECU
│       First_Success_TX_and_KLINE_Logic.sal
│       RX_Logic.sal
│       TX_and_KLINE_Logic.sal
│       TX_Logic.sal
│
└───Design -- CAD/design files from the prototyping process
    │   Device BOM.xlsx -- full bill of materials for the final product (PCB, boards, wiring, enclosure, etc.)
    │
    ├───Electronics -- breadboard, schematic, and PCB design files
    │   ├───Fritzing (Breadboard)
    │   │       Prototype Design.fzz -- breadboard setup designed for original prototype/testbed
    │   │       SN65HVDA195 IC Part.fzz -- custom Fritzing part designed for LIN transceiver IC
    │   │
    │   └───KiCad (PCB)
    │       └───Shift_Indicator_PCB
    │           │   freerouting.dsn
    │           │   Shift_Indicator_PCB.kicad_pcb -- PCB design for final product, can be exported to Gerbers for fabrication
    │           │   Shift_Indicator_PCB.kicad_pcb.zip
    │           │   Shift_Indicator_PCB.kicad_prl
    │           │   Shift_Indicator_PCB.kicad_pro
    │           │   Shift_Indicator_PCB.kicad_sch -- schematic defining all electrical connections for PCB
    │           │   Shift_Indicator_PCB.net -- netlist used to transfer schematic data to PCB design
    │           │   Shift_Indicator_PCB_BOM.csv -- bill of materials for PCB
    │
    └───Mechanics -- enclosure/lid design files
            Enclosure.3mf -- Bambu slicer file for 3D printing enclosure and lid
            Enclosure.stl -- CAD design for device enclosure, can be mounted to car dashboard 
            Lid.stl -- CAD design for lid for the enclosure

About

A K-Line shift indicator for manual transmission cars like my Mazda MX-5

Topics

Resources

License

Stars

Watchers

Forks

Languages