MegaShift™/GPIO v2.10 Build Instructions

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Independently verify all parameters and proper transmission operation before using on road.

These are the draft build instructions for the v2.10 GPIO board from Bowling and Grippo when using it with the MegaShift™ transmission controller software for the Chrysler 41te (aka. "A604") transmission (other transmissions may be similar, but may require some changes to suit their requirements). The parts required are detailed here: 41tebom.htm

In these instructions, we will build one type of circuit at a time. We start with the base circuits (power, CAN and serial communications circuits), then move onto the input/output circuits: GPOx, VBx, PWMx, GPIx, EGTx, and finally the VRx circuits.

Transmission
Function
Processor
Port
GPIO
Circuit
GPIO AMP
Connector Pin
Output1 (Low/Reverse Soln.)PE4VB323
Output2 (2/4 Soln.)PM2VB435
Output3 (Underdrive Soln.)PT1PWM434
PCPT2PWM333
TCC (Low/Reverse Soln.)PT3PWM232
LED1PM4GPO110
LED2PM3GPO27
LED3PM5GPO38
LED4PB4GPO4 9
Input 1 (T1)AD0EGT4 (build as GPI)126
Input 2 (T3)AD1GPI2 (jumper at 25x2 header)6
Input 3 (T41)AD3EGT325
Paddle UPPT6VR2 15
Paddle DOWNAD6GPI54
VSS PT0VR12
Temp SensorAD2GPI330
Brake SenseAD7GPI43
Speedo OutputPT4PWM131
Spare Output1 (SP1)PT7VB1
(jumper at 25x2 header)
11
Output4 (Overdrive Soln.)PA0VB212
non-CAN MAP/TPS/MAF AD5EGT124
Line Pressure SensorAD4EGT227
Input4 (T42)PE1GPI15

When you purchase a MegaShift™/GPIO kit, the components typically arrive individually packed, with part numbers. As a result, while you should verify that you have received all you ordered, it is not necessary to identify each item by color, markings, etc.

If you have questions about the specification or appearance of any item, check the part number (listed in {} brackets here) at the Digi-Key site (www.digikey.com) first. Entering the part number in their search engine will give you access to both the catalog information and the data sheet from the manufacturer.

