Kia Soul EV

Vehicle Type: KS

The Kia Soul EV vehicle support will be documented here.

Support Overview

Function Support Status
Hardware Any OVMS v3 (or later) module
Vehicle Cable 9658635 Kia OBD-II to DB9 Data Cable for OVMS
GSM Antenna 1000500 Open Vehicles OVMS GSM Antenna (or any compatible antenna)
GPS Antenna 1020200 Universal GPS Antenna (SMA Connector) (or any compatible antenna)
SOC Display Yes
Range Display Yes
GPS Location Yes
Speed Display ?
Temperature Display Yes
BMS v+t Display Yes
TPMS Display Yes
Charge Status Display Yes
Charge Interruption Alerts Yes
Charge Control Not currently supported
Cabin Pre-heat/cool Control Not currently supported
Lock/Unlock Vehicle Yes
Valet Mode Control Not currently supported

OBD-II cable

The Kia Soul EV have two different CAN-busses available on the OBD-II port: C-can and M-can.

C-can is the main can-bus and M-can is the multimedia bus. The latter one is not necessary for OVMS, but some metrics are fetched from the M-bus and these metrics will be empty if you don’t have the proper cable. The standard OBD-II to DB9 cable from Fasttech supports only C-can, so make sure you buy the Kia Soul specific one.

In case you want to build your own cable, here’s the pinout:

J1962-M DB9-F Signal
1 5 CAN-1H (M-can High)
4 3 Chassis / Power GND
6 7 CAN-0H (C-can High)
9 4 CAN-1L (M-can Low)
14 2 CAN-0L (C-can Low)
16 9 +12V Vehicle Power

A simple approach is to buy an OBDII (J1962-M) pigtail, and solder the DB9-F connector end appropriately.


There are a few Kia Soul EV specific settings that you have to consider in order to get the most out of OVMS. These are battery size, real life ideal range, remote command pincode and charge port remote control.

Battery size

Up until the 2018 version of Kia Soul, all models had a 27kWh battery. The 2018-version have a 30kWh battery. OVMS is by default set up with 27000Wh, but you can change this configuration to fit your car using this command in the OVMS-shell:

config set xks cap_act_kwh 27000

NB! Even though it says cap_act_kwh, the number must be in Wh.

Real life ideal range

Even though the Kia Soul EV is equipped with a pretty good and conservative GOM, most experienced drivers know how far the car can go on a charge. This is what we call the ideal range. You can set the ideal range in kilometers, experienced at 20 degrees celsius, by using this command:

config set xks maxrange 160

This setting is set to 160 km by default, and matches the author driving a 2015 Kia Soul Classic in 20 degrees in southern Norway. Your mileage may vary, so please set it accordingly.

The ideal range, as shown in the OVMS APP, are then derived from this number, multiplied by the state of charge and adjusted using a combination of the outside temperature and the battery temperature.

Open charge port using key fob

By default, OVMS listens for the the third button on the key fob and opens the charge port if Pressed. If you don’t want this behaviour, you can disable it by using this command:

config set xks remote_charge_port 0

Security pin code for remote commands

Remote commands like lock and unlock doors, among others, require a pin code. This pin code can be set using the web configuration or using this command:

config set password pin 1234

Please set this pin as soon as possible.

Soul specific metrics

NB! Not all metrics are correct or tested properly. This is a work in progress.

There are a lot of extra metrics from the Kia Soul. Here’s the current ones:

