Transmission ECU – Hello world Time

So, the first part of our Transmission ECU build is to install the basic circuitry and hardware for our PC coms so we can Flash the ECU with the megashift Firmware.


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 Ampseal pin 17 as a ground.
      • You can devise your own serial cable, the illustrations below might help.

    2. 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 GPIO 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 GPIO 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.
    3. 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.)


    4. BDM (Background Debug Module) header: This 3×2 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. 


    5. 25×2 Header {WM8135-ND, S9000-ND}: Before installing the header, you must use insulatedwire (~20-22 gauge) to jumper:
      • AD1 to GPI2 at 25×2 header, and
      • PT7 to VB1 at 25×2 header.

      Do these jumpers first, then cut the 25×2 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 25×2 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.

    1. 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 25×2 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.

      Loading Code on Your GPIO Controller Now that you have assembled the base circuits on your GPIO, you need to load the GPIO code. Completing this step will verify that CPU and serial communications circuits are functioning. To use Eric Falgren’s Windows downloader.exe:

    1. Power down the GPIO Controller,
    2. Put the boot jumper on both pins of the header marked JP5 (for “bootloader”) near the serial plug on the GPIO board,
    3. Power up the GPIO Controller by connecting the power supply ground on one of the Ampseal pins 18, 19, 20 (through the appropriate lead). Then apply 12 volts (nominal, 9V to 15V is okay) to Ampseal pin 1.
      Note: When in bootloader mode, the GPIO may allows a full 12V to flow in some circuits. If your set-up depends on PWM to limit the current in these solenoids, you MUST pull the fuse to these devices before entering bootloader mode to load new code.
    4. Start the Windows downloader program (get it here), and select the appropriate COM port number for your serial connection (if you don’t know your serial COM port, run the portCheck program).
      See this link for downloading using other platforms than Windows..
    5. Select the appropriate .S19 file, and the downloader will read, write and verify the code to the processor in about 10 seconds or so.
    6. The process ends with a message like “Verification succeeded, XXX records total (4 skipped).” (where XXX is a large number that varies from one code version to the next),
    7. Shut down the downloader program,
    8. Remove power from the GPIO Controller,
    9. Remove the boot jumper (or put it on just one pin of the boot header for storage),
    10. Start the tuning software (TunerStudioMS) and set the COM port and speed if necessary.
    11. You will need to download and activate the latest INI file. Under the ‘File/Project/Project Properties’ of TunerStudio, click on the ‘Other’ check box.
    12. Click the ‘Browse’ button.
    13. Navigate to the INI file you downloaded for your code (for example, for MShift™ code you would use the INI from the link
    14. Click on the appropriate INI file you downloaded from the code page ( to activate it.

Leave a Reply

Your email address will not be published. Required fields are marked *