Skip to content

Comma Pedal interceptor

What the Comma Pedal does, why you want it, how to wire and install it on pre-AP Model S, firmware flashing, calibration, and safety behavior.

Updated June 11, 2026


Without a Comma Pedal, NAP controls steering only — the car's stock cruise holds a fixed set speed and there is no adaptive following at all. The Comma Pedal is what gives NAP adaptive cruise: with it installed, NAP takes direct control of the throttle, follows traffic, and works down to walking speeds instead of stock cruise's ~18 mph (29 km/h) floor.

NAP cannot apply friction brakes regardless of pedal mode. Regen braking only. You are responsible for braking at all times. The NotAutopilot safety page is required reading.

What the Comma Pedal does

The Comma Pedal is an accelerator pedal interceptor. It sits in-line between the car's physical accelerator pedal assembly and the drive unit (DU). When NAP is not engaged, the pedal passes the raw voltage signal through unchanged — the car behaves exactly as it would without the interceptor. When NAP is engaged in pedal mode, the interceptor substitutes a software-commanded voltage, telling the DU to apply a specific amount of throttle independent of the driver's foot position.

Internally the board has two analog-to-digital converters that read the dual-sensor voltage from the accelerator pedal (0–5 V per sensor), two digital-to-analog converters that write the commanded voltage back out to the DU, and a CAN interface that carries GAS_SENSOR (message ID 0x552) upstream to NAP and receives GAS_COMMAND (message ID 0x551) from NAP.

While NAP is engaged, the pedal continuously reports the physical pedal position over CAN. Pressing the accelerator overrides the software command and passes your foot's input directly — so you can temporarily accelerate without changing the set speed or disengaging.

Why it matters for pre-AP

In no-pedal mode, NAP never adjusts your speed — stock cruise holds whatever you set, only works above ~18 mph (29 km/h), and slowing for traffic is entirely on you. The pedal is what turns NAP into an adaptive system: it follows a lead car, adjusts speed continuously, and operates down to approximately 1 mph (1.6 km/h). Regen braking reaches its limit around 5 mph (8 km/h), so the car cannot decelerate smoothly all the way to a full stop using regen alone — but it follows traffic and handles highway and most stop-and-go situations on its own throttle.

Full stop-and-go (friction braking to zero) would additionally require an iBooster retrofit, which is not currently a viable path — see that page.

Getting the hardware

Comma does not sell the Comma Pedal board directly. BearTech sells a Comma Pedal that works with pre-AP, and community members also build and sell them — check the Discord. What you need:

  • 1 Comma Pedal board (with 3D-printed case, in current community builds)
  • 1 set of Tesla accelerator pedal connectors — Molex WPT-929 (female for the incoming/car side, male for the outgoing/DU side). Approximately AWG 24 wire.
  • 1 SN-28B crimping tool
  • 1 standard Ethernet cable (~2 ft, not crossover) if your pedal has an RJ45 port

Pedal interceptor board wired with IN and OUT connectors

Wiring the connectors

The accelerator pedal on pre-AP Model S has a dual-sensor connector. Wire colors for the Tesla pedal connector set:

Wire colorSignal
Red5 V
BlackGND
YellowSensor 1
BlueSensor 2

