Click on our menu buttons immediately below to find MegaSquirt® information quickly:



Click here for MegaSquirt® MegaManual™ Information, Guides, and Links

MegaShift™/GPIO v2.10 Build Instructions

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 GM 4L60E transmission (other transmissions may be similar, but may require some changes to suit their requirements). The parts requires are detailed here: pgpbom.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. There are optional uses for I/O circuits not described in this document, such as the spare ports, and these circuits will need to be built to suit your intended use(s).

For example, here is how the ports and circuits are assigned for the MShift™ transmission controller code:

MShift
Function
Processor
Port
GPIO
Circuit
GPIO AMP
Connector Pin
Output1 (Sol A)PE4VB323
Output2 (Sol B)PM2VB435
Output3 (Sol32)PT1PWM434
PCPT2PWM333
TCCPT3PWM232
LED1PM4GPO110
LED2PM3GPO27
LED3PM5GPO38
LED4PB4GPO4 9
Input 1 (switchA)AD0EGT4 (build as GPI)126
Input 2 (switchB)AD1GPI2 (jumper at 25x2 header)6
Input 3 (switchC)AD3EGT325
Paddle UPPT6VR2 15
Paddle DOWNAD6GPI54
VSS PT0VR12
Temp SensorAD2GPI330
Brake SenseAD7GPI43
Speedo OutputPT4PWM131
Spare Output1 (SP1)PT7VB1
(jumper at 25x2 header)
11
Spare Output2 (SP2)/Output4PA0VB212
non-CAN MAP/TPS/MAF AD5EGT124
Line Pressure SensorAD4EGT227
2WD/4WD Sense/Input4PE1GPI15
non-CAN tachPT5VR314

