diy-shift-indicator

Public

@rav4s

Download board files

Files for version 1. Pick what you came for.

Share diy-shift-indicator

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading…

README

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
Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.