GM 700r4 Arduino Based Programmable Shift Indicator 3D Printer Model

Author: @
License: CC BY-NC
File formats: stl,ino
Download type: zip
Size:184.4KB

The file 'GM 700r4 Arduino Based Programmable Shift Indicator 3D Printer Model' is (stl,ino) file type, size is 184.4KB.

Summary

This was designed for my 1978 C10 which I did a 700r4 swap on (from a TH350). When I did it, I got a floor mounted Lokar shifter for it, but I found out pretty quick I had a hard time telling what gear it was in. Lokar makes a digital shift indicator for this, but it is kinda spendy and I didn't really like how it looked. Also, I wanted to integrate it into the instrument cluster since there was this dead spot where the stock shift indicator was.

Basically what this does is takes the linear motion from the shifter (using a linear potentiometer) and converts that reading into a gear position. Then it spits out some characters to a set of multi-segment LEDs that are mounted in the dash to tell you which gear is selected.

Here is the gear I used:

  • Arduino Nano V3.0
  • 0.54" Alphanumeric LED backpack (Adafruit)
  • 10k linear potentiometer (but any value should work - the programming in the sketch takes care of it)
  • eBoost LM2596 buck converter for power
  • PCB style Tactile Switch (dunno the part number - it was from the junk pile but a 688-SKHHAK should work)
  • 10k Pulldown resistor for the switch.
  • Dupont style connectors
  • JST connectors (for power)
  • Some RC pushrods and some fabricated brackets to mechanically connect the shifter to the linear potentiometer
  • And of course, I printed the enclosure! (PETG)

The setup:

There are three modules to this.

  • The linear potentiometer box
  • The control box
  • The display box

The shifter is mechanically linked to the linear pot via an RC pushrod (I used Sullivan Gold-N-Rod). I did that because I wanted the box the linear pot goes in to be up on the firewall so there wasn't a bunch of bulk under the carpet. The linear pot is then connected via a servo-style 3 wire cable to the control box. (dupont connectors basically) The control box contains the buck converter, the arduino, and the programming button. From the control box, there is another 4 wire cable that goes up to the display. ~12v DC is supplied to the control box from the vehicle's power system and it distributes the power from there.

What to know:

There are some parts of this that are going to vary a lot depending on your setup, but they aren't really difficult to figure out.

The main one is making sure the mechanical linkage between the shifter and linear potentiometer is done correctly. Basically, you want as little slop as possible, and you want to make sure the full range of motion of the shifter translates to a good bit of travel on the linear potentiometer without maxing it out or binding.

I did this by fabricating a little metal bracket that mounted to one of the floor mounting bolts on the shifter. that bracket was secured to the pushrod tube with JB weld, dacron fiber, and prayers. It has held fine so far. Then I made a tab that mounted on the shifter arm and attached the pushrod to it. On the firewall side of this is a box that encloses the linear pot. The pushrod tube was secured to the box itself the same way as the bracket on the the other end of the pushrod tube.

So basically, the floor bracket and the pot box are linked together. That way, when the pushrod moves, there is very little slop. Inside the box, the pot is mounted securely. The upshot is that when you shift, the pushrod and wiper on the pot should move, but everything else should stay put. Read up on RC pushrod setups to get some more ideas. There are a billion ways to do this, that is just the way I choose.

The key part of the geometry for getting the correct range of travel comes down to the pivot location where your pushrod end mounts to the shifter linkage. What I did was just hold up the linear pot next to the linkage and shifted through all the gears and looked for a point on the shift linkage where it would travel just a little less than the distance of the wiper width of the potentiometer. Happily, that turned out to be right at one of the existing bolts so I just mounted my pushrod end on that.

I didn't design an enclosure for the linear pot since the prototype one I threw together worked fine, but you could get a lot fancier if you wanted.

I built this for my 700r4, but the sketch could easily be modified for a TH350 or other transmission too.

Building it:

  1. Get all the parts together
  2. Solder a couple of leads onto the buck converter (read the documentation that comes with it) and grab your multimeter
  3. Hook the leads up to your vehicle battery and dial it in till it is outputting 5v.
  4. Download the sketch and flash it to the Arduino nano
  5. Wire up the LED backpack per the documentation for it from Adafruit (you will also need to add the appropriate Arduino libraries to your IDE listed in the backpack documentation to compile the sketch)
  6. Slap everything onto a prototype breadboard, flash the sketch onto the nano and fire it up. (refer to the wiring diagram to see how everything goes together)
  7. Run through the programming routine (just by sliding the pot manually) and see if everything is working right. You'll reprogram it once it is installed. Now run through the "gears" and make sure it is displaying the different gears as expected.
  8. Using color coded jumper wires (you can get packs of them off Amazon), assembly the parts of the control box enclosure and solder everything in place. Test it out again once assembled so you can be sure everything is still working.
  9. Now fabricate the linear potentiometer mount and pushrod system to link it into your shifter.
  10. Find an ignition (on) 12v source on your vehicle (so it won't pull power when the vehicle is off). There are a bunch of places you can tap into this, but the easiest is to use an "add a circuit" fuse tap on your fuse box.
  11. Figure out how you want everything mounted so you know how long to make the leads for the display, etc. and crimp on the appropriate connectors. Power should be pulled from the ignition (on) power source you located earlier.
  12. Plug in all the leads and test it out once it is mounted in the vehicle.
  13. Follow the programming instructions to calibrate it to your shift positions.

A few additional build notes:

There is a small "button retainer" clip. This works by wedging in behind the tactile switch and getting screwed down. I'm mentioning it because it is kind of hard to tell that from my junk pictures. I mounted my boxes with heavy duty velcro, but you could also make some screw-in brackets if you have the access for it. I made little labels to indicate the pinouts and instructions and whatnot because I knew when I tore into this thing next I would have forgotten all that. I'd highly recommend that! At least print out the schematic and programming instructions and keep them in the glovebox. I prototyped this system out on an UNO and ran that for a couple of years with no issues, but swapped to the nano so the enclosure wouldn't be so huge.

Programming the controller:

Shift trans into park. Power on unit. Within 2 sec, press and hold calibration button until display flashes on -PK-. Press button once to store location. Shift to next displayed gear. Repeat until all gears are stored. Once all gears are stored, unit will stop flashing and programming is complete.

Some notes on the Arduino sketch:

I wrote this for my own use so it isn't super clean and it definitely isn't elegant, but you're free to mess with it and modify it for your own non-commercial purposes. It uses the EEPROM (memory in the Arduino) to store the gear positions long term and to facilitate programming. It is only written to during the programming so unless you're planning on doing 100,000 transmission swaps, it'll probably be fine.

700r4_shift_indicator_v1.stl 789.6KB
prog-shift-ind-2019-v1.ino 14.0KB