PowerGuru Manual V0.1

Rob Savoye

This manual describes version 0.1 of Power Guru.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this link or in the file COPYING-DOCS distributed with this manual.

This manual is part of a collection of GNOME manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license.

Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and the members of the GNOME Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters.

DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT:

  1. DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND

  2. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.

Revision History
Revision Power Guru Manual V0.1May 2005

Rob Savoye

GNOME Documentation Project


Table of Contents

Introduction
What is Power Guru ?
PowerGuru Overview
Project Goals
PowerGuru Data Logging Mode
PowerGuru Command Mode
User Interfaces
Protocol Reference
Xantrex Technical Info
Outback Power Systems
Authors
License

Introduction

This is power monitoring system for Xantrex (was Trace) and Outback Power Systems products.

What is Power Guru ?

Power Guru is a tool for remotely controlling Xantrex and Outback Power Systems products. In my case, an old Trace 4024 and an Outback MX-60.

This all started when I bought a fixer upper, off-grid house... Like many projects, this one seems to have fallen into my lap, more than it was a concious idea. Over time, the concept has evolved into an actual product in development. That project, AbelMon, is a much larger project, and this application Power Guru, is part of that project spun off into a standalone application.

There are other similar products, but for WinDoze are Right Hand Engineer's Winverter or Maui Solar Software's TraceTools.

PowerGuru Overview

PowerGuru is an interface to your Inverter or charge controller. It's main purpose is to handle the low-level work of reading and writing from these devices. At this level PowerGuru is an SDK for C,C++, or Java programers to work with Xantrex and Outback products.

The backend of PowerGuru is a daemon that runs all the time and is connected via serial ports to your power production equipment. This daemon handles all the ugly work of interfacing with each device. The daemon has two modes, one is data-logging mode, and the other is a command mode.

Project Goals

The goals of this are project are to make it easy to datalog or remotely control your inverter or charge controller. The daemon is designed to be reasonably small, so it can run on 12VDC low-power computer systems 24 hours a day, 7 days a week. Since everything is done through a network interface, a GUI can use the SDK to talk to the backend for all functionality. This makes it easier for somebody (not me, I suck at GUIs) to write good GUIs, without having to reverse engineer these protocols like I have. I'd prefer to stick to bit-twiddling.

If I'm not home, like on a business trip, I want to be able to check on the status of my house while I'm gone. I have had weird things happen like needing to reboot the charge controller, or a few fuses in the combiner box blowing for no apparent reason. I'd also like to be able to store the default configuration settings for my inverter or controller, and set a new one with my prefered default settings off disk after a full system reset.

If a house is a rental and you are the landlord, or you have an off-grid vacation house, or you are a solar installer, and want to offer remote support for your customers as an additional service, this is the type of thing I want PowerGuru to support.

PowerGuru Data Logging Mode

In this mode, the PowerGuru daemon just polls all the devices that have output data, and writes it directly to an SQL database. The time between data collection cycles can be set by the user, since the amount of data can be huge, and doesn't often vary much.

PowerGuru Command Mode

