5VZ Swap

RM Control Systems uaEFI · rusEFI · TunerStudio

Aftermarket ECU

The plug-in standalone ECU that will run the supercharged 5VZ: what is settled, what is proposed, and what to ask RM.

Conclusions and questions for RM

The short version of everything in this folder (updated 2026-11-05). The details are in README.md, the wiring decisions in decisions.md, and the pin-by-pin table in pinout.md.

The ECU

What RM has told us (messages, Sept–Nov 2026)

TopicRM's answer
Manual transmissionTransmission control is simply turned off; that's already done on this unit. "Even if you left it on, it wouldn't hurt anything."
EVAP"It doesn't care about the evap canister." Purge can still be controlled in the tune if wanted.
KnockRM started on knock but hasn't worked on it in a while. He recalls the stock knock sensors being "old tech" that "didn't really work all that great." There's no tested knock setup to copy.
Narrowband O2They're connected to the ECU, but RM hasn't tried using them. The tune could probably use them, but only to target 14.7 AFR.
WidebandTwo ways: (1) the ECU's onboard controller drives an LSU 4.9 directly, with a harness RM sells or one you make; (2) a wideband gauge (e.g. AEM) runs the sensor and sends its signal to an ECU input. Sensor: Bosch LSU 4.9, common part 17025. RM buys from RockAuto; the part numbers differ mainly in wire length.
O2 bungAn adapter converts the factory 2-bolt O2 flange to a screw-in sensor, so no welding is needed. RM's link: https://ebay.io/m/G0kMg2
Spare terminalsRM buys them from Corsa Technic. Part numbers: MLC040II-SKT1 (Toyota 82998-24110) or MLC040II-SKT2 (82998-24120), as on the sheet.

Conclusions so far

TopicConclusionStatus
Fuel loadFactory MAF. The base tune uses it, and the Magnuson is draw-through (throttle body on the blower inlet), so the MAF sees all the air.Decided
InjectorsThe base tune is set for the Supra/2JZ 312cc injectors (RM). That matches the parts list: Denso 23250-46050, 312 cc at 43.5 psi, 13.4 Ω. Confirm the injector data in the tune is for that part.Set by RM
MAP sensorNo separate sensor. Without one there's no boost reading. The boards have an MPXH6400 on-board MAP footprint, the spot with the orange sticker, which reads up to about 400 kPa. If it's fitted, one vacuum hose gives boost readings. Otherwise it's 3 terminals (E12-17, E11-4, E10-10).Check on the board
Crank and cam sensorsWork with Toyota's shared sensor ground, with no harness changes (RM).Answered by RM's docs
Fuel pumpFC (E10-18) is most likely wired inside the board to the uaEFI's "Fuel Pump Relay" output, B16. It isn't on either sheet, and it's the only output RM doesn't list. No wiring change needed. Expect a pump prime at key-on.Inferred, ask RM
WidebandBosch LSU 4.9 (17025). Use the onboard controller, with RM's harness or 6 new E12 terminals, or a wideband gauge feeding an analog input. One sensor, after the banks merge and before the cat. A flange-to-screw-in adapter avoids welding.Proposed
Narrowband O2Drop both. The wideband replaces the upstream one, and the downstream one only monitors the cat. RM confirms the narrowbands could only target 14.7 anyway.Proposed
DLC1 diagnosis boxRemove it for clean wiring. Neither ECM needs it. Keep TE1 as a capped pigtail for the stock-ECM timing check.Decided
OBD-IICAN on DLC3 pins 6 and 14, from E9-25/26, as a twisted pair, using the two loose pins in the kit. Pin 7 K-line stays for the stock ECM.Proposed
CAN gaugePlugs into DLC3. Pick one that reads Haltech or MS Simplified Broadcast to see everything: RPM, temperatures, TPS, MAF, AFR, timing, knock, injector duty, trims, voltage. It can't show boost without a MAP sensor, and there's no vehicle speed. Use a 120 Ω terminator at each end of the bus.Gauge not chosen
EVAPNo EVAP wiring. The purge valve, vapor valve and vapor sensor come off the engine, and their wires are de-pinned. Cut the vapor sensor's shared 5 V and ground on the sensor side only. The tank vents through a pressure-and-vacuum vented cap, or a vent line and rollover valve to a filter or canister. RM: the ECU doesn't care.Decided
KnockRM has no tested knock setup and doesn't trust the stock sensors. Plan: a conservative boost tune plus external knock monitoring (det cans) for the boosted pulls. Treat the ECU's knock input (one channel, bank switch, bore 93.5 mm) as an extra, not as protection.Decided (user, 2026-10-20)
Catalytic converterRecommend a high-flow cat. Removing it is a federal tampering issue, it smells, and it gains little power at this boost.User's call