To assemble your GPIO board, 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® controllers. 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 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 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 regarding the serial connection at the GPIO board: You can bring the serial communications out a serial jack (with a 2.5mm mini stereo jack, which is convenient to plug/unplug when desired) OR you can bring the serial communications out the Ampseal connector (which offers the possibility of weather sealing).

    The serial communication connections connections are:

    FunctionAmpseal PinMini-Stereo JackDB9 Pin
    Tx22tip
    (left channel for stereo)
    2
    Rx21ring
    (right channel for stereo)
    3
    Ground17barrel
    (ground)
    5

    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 Ampseal pin 17 as a ground.
      • You can devise your own serial cable, the illustrations for the serial jack below might help. Many users connect the Ampseal serial pins to a DB9 connector, which can then be plugged into like a normal MegaSquirt or MegaSquirt-II, like this:

        Note that the Ampseal pin numbers 1, 12, 13, 23, 24 and 35 are imprinted into the plastic connector adjacent these pins to help you orient the connector and find the appropriate pins.

    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}.

        If you look carefully at the connector mating surface, you will see that the pin numbers are embossed into the plastic adjacent each pin.

      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 your 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.

  11. 25x2 Header {WM8135-ND, S9000-ND}: Before installing the header, you must use insulated wire (~20-22 gauge) to jumper: Do these jumpers first, then cut the 25x2 header with small side cutters to fit remaining holes as necessary. Solder each of the header pins from the bottom side of the board (you can use tape to hold the header in place while it is upside down). For now, do not install jumpers on all the applicable circuits (see the table near the top of this document). You can do that after checking the circuits at the end of the build process.
    You can use snipped off leads as jumpers instead and save several dollars on the WM8135 header and jumpers - if you are doing this, wait until the end of the build to install the remaining jumpers - and save the snipped off leads from other components as you go.
    (You could install the complete 25x2 header then jumper the relevant pins by soldering wires directly to the header pins, if you prefer. Be sure not to bridge adjacent pins, of course.)

    Double check that you have jumpered the correct locations.

    Note that on the V2.00 GPIO boards ONLY, NOT the V2.10 boards, there are errors on the silkscreen labeling at the 25x2 header, this was corrected on V2.10 boards. The actual circuit connections are the same on both boards, they are just labeled correctly on V2.10+ boards. See this link for more information.

  12. Now that you have assembled the base circuits on your GPIO, you need to load the MShift™ code (loadable code files and instructions are listed here: Code Versions). Completing this step will verify that CPU and serial communications circuits are functioning.

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 (VB1 & VB 2 only needed if using spare or clutch outputs):

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 {TIP120-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 TIP120 pins) so that it clears the resistor you will install in the next step. Slide the mica over the TIP120'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 TIP120 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 TIP120 pins from the bottom side of the board.

    Check the resistance from the TIP120 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 the transistor 1.0K Ohm, 1/8 Watt base resistors {brown-black-red, 1.0KEBK-ND} 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:

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 {TIP120-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 TIP120/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 TIP120/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 TIP120/RFP30N06LE pins from the bottom side of the board.

    Check the resistance from the TIP120/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 1.0K Ohm, 1/8 Watt transistor base resistors {brown-black-red, 1.0KEBK-ND} in R1, R2, and R4. For R3, install a jumper made from a snipped off lead in this position.

  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. Input2), 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 4L60E (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. Input3), swA (aka. Input1)):

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 4L60E (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 (Vehicle Speed Sensor):

This circuit is 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.

Note that some of the VSS/VR1 components may need to be changed after assembly in order to get a clean VSS signal, depending on your installation. The details are on this page.

  1. Install and solder the small NPN transistors {2N3904FS-ND} in Q13 and Q14. There is a flat side and a rounded side on these transistors. The flat side of Q13 faces the Ampseal connector. The flat side of Q14 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 does not touch the Zener diode in C40.

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

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

  4. Install and solder a 300K Ohm, 1/8 Watt resistor {orange-black-yellow, 300KEBK-ND} in R45. Space it up off the PCB by about 1/4 inch (6 mm) in case you need to change it later. This resistor sets the trigger voltage on the VSS input circuit. The crossing point detection on the VR circuit may be biased too close to ground for some installations. However it is set up this way to pick up the VSS signal at the lowest speeds. However, the default trigger configuration might trigger on low-voltage noise in the signal. So you may need to change this resistor once you have MShift™/GPIO running in your vehicle. If you notice your speedometer jumps to very high values at low speeds, and adjusting the filtering options doesn't help, then you can try biasing the circuit up a bit. The best way to do this is to change R45 to a lower resistance. The specified value is 300K Ohms, and you can try from 47K to 220K Ohms to eliminate the false triggering on a noisy signal (the lower the resistance, the higher the trigger voltage). There are more tips on getting a clean VSS signal on this page.

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

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

  7. Install and solder a diode {1N4001DICT-ND} in D23 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.

  9. Install and solder a 470 pF capacitor {399-4301-ND} in C29 (the label for C29 is partially obscured on silkscreen)

J. VR2 (upshift button):

This circuit is located below the center of the board. It is built as a digital input (with a pull-up).

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

  2. Install and solder a 5.6 volt Zener diode {1N4734ADICT-ND} in D24 with the banded end closest the heat sink as shown on the heat sink.

  3. Install and solder a 0.1µF capacitor {399-4329-ND} in C30.

  4. Install and solder a jumper (snipped lead) on R60.

  5. Install and solder a 330 Ohm resistor {330EBK-ND} from the hole for C31 (the "1" in C31 is partly obscured by the silkscreen for R50) closest the Ampseal connector to the hole for R48 (this spot is empty) closest the heat sink. This is the pull up resistor for the upshift circuit.

  6. Install and solder jumper insulated wire (~20-22 gauge) wire from the empty location of R49 (use the hole nearest the heat sink) to Q15 (to the pin nearest heatsink).

K. Finishing Touches

There are few more things to do before your board is finished and ready for use:

  1. Fit: 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.

  2. Clean: 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.

  3. Test: Once the board is assembled and installed, 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), 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'. Generally, you want to check each circuit that has the potential to have more than 5 Volts on it. If you are not sure, ask on the MShift™/GPIO forums.

  4. Jumpers: Once you are satisfied the circuits are within spec (that is, you are certain that NO 25x2 jumper pin will 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 below. The jumpers are on a 25x2 header. Each pair of pins is labeled with the processor pin on the left, and the circuit on the right. You need to install the jumpers to connect the circuits to the processor, otherwise the corresponding input/output functions will NOT be enabled.

    Jumper Chart
    Transmission
    Function
    Processor
    Port
    GPIO
    Circuit
    GPIO AMP
    Connector Pin
    Output1 (Sol A)PE4VB323
    Output2 (Sol B)PM2VB435
    Output3 (Sol32)PT1PWM434
    PCPT2PWM333
    TCCPT3PWM232
    LED1PM4GPO110
    LED2PM3GPO27
    LED3PM5GPO38
    LED4PB4GPO4 9
    Input 1 (switchA)AD0EGT4 (build as GPI)126
    Input 2 (switchB)AD1GPI2 (jumper at 25x2 header)6
    Input 3 (switchC)AD3EGT325
    Paddle UPPT6VR2 15
    Paddle DOWNAD6GPI54
    VSS PT0VR12
    Temp SensorAD2GPI330
    Brake SenseAD7GPI43
    Speedo OutputPT4PWM131
    Spare Output1 (SP1)PT7VB1
    (jumper at 25x2 header)
    11
    Spare Output2 (SP2)/Output4PA0VB212
    non-CAN MAP/TPS/MAF AD5EGT124
    Line Pressure SensorAD4EGT227
    2WD/4WD Sense/Input4PE1GPI15
    non-CAN tachPT5VR314

    (A few circuits are jumpered by wires as instructed earlier in the build process, obviously these don't get a separate jumper across the adjoining pins.)

  5. Sealing: 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. 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 Board with MShift™ Code

Before you start driving your vehicle, you will need to test the board and harness to make sure it operates safely and as expected. There are some suggestions for testing your assembled GPIO board with MShift™ code on this page. 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.



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.
© 2008, 2013 Bruce Bowling and Al Grippo. All rights reserved. MegaSquirt® and MicroSquirt® are registered trademarks. This document is solely for the support of MegaSquirt® boards from Bowling and Grippo.