In this mode, the PowerGuru daemon acts as the remote agent to control the device. Client programs use a network connection (I'm contemplating using SNMP) to operate the commands supported by each device. This enables the settings of each device to be stored and set remotely.

User Interfaces

There are two planned user interfaces for PowerGuru. One is web based, and will enable the plotting of the logged data in various forms. The other interface is designed to run standalone without the need for a PHP enabled web server. It is also designed to be run from a PDA or laptop in the field with a direct serial connection to the device. This is for installers so they can download the default settings they prefer to the device, or extract the current device settings to store in a disk file.

Web Interface

The web interface is written in PHP, and should be supported by most all web servers and browsers. This is primarily a data mining and display application to plot the power readings in graphical manner. This UI is currently under development.

Standalone Interface

I want to be able to run PowerGuru on multiple systems, namely Linux, Darwin, and Win32. The choice of a cross-platform user interface toolkit that runs on all three is not a trivial decision. Most PDAs these days runs Qtopia (written in QT), PalmOS, or WinCE. Other than Java, a language I truly dislike, the only multi-platform solution supported on all platforms is QT. (called Qtopia on a PDA) I'm not a GUI programer, I'm an embedded systems type, so I'd prefer to only write the GUI once.

I have long prefered GTK+/GNOME over QT/KDE mostly cause I'm a "free software" purist, and I'm not sure I want to learn either QT or Java right now anyway. The original GUI for PowerGuru back when it was still called "TraceGUI" was written in GTK1.2, using the Glade prototyper. This can run on Linux, Darwin and Win32, but not my PDA.

It is possible to run Tcl/Tk on most PDAs as an addon package. For my Zaurus it needs an X11 environment (I run OpenZaurus (a Debian port) on my Zaurus), plus Gentoo also runs on the Zaurus with X11 support. There are also native Tcl/Tk ports for PalmOS and WinCE, and it has a visual development environment as well. I also used to be one of the Tcl/Tk maintainers, so I wouldn't have the learning curve and time drain of using QT or Java.

Protocol Reference

PowerGuru supports multiple protocols, since it supports multiple devices. As documentation of these protocols is often non-existant or there is a lot of supporting info needed by developers that isn't covered in the existing manuals, I figured I'd document my experiences with these systems from my perspective as an embedded systems engineer with over 25 years experience.

Xantrex Technical Info

SWCA Cable

The SWCA cable is required for all communication to a Xantrex inverter. The female DB25 connector on the inverter is labeled as remote, but it is not a standard RS232-C port. It's actually a "Xantrex Remote Port". The SWCA cable supplied by Xantrex converts this remote interface to a standard RS232-C, where it can communicate to a PC.

The SWCA Cable also comes with an ancient DOS program, which should be thrown out. All this program does is supply a very simple GUI that is a clone of the display on the inverter. If you wanted braindead software, you wouldn't be reading this manual for PowerGuru;

Other similar products, but for WinDoze are Right Hand Engineer's Winverter or Maui Solar Software's TraceTools.

Remote Protocol Notes

The Xantrex series of inverters don't support a true remote protocol, like most of us think of them. All the inverter gives us is a simple ASCII based terminal interface. As the inverter's control panel is a 16 character by 2 line LCD display, all output from the inverter fits into 38 character wide lines.

All the settings are continuously displayed while you are at that menu item. This example shows the output from the Meter Menu's Input Amps AC item:


	  Input            amps AC           00  00  00  00  00

	

All data stops being displayed when a different menu heading is selected. There are other problems, since there appears to be no flow control, and a half-duplex connection as well. If there is a lot of output from the meters, when you send a character it often gets ignored. I've found it necessary to send the command character several times until the inverter responds. If you send them too fast, they also get ignored.

To work around this problem, at least in my own software, I had to create a data structure that contains all the command strings that come from the inverter. This way when I go to a desired menu item under a particualar heading, I can check the display to make sure the program is actually where it thinks it is. This synchronization makes sure we're at the proper place before reading or setting data. It also makes it a little slower, but accuracy is important.

The top data logging speed of a Xantrex inverter is about 3-4 complete traversals of all 8 meters per minute. It is also possible to cache readings, and then write them all at once to the database. This is for modem or other intermittent forms of communication to an outside database.

Serial Communications

The serial port on the SWCA cable defaults to 9600 baud, no parity, 8 data bits. I've used both Minicom and Ckermit to successfully control my inverter, as well as my own C/C++ code.

Keyboard Commands

It is possible to control the inverter via a terminal program. Each of the buttons on the inverter's control panel has a keyboard equivalant.

Keystroke

Function

1-8 key

Select Inverter. 1 through 8 is the inverter's ID number. 1 is the default.

L key

Menu Headings Left (minus)

R key

Menu Heading Right (plus)

U key

Menu Item Up

D key

Menu Item Down

- or _ key

Set Point Lower

+ or = key

Set Point Higher

| key

Inverter On/Off (same as the red button on the inverter control panel)

G key

Generator On/Off (same as the green button on the inverter control panel)

^S key

Setup Menu (same as pushing the green and red butons on the inverter's control panel at the same time)

? or / key

LED Status

V key

Version number of SWCA

T key

Set Terminal Mode

Displayed Output

This is a list of all of the commands as they are displayed by the inverter. Spacing, etc... are important, since lacking a real protocol, we're stuck parsing these text messages for what we want.

User Menus

This is a list of all the User menus. Most users menus don't change anything about how the inverter operates but the time of day setting, and the generator timers. Most of these menues are informational

Inverter Mode

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Inverter
OFF SRCH ON  CHG

Enumeration

This sets the inverter mode. Off is self explanatory. Search mode puts the inverter in a power-saving mode, and only comes out when the load is over the search limit. (usually 16 watts)

CHG avail. only
in FLT mode.

none

Information message

Press red or
setpoint button

none

Information message

to move cursor.
Move cursor to

none

Information message

Inverter OFF to
resetOverCurrent

none

Information message

Generator Mode

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Generator
OFF AUTO ON  EQ

Enumeration

This sets the generator mode. Auto is for Auto Start, and EQ is for equalizing batteries.

Gen under/over
speed

none

Information message

Generator start
error

none

Information message

Generator sync
error

none

Information message

Load Amp Start
ready

none

Information message

Voltage Start
ready

none

Information message

Exercise Start
ready

none

Information message

Move cursor to
GEN OFF to reset

none

Information message

generator error.

none

Information message

If no start in 6
trys then error.

none

Information message

If Gen starts &
runs for 5 min

none

Information message

then stops the
inverter will

none

Information message

not attempt
restart until

none

Information message

gen auto start
conditions are

none

Information message

Xantrex Engineering

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Press reset now
for defaults

Enumeration

This sets the generator mode. Auto is for Auto Start, and EQ is for equalizing batteries.

Revision 4.10

none

Information message

5916 195th St NE
Arlington, WA

none

Information message

98223 USA

none

Information message

Ph  360-435-8826
Fax 360-435-2229

none

Information message

Meters

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Inverter/charger
amps AC

integer

The amount of current the inverter (or when it's in charging mode) is putting out.

Input
amps AC

integer

The amount of current that the inverter is receiving from a power source, like the generator.

Load 
amps AC

integer

This is the amount of current that is being used by AC devices.

Battery actual
volts DC

float

This is the actual voltage in DC of the battery bank.

Battery TempComp
volts DC

float

This is the temperature compensation voltage in DC.

Inverter
volts AC

integer

This is the AC output voltage of the interter.

Grid (AC1)
volts AC

integer

This is the AC input voltage of the power grid (assuming you have a grid intertie system).

Generator (AC2)
volts AC

integer

This is the AC input voltage from the generator.

Read Frequency
Hertz

integer

This is the frequency in Hertz of the inverter. In the US, this should be around 60.

AC1 & AC2  volts
valid only when

none

Information message

inverter synced
to that input.

none

Information message

Batt volt actual
is used for

none

Information message

LBCO,HBCO,LBX,
LBCI,sell volts

none

Information message

and gen starting

none

Information message

Batt volt temp
comp is used for

none

Information message

float,bulk,eq &
aux relays

none

Information message

Error Causes

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Over Current
        

Boolean

This is ON when the inverter is putting out too much current

Transformer
overtemp

Boolean

This is on when the inverters transformer is too hot.

Heatsink
overtemp

Boolean

This is ON when the heat sink is too hot.

High Battery
voltage

Boolean

This is ON when the batteries are over voltage.

Low Battery
voltage

Boolean

This is ON when the batteries are low.

AC source wired
to output

Boolean

This is ON when you have a wiring problem.

External error
(stacked)

Boolean

This is ON when there is an error in stacked inverters.

Generator start
error

Boolean

This is ON when there is an error in starting the generator.

Generator sync
error

Boolean

If this is ON, there is a power problem with your generator.

Gen under/over
speed

Boolean

This is ON when the generator is over or under speed.

Time of Day

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Clock hour

time

This sets the hours part of the current time.

Set Clock minute

time

This sets the hours part of the current time.

Set Clock second

time

This sets the seconds part of the current time.

Generator Timer

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Start Quiet
time  h:m

time

This is the the start of the time period when the when your generator won't be started automatically.

End Quiet
time  h:m

time

This is the the end of the time period when your generator won't be started automatically.

inverter synced
to that input.

none

Information message

Gen doesnt run
during quiet

none

Information message

time unless batt
volts is less

none

Information message

than LBCO volts
for 30 seconds

none

Information message

or load > load
start amps.

none

Information message

To defeat timers
set start = end

none

Information message

If exercise days
set to 1 then

none

Information message

gen will always
start @ endquiet

none

Information message

END USER MENU

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

END USER MENU

none

This means you are at the end of the user menus. Inverter Setup must be pressed to get to the Setup menu.

Setup Menus

This is a list of all the setup menus. Unlike the user menus, you should know what you are doing before you change any of these values. If something goes wrong, reset your inverter to the factory defaults.

Inverter Setup

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Grid Usage
FLT SELL SLT LBX

Enumeration

This sets the grid usage.

Set Low battery
cut out VDC

integer

This sets the low battery cut out voltage.

Set LBCO delay
minutes

integer

This sets the LBCO delay.

Set Low battery
cut in VDC

Boolean

This sets the low battery cut in voltage.

Set High battery
cut out VDC

integer

This sets the high battery cut out voltage.

Set search
watts

integer

This sets the wattage that determines when the inverter comes out of search mode, and turns on.

Set search
spacing

integer

This sets the search watts increment/decrement increment, which must be a multiple of 16.

Battery Charging

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Bulk
volts DC

float

This is the amount one must reach before selling power.

Set Absorbtion   
time h:m

time

This sets the absorbtion time.

Set Float        
volts DC

float

This sets the float voltage.

Set Equalize     
volts DC

float

This sets the equalization voltage.

Set Equalize    
time h:m

time

Set Max Charge   
amps  AC

float

This sets the maximum charging current.

Set Temp Comp    
LeadAcid NiCad

Enumeration

This ets the type of the battery, so temperature compensation works.

AC Inputs

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Grid (AC1)   
amps AC

integer

This sets the Grid current input.

Set Gen (AC2)    
amps  AC

integer

This sets the generator current input.

Set Input lower  
limit VAC

integer

This sets the lower input voltage.

Set Input upper  
limit VAC

integer

This sets the upper input voltage.

In SELL mode AC1
input VAC limits

none

Information message

fixed at 88% to
110% of nominal.

none

Information message

Gen Auto Start setup

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Load Start   
amps AC

integer

This sets the voltage for when the generator should come on to help with a high load.

Set Load Start   
delay min

float

This sets the delay in fractions of a minute for the generator to delay when starting.

Set Load Stop    
delay min

float

This sets the delay in fractions of a minute for the generator to delay when stopping.

Set 24 hr start  
volts DC

float

Set 2  hr start  
volts DC

float

Set 15 min start 
volts DC

float

Read LBCO 30 sec 
start VDC

float

Set Exercise    
period days

integer

Set Exercise     
period days

none

Information message

Set Exercise to
0 to defeat

none

Information message

See menu 9 to    
set LBCO

none

Information message

Gen starting details

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set RY7 Function 
GlowStop Run

Enumeration

Set Gen warmup   
seconds

integer

Set Pre Crank    
seconds

integer

Set Max Cranking 
seconds

integer

Set Post Crank   
seconds

integer

Auxilary Relays R9 R10 R1

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Relay 9
volts DC

float

Set the voltage for when relay 9 should turn on.

R9 Hysteresis
volts DC

float

Set the hysteresis level for relay 9.

Set Relay 10
volts DC

float

Set the voltage for when relay 9 should turn on.

R10 Hysteresis   
volts DC

float

Set the hysteresis level for relay 9.

Set Relay 11
volts DC

float

Set the voltage for when relay 9 should turn on.

R11 Hysteresis   
volts DC

float

Set the hysteresis level for relay 9.

close on batt >
setpoint

none

Information message

open  on batt <
setpoint - Hys

none

Information message

relays have 2
second delay on

none

Information message

close, 0.1 sec
delay on open

none

Information message

Bulk Charge Trigger Timer

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Start Bulk
time

time

To disable timer
set to 00:00

none

Information message

If grid timer
active set bulk

none

Information message

time after start
charge time.

none

Information message

In SLT mode dont
disable this

none

Information message

timer. It is the
daily chg time.

none

Information message

Low Battery Transfer (LBX)

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Low Battery 
transferVDC

float

Set Low battery
cut in  VDC

float

See menu 9 to
enable LBX mode

none

Information message

Make sure LBX is
above LBCO volts

none

Information message

Battery Selling

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Battery Sell
volts DC 

float

Set Max Sell
amps AC

integer

See menu 9 to
enable SELL mode

none

Information message

Grid Usage Timer

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Set Start Charge
time

time

Set the start time for charging the batteries.

Set End Charge
time

Set the time to stop charging the batteries.

After Start
Charge time:

none

Information message

SELL mode
charges battery

none

Information message

FLT mode
charges battery

none

Information message

After End Charge
time:

none

Information message

SELL mode sells
battery to AC1

none

Information message

FLT mode drops
AC1 and inverts

none

Information message

timer on  when
start <>> end

none

Information message

timer off when
start = end

none

Information message

Sell and float
modes use timer.

none

Information message

SLT and LBX mode
ignore timer.

none

Information message

Grid Usage Timer

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

Batt temp comp
changes battery

none

Information message

voltage reading
away from actual

none

Information message

HBCO resets at:
6v/48,3v/24 and

none

Information message

1.5v/12v under
HBCO

none

Information message

LowBattTransfer
used in LBX, FLT

none

Information message

modes only. Goes
back to battery 

none

Information message

at LowBattCutIn.
(aka LBCI)

none

Information message

For LBX mode set
float&bulk volts

none

Information message

below LBCI so
charger won't

none

Information message

cycle batteries
up and down and

none

Information message

set LBCO below
LBX

none

Information message

END SETUP MENU

These are the messages as displayed by the inverter:

Menu Item

Data Type

Description

END SETUP MENU

none

You are at the end of the setup menu items, and have to press menu heading down top continue.

Outback Power Systems

Unlike the Xantrex products, the Outback products support a real protocol with real flow control.

Serial Port

The Outback serial port runs at 19200 baud, 8 data bits, no parity, and 1 stop bit. Outback appears to use real UARTs, thank you!

Flow Control

Flow control to an Outback product is done via the DTR and RTS pins on the serial cable. This is a non-standard way to control the flow of data, but it works. For data to flow, the DTR pin must be held HIGH (on), and the RTS pin must be held LOW (off). Toggling either DTR or RTS pins achieves the same effect, but I've been using the DTR pin myself. To get a clean connection, you'll also want to turn off any XON/XOFF types of flow control.

I have also noticed that there are no serial communications programs that run under Unix that can handle this style of flow control. Both Kermit and Minicom only support the standard ways of flow control, and don't let you selectively turn off or on the serial port pins. On Windows I've been told that the only program that does this correctly is called Terminal I added a "console" mode to PowerGuru so I can use my own software rather than depend on 3rd party software that doesn't do the trick.

MX Message Frame

An MX status message frame is comprised of 49 ASCII numerical characters. A newline used to signify the start of a frame and carriage return is used to signify the end of the frame. These are the only two non ASCII in a message.

On my MX60 (bought roughly 2003), the address field is always wrong. On my unit it says '0', as if it were an FX inverter. Maybe this is because I don't have an FX inverter, I have a Xantrex (Trace) 4024. I plan to put an FX inverter in the Solar Lab, but right now I'm still dealing with saving up the cash for one...

      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
      0,00,32,30,000,128,00,00,000,00,265,002,140,039
    

Index

Byte Value

Data Field

Description

1

10

Message Start Frame

This is an New Line character denoting the start of the status page.

2

X

MX address

The MX address is an ASCII 'A' for unit 0, and an ASCII 'B' to 'K' for the other 9 units.

3

44

Field Separator

ASCII Comma character

4

48

Unused

ASCII Zero characters are used to fill unused fields.

5

48

6

44

Field Separator

ASCII Comma character

7

X

Charger current

Range 00-99. This is the current the charger is putting into the batteries. 1 amp increments are used.

8

X

9

44

Field Separator

ASCII Comma character

10

X

PV current

Range 00-99. The current coming from the photovoltaic panels. 1 amp increments are used.

11

X

12

44

Field Separator

ASCII Comma character

13

X

PV Input Voltage

Range 000-256. This is the voltage coming from the photovoltaic panels to the charge controller.

14

X

15

X

16

44

Field Separator

ASCII Comma character

17

X

Daily Kilowatt Hours

Range 000-999. This is the daily kilowatt hours used since daybreak.

18

X

19

X

20

44

Field Separator

ASCII Comma character

21

48

Unused

ASCII Zero characters are used to fill unused fields.

22

48

23

44

Field Separator

ASCII Comma character

24

X

MX Aux Mode

Range 00-99. This is the current Auxilary Mode. The value is used to do a tabke lookuop for the mode.

25

X

26

44

Field Separator

ASCII Comma character

27

X

Error Modes

Range 000-256. The Error Mode is currently unimplemented in the MX.

28

X

29

X

30

44

Field Separator

ASCII Comma character

31

X

MX Charger Mode

Range 00-99. The MX Charger Mode is used to do a table lookup for the mode.

32

X

33

44

Field Separator

ASCII Comma character

34

X

Battery Voltage

Range 000-999. The Battery Voltage is a 3 digit floating point number with the last digit as the fraction. So 251 volts becomes 25.1 volts. Resolution is 0.1V for 12V, 0.2 for 24V, and 0.4 for 48V systems.

35

X

36

X

37

44

Field Separator

ASCII Comma character

38

48

Unused

ASCII Zero characters are used to fill unused fields.

39

48

40

48

41

44

Field Separator

ASCII Comma character

42

48

Unused

ASCII Zero characters are used to fill unused fields.

43

48

44

48

45

44

Field Separator

ASCII Comma character

46

X

Checksum

Range 000-999. The Message checksum is calculated be adding all the digits of the message together, one at a time.

47

X

48

X

49

13

Send of Frame

The end of the message frame is a Carriage Return.

MX Message Data Tables

There are a few tables used to lookup values from the messages. Error codes are not implemented at this time, but the Auxilary and Charger Mode data fields both need to be looked up from a tables.

MX Auxilary Modes

The Auxilary mode is the current mode running on the MX.

Value

Mode

"00"

Disabled.

"01"

Diversion.

"02"

Remote

"03"

Manual

"04"

Vent Fan

"05"

PV Trigger

MX Charger Modes

The Charger mode is the current operating mode of the charger.

Value

Mode

"00"

Disabled.

"01"

Float.

"02"

Bulk

"03"

Aborb

"04"

EQ

FIXME: add much more content!!!

Authors

PowerGuru was written by Rob Savoye (). Please send all comments, suggestions, and bug reports to . I am available for consulting on a variety of renewable energy and open source technologies. More details at http://www.senecass.com

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

A copy of the GNU General Public License is included as an appendix to the GNOME Users Guide. You may also obtain a copy of the GNU General Public License from the Free Software Foundation by visiting their Web site or by writing to


     Free Software Foundation, Inc.
     51 Franklin St, Fifth Floor
     BostonMA 02111-1301
     USA