Questions still open for RM

  1. Fuel pump: is FC (E10-18) wired to output B16 "Fuel Pump Relay"? Is Fuel Pump output = B16 set in the tune?
  2. +B at E12-19: do I need to add this feed? Is it the power for the onboard wideband heater? Is the factory +B at E12-23 still used?
  3. On-board MAP: is the MPXH6400 on-board MAP fitted on the 97–98 board, under the orange sticker? Do you supply a barb and a case fitting for the vacuum line?
  4. Check it yourself:
  5. Look: peel back the orange sticker. A fitted sensor shows a small port hole; an empty spot shows bare solder pads.
  6. TunerStudio (ECU powered, engine off): select "On-board MAP" as the MAP input. It should read atmospheric pressure: about 100 kPa at sea level, but only about 83 kPa at 5,400 ft.
  7. Gentle suck test on the port through a short hose. The reading should drop. Don't blow hard into it.
  8. If it works: run a vacuum line from the intake after the blower, through a firewall grommet, to the ECU. It only has to hold MP62 boost, about 6–8 psi [assumed; check the Magnuson manual].
  9. CAN termination: is there a 120 Ω terminator on CAN1 (E9-25/26) on the board? Is it switchable?
  10. CAN gauge: which broadcast format do you recommend for a dash or gauge? Does the firmware answer OBD-II requests over CAN, and which values?
  11. Starting with NSW empty: with the A/T neutral-start input (E9-14) left empty on a manual, does the cranking logic need a neutral or clutch input?
  12. Injector #5: the sheet shows "B2 Injector Output 2" for #5, the same name as #2. Is that a typo for output 5?
  13. Unlisted factory pins: are IGF (E9-12), TE1, the SIL K-line (E12-8) and TPC used at all?
  14. No vehicle speed: the 88 has a cable speedo, so SP1 and SP2 have no signal. Does anything in the tune (idle or fuel cut) need vehicle speed?
  15. Mac: any problem connecting from macOS? (Your guide covers the Windows driver only.) Which firmware is on this unit?

Answered by RM, removed from this list:

Wiring decisions to revisit

Proposed 2026-11-05 while planning the RM uaEFI. None of these are applied to the strip list or the adapter build list yet. Come back to each one, mark it ✅ decided or ❌ rejected, and then make the file changes listed under it.

Background for all of these: README.md (this folder), pinout.md, RM's .ini (firmware 2026.09.09).

D1. Wideband: Bosch LSU 4.9 on the uaEFI's onboard controller (status: proposed)

E12 pinSensor pinSignalWire
31IP20 AWG
92VS/IP20 AWG
43H−18 AWG
184H+18 AWG
255CalR20 AWG
206VS20 AWG

D2. Drop both narrowband O2 sensors (status: proposed)

D3. Remove the DLC1 diagnosis box (status: ✅ decided 2026-11-05, user wants clean wiring)

D4. CAN OBD-II at DLC3 (status: proposed)

D5. CAN gauge that shows everything (status: proposed, gauge not chosen)

An OBD-II PID gauge (ScanGauge / UltraGauge) also works, but it shows fewer channels.