To assemble any of these electronic kits, you will need a soldering iron, some solder, and a few other useful accessories. A 15 watt pencil iron will work fine, however a 25 watt iron heats up faster. Get some small solder. For example, you can use 0.75mm resin solder (~0.030") which really helps to put just the right amount of solder in just the right places. You do not need to use silver solder for MegaSquirt. Make sure to let the soldering iron get hot before using it. A hotter tip makes for quicker cleaner joints, and less heat in the components, because the temperature of the lead reaches the melting point of the solder before the component has had much time to heat up (though letting the iron heat for a while also tends to shorten the useful life of the tip). Let it sit 'powered-up' for 10-15 minutes before trying to use it. The solder should melt nearly instantly if touched to the tip.

Never try to paste solder on a joint using excess solder on the tip. Keep the tip clean, and heat the joint (try to get the tip right at the joint between the lead and the PCB) and hold the solder against the other side of the joint until it starts to melt. Feed in just enough solder to get a bit of a "cone" around the joint, and you are done.

Get a braided copper solder wick as well - you will be glad you did! It is very useful for removing components and cleaning up excess solder. Before plugging in your soldering iron, be sure you read and understand the assembly instructions that follow.

(Note that there is also an excellent tutorial for the assembly of general electronic kits here: www.mtechnologies.com/building/atoz.htm.)

Note: The semiconductor components in MegaShift™/GPIO are sensitive to electrostatic discharge {ESD). To reduce the potential for damage from ESD, some care is needed. Interestingly, you cannot even feel an ESD shock unless the voltage exceeds 3,000 volts, far more than enough to destroy some of the MegaShift™/GPIO components. ESD events do not always destroy an electronic component immediately on the first occurrence, making the eventual failure of your MegaShift™/GPIO very difficult to troubleshoot. Where possible, make use of anti-static controls and material handling techniques, i.e., wrist-band grounding straps, anti-static foam and anti-static bags, grounded workbenches, anti-static mats, etc. Avoid handling semiconductor components more than necessary. If you are not wearing a wrist-band grounding strap, discharge yourself by touching grounded metal before handling ICs and equipment. This is especially important in the winter after taking off or putting on any garments, for example, sweaters and coats. The material of your clothing also has an effect, as materials like silk and some artificial fibers produce a lot of "static electricity". Most commercial carpets contain a high percentage of artificial fibers, which are prone to producing static. Where possible, try to keep the room humidity at 50% or higher to reduce static problems, or use a product such as "Static Guard".

MegaShift™/GPIO; uses a number of components. These components are installed on the silkscreen side of the PCB, and in most case it will be easiest to solder them from the other side of the board. Electrically, the soldering works fine from either side, but as you get more components on the board, it gets harder to solder on the components side, forcing you to use the other side for soldering. There are three ways you can be sure of putting the right components in the right places with the right orientation. Most electronic parts have a standardized scheme for identification.

There are a large number of cryptic designations in building a MegaShift™/GPIO board. Many of these have the form of a capital letter followed by a one or two digit number. These indicate components that are installed on the MegaShift™/GPIO main board (or stim, etc.) and are specific to each PCB. So R9 means resistor (R) number 9. Note that the main board may have an R9, and the stim might too, but they are different. Here are some examples:

A. Base circuits:

  1. Remove excess PCB material: The board is shipped with surplus PCB material on each edge that is about ¼ inch (6mm) wide. You can leave this material on if you are using a custom enclosure, it might make for easier mounting is some situations. However, in most cases, this material must be removed. You do this by using a pair of pliers to flex the excess material along each edge until is snaps off.
  2. PCB/case: Check the fit of the GPIO printed circuit board in the case. It goes into the next to last slots (nearest the case bottom). Do not put the GPIO PCB into the bottom grove, the bottom of this groove is wide enough that it may short out some circuits. Be sure to start it as close to 'square' as possible, otherwise it will bind. The PCB should slide into the case fairly easily, but be held snugly. If the PCB doesn't fit, or is too tight, you have to narrow the board slightly. you do this with a coarse file. Run it along the heat sink edge of the board 10-20 times, then recheck the fit. Repeat as necessary until the board fits properly in the PCB. Then blow the PCB clean with compressed air.

    Note that if you wish to mount the GPIO PCB in a non-standard case, three mounting holes are provided:

  3. Heat sink: Prepare the heat sink. You will make this out of 1/8" (3mm) aluminum flat strapping, 5/8" wide (15.8 mm) by 3.94 inches (100mm) long. You will drill 8 holes in it to match the PCB heat sink area.

    Because aluminum isn't typically sold in 5/8" widths, you may have to cut down wider aluminum (¾" or 1") to get a heat sink that will to fit.

    The easiest way to get the hole spacing right is to transfer the holes from the PCB to the aluminum strip by placing them together and using a felt pen to mark the hole locations on the aluminum strip through the PCB.

    Be sure to allow enough room for the aluminum strip to fit in the case, and allow enough room so that it won't contact the component leads. Make sure the heat sink rests up against the case when installed to get the thermal contact between the case and the heat sink. Sand both sides of the heat sink to ensure there are no burrs.

  4. Case End-Plates: Here is a rough drawing for the connector end plate for the EAS-400 enclosure with both the V2.10 GPIO board and MegaSquirt® V3 main board in the same case (because cases and boards may vary, you should check all of these measurements carefully with your own hardware).

    The end plate material should be 0.080" to 0.125" thick. The Ampseal connector is sealed internally in this configuration, but the enclosure itself is not sealed (because of the DB37 as well as the tolerances of the end plate to the outside flange of the Ampseal connector (rather than screwed to the face of the flange).

    The GPIO board fits in the bottom slot of the its half of the case, while the V3 main board sits in the second from the bottom slot of its part of the case. Note that the DB37 and Ampseal connector are very close - there isn't much material left (~0.070"), and you will have to be careful to avoid damaging this area while machining. Thicker material will make this easier, of course.

  5. Install and solder the voltage regulator U1 {LM2937ET-5.0-ND}. This is a TO-220 size component (three pins sticking out of a black case, with a tab and mounting hole on the opposite edge) located in the corner of the board furthest from where the 35 position Ampseal connector will be installed, nearest the heat sink.

    It has its own location among the SMD components in that corner of the board. You have to bend the leads to a 90° angle so the regulator can site flat against the board, then solder it and screw it the board with a #4-40 nylon bolt and nut (with heat transfer compound (aka. 'heat sink grease') between the regulator and board). You do not need a separate heat sink for the voltage regulator (shown in the diagram below), the voltage regulator can be mounted directly to the PCB (with heat sink compound), as long as you are not using the 5Vref supply for powering off-board accessory circuits.

  6. CAN termination resistor: You will install this 120 Ohm, 1/4 Watt resistor (R82) if you have two CAN devices in your network (i.e. the GPIO board and MS-II). If you have more than two devices in the network, you only install the resistor in the devices at the ends of the CAN network. If required, install and solder the 120 Ohm, Ľ Watt resistor {brown-red-brown, 120QBK-ND} in R82. This is located in the corner of the PCB furthest from the Ampseal connector and heat sink. Space the CAN termination resistor up off the board by approximately 1/4" to 1/2" (6mm to 12mm), and make sure the lead closest the edge will not contact the case when the PCB is installed in the enclosure. If your board is not at the end of the CAN chain, DO NOT jumper this resistor location, leave it empty.

  7. Ampseal
    1. Connector: The connector should be soldered to the PCB. Be sure it snaps into place in the PCB, then solder each of the 35 pins from the underside of the board. Take your time and be methodical, as missing or poorly soldering one or more pins can cause problems that are very hard to troubleshoot later.
    2. Pigtail: The best instructions for assembling the harness pigtail are Tyco's own instructions, get the PDF file here: Ammpseal 35 pigtail assembly instructions

  8. Serial Communications:

    You have a choice here. You can bring the serial communications out a serial jack (with a 2.5mm mini stereo jack, which is convenient) or you can bring the serial communications out the Ampseal connector (which offers the possibility of weather sealing).

    1. Ampseal Serial:
      • Rx: Jumper from the via marked "Rx" near the bootloader jumper to the via marked "Rx" near the Ampseal connectors rear edge with 20-24 gauge insulated wire. This will bring Rx out on Ampseal pin 21.
      • Tx: Jumper from the via marked "Tx" near the bootloader jumper to the via marked "Tx" near the Ampseal connectors rear edge with 20-24 gauge insulated wire. This will bring Tx out on Ampseal pin 22.
      • Gnd: Use one of the Ampseal pins 17 to 20 as a ground.
      • You can devise your own serial cable, the illustrations below might help.

    2. Serial Jack/Cable
      1. Cable:(same as LC-1/MicroSquirt cable): If you don't already have a serial cable (from an MicroSquirt on Innovate LC-1 wide band EGO controller)you will need to make one. To do this, solder the three wires of the 2.5mm stereo plug cable {CP-254CS-ND} to the DB9 connector {4109FER-ND} as shown below (cut the yellow wire so it can't short against the DB9 connector), then cover the connection with the DB9 hood {976-09RPE-ND}.

      2. Serial Jack: Solder the serial jack onto the PCB (near the center of the edge of the PCB that is furthest from the Ampseal connector. The jack is available from Mouser as KC-300416 (161-2502), but it is not currently available from Digi-Key.

  9. Bootloader header {A26520-40-ND - cut to suit}: The Boot Header {JP5) on the board near the serial jack is used to reprogram the CPU in MegaShift™ processor (not the tuning parameters, but the actually code that uses the tuning parameters). Install the 2-position header, but leave it open (do not bridge the pins with a jumper), though you can leave a jumper (S9000-ND) hanging on just one pin as a handy storage location.

    Depending on what you want from your MegaShift™ controller, though, you may end up using the boot header to eventually to load code. To load new code, you put jumper on the two pins on JP5 with no power applied to the board, and once the jumper is in place apply power to the board and use the downloader program.

    Some people have put a momentary switch (normally open - NO) across the boot header, and place the switch so they can go into bootloader mode simply by pressing this switch while powering up, without opening the case. (If you do this, be sure it can't be pressed accidentally.)

  10. BDM (Background Debug Module) header: This 3x2 header is used to load the serial monitor program to the processor (to act as a bootloader for adding new code version), as well as for looking at the state of code running on the processor when developing new code (in conjunction with a BDM cable, etc.). This is located in the corner of the PCB furthest from the Ampseal connector and heat sink, near the CAN termination resistor (R82) you installed earlier. If you wish to install this header, solder it into position.


B. GPO1, GPO2, GPO3, GPO4 (gear LEDs):

These circuits are arranged in a left-right line just above the center of the board. The shift LED circuits (GPO1-4) are all the same, they ground the LED to illuminate it. This means the LEDs must have current limiting resistors (in the external circuit). The value of the current limiting resistor will depend on the voltage and LED used. See the GPO page for more info: www.msgpio/manuals/gpo.htm#ledchoice.

  1. Install the processor pin resistors (1.0K Ohm, 1/8 Watt) in R13, R15, R17, R19 {brown-black-red, 1.0KEBK-ND}.
    Resistor Band Color Reference
    Color
    Band 1
    Band 2
    Multiplier
    Tolerance
    Black 0 0 x 1 not used
    Brown 1 1 x 10 not used
    Red 2 2 x 100 not used
    Orange 3 3 x 1000 = 1K not used
    Yellow 4 4 x 10000 = 10K not used
    Green 5 5 x 100000 = 100K not used
    Blue 6 6 x 1000000 = 1M not use
    Violet 7 7 not used not used
    Gray 8 8 not used not used
    White 9 9 not used not used
    Gold not used not used divide by 10 ±5%
    Silver not used not used divide by 100 ±10%
    None not used not used not used ±20%

    For example, this resistor:

         
        band1   band2   multiplier   tolerance    
                     
                     
                     

    Is 4.7K Ohms, since band1 is yellow=4, band 2 is violet=7, and the multiplier is red= ×100, so we have 47×100 = 4700 Ohms = 4.7K Ohms. The tolerance is ±10%. Note that you start reading at the end furthest from the gold or silver band.


  2. Install and solder the four small NPN transistors {ZTX450-ND, do not confuse with the 2N3904 transistors that look very similar} in Q9, Q10, Q11, Q12. These transistors have one flat side with square corners, and one side with rounded corners (this side is marked "ZTX 450"); the flat side with the square corners faces the Ampseal end of the PCB. The pin spacing is very tight on these transistors, be careful not to bridge the pins with solder (use a braided copper wick to remove any excess, if necessary).


C. VB1, VB2, VB3, VB4 (SP1, Ouput4, Output1, Output2):

These four circuits are located on/beside the heat sink, nearest the Ampseal connector.

  1. Install and solder four large TO-220 size NPN transistors {RFP30N06LE-ND} in Q5, Q6, Q7, Q8 and insulators (under Q5, Q6, Q7, Q8 {4724K-ND}) on the heat sink in positions Q5, Q6, Q7, Q8. These are numbered alongside the 3 holes in the PCB for each transistor. You have to bend each transistor's leads to a 90° angle so the transistor can site flat against the insulator/heat sink. Cut the corners off the mica (nearest the three holes for the RFP30N06LE pins) so that it clears the resistor you will install in the next step. Slide the mica over the RFP30N06LE's three pins and place it one the board. Then and screw the TIP 120 to the board with a #4-40 steel bolt, insulator washer (be sure the stepped side is against the RFP30N06LE tab), lock washer and nut (with heat sink compound between the transistor and heat sink and heat sink and board). You may want to put a dab of fingernail polish or something similar on the screw/nut interface to help prevent them backing off due to vibration. Alternately, you can use a nylon bolt without a insulating washer. The nut should be on the top side, to provide clearance in the case. Solder the RFP30N06LE pins from the bottom side of the board.

    Check the resistance from the RFP30N06LE tab to the heat sink. It should be greater than about 40K Ohms (40000 Ohms), usually higher at this stage. If it is not greater than ~40K Ohms, the mica is not insulating, and you need to find out why (common causes are burrs on the heat sink, missing mica insulators, or missing insulating washers).

  2. Install and solder jumpers in R5, R6, R7, R8.

  3. Install and solder the 30V Zener diodes {1N4751ADICT-ND} in D11, D12, D13, D14. The banded end goes towards the heat sink, as shown on the silkscreen.

    Positive is:

    Capacitors:

    LEDs:

    Diodes:

    The longer lead on polarized capacitors (not all are), sometimes marked with a small +

    The longer lead on LEDs, and the lead opposite the “flat” on the case. If you can see inside the LED, the cathode (which is on the same side the flat would be) is the larger electrode (but this is not an 'official' identification method).

    The end FURTHEST from the band (for forward conduction).


D. PWM1, PWM2, PWM3, PWM4 (Speedo Output, TCC, PC, Ouput3):

These four circuits are located on/beside the heat sink, furthest from the Ampseal connector.

  1. Install and solder three large TO-220 size NPN transistors {RFP30N06LE-ND} in Q1, Q2, Q4 with insulators {4724K-ND} on the heat sink in positions Q1, Q2, Q3, Q4. In Q3 (for the pressure control solenoid), solder in the similar looking RFP30N06LE-ND with an insulator.

    These components are numbered alongside the 3 holes in the PCB for each transistor. Slide the mica over the RFP30N06LE's three pins and place it one the board. You have to bend each of the transistor's leads to a 90° angle so the transistor can site flat against the insulator/heat sink. Then and screw the TIP 120 to the board with a #4-40 steel bolt, insulator washer (be sure the stepped side is against the RFP30N06LE tab), lock washer and nut (with heat sink compound between the transistor and heat sink and heat sink and board). You may want to put a dab of fingernail polish or something similar on the screw/nut interface to help prevent them backing off due to vibration. Alternately, you can use a nylon bolt without a insulating washer. The nut should be on the top side, to provide clearance in the case. Solder the RFP30N06LE pins from the bottom side of the board.

    Check the resistance from the RFP30N06LE tab to the heat sink. It should be greater than about 40K Ohms (40000 Ohms), usually higher at this stage. If it is not greater than ~40K Ohms, the mica is not insulating, and you need to find out why (common causes are burrs on the heat sink, missing mica insulators, or missing insulating washers).

  2. Install and solder jumpers (use the discarded extra length of leads from other components for this) in R1, R2, R3, and R4.

  3. Install and solder jumpers on R9, R10, R11, and R12 using snipped off leads. (You can install 0.1 Ohm resistors (not included), such as Digi-Key MPR3-0.1J-ND at 79¢ each, in these positions if you wish to use an oscilloscope to view the output currents.)

  4. Install and solder 30V Zener Diodes {1N4751ADICT-ND}, D8, D9, D10. The banded end goes towards the heat sink, as shown on the silkscreen.

  5. To use the speedometer output, you will need to connect a 'pull-up' circuit in the spot for D7 to force the output to be high or low (i.e., not to "float"). To do this, you will need to use a voltage source and a current limiting resistor. You can do this by soldering one end of a ~1K Ohm 1/8 Watt resistor in the banded end of the D7 location, while leaving the other 'free' end of the resistor standing up from the board. Then you run an 18 to 22 gauge jumper wire from the 'free' end of that resistor to a voltage source, typically either 5 Volts or 12 Volts. You can source this voltage from a jumper on one of the GPOx circuit jumpers (JP1, JP2, JP3, JP4). If you are not sure which voltage to use, 12 Volts is usually safe and effective for most speedometers. You may have to experiment with different resistors to suit your speedometer's input needs.

E. GPI1, GPI2, GPI5 (2/4WD, swB (aka. Output2), downshift):

These circuits are arranged in a left-right line just above the center of the board. They are digital input circuits, and ground to activate (no pull-up).

Note, if you are not using a GM style shift lever input (3 digital inputs on swA, swB and swC) you can use swB and swC for datalogging analog voltage signals such as temperature or EGT. To do that, you need to build the circuits differently. See www.msgpio.com/manuals/gpi.htm for more details on different ways to build the GPI2 circuit. You can also use the 2/4WD input for logging digital inputs (if you don't have a 4WD), if you build the circuit appropriately and select the appropriate option in MegaTune.

  1. Install and solder a 1.0K Ohm, 1/8 Watt processor pin resistors {brown-black-red, 1.0KEBK-ND} in R27, R29, and R35.
  2. Install and solder 330 Ohm, 1/8 Watt resistors in R21 and R25. These are the pull-up resistors for the downshift button circuit on GPI5 and the 2WD/4WD switch on GPI1.
  3. Install and solder 5.6 Volt Zener Diodes in:
  4. If (and only if) you are using the digital inputs for the manual gear lever determination such as with a 41te (as opposed to a variable voltage, Ford-style potentiometer) then you must add pull-up voltage to GPI2 (and EGT3 and EGT4 in later steps). Do this by installing a 330 Ohm resistor in R22.
  5. Install and solder 0.1µF capacitors {399-4329-ND} in C14 and C22.
  6. Install and solder a 0.001µF capacitor {399-4144-ND} in C16.

    Capacitor Identification
    Capacitors may be marked directly with their capacitance. If not, they are frequently marked with numbers like:

    104 K50 or 152 K100 The first two numbers are multiplied by ten to the power of the third number to getting the picofarad capacitance. For example, since 10 to the fourth power is 104 = 10 x 10 x 10 x 10 = 10,000, the first capacitor would be 10*10,000 = 100,000pF = 0.1 µF, since 1,000,000pF = 1 µF. The second capacitor would be 15 x 102 = 15 x 100 = 1500pF = .0015 µF. The upper case letter indicates the tolerance, M = 20%, K = 10%, J = 5%, H = 2.5% and F = ± 1pF. The last numbers are the rated voltage, 50 and 100 volts in these cases.

F. GPI3 (temperature):

This circuit is located near the center of the PCB. It is built as a voltage divider (resistance sensing) circuit.

  1. Install and solder a resistor, ¼ Watt, 2.49K Ohms {red-yellow-white-brown-brown (on blue),2.49KXBK-ND} in R23. Space it off the board by about ¼" (6mm).

  2. Install and solder a 1.0K Ohm, 1/8 Watt resistor {brown-black-red, 1.0KEBK-ND} in R32.

  3. Install and solder a 1.0µF, 50V capacitor {399-4389-ND} in C18. You may have to straighten the leads somewhat to get them to fit the holes in the board. Do not let C18 touch R23 once assembled, bend it out of the way as necessary.
  4. Install and solder a 0.001µF, 100V capacitor {399-4202-ND} in C19. Do not let in touch R23.

G. GPI4 (Brake sense):

This circuit is located behind the center of the Ampseal connector. This circuit is built as a digital input, but we must bring the nominal 12V stop lamp voltage down to the 5V that the processor pin can handle (~6.5 Volts absolute maximum). R33 forms one leg of the voltage divider, and also limits the current through the Zener diode if the voltage is greater than 5.6 Volts.

  1. Install and solder a 15K Ohm, 1/8 Watt resistor {brown-green-orange, 15KEBK-ND} in R33.

  2. Install and solder a 10K Ohm, 1/8 Watt resistor {brown-black-orange, 10KEBK-ND} in R34.

  3. Install and solder a 5.6 Volt Zener diode {1N4734ADICT-ND} in place of C20, with the banded end towards heat sink. You will have to space it up off the board by about ½" (12mm) to get the leads to fit.

If the input voltage is 14.5 Volts, the voltage divider reduce this to 14.5 * 10K/(10K+15K) = 5.8 Volts, and the Zener diode further bleeds this off to 5.6 Volts (nominal) with a current of 14.5/15x103 = 0.97 milliamps (the Zener is rated for 1 Watt, which is much higher than we need which is ~1 milliamp * 0.2 Volts = 0.0002 Watts).

If the input voltage is 11.5 Volts, the voltage divider reduce this to 11.5 * 10/(10+15) = 4.6 Volts, and the Zener diode does nothing. 4.6 Volts is still plenty to trigger the input pin (the acceptable voltage range for 'high' on a HCS12 input pin is 3.25 Volts or higher),which means the supply voltage from the brake signal could drop as low as 8.1 Volts and still trigger the input successfully.


H. EGT1, EGT2, EGT3, EGT4 (non-CAN MAP, line pressure, swC (aka. Output3), swA (aka. Output1)):

These circuits are located on the edge of the PCB furthest from the heat sink. They are built as voltage sensing circuits, to pass a 0-5V signal to the processor pin.

Note, if you are not using a GM style shift lever input (3 digital inputs on swA, swB and swC) you can use swB and swC for datalogging analog voltage signals such as temperature or EGT. To do that, you need to build the circuits differently. See www.msgpio.com/manuals/egt.htm for more details on different ways to build the EGT3 circuit.

  1. Install and solder 1.0K Ohm, 1/8 Watt resistors {brown-black-red, 1.0KEBK-ND} in R64, R67, R70, and R73.

  2. Install and solder jumpers (made from snipped off leads) in JP7, JP8 (note that the via near the label makes "JP8" look like "JP6"), JP9, and JP10.

  3. Install and solder 5.6 volt Zener diodes {1N4734ADICT-ND). These substitute in C39, C41, C43, and C45. The banded end goes closest to the the heat sink. You will have to space these about ½" (12mm) off the board to make the leads fit.

  4. Install and solder 0.001µF capacitors {399-4202-ND} in C40, C42, C44, C46.

  5. If (and only if) you are using the digital inputs for the manual gear lever determination such as with a 41te (as opposed to a variable voltage, Ford-style potentiometer) then you must add pull-up voltage to EGT3 and EGT4 (and GPI2). Do this by installing 330 Ohm resistors in R84 and R85.

I. VR1 (Output, OSS), VR3 (Input, VSS) (Vehicle speed sensor):

These circuits are built as a true VR 'zero-crossing' circuit, to convert the AC signal of a variable reluctor VSS sensor into a square wave signal for the processor.

  1. Install and solder the small NPN transistors {2N304FS-ND} in Q13, Q14, Q17 and Q18 There is a fat side and a rounded side on these transistors. The flat side of Q13, Q17 faces the Ampseal connector. The flat side of Q14, Q18 faces the heat sink. The pin spacing is very tight on these components, be sure not to bridge them with excess solder. If you do bridge them, use a solder wick to remove the excess solder. Make sure that Q14, Q18 does not touch the Zener diode in C40, C42 if installed.

  2. Install and solder 33K Ohm, 1/8 Watt resistors {orange-orange-orange, 33KEBK-ND} in R42, R43, R50 and R51.

  3. Install and solder a 2.0M Ohm, 1/8 Watt resistor {red-black-green, 2.0MEBK-ND} in R44, R52.

  4. Install and solder a 680K Ohm, 1/8 Watt resistor {orange-black-yellow, 680KEBK-ND} in R45, R53.

  5. Install and solder a 10K Ohm, 1/4 Watt resistor {brown-black-range, 10KQBK-ND} in R59, R62.

  6. Install and solder a 680K Ohm, 1/8 Watt resistor {red-red-yellow, 680KEBK-ND} in R37, R39.

  7. Install and solder a diode {1N4001DICT-ND} in D23and D25 with the banded end closest the heat sink, as shown on the silkscreen.

  8. Install and solder a 47 pF capacitor {399-4300-ND} in C28, C29, C32 and C33.


Check the fit of the completed board in the case. Make sure that none of the TIP120 tabs contact the case. If they do, reposition them as required.

This is a good time to clean the excess flux from the board. A common problem with boards that were working and quit for no apparent reason is flux residue. Remove the processor. Wash your board with:

Lightly scrub both sides of the PCB with an old toothbrush. When cleaning flux, it is sometimes impossible to wash it all off, some of it has to be scraped lightly to remove it. Use a round toothpick or wooden match broken in half for scraping the tough parts. This gives a small pointy end and large end to work with and reduces the chance of damaging the PCB. Be very careful not to damage the silk screen or traces. Rinse the PCB in hot water, then allow the PCB to dry completely. There should be very little haze left once it dries. Compressed air can speed the drying process, but be aware that some of the commercial compressed air cans have a solvent that can saturate any remaining flux and cause problems.

If there is still haze on the board after drying, or a white residue on any of the solder joints, you should rewash the board until these are completely eliminated. Note that because of the tight spacing of some of the SMD pins, the washing/drying is more critical on the GPIO board than it was on the V3 main board, for example.

Now that the board is complete, you can test each circuit to be sure the signals are appropriate (for example before installing the jumper for AD7/GPI4 (on the 25x2 header) and look for an appropriate brake signal on the pin closest the Ampseal connector. The signal must be above ~3.25 V (but not more than 5.6V) to be 'high' and below about 1.75 Volts to be 'low'). Once you are satisfied the circuits are within spec (NO 25x2 jumper pin should have more than 5.6 Volts on it at anytime or you could damage the processor), you can install the jumpers for the circuits in the table near the top of this web page.

If you want to seal the finished board, use a conformal coating. Wait until you have cleaned and tested the board thoroughly though. If you do not think you will be doing much repair work on the board, you can not beat silicone conformal coating. It does require some digging to get it off for repair, however. Avoid the urethane coatings, as they are considered permanent and are a pain to try to work through.

You can also buy a spray can of acrylic lacquer conformal coating at most local electronics suppliers for around $10.00. If you are going to be working the board, “Krylon Krystal” clear spray works very well. Several coatings, preferably baked at 175-200°F degrees in between. This should slow down or prevent "solder bloom" and other deterioration of the PCB. Condensation is a fact of life for an outdoor component undergoing temperature changes. If needed, you can solder right through the Krylon Krystal and the residue cleans well with pure grain alcohol.

Testing your GPIO with MShift™

Now that you have assembled your GPIO, and wired it into your vehicle (or a stim), you need to load the MShift™ code (loadable code files are listed here: Code Versions), and test the installation.

If you have a trans stim, then you can test on the bench. If you don't have a stim and have wired the GPIO into the vehicle, you will need to do your testing there.

Here is one procedure for testing:

  1. If in a vehicle, disconnect any high power outputs (shift solenoids, etc.). Temporarily connect small bulbs or LEDs (with a ~330Ω resistor in-line) from 12V to the shift outputs (so you can see their states in each gear).
  2. Set the parameters in MShift™ to match what your transmission requires (the defaults are for the 4L60E).
  3. Do NOT start the engine until instructed to later.
  4. Power up your GPIO. Connect the serial cable to the laptop, and use the tuning software to see if you can communicate with MShift™ If you can not, see the MS-II section here: http://www.megamanual.com/connect.htm (MS-II serial communications configuration and troubleshooting are identical in principal to the MShift™/GPIO).
  5. Once you can connect, first configure the VSS, gear ratios, solenoid PWM, inputs, and outputs, etc. to match your transmission and vehicle. Use the parameter descriptions above to help you set these. In most cases the defaults are for a 4L60E, but even then you must check that they are suitable for your installation. In most cases, once you set these correctly, you will not have to change them again. Save an MSQ file of your set-up so you can revert to it if necessary.
  6. Power up MShift™, and check the brake function. With your foot off the brakes, you should see 'Brakes OFF' in the indicator at the bottom of the tuning software front page (if you are using CAN, you may have to switch one of the indicators to brakes to see the status). When you put your foot firmly on the brakes, the indicator should change to 'Brakes ON'. If the indicator does not change, suspect your wiring, as troubleshoot/fix as required. If the brake indicator works backwards (shows ON when OFF and vice-versa), you need to change the polarity under 'General Settings/Standard Inputs/Outputs Configuration/Brake Signal Polarity'.
  7. Check that the TCC output is set to unlock the TCC. In the case of the 4L60E, the TCC is applied when current flows (the output is grounded, and a LED connected to it will light).
  8. Check the shift button function. With neither shift button pressed, you should see blank up and down shift indicators at the bottom of the tuning software front page (if you are using CAN, you may have to switch two of the indicators to 'UpShift Pressed' and 'DownShift Pressed' to see the status). When you press each shift button, the indicator should change to 'UpShift Pressed' or 'DownShift Pressed'. If it does not, check that your wiring and circuit are assembled correctly.
  9. If your transmission has a transmission fluid temperature sensor, verify that it provides a reasonable signal. If the vehicle has not been run for several hours, the reported temperature should be close to ambient temperature. If it is not, find out why - you may have to fix some wiring, or you may need to recalibrate the thermistor table.
  10. Check the manual gear shift lever function. Select 'Manual Gear' as one of the gauges on your front page. Without starting the vehicle, shift the manual gear selector lever through each of its gears. Verify that the Manual Gear gauge shows the actual position of the gear selector lever at all times. If it does not, then you may have a wiring problem with one of the gear inputs (AD0/EGT4/Amp26; AD1/GPI2/Amp6; AD3/EGT3/Amp25; and possibly PE1/GPI1/Amp5), or you may have misconfigured one or more of the input patterns.
  11. Check the shift solenoid output patterns. Do NOT start the vehicle. Verify that the shift solenoids show the output pattern on the shift solenoids you expect when the shift lever is in neutral and reverse.
    1. Ouput1 is connected to Ampseal pin #23 (circuit VB3, CPU pin PE4),
    2. Ouput2 is connected to Ampseal pin #35 (circuit VB4, CPU pin PM2),
    3. Ouput3 is connected to Ampseal pin #34 (circuit PWM4, CPU pin PT1),
    4. Ouput4 is connected to Ampseal pin #12 (circuit VB2, CPU pin PA0),
    If the output pattern you see does not match what you expect, check the output patterns, wiring, and circuits to find out why. Do not proceed without getting this working correctly.
  12. If you have enabled PWM on any of the shift solenoid outputs, verify that you have put a 1N4001 (or equivalent) diode across the solenoid (as close to the solenoid as you can). The non-banded end goes to the wire that goes from the solenoid to the GPIO Ampseal connector, the banded end of the diode goes to the 12V supply to the solenoid.
  13. Re-connect the outputs (1/2/3 maybe 4) to the shift solenoids.
  14. Raise the driven wheel off the ground and place jack stands under the frame to hold the car. Place chocks on the un-driven wheels. Start the car.
  15. Verify that you are seeing rpm and load in the tuning software. If you are not, figure out why and correct it.
  16. With your foot on the brake, shift the car into first. Verify that the car shifts into gear (you should be able to feel this).
  17. Release the brakes and allow the wheel to rotate slowly. You should see the speedometer in the tuning software pick up. If you do not, verify that you have one wire of the VR sensor connected to AMP2 (PT0/VR1) and the other to ground. Check that you have set the correct number of teeth, etc. in the VSS Set-up menu. You might need to adjust the sensitivity of the circuit by altering the 'VSS Input Masking' parameter - smaller number make the input less sensitive. You may have to adjust the You might have to with the trigger edge as well. Do not proceed until you can get an accurate speedometer above ~10-12 mph.
  18. Get the vehicle off the jack stands.
  19. Connect the laptop and open the tuning software. Start a datalog.
  20. Drive the vehicle very slowly (in first gear). With as little acceleration as you can, get the vehicle to a speed where you would expect it to shift to second gear (based on the 12x12 shift table). Verify that the shift happens, and that the transmission does in fact go to second gear (and not some other gear). If it is not right, check you shift solenoid wiring and the shift solenoid output patterns. Do not proceed until this is right.
  21. Once the 1-2 shift is working correctly, proceed cautiously to each additional forward gear by increasing the vehicle speed gently and verifying that you get the correct shift at the right time.
  22. Once all the forward gears are verified in auto mode, try the up and downshift buttons to verify that they work as planned. There are a number of shift parameters you can use to tune the shift behavior here: Shift Factors
  23. Finally, verify that the TCC lock-up function works as you expect. You should be able to see the engine rpm decrease about 100-150 rpm when the converter locks up, and the TCC locked indicator will light in the tuning software.
  24. Use the tables and remaining parameters to get the transmission to function how you prefer.


MegaSquirt® and MicroSquirt® controllers are experimental devices intended for educational purposes.
MegaSquirt® and MicroSquirt® controllers are not for sale or use on pollution controlled vehicles. Check the laws that apply in your locality to determine if using a MegaSquirt® or MicroSquirt® controller is legal for your application.
© 2010 Bruce Bowling and Al Grippo and Lance Gardiner. All rights reserved. MegaSquirt® and MicroSquirt® are registered trademarks. This document is solely for the support of MegaSquirt® boards from Bowling and Grippo.