This page you are viewing is part of the SEVA Wiki Archive, Please visit the new Official Website!
NOTICE: Visit the Maillist page for help joining the new google groups email list, the old maillist is no more.
SEVA meetings are held every second Tuesday.

Rudman Regulator

From SeattleEVA
Jump to navigation Jump to search

Rudman Regulators

Rudman Regulators come in lots of versions. All of them offer two basic functions. They sit on top of a battery and clamp its voltage to some maximum, keeping it from being overcharged. This is accomplished by shunting power through a resistor on the regulator. They also optionally send a signal back to a Manzanita Micro battery charger (or other charger) telling the charger to cut back its current because one or more batteries can't accept this level of charging current.

All versions before the MK2-D and the MK3 are no longer available.



The MK-1 versions were relatively simple.


The MK-2 versions are much more feature-rich than the MK-1 versions. They allow the user to set the clamping voltage and the voltage considered "too low." If the "too low" voltage is ever encountered, a red LED lights up and stays lit until the battery is fully charged, as evidenced by the voltage clamping circuit engaging. The voltage clamping circuit lights a green LED when it is active. Furthermore, the MK-2 regs can accept a signal from the charger indicating that the clamping voltage should be raised 10% for an equalization charge. When this is turned on, typically by a DIP switch on the charger, the reg turns on a yellow LED. Lastly, the MK-2 series of regulators have a header for an external temperature sensor and an external load, which is turned on when the clamping circuit is engaged.



The MK-3 versions use an embedded microprocessor to do most of the things that the MK-2 series did, except for the external load. A user can connect a computer (or other device) to the string of regulators and collect data from them, vastly simplifying the task of monitoring a battery pack.

The MK-3 regulators respond to a set of commands, which can be entered directly from a computer running a terminal emulator program. Windows XP, for example, comes with "Hyperterminal" which is an example of such a program. If you already know all about terminal emulators, consider this as an example. If you don't know what one is, find a computer running XP and go to Start->All Programs->Accessories->Communications->Hyperterminal. Choose a COM port that you have a "null modem" plugged into. Set the baud rate to 9600. Set the format to 8-N-1. Connect the null modem cable to the adapter that is connected to the regulator string.

All commands follow a two-digit number with no space between them. The two-digit number identifies the individual regulator in the string. Using the number 99 addresses all the regulators simultaneously.


The commands are as follows for firmware version 4.11:

  • voltage - Displays the current voltage of the battery that the regulators sits on.
  • Example: 01voltage returns 01V 13.83V
  • status - Displays the current state of the regulator, including which features are turned on or off and what is currently happening. The result is a two-digit hexadecimal number. Each bit means something.
    The definition of the bits is as follows:
    • Regulator Disabled - 0x80
    • Shunting Current - 0x40
    • Battery voltage is too low - 0x20
    • Battery voltage is too high - 0x10
    • Battery voltage has been low - 0x08
    • Regulator is too hot to function - 0x04
    • Battery temp monitoring enabled - 0x02
    • Statistical collection enabled - 0x01
  • temperat - Displays the temperature of the regulator
  • v2volts - Displays the voltage on the V2 header, which can be hooked up to anything the user likes, so long as the ground is the battery ground.
  • v3volts - Displays the voltage on the V3 header, which can be hooked up to anything the user likes, so long as the ground is the battery ground.
  • sethigh - Sets the voltage at which the battery will be clamped by the shunting circuit. As long as the regulator can dissipate enough energy through its resistor, it will keep the battery from going above this voltage. If the current is too high, then the regulator will overheat and shut down. To keep this from happening, the regulator will signal to the charger to cut back its current whenever the battery is above this voltage.
    Example at 89F: 99sethigh 14.80
    21V 14.80V H
    21V 14.63V T
    • Explanation: The regulator is programmed (as of firmware version 4.07) to take into account the fact that lead-acid batteries will show different voltages under load at different temperatures. Because of this, accurately predicting state of charge of a battery must take into account the temperature it is being charged at. The MK-3 regulator automatically does this, assuming that the clamping voltage you specify is that for 70 degrees Fahrenheit. If the battery is above 70F, then actual clamping voltage will be somewhat lower. If it is below 70F, the clamping voltage will be higher. The first number reported above is the 70F clamping voltage that the user just specified, read back to give the user a good feeling that the regulator is working. The second value is the internally-computer clamping voltage appropriate for the current temperature. This is the voltage that the regulator will attempt to keep the battery below, both by dissipating energy and by telling the charger to cut back.
    • Note: The MK-3 regulator (as of firmware version 4.00) is programmed to dissipate some energy before the battery reaches its clamping voltage. This increases the amount of battery balancing that can be done in a single charge cycle. If you watch the regs during charging, you may see them light their green lights without signaling to the charger to cut back the current. This is normal and expected, and even a nice feature. When they reach the actual clamping voltage (again, temperature compensated) then they will tell the charger to cut back.
    • Further note: Temperature compensation is much better with the external temperature sensor installed. Without it, the regulator guesses that the battery is at the same temperature as the regulator if the regulator hasn't dissipated any power in the last 20 minutes. To make this work well, two things must be true. The external temperature monitoring must be disabled (with the btdisabl command) and the regulator must be mounted on or close to the battery.
  • setlow - This command sets the voltage at which the battery is considered "too low."
    When the battery is too low, the red LED will be lit solid and the charger signal to reduce current will be asserted. The charger signal can be used to signal a motor controller to reduce output or, in the case of the Manzanita Micro Plug-in Prius conversion kit, it causes the boost battery to momentarily stop sending current into the Prius.
  • gethighv - Returns the current high voltage (clamping voltage) set point. The returned data is in the same format as from the "sethigh" command. See above for more detail.
  • readlowv - Returns the current low voltage set point.
  • minvolts - This command returns the lowest voltage the regulator has observed.
  • maxvolts - This command returns the highest voltage the regulator has observed.
  • hstclear - This command clears any internal history and resets the status lights. High and low setpoints are unaffected.
  • disable - This command disables the regulator's shunting circuit, which is useful for testing.
  • enable - This command enables the regulator's shunting circuit.
  • xtrntemp - Returns the current external temperature sensor reading, if installed.
  • lights - Causes the regulator to put on a light show and print out a banner displaying the current firmware version, along with its serial number and unit ID. This is particularly useful if you're trying to identify which battery the regulator is attached to.
  • btenable - Enable the external (battery) temperature sensor. User must supply a temperature at which the regulator will cause the charger to cut back.
    Example: 99btenable 115
    This would indicate that the regulator should cause the charger to cut back if the battery goes over 115F.
  • btdisabl - Disable the external (battery) temperature sensor.
  • storvolt - This command causes the regulator to store (latch) its current voltage for later retrieval. This is mostly useful only when broadcast to all regulators, so that they all store their voltage simultaneously. This allows monitoring software (or a human) to get voltages from every battery while they were experiencing the same current, even while current is fluctuating.
    Example: 99storvolt
  • retrvolt - Retrieves the voltage stored with the "storvolt" command. This would be issued, for example, to each battery after having previously issued a "99storvolt."
  • enblhist - Enables collection of statistical voltage data. Once this command has been issued, the regulator periodically samples battery voltage and stores it in a histogram which can be retrieved with the "prnthist" command. This is mostly interesting when compared with the histograms from other batteries. You can get a good picture of the relative health of a battery by comparing its voltage curve to that of other batteries in the same string.
    Example: 99enblhist
  • dsblhist - Disables collection of statistical voltage data. Note that this does not erase previously collected data.
  • prnthist - Prints the voltage histogram stored in the regulator. An example is below. In this example, the histogram was enabled for less than a minute and the voltage knob on a power supply was twiddled relatively randomly. It shows that voltage varied between 12.80V and 14.00V, with most of the time spent between 12.8V and 13.2V.
    Example: 16prnthist
