Isabellenhütte produce a number of high precision DC current measurement devices for use in electric vehicles. These devices read and communicate current and voltage information via CAN messages with a high degree of accuracy. They produce several models with a current measurement with a range of up to ±2500A.
IVT-S Current Measurement Device
The IVT-S current measurement device, often referred to as a current shunt, is one of the most popular current measurement devices for use with open source EVs due to its high precision, modularity and relatively low price point. The IVT-S comes in a number of current ranges to suit the peak usage and budget of your EV - 100A/300A/500A/1000A/2500A.
Programming The IVT-S With an Arduino Due with CAN or DM VCU Control Board
From the factory the ISA shunt does not output many parameters and not in a format that is readable to the library. It defaults to big endian and the arduino is written in little endian. Fortunately, friend Jack at EVTV took care of that and installed a configuration option in the library. To use the shunt the following steps are required;
- If you haven't used an Arduino Due board before, install "Arduino SAM Boards (32-bits ARM Cortex-M3)" from the Arduino Boards Manager
- Install "DueTimer" and "can_due" from the Arduino Library Manager.
- Install the due_wire and Wire_EEPROM libraries from GitHub.
- Install the ISA library. There is an error in this library if you download it from the EV-TV site:
#include <ISA2.h>, but the file is actually named
ISA.h. This has been fixed in the version linked to here.
- Load up the demo sketch on a due with a can transceiver or any of the VCUs (via the programming USB port).
- Now connect to the Due native USB port with your serial monitor and choose the initialise option (enter i into serial monitor)
- Reboot and normal data should be pumped out.
Watch this process being carried out using a Nissan Leaf VCU control board (link coming soon)
To quickly select current direction on the fly you can use the files of adapted ISA library. Use + or - keys to determine the ISA current flow interpretation.
Programming The IVT-S With an Arduino Uno and CAN Bus Shield
By default, the IVT-S will put a current reading on the CAN bus at 500kb/s every 20ms. You can read this data with an Arduino Uno and CAN bus shield.
IVT-S Current and voltage sensors for battery management systems (here)
IVT-S Datasheet (here)
IVT-S Arduino Library Files from EVTV (here). Note: it's been reported that the header file ISA.h contains several errors.
The IVT-S uses Molex DuraClik connectors which can be purchased from RS, Digi-Key and Mouser (among others). Despite what it says in the Isabellenhütte data sheet, the correct part numbers are as shown below.
Note that the DuraClik terminals are absolutely tiny and the official Molex crimp tool is very expensive. It is possible to get a decent crimp using a cheap and widely-available SN-28B 24-30AWG crimp tool, but you will need a bit of patience and very good eyesight. The connectors also have a retainer to permanently lock the terminals in place and you should seal the final assembly with UV glue. Here is an excellent video that shows you how to do this.
|Description||Molex part number||Mouser part number|
|2-pin DuraClik header||502351-0200||538-502351-0200|
|4-pin DuraClik header||502351-0400||538-502351-0400|
|DuraClik crimp terminal||50212-8100||538-50212-8100|
|2-pin DuraClik retainer||505152-0200||538-505152-0200|
|4-pin DuraClik retainer||505152-0400||538-505152-0400|