Steering to Zero: Smart MDPS on a 2018 Kia Niro PHEV
I run a 2018 Kia Niro PHEV with a Comma 4 on it, running Sunnypilot. The setup works great at highway speeds — but below that, there's no steering assist at all: the car just drives straight and you steer by hand through parking lots and slow streets.
Why comma can't do this (by design)
The Niro's electric power steering is a Smart MDPS unit — the same architecture Hyundai/Kia use across several platforms. The Comma 4 sits on the car's CAN bus and reads EPS traffic, but it is deliberately isolated from writing to it. That isolation exists for safety: an aftermarket computer silently commanding your steering wheel is exactly what the company doesn't want happening. So the stock install has a hard wall at the low end.
The path I'm implementing
Rather than fight the isolation, the plan is to use the car's own steering system the way it was meant to be commanded — by implementing a low-speed lateral controller that talks directly to the EPS through a dedicated computer:
- A standalone Comma Panda running sunnypilot_smdps firmware, built on earlier work for lower-speed Hyundai/Kia steering (MrXelious and the older community threads are where this started).
- A custom CAN harness into the EPS bus — Mouser connectors, properly shielded, spliced at a serviceable point.
- The Comma 4 stays in its lane: perception, highway driving, logging. The Panda handles low-speed steering hand-off.
Dead ends (so you don't repeat them)
I originally considered tapping the CAN3 port on the Comma Power harness directly. The community consensus — and I agree — is that this is a bad idea for this job; the cleaner route is keeping the EPS work on its own isolated Panda.
There's also a tempting shortcut: bypassing the “Smart” part of SMDPS entirely. sunnyhaibin on the community thread makes clear that route is messier than it looks — you end up working around safety logic in the firmware instead of implementing alongside it. Not a place I want my steering to live.
Status & next steps
- [ ] Harness routed and CAN traffic captured from the EPS bus
- [ ] Standalone Panda flashed with sunnypilot_smdps
- [ ] First closed-loop low-speed steering test (parking lot, driver on the wheel)
The full discussion — including replies from people who've done this on other Kia/Hyundai platforms — is in my thread on the Sunnypilot community forum ↗.