GCU Gen 3
This page covers the GCU Gen 3, the current-generation unit: one multicolor status LED and a single 23-pin harness connector. It runs firmware 5.x, shipped as .bin files.
Not sure which unit you have? See Which GCU is in my car?.
Where the USB port is: not on the box. USB-C comes out on a piggyback breakout in the shift harness, alongside a remote reset button. That’s what you plug a laptop into for everything on this page. If your car doesn’t have the piggyback, contact Rush Auto Works — it’s worth having before you need it, because it’s the only way to flash the GCU or read its logs.
The GCU Gen 3’s wiring differs from the older units, so don’t trace it against the Legacy GCU diagram — different connector, different signals. This is the one for your car.
Click any pin for its signal, wire colour, Feather pin, what it runs to, and what a meter should read there. The Connector view draws J2 as it physically sits; Schematic draws the harness runs. The circuit filters narrow it to one part of the harness; the separate Diagnostics group shades the EMI aggressors against the victims and highlights the one known fault.
It opens on its own at manual.rush.sr/gcu-gen3-wiring-diagram.html, and it works offline once the manual is saved to your phone — the Legacy diagrams cannot, because they are served from another origin.
Two things it deliberately does not cover. KLine (Gen1) J2 numbers are unverified upstream and are not published, so a Gen1 car is out of scope until the hardware side is confirmed. And every value is pinned to a specific firmware commit, shown in the footer — if the board revs, the diagram says what it was built against instead of silently aging.
For the older units, see Shift Harness and GCU.
What the GCU Gen 3 Does
Section titled “What the GCU Gen 3 Does”The older unit fires a valve on a timer and assumes the gear went in. This one is wired to the ECU over CAN, so it knows the engine RPM and the gear, and it reads its own gear-position sensor to confirm every shift.
Always on, nothing to configure:
- Money-shift protection — before a downshift it works out the RPM the engine would land on and refuses the shift if that is at or above the limit. Default 11,800 RPM.
- Closed-loop shift confirmation — it watches the gear sensor and confirms the gear in under 10 ms, rather than assuming.
- Automatic retry on a missed shift — a shift that doesn’t land is retried and the whole event is recorded.
- Session logging — everything above goes to 2 MB of onboard flash, one file per session, timestamped against the AiM dash’s GPS clock. It survives power cycles.
- Wheel-speed emulation — the donor Suzuki ECU drops into limp mode without a wheel-speed signal, and the Rush SR doesn’t use the original bike sensors, so the GCU generates the signal itself.
On by default, on cars wired for it:
- Brake-light control — the GCU switches the brake-light relay from measured brake pressure. If it loses the pressure signal, or the reading is implausible, the light comes on rather than staying dark.
Off by default, turn on in the flasher (see Settings You Can Change):
- Auto-downshift — hold the down paddle and the box walks down for you, each gear firing the instant the money-shift gate allows.
- Neutral below 1st (car mode) — makes a down-pull from 1st gear find neutral, instead of the motorcycle layout where neutral sits between 1st and 2nd.
- Post-shift bounce guard — catches the 2→1 downshift that settles back into neutral, and fires a corrective retry.
Latest Firmware Release
Section titled “Latest Firmware Release”5.0.0 — the first release on the GCU Gen 3. It drives the brake light from brake pressure, makes every auto-downshift refusal explainable in the logs, and records where the shift drum actually went on every shift.
📥 Download: rush_GCU_5.0.0.zip — or from the GCU Firmware Releases page, which also carries the full release history.
AiM Dash Channels
Section titled “AiM Dash Channels”The GCU Gen 3 sends more channels to the dash than the old unit did. Seeing them means updating the AiM configuration, which will ship as a release in aim-configs and merge into your dash config through the AiM Config Merge tool. That release hasn’t shipped yet.
Status LED Quick Reference
Section titled “Status LED Quick Reference”One multicolor LED carries all the status. The highest-priority active pattern wins.
| Pattern | Meaning |
|---|---|
| Quick red-yellow-green-blue flick, once | Boot. Roughly 200 ms, so it’s easy to miss. |
| Slow cyan-blue breathing | Idle heartbeat — healthy |
| Solid color during a shift | Shift in progress: green = upshift, red = downshift, cyan = finding neutral |
| Fast amber flash | No gear data. Shifts run on a timer and the safety gates are off. Investigate. |
| Fast yellow flash | Compressor running. Normal during a 70–90 PSI refill. |
| Slow red blink, once a second | Flash safe mode — logging is off after repeated boot failures. Racing is unaffected. |
| White flash, 300 ms on / 300 ms off, forever | Fatal startup error. The board needs attention. |
| One purple flash | Neutral mode switched to car (neutral below 1st) |
| One cyan flash | Neutral mode switched to moto (neutral between 1st and 2nd) |
Flash safe mode clears on a power cycle — unplug the car, don’t press RESET. If it comes back, contact Rush Auto Works.
Flashing Firmware
Section titled “Flashing Firmware”You need a laptop and a USB-C cable to the harness piggyback.
- Download the release zip above and unzip it. It contains the firmware, the GCU Flasher app, and the flashing tool. Nothing to install.
- Plug the laptop into the USB-C connector on the harness piggyback. Power the car up first — the GCU runs off 12V and does not self-power over USB, so with the car off no port appears at all.
- Open the GCU Flasher —
GCU Flasher.appon macOS,GCU Flasher.baton Windows. - Pick the firmware from the dropdown. For 5.0.0 that is
release_CAN_feather-5.0.0.bin. - Pick your serial port. Click Refresh if it doesn’t appear.
- Click Flash Firmware and confirm. The GCU reboots into its bootloader on its own.
- Wait for “Flash complete!” in the log.
If the GCU won’t appear over USB at all
Section titled “If the GCU won’t appear over USB at all”Three symptoms that look unrelated are usually one broken wire:
- nothing enumerates when you plug in, or Windows reports a failed device descriptor
- the remote reset button on the piggyback does nothing
- flashing dies at the bootloader step, and pressing the remote reset doesn’t help either
All three run through the same piggyback breakout and share one ground return, so a single open wire takes out the lot. This was found on a car in August 2026 and traced to a mis-built connector, so other cars may carry it. Contact Rush Auto Works rather than chasing it as three faults.
Two things send this diagnosis the wrong way. The GCU does not self-power over USB, so a dead port with the car switched off is the design, not the fault. And automatic bootloader entry is a software reset the firmware runs on itself over USB — it never touches the reset wire — so a dead remote reset button cannot be the reason bootloader entry failed. They look like one theory and they aren’t.
Settings You Can Change
Section titled “Settings You Can Change”The flasher’s Configuration tab lists every setting the firmware exposes, with its range and a description on hover. Changes take effect immediately; Save to Flash makes them survive a power cycle.
To change anything: connect, click View Console, then Enable Write Access in the Diagnostics tab. Write access locks itself again after 5 minutes.
The settings most owners care about:
| Setting | Default | What it does |
|---|---|---|
auto_downshift | off | Hold-to-downshift. See below. |
neutral_button_mode | moto(1n2) | Where neutral lives. See below. |
tank_min_psi / tank_max_psi | 70 / 90 | Compressor cut-in and cut-out pressure |
downshift_block_rpm | 11800 | The money-shift threshold. Lower is more conservative. |
brake_light_enable | on | GCU control of the brake light |
post_shift_validate_ms | 0 (off) | Bounce guard for 1↔2 shifts. Try 150 if you get 2→1 false neutrals. |
Auto-Downshift
Section titled “Auto-Downshift”Off by default. Turn on auto_downshift and the down paddle gains a second gesture: hold it.
- One pull and release is an ordinary downshift, exactly as before.
- Keep holding, and about a fifth of a second after that shift completes the box starts walking down on its own, firing each gear the moment the engine has settled enough that the money-shift gate allows it.
- It stops at 2nd. It will not walk into 1st or neutral.
- Release the paddle to stop. That is the cancel. An upshift cancels it too.
- Holding for more than four seconds disarms it.
It never fires a shift the money-shift gate would have refused, so it cannot over-rev the engine in a way a manual downshift wouldn’t. There is no throttle condition — a manual downshift never had one either.
CAN cars only, since it needs live RPM. If a hold does nothing, run DUMP_STATUS and read the AUTO_DS and AUTO_DS_VETO lines: they count every reason it declined, so “the feature is off” and “the feature refused” look different in the log.
Neutral Position: Moto vs Car
Section titled “Neutral Position: Moto vs Car”The physical shift drum is always 1-N-2-3-4-5-6, with the neutral half-detent between 1st and 2nd. This setting changes only what the paddles do at that boundary.
moto(1n2) — default | car(n12) | |
|---|---|---|
| Down-pull in 1st | Nothing (blocked) | Finds neutral |
| Down-pull in neutral | Goes to 1st | Nothing (blocked) |
| Up-pull in neutral | Goes to 2nd | Goes to 1st |
| Neutral button | Works in both modes | Works in both modes |
Down from 2nd goes to 1st in both modes; it never stops at neutral. Use the neutral button from 2nd to get there.
You can switch modes without a laptop: hold both paddles for 5 seconds with the engine off. The LED flashes purple for car mode and cyan for moto mode, and the setting is stored. It refuses to switch while the engine is running, so the layout can’t change under you mid-session. The heartbeat line reports the current mode as nt_mode=MOTO or nt_mode=BTN.
Pulling Logs over USB
Section titled “Pulling Logs over USB”The GCU Gen 3 logs everything it does, both to USB serial and to onboard flash. The flash logs survive power cycles, so you can pull a whole weekend’s shift history back in the paddock.
Capturing a log
Section titled “Capturing a log”- Connect the GCU over USB and open the GCU Flasher.
- Click View Console. Live lines start streaming immediately.
- In the Diagnostics tab, click Dump Exception Log — failures only, start there — and/or Dump Rolling Log for everything. A large dump takes a few seconds.
- Click Save Log to write the whole console buffer to a timestamped text file. The flasher also offers to save when you disconnect.
For a quick health check without a full dump, send DUMP_STATUS in the command box below the console. It reports the last reset cause, uptime, flash health, CAN status, and the shift counters in one shot.
Multiple sessions in one dump
Section titled “Multiple sessions in one dump”Flash logging keeps one file per boot, so a DUMP_ROLLING can hold several sessions back to back, split by --- SESSION N --- markers. The Sessions button does the splitting for you: it lists each session with its start time and an anomaly flag, and lets you preview or save them individually. A single saved session is exactly what you want to hand to the maintenance assistant.
Crash and reboot triage
Section titled “Crash and reboot triage”If a log stops mid-shift and then shows a boot banner, the GCU reset. The banner carries the reason as Reset cause: 0xNN, and DUMP_STATUS repeats the same byte on its RESET_CAUSE line. Read the number:
| Code | Meaning |
|---|---|
0x01 | Power-on. The supply collapsed, or the car was just switched on. |
0x02 / 0x04 | Brownout. The supply voltage dipped below the chip’s limit. |
0x10 | External. The RESET line was pulled. |
0x20 | Watchdog. The firmware hung and reset itself. |
0x40 | A clean commanded reboot. |
More than one bit can be set at once, so read it as a set of flags rather than a single value.
Repeated power-on or brownout resets during shifts point at wiring and grounding, not firmware — a solenoid firing can drag the supply down. Check the power and ground paths in Shift Harness and GCU.
Repeated external resets that nobody asked for are a different fault: the reset wire runs the length of the harness next to a shift-valve wire, and can pick up the switching noise. Both cases are worth a call to Rush Auto Works rather than a firmware reflash.
Reading the Log
Section titled “Reading the Log”You don’t have to do any of this yourself — hand it to the assistant. But if you want to read it, here’s what you’re looking at.
A saved capture mixes four kinds of line:
- Live telemetry —
HB(heartbeat) andAIMlines once a second, plus per-shiftSHIFT/VALVE/COUNTtraces, stamped with uptime as[HH:MM:SS.mmm]. - Flash records — the
DUMP_ROLLING/DUMP_EXCEPTIONSoutput, stamped in raw milliseconds like[1297638], plus wall-clock time once the AiM dash has a GPS fix. - Command responses —
OK ...,ERR ...,VERSION ..., framed byBEGIN/END. - Boot banners and warnings —
RESET_CAUSE,WARN ....
The heartbeat (HB) line
Section titled “The heartbeat (HB) line”Once a second the GCU prints a health snapshot:
[00:01:49.001] HB phase=0 shifting=0 g=2 cg=2 src=GP rpm= 8190 psi= 81 nt_mode=MOTO drop=00000 pdrop=00000 ghosts=00000 doubles=00000 rpmv=1 gearv=1 ...The Live Data tab parses this into a dashboard, but the raw line is worth knowing:
g=andcg=— gear from the GCU’s own sensor, and gear from the ECU over CAN. They should agree.255means unknown.src=— where the gear reading is coming from.GPis healthy.FALLmeans no gear data at all, safety gates off, and matches the amber flashing LED.rpm=andpsi=— engine RPM over CAN, and tank pressure. Pressure should sit in the compressor band, 70–90 PSI by default.- The error counters —
drop,pdrop,ghosts,doubles,bo,emi— should all be zero and stay zero. A growingghosts=oremi=means electrical interference on the paddle wiring. Anybo=at all is a CAN bus fault.
AIM lines are the dash side of the picture: wall-clock time from the dash’s GPS, plus speed, throttle, and brake, once a second. No AIM lines at all means the dash is off or the CAN link between dash and GCU is down.
Watching the compressor and tank pressure
Section titled “Watching the compressor and tank pressure”Watch psi= across consecutive heartbeats. It should climb while the compressor runs (yellow flashing LED) and stop at the cut-out pressure. A compressor that cycles rapidly or never shuts off shows up plainly in that trace — then follow the leak-hunting steps in Shift Debugging, which apply to every car.
Per-shift traces
Section titled “Per-shift traces”Every shift gets an ID like #00042 that appears on every line belonging to it, so you can follow one shift from paddle pull to completion:
[00:04:12.101] SHIFT #00042 start src=user dir=DOWN from=3 tgt=2 nt_mode=moto rpm= 7100 psi= 78 cl=1 tmo= 190 in_id=0117[00:04:12.103] VALVE #00042 DOWN HIGH cmdr=main[00:04:12.165] SHIFT #00042 gchange g=2 at= 62ms[00:04:12.167] SHIFT #00042 success from=3 to=2 in= 64ms[00:04:12.243] SHIFT #00042 complete total= 142msA failed shift prints SHIFT #NNNNN fail instead, with the gear it actually landed in — landed=0 is the classic false neutral — and a reason=. In the flash records, the event names that matter are SHIFT_CL_TIMEOUT, MISSHIFT_RETRY, GEAR_MISMATCH, and PRESSURE_CRIT. Those are the story. The SHIFT_OK records are the background.
src= on the start line says who asked for the shift: user is a paddle pull, nt is the neutral button, auto is auto-downshift, retry is the firmware retrying a missed shift, and prog_neutral is the progressive neutral finder.
Shift counters
Section titled “Shift counters”DUMP_STATUS reports six running totals:
SHIFT_COUNTS up_ok=31 up_fail=16 dn_ok=35 dn_fail=13 nt_ok=3 nt_fail=0The flasher turns the miss rate amber above 20%.
All six reset on a power cycle, so read them before you switch the car off. SHIFT_BLOCKS money=N boundary=N invalid_can=N is the separate count of shifts that were refused before the valve ever fired: money is an over-rev save, boundary is asking for a gear that doesn’t exist, invalid_can is missing engine data.
Command reference
Section titled “Command reference”Commands are plain text, typed into the box below the console. Read commands always work:
| Command | What you get |
|---|---|
DUMP_STATUS | Reset cause, uptime, flash and CAN health, shift counters |
DUMP_EXCEPTIONS / DUMP_ROLLING | Failure-only log / full rolling log |
LOG_STATS | Log file sizes and counters |
GET_VERSION / GET_CONSTS / GET_STATE | Firmware version, all settings, live state |
Anything that writes — test shifts, settings changes, clearing logs — needs Enable Write Access first.
Have the Maintenance Assistant Read Your Logs
Section titled “Have the Maintenance Assistant Read Your Logs”You don’t need to interpret any of the above yourself. The owner maintenance assistant knows the GCU Gen 3 log format and will walk a log with you.
- Pull the log as described above. Use Sessions to save just the session where the problem happened.
- Open Owner Maintenance Assistant in the Driver Toolbox.
- Tell it you have a GCU Gen 3 and that you already have the logs — otherwise it will walk you through pulling them first.
- Paste the relevant part: the session around the fault, not the whole file. Include the boot banner and the
VERSIONline if you have them, plus the lines around the failed shift or reset. - Describe what the car did — “missed the 2→1 downshift into T5, ended up in neutral”. It matches your description against the failure events in the log and cites the manual pages for whatever comes next.
Related Pages
Section titled “Related Pages”- Shift Harness and GCU — pin-level electrical reference and the interactive wiring diagrams
- Shift Debugging — symptom-based troubleshooting for the pneumatic and mechanical shift system, on every car
- Legacy GCU — firmware and flashing for the earlier unit
