DIY Dual-ROM Setup (27C512 Jumper Switch)
Hardware modification guide to creating a dual-ROM setup using a 27C512 EPROM and a toggle switch to select between two engine tunes.
Adapted from pgmfi.org wiki
A standard Honda OBD0 or OBD1 ECU ROM calibration is 32 KB (256 kilobits) and fits on a standard 27C256 chip. By using a double-capacity 27C512 EPROM (64 KB / 512 kilobits), you can store two complete, independent ROM calibrations on a single physical chip and toggle between them using a simple dashboard switch.
1. ROM File Preparation
To create a dual-ROM binary:
- Open your ROM editing software (such as Crome or TurboEdit) and save your two separate 32 KB tuned BIN files (e.g.,
Tune_A.binandTune_B.bin). - Use a file merger tool or a hex editor to combine the two files into a single 64 KB binary:
- Lower Bank (Offset
0x0000to0x7FFF): PlaceTune_A.binhere. - Upper Bank (Offset
0x8000to0xFFFF): PlaceTune_B.binhere.
- Lower Bank (Offset
- Program the merged 64 KB file onto a
27C512EPROM or SST27SF512Flash chip.
2. Hardware Modification & Wiring
To toggle between the two memory banks, you must control the state of the highest address line on the 27C512 chip: Pin 1 (A15).
- When Pin 1 is grounded (0V), the address lines access the lower 32 KB bank (
A15 = 0). - When Pin 1 receives +5V (VCC), the address lines access the upper 32 KB bank (
A15 = 1).
27C512 EPROM Chip
+------()------+
[Switch] <---|1 (A15) 28| VCC (+5V Power)
|2 27|
|3 26|
... ...
|14 (GND) 15|
+--------------+
Step-by-Step Wiring:
-
Isolate Pin 1: Bend Pin 1 (A15) on your
27C512EPROM chip outward at a 90-degree angle so it does not insert into the ECU socket.Caution
Pin 1 of a standard ECU
27C256socket carries a constant +5V line (which serves as the programming voltageVPPpin on older chips). If you do not bend Pin 1 outward and you ground the switch, you will create a direct short circuit on the ECU's +5V power rail, instantly shutting off the engine and potentially damaging the ECU's voltage regulator. -
Solder Jumper Resistor: Solder a 10k $\Omega$ pull-up resistor between the bent Pin 1 and Pin 28 (VCC, +5V power) of the chip. This keeps the pin high (+5V) by default when the switch is open.
-
Wire the Switch: Connect a wire from the bent Pin 1 to a single-pole single-throw (SPST) toggle switch in your dashboard. Connect the other side of the switch to a chassis ground point (or Pin 14 of the ECU board).
- Switch Open: Pin 1 is pulled up to +5V (running
Tune_B). - Switch Closed: Pin 1 is grounded (running
Tune_A).
- Switch Open: Pin 1 is pulled up to +5V (running
3. Best Practices for Dual Tunes
- Disable Checksums: Ensure checksum validation is disabled on both ROM files before writing them to prevent the ECU from triggering a solid Check Engine Light (limp mode) during switching.
- Keep Codebases Identical: If you plan to switch on the fly (for example, engaging a nitrous tune when a solenoid activates), ensure both ROM files utilize the exact same codebase version. The only differences should be the fuel and ignition values in the lookup tables. Switching between different codebase structures while the engine is running will crash the MCU.
Credits and source
Authors 1net
Source Adapted from Dual Roms on pgmfi.org wiki. Licensed under CC BY-NC-SA 1.0.