16 Voltage Histogram
     .00V  .20V  .40V  .60V  .80V
09V 00000 00000 00000 00000 00000
10V 00000 00000 00000 00000 00000
11V 00000 00000 00000 00000 00000
12V 00000 00000 00000 00000 00018
13V 00015 00001 00006 00004 00003
14V 00000 00000 00000 00000 00000
15V 00000 00000 00000 00000 00000
16V 00000 00000 00000 00000 00000
  • vcal1 - Input the first verified voltage for calibration.
    • The voltage sensor in the regulator is relatively simple. It needs occasional calibration to work well. And since predicting the state of charge in a battery based on voltage depends of fairly accurate voltage readings, it's a good idea to calibrate your reg.
    • To calibrate your reg, attach a good, accurate digital voltmeter to it. Getting good calibration depends on two things. First, you need to know what voltage the reg is experiencing to four significant digits. Second, you need to be able to vary the voltage pretty widely so that the two data points that you give it aren't close to each other. So it's helpful to just connect the reg to a variable power supply rather than a battery. In a pinch, you could do one data point when the battery is discharged and the other one while the battery is nearing charged, but the results won't be as accurate.
    • It's also helpful if the RS-232 to regbus adapter you're using to communicate with the regs is on its own separate power supply, so that when you turn the voltage on the reg down, you can still communicate with it.
    • First, disable the reg so that it won't dissipate any energy while you calibrate it.
    • 01disable
    • Second, turn the voltage as high up as you reasonably can, without going over 17V. Read the voltage off the DVM. Assume you see 16.34V. Enter the following command. Note that there is no decimal point but four digits are supplied.
    • 01vcal1 1634
    • Now turn down the voltage as low as you can go without browning out the reg - keep it above 9V - and if you're using the same power supply for the adapter, you'll probably need to keep it above 11.5V.
    • Go on to the vcal2 command.
  • vcal2 - Input the second verified voltage for calibration.
    • Read the new low value from your DVM. Assume for this example that it's current reading 9.26V.
    • 01vcal2 926
    • The reg is now calibrated.
    • 01enable
    • This command re-enabled the shunting circuit and the reg is ready to use again.
    • Note: It's not necessary that the value from vcal1 be higher than the value from vcal2. The only requirement is that there is a relatively large difference between these values.
    • Further note: If you issue a vcal2 command without having issued a vcal1 command, the reg will be very oddly miscalibrated indeed.