Metric Description
xks.b.cell.volt.max The highest cell voltage The cell number with the highest voltage
xks.b.cell.volt.min The lowest cell voltage The cell number with the lowest voltage
xks.b.cell.det.max The highest registered cell deterioration in percent. The cell with the highest registered deterioration.
xks.b.cell.det.min The lowest registered cell deterioration in percent. The cell with the lowest registered deterioration.
xks.b.min.temp The lowest temperature in the battery
xks.b.max.temp The highest temperature in the battery
xks.b.inlet.temp The air temperature at the air inlet to the battery
xks.b.heat1.temp The temperature of the battery heater 1
xks.b.heat2.temp The temperature of the battery heater 2 The internal state of charge from BMS
xks.c.power Charge power in kW.
xks.c.speed The charge speed in kilometer per hour.
xks.ldc.out.volt The voltage out of the low voltage DC converter. The voltage into the low voltage DC converter.
xks.ldc.out.amps The power drawn from the low voltage DC converter.
xks.ldc.temp The temperature of the LDC.
xks.obc.pilot.duty The duty cycle of the pilot signal
xks.e.lowbeam Low beam on/off
xks.e.highbeam High beam on/off
xks.e.inside.temp Actual cabin temperature
xks.e.climate.temp Climate temperature setting
xks.e.climate.driver.only Climate is set to driver only
xks.e.climate.resirc Climate is set to recirculate Climate is set to auto Air condition on/off Climate fan speed
xks.e.climate.mode Climate mode
xks.e.preheat.timer1.enabled Preheat timer 1 enabled/disabled
xks.e.preheat.timer2.enabled Preheat timer 2 enabled/disabled
xks.e.preheating Preheating on/off Distance to destination (nav unit)
xks.e.pos.arrival.hour Arrival time, hour part (nav unit)
xks.e.pos.arrival.minute Arrival time, minute part(nav unit)
xks.e.pos.street Current street? Or Next street? Seat belt sensor Seat belt sensor Seat belt sensor Seat belt sensor
xks.v.traction.control Traction control on/off Cruise control enabled/disabled
xks.v.emergency.lights Emergency lights enabled/disabled
xks.v.steering.mode Steering mode: Sport, comfort, normal.
xks.v.power.usage Power usage of the car
xks.v.trip.consumption Battery consumption for current trip (kWh/100km)

Note that some metrics are polled at different rates than others and some metrics are not available when car is off. This means that after a restart of the OVMS, some metrics will be missing until the car is turned on and maybe driven for few minutes.

Climate and navigation-metrics are fetched from navigation unit and needs the Kia Soul compatible OBDII-cable.

Soul specific shell commands

There are a few shell commands made for the Kia Soul. Some are read only, others can enable functions and some are used to write directly to a ECU and must therefore be used with caution.

Read only commands

xks trip
Returns info about the last trip, from you put the car in drive (D or B) and til you parked the car.
xks tpms
Shows the tire pressures.
xks aux
Prints out the voltage level of the auxiliary battery.
xks vin
Prints out some more information taken from the cars VIN-number. Not complete.

Active Commands

xks trunk <pin code>
Opens up the trunk
xks chargeport <pin code>
Opens up the charge port
xks ParkBreakService <on/off>
Not yet working.
xks IGN1 <on/off><pin>
Turn on or off IGN1-relay. Can be used to wake up part of the car.
xks IGN2 <on/off><pin>
Turn on or off IGN2-relay. Can be used to wake up part of the car.
xks ACC <on/off><pin>
Turn on or off ACC-relay. Can be used to wake up part of the car.
xks START <on/off><pin>
Turn on or off START-relay. Can be used to wake up part of the car.
xks headlightdelay <on/off>
Turn on/off the “follow me home” head light delay function.
xks onetouchturnsignal <0=Off, 1=3 blinks, 2=5 blinks, 3=7 blinks>
Configure one touch turn signal settings.
xks autodoorunlock <1=Off, 2=On vehicle off, 3=On shift to P, 4=On driver door unlock>
Configure auto door unlock settings.
xks autodoorlock <0=Off, 1=On speed, 2=On shift>
Configure auto door unlock settings.

ECU-write commands

These commands are for the extra playful people. Use with caution.

xks sjb <b1><b2><b3>
Send command to smart junction box.
xks bcm <b1><b2><b3>
Send command to body control module.

12V battery drain

OVMS will eventually drain the 12V battery, but steps have been taken to minimize the drain. However, if you are going to leave the car for a fews days, it is recommended to unplug OVMS.