D6. EVAP: ✅ decided 2026-11-05: no EVAP wiring at all (option B on the engine; tank vents through a vented cap or a vent line, no wires)

Applied to harness-strip-list.md. The original proposal follows for reference.

They're only used for leak-detection codes. ⚠ The sensor shares VC (5 V) and E2 (sensor ground) with the TPS, MAF and ECT. Cut only on the sensor side of the splice.

D7. Catalytic converter (status: open, user's call)

D8. Fuel load: MAF or MAP (status: MAF, MAP sensor skipped for now, 2026-11-05)

Speed-density also needs an intake air temp sensor after the blower, because the factory IAT is in the MAF, ahead of it. It also takes a full VE table tune.

D9. Knock (status: ✅ decided 2026-10-20: conservative tune plus external knock monitoring)

Use knock retard only as a safety net.

  1. When tuning on a dyno: have the tuner listen with audio knock detection (det cans). It catches what one sensor misses.
  2. Wiring: keep both knock wires' shields intact (EB1, shielded). Don't splice the shield into anything.

Full ECU notes

Notes for the aftermarket ECU that will run the supercharged 5VZ-FE: choosing it, wiring it, base-mapping it and tuning it.

The ECU

Laptop setup (RM Getting Started guide, 2026-10-28)

  1. Cable: a USB-C cable that carries data. Many are charge-only.
  2. Driver: RM's guide gives the STM32 Virtual COM Port driver (STSW-STM32102). That's for Windows. On a Mac the ECU should show up as /dev/cu.usbmodem… with no driver [assumed: the standard behavior for STM32 USB serial devices; not in RM's guide].
  3. Software: TunerStudio MS. RM recommends the registered version for VE Analyze Live and logging. EpicTuner is a free alternative.
  4. New project: Firmware → Detect → Accept. If it doesn't load the .ini, download the one whose folder date matches the firmware. Pick the COM port, then Next.
  5. Save the base tune right away (File → Save Tune As) before changing anything.
  6. Calibrate the TPS: Sensors → Throttle Position Sensor. Enter the closed and wide-open ADC values with the engine off.
  7. Optional dashboards: put custom.ini in the project's projectCfg folder and restart TunerStudio. Then load the Imperial or Metric .dash file.
  8. Spare terminals for the open cavities:
  9. ECM plugs: MLC040II-SKT1 (Toyota 82998-24110) or MLC040II-SKT2 (82998-24120).
  10. OBD2 port CAN pins: BD-SKT (776001-1).

Where things stand (from the rest of the repo)

What RM's sheets show (2026-11-05)

Populated by RM (the board uses the factory wire):

Open (needs terminals you add):

Flags to settle with RM before wiring

  1. Crank sensor (NE+ E10-5, NE− E10-6): mostly answered. RM's post and repo say the board works with the factory crank and cam sensors and Toyota's shared sensor ground, with no harness changes. It isn't on the sheets because it has no TunerStudio channel. Only use G− (E10-11) if the cam's negative wire has been separated. Ours is still shared.
  2. Still unanswered: these factory pins aren't on the sheets:
  3. power and grounds: +B E12-23, BATT E12-14, E01/E02/E03, E1, E2, E3;
  4. sensor 5 V supply: VC E10-1;
  5. other functions: FC (fuel pump control) E10-18, IGF E9-12, TE1, SIL (OBD) E12-8, TPC.

FC is the one that matters. Best guess: it's hard-wired to the uaEFI's fuel pump output, B16. The evidence is RM's TunerStudio .ini (firmware 2026.09.09):

How the pump chain then works. No wiring change from the plan in adapter-build-list.md and conversion-wiring-table.md:

  1. uaEFI B16 grounds FC (E10-18). It does this for a prime at key-on, and whenever it sees the crank turning. It lets go about a second after the engine stops.
  2. FC → II3-26 → N5-8 → the 88 circuit opening relay, Fc coil (88–132 Ω, so only about 0.1–0.16 A for the output).
  3. The circuit opening relay closes → N5-1 (Fp) goes live → Relay B coil (86). Pin 85 goes through the kill switch to ground.
  4. Relay B → 20 A feed → DW200.

Two differences from the stock 98 ECM:

How to confirm on the bench (before trusting it in the truck):

Check the injector channel mapping in TunerStudio.

Open questions

Files

98 ECM pins vs the uaEFI board

Generated by tools/ecu_pinout.py from research/pins98.json (factory, EWD319U / RM580U) and ecu/rm-uaefi-pins.json (RM Control Systems sheets). Don't hand-edit; change the JSON and rerun.

E9 (plug A)

PinFactoryFactory functionSwapuaEFIuaEFI functionTunerStudiouaEFI note
14WD4WD-engaged input from the ADD indicator switch (via ED1-2 and II3-9), also lights the meter 4WD lampkeeppopulated4WD/AWDMEGA_EPIC_D294WD indicator
2L4Transfer L4 position detect switch D4 (A/T shift logic)removepopulatedL4MEGA_EPIC_D25Transfer case low range
3–Not usedemptyopenLowside output (with PWM)B17 Low Side Output 3PWM ground output
4–Not usedemptyopen7th injectorB9 MR Weak LS 17th injector negative here, positive to +B (12 V)
5#60Injector No.6 drivekeeppopulated#60B1 Injector Output 6Injector #6
6#50Injector No.5 drivekeeppopulated#50B2 Injector Output 2Injector #5
7#40Injector No.4 drivekeeppopulated#40B3 Injector Output 4Injector #4
8#30Injector No.3 drivekeeppopulated#30B4 Injector Output 3Injector #3
9#20Injector No.2 drivekeeppopulated#20B5 Injector Output 2Injector #2
10#10Injector No.1 drivekeeppopulated#10B6 Injector Output 1Injector #1
11S1A/T shift solenoid No.1removepopulatedS1MEGA_EPIC_D39Shift solenoid 1
12IGFIgnition confirmation signal from igniter I2-4keepnot listed
13STAStarter signal (cranking) via II1-6keeppopulatedSTAMEGA_EPIC_D28Cranking signal
14NSWPark/neutral start signal (A/T), fed from 7.5A STA via II3-2 and P1removepopulatedNSWMEGA_EPIC_D32Neutral safety switch
15IGT3Ignition trigger 3 to igniter I2-5keeppopulatedIGT3B12 Coil 3Ignition coil #3
16IGT2Ignition trigger 2 to igniter I2-6keeppopulatedIGT2B14 Coil 2Ignition coil #2
17S2A/T shift solenoid No.2 (also spliced to II1-4 -> cruise ECU ECT)removepopulatedS2MEGA_EPIC_D41Shift solenoid 2
18–Not usedemptyopenIgnition output 4B11 Coil 4MUST be used with an igniter or smart coils
19–Not usedemptyopenIgnition output 5B13 Coil 5MUST be used with an igniter or smart coils
20–Not usedemptyopenIgnition output 6B10 Coil 6MUST be used with an igniter or smart coils
21–Not usedemptyopenAUX2C3 AUX2Analog input #2 (0-5 V)
22RSCIdle air control valve close coil (I1-3)keeppopulatedRSCB18 Low Side Output 2Idle air control valve - close
23RSOIdle air control valve open coil (I1-1)keeppopulatedRSOB7 Low Side Output 1Idle air control valve - open
24IGT1Ignition trigger 1 to igniter I2-7keeppopulatedIGT1B15 Coil 1Ignition coil #1
25–Not usedemptyopenCAN1HN/ACAN high. To use the stock OBD2 port, pin BD-SKT (776001-1) into OBD2 pin 6
26–Not usedemptyopenCAN1LN/ACAN low. To use the stock OBD2 port, pin BD-SKT (776001-1) into OBD2 pin 14
27SLA/T lock-up solenoidremovepopulatedSLMEGA_EPIC_D5TCC lockup solenoid
28E03ECM power ground (heater circuit) to ECkeepnot listed
29–Not usedemptyopenTPS2C14 TPS2Throttle position sensor 2 (any 0-5 V analog input)
30OILATF temperature sensor A3removepopulatedOILMEGA_EPIC_ADC_12Automatic transmission fluid temperature
31PSWPower steering oil pressure switch P22 (idle-up). Removed 2026-10-19: 3VZ PS lines have no switch portremovepopulatedPSWMEGA_EPIC_D27Power steering switch
32–Not usedemptyopenAUX1D1 AUX1Analog input #1 (0-5 V)
33E02ECM power ground to ECkeepnot listed
34E01ECM power ground (injectors) to ECkeepnot listed

E10 (plug B)

PinFactoryFactory functionSwapuaEFIuaEFI functionTunerStudiouaEFI note
1VC5 V sensor supply (TPS, vapor pressure sensor)keepnot listed
2–Not usedemptyopenHB1+H-bridge 1 +
3–Not usedemptyopenHB1-H-bridge 1 -
4SP2-A/T No.2 vehicle speed sensor V3 (-)removenot listed
5NE+Crankshaft position sensor C2-1 (+)keepnot listed
6NE-Crank/cam sensor common (-), C2-2 and C1-2keepnot listed
7VTAThrottle position sensor signalkeeppopulatedVTA (TPS)D13 TPS1Throttle position sensor
8VGMass air flow meter signalkeepnot listed
9SP2+A/T No.2 vehicle speed sensor V3 (+)removepopulatedSP2+C18 VR1+ DiscreteSpeed sensor 2 (selector switch on the board: 4Runner/Tacoma or T100)
10–Not usedemptyopenSensor groundN/AFor sensor grounds only
11–Not usedemptyopenG-N/AFor separated negative VR leads in the factory harness. Connect camshaft VR- here
12PWRA/T pattern select switch (PWR) via II3-6removepopulatedPWRMEGA_EPIC_D24ECT PWR button (automatic transmission)
13OX1Heated O2 sensor bank 1 sensor 1 signal (shielded)keeppopulatedOX1MEGA_EPIC_A1Upstream narrowband O2 signal
14KNK2Knock sensor No.2 via EB1-2 (shielded)keeppopulatedKNK2D14 Knock InputKnock sensor bank 2 (selector switch on carrier board: KNK1 or KNK2)
15KNK1Knock sensor No.1 via EB1-1 (shielded)keeppopulatedKNK1D14 Knock InputKnock sensor bank 1 (selector switch on carrier board: KNK1 or KNK2)
16–Not usedemptyopenSensor groundN/AFor sensor grounds only
17G+Camshaft position sensor C1-1keeppopulatedGC7 HALL3Cam signal
18FCFuel pump control: grounds circuit opening relay coil via II3-26keepnot listed
19OX2Heated O2 sensor bank 1 sensor 2 signal (shielded)keeppopulatedOX2MEGA_EPIC_A15Downstream narrowband O2 signal
20THWEngine coolant temp sensor via EC1-2 (G-Y on sensor side of EC1)keeppopulatedTHWD16 CLT CoolantEngine coolant temperature
21THAIntake air temp (in MAF)keeppopulatedTHAD15 IATIntake air temperature
22E2Sensor ground (TPS, MAF, ECT, vapor sensor, ATF temp); not chassis groundkeepnot listed

E11 (plug C)

PinFactoryFactory functionSwapuaEFIuaEFI functionTunerStudiouaEFI note
1–Not usedemptyopenFlexD5 FLEXFlex fuel signal
2EVPEVAP VSV V7keeppopulatedEVPB8 LS2EVAP solenoid
3WCheck engine (MIL) lamp drive via II1-2 to meter C11keeppopulatedWMEGA_EPIC_D43Check engine light
4–Not usedemptyopen5V sensorN/A+5 V for sensors
5TE1Diagnostic TE1 to DLC1-8. DLC1 removed 2026-10-19: keep this wire, cap its end where DLC1 was; jump it to engine ground (E1) for the timing checkkeepnot listed
6OIL-WA/T oil temp warning lamp drive via II3-12removepopulatedOILWMEGA_EPIC_D42A/T fluid overheat light
7E3MAF sensor ground (M1-5)keepnot listed
8TPCVapor pressure sensor VSV V8keepnot listed
9TFNTransfer neutral position switch D5 (A/T)removenot listed
10HT2O2 sensor B1S2 heater drivekeeppopulatedHT2MEGA_EPIC_D12Downstream O2 heater
11HT1O2 sensor B1S1 heater drivekeeppopulatedHT1MEGA_EPIC_D13Upstream O2 heater
13PTNKVapor pressure sensor signalkeeppopulatedPTNKMEGA_EPIC_ADC_14EVAP pressure
15–Not usedemptyopen5V sensorN/A+5 V for sensors
16E1ECM signal ground to ECkeepnot listed

E12 (plug D)

PinFactoryFactory functionSwapuaEFIuaEFI functionTunerStudiouaEFI note
1LA/T P/N switch 'L' position inputremovepopulatedLMEGA_EPIC_D33Low gear selector (A/T)
3–Not usedemptyopenIPN/ABosch LSU 4.9 wideband, connector pin 1
4–Not usedemptyopenH-N/ALSU 4.9 heater -, connector pin 3
5ACTA/C amplifier ACT (A/C on signal) via IJ1-1removepopulatedACTMEGA_EPIC_D49A/C terminate
6OD2O/D main switchremovepopulatedOD2/ODLPC9 BUTTON 3Overdrive lockout switch / light
7OD1O/D cut from cruise ECUremovenot listed
8SILOBD-II serial data to DLC3-7 (shielded)adapternot listed
9–Not usedemptyopenVS/IPN/ALSU 4.9, connector pin 2
102A/T P/N switch '2' position inputremovepopulated2MEGA_EPIC_D352nd gear selector (A/T)
11IDLOIdle signal to cruise ECUremovepopulatedIDLMEGA_EPIC_D40Idle sensor
12SP1Vehicle speed signal from combination meteradapterpopulatedSP1C5 HALL1Speed sensor 1
13–Not usedemptyopenLowside output (on/off)MEGA_EPIC_D46On/off ground output
14BATTConstant battery (ECM memory) from 15A EFIadapternot listed
15RA/T P/N switch 'R' position inputremovepopulatedRMEGA_EPIC_D34Reverse (A/T)
16AC1A/C on -> ECM idle-up request (active-low: below 2.0 V with A/C on at idle, 9-14 V off). Corrected 2026-10-12 (was labelled A/C cut)adapterpopulatedAC1MEGA_EPIC_D23A/C request
17–Not usedemptyopenMAPD9 MAPManifold absolute pressure sensor (any 0-5 V analog input)
18–Not usedemptyopenH+N/ALSU 4.9 heater +, connector pin 4
19–Not usedemptyopen+BN/ASwitched battery voltage from the EFI relay
20–Not usedemptyopenVSN/ALSU 4.9, connector pin 6
21–Not usedemptyopenPPS1D6 PPS1Pedal position sensor 1 (any 0-5 V analog input)
22–Not usedemptypopulatedODMSC9 BUTTON 3Overdrive lockout switch / light
23+BSwitched +B from EFI relayadapternot listed
24BKStop light switch signal (RM symbol STP)adapterpopulatedBKMEGA_EPIC_D22Brake light
25–Not usedemptyopenCalRN/ALSU 4.9, connector pin 5
26–Not usedemptyopenDigital inputMEGA_EPIC_D30Ground switched
27–Not usedemptyopenDigital inputMEGA_EPIC_D31Ground switched
28–Not usedemptyopenPPS2C4 PPS2Pedal position sensor 2 (any 0-5 V analog input)