Connect the female WPT-929 to the IN side of the pedal board (incoming from the car's pedal) and the male WPT-929 to the OUT side (outgoing to the drive unit).

Tesla accelerator pedal wiring to the interceptor board

Pedal connector pinout

Physical installation

The accelerator pedal connector is in the driver footwell. You'll need to remove the footwell cover to access it — the same disassembly needed for the chassis CAN retrofit harness if you're doing both.

  1. Disconnect the existing pedal connector from the pedal assembly.
  2. Plug the pedal board's female WPT-929 (IN side) into the pedal assembly.
  3. Plug the pedal board's male WPT-929 (OUT side) into the original car connector you just unplugged.
  4. Mount the pedal board in the footwell — secure it so it won't shift or rub against anything.
  5. Connect the RJ45 port on the pedal to the RJ45 port on the OBD-C adapter (or your adapter's pedal connector).

Pedal interceptor connected in the driver footwell

Pedal interceptor secured in place

Which CAN bus the pedal uses

The Comma Pedal can communicate over CAN bus 0 (CAN0) or CAN bus 2 (CAN2) depending on how the adapter is wired. In NAP, you select which bus the pedal is on in the NAP settings panel. The parameter key is NAPPedalCanBus and defaults to 2. If your pedal isn't responding after installation, confirm this matches your physical wiring.

The RJ45 port on the OBD-C adapter routes the pedal to CAN2 by default. Some older wiring setups used CAN0 via a JST 2.54 mm connector.

Enabling the pedal in settings

In the NAP settings panel:

  1. Turn on the Pedal enabled toggle (NAPPedalEnabled).
  2. Set the Pedal CAN bus to match your wiring (NAPPedalCanBus, 0 or 2).
  3. Flash the pedal firmware if you haven't already (see below).
  4. Run calibration.

Until calibration is complete, NAP will block pedal-mode engagement as a safety measure — an uncalibrated pedal transform means NAP cannot accurately map its throttle commands to actual acceleration.

Flashing pedal firmware

The Comma Pedal needs Tesla-specific firmware. Boards purchased from community sellers usually come pre-flashed, but if the firmware is missing or needs an update, flash it from the NAP settings panel:

  1. Make sure the pedal is installed in the car and connected to the adapter.
  2. Turn the car on (foot on brake, in Park — leave it there).
  3. In the NAP settings panel, scroll to the pedal section and press Flash Pedal.
  4. Follow the on-screen confirmation. The car may display warnings during the flash — this is normal.
  5. Once complete, power cycle the car (let it go to Car Off, then turn it back on) and reboot the comma device.

The pedal LED indicates its state: no light = DFU mode (needs flashing), slow blink = normal mode with firmware, fast blink = running and active.

Calibration

Calibration establishes the pedal transform — the mapping from the pedal interceptor's raw sensor reading to the drive unit's expected input. NAP uses this calibration to issue accurate throttle commands and to detect gas-press overrides smoothly.

Calibration is done from the NAP settings panel (Calibrate Pedal button). Follow the on-screen instructions, which will ask you to fully depress and fully release the pedal to capture the min and max sensor values. The calibration parameters are stored as NAPPedalCalibMin, NAPPedalCalibMax, NAPPedalCalibFactor, and NAPPedalCalibZero.

Recalibrate if you replace the pedal board or connectors, or if NAP's throttle response feels off.

Engage-time behavior and safety

When you engage NAP in pedal mode (double-pull the stalk), the carcontroller seeds its initial pedal position from the current zero-torque learning value — the position that produces no net torque at your current speed. This prevents the regen spike that would otherwise happen if the first command dropped to zero before building up. There is a 50-frame (~0.5 second) grace ramp after engage during which the acceleration limit grows from 0 to full, preventing a harsh throttle stab.

Key safety behaviors:

  • Gas press override: pressing the accelerator while NAP is engaged in pedal mode immediately passes your foot's input to the DU and suspends NAP's throttle command. NAP resumes smoothly when you lift off. This is handled via OVERRIDE_LONGITUDINAL in the FSM.
  • Brake press drops longitudinal: pressing the brake drops pedal-mode speed control (enableLongControl = False) but steering stays engaged. NAP then spoofs a stock CC cancel stalk command so the car doesn't resume unexpectedly.
  • Uncalibrated pedal blocks engagement: if NAPPedalCalibDone is False, pedal mode will not engage. The NAP settings panel will warn you.
  • Pedal timeout: if the pedal stops reporting GAS_SENSOR messages for more than 500 ms, PedalFeedback.available goes False and pedal mode disengages.