Archive:CALMU3
Note: This was the electricity meter in our old space at Unit 24, 37 Cremer Street. It is preserved here for historical reasons as this page is probably the most comprehensive documentation of this meter on the internet.
Calmu3+ from Polymeters Response International. "The first microprocessor-based meter", which uses "FFT, rather than 'brute-force' DSP" [1]
It may need calibration periodically, but that's probably up to the supplier.
Details
- Part no: C3DBD0BC0SJ (3 phase direct, class 1 accuracy, lithium backup, C?)
Interfaces
- Infrared PACT port (this is a standard - possible adapter)
- Serial port ("for PC, modem or PACTLAN"). This is apparently not PACT.
Software with support
- Principal (DOS) or Ease II (can't get this to run on XP due to .vbx; probably needs 2000; uses stopcopy protection) from PRI
- mv-rs, and possibly other Itron stuff
- Ziphany
Source code
https://github.com/londonhackspace/Powered
Resources
A later model, with a nice overview of available metrics.
Presumably ex-PRI consultant on Calmu meters
Serial protocol
1200bps ASCII, \r terminated
Equals symbols are shown on some variables, but presumably wouldn't fit for many. This seems to be consistent within each value, however.
'N', 's', 'u' or 'x' are slightly special/buggy. If a valid index isn't provided for 'N' or 'x', the meter returns '\xff' with no '\r', so take steps to prevent this. If a valid index isn't provided for 'u', 'U\r' is returned. 's' always seems to return the same value.
Lowercase commands are always inverted and smaller than uppercase, suggesting they're from another perspective. Obviously, units still increase, so 'u' probably just calls 'U', explaining its strange behaviour.
Sampling seems to be live, so sampling more frequently will be more accurate. Due to the baud rate, a sample takes 120-240ms.
Commands
F | Frequency | "F=50.138\r"
|
---|---|---|
R | (Real?) time. | "R=15:00:40\r"
|
S | Serial number | "SP99A01869\r"
|
s | Meter information | "s=", dword 0xa605019e, dword 0, "\r"
|
B[AVWvw] | ? |
|
I[123] | Active Current (A) |
|
i[123] | Reactive Current (A) |
|
L[123] | "Apparent" current (A) |
|
K[123A] | Apparent power (kVA) |
|
KW | Total Active power fundamental frequency |
|
KV | Total Reactive power |
|
P[123] | Real power (kW) |
|
p[123] | Reactive Power (kVAR) |
|
Q[123A] | Power factor
Not sure what the +/- means |
|
U[AVWvw] | Units |
|
u[AVWvw] | Units (duplicate?) |
|
V[123] | Voltage (V) |
|
X[0-9A-F][0-9A-F] | Return memory (see below) |
|
\x83 | ? | Please don't call these, as they're probably for programming
|
\x84 | ? |
|
\xfa | ? |
|
\xfb | ? |
|
\xfc | ? |
|
\xfd | ? |
|
\xfe | ? |
|
Notes
- V is clearly voltage.
- I is clearly current.
- Q is {0, 1}, so clearly power factor.
- P is I * V, so must be true power.
- K is P / Q, so must be apparent power.
- L is I*Q, so "apparent" current.
Memory
This is probably RAM. This MCU is 768 bytes of RAM.
X00=A98991 # increments by ~ 0xb800-0xc800 every second (~50kHz MCU clock?) X01=00008E # floats around here - drift/correction of X02? X02=00C3E9 # floats around here - last increase of X00? X03=03A590 # X04=00000A # static X05=000000 # static X06=FFFD1E X07=0000FE # static X08=0007C8 # floats around here X09=0005CD # floats around here X0A=FFFAD5 # floats around here X0B=00000D # sometimes jumpy (0x03-0x2e) - adjustment? X0C=000000 # static X0D=FFFFFF # static X0E=00007F # static X0F=000000 # sometimes 0xffffff X10=000000 # static X11=00000A # static X12=00008F # floats by +- 0x20/0x40 around here X13=0000FF # static X14=FFFFFF # static X15=FFFFFF # static X16=02EA22 # very slow increase X17=FFFFFF # static X18=000000 # static X19=000000 # static X1A=FBA66C # slow increase ~1/sec - timer X1B=0000FF # static X1C=000003 # static X1D=000000 # static X1E=000000 # static X1F=73FAEE # static X20=FFFFFF # static X21=FFFFFF # static X22=FFFFFF # static X23=FFFFFF # static X24=007F58 # also 0x53 X25=000000 # also +-0x20 occasionally X26=FF9900 # also 0x0040FF, 0x000AE0, 0x001320 X27=00400B # also 0x001400, 0x001320 X28=687687 # also 0x001400, 0xC6C5FA, 0x001320 X29=FFFD13 # floats around here X2A=0003E8 # static (1000) X2B=0003E8 # static (1000) X2C=03A4A8 # slow increase X2D=03B0DC # slow increase X2E=03BB34 # slow increase X2F=0007C3 X30=FFFAC7 X31=0005AB # very slow increase X32=00033A # very slow increase X33=000003 # also 2 X34=000005 # also 2 X35=FFFDDA X36=FFFFFF X37=FFFFFC X38=00027D X39=FFFFFD X3A=000001 X3B=26E6F4 # This is the value returned by command UW X3C=000001 # This is (probably) the value returned by command Uw X3D=05551E # This is the value returned by command UV X3E=02B641 # This is the value returned by command Uv X3F=282A7A # This is the value returned by command UA X40=00000D # static X41=00100D # static X42=53100D # static X43=58100D # static X44=FFFFFF X45=FF00FF # static X46=0400FF # static X47=0400FF # static X48=03A4FC X49=000000 # static X4A=FFFFFF # static X4B=050013 # static X4C=000000 # static X4D=050013 # static X4E=000000 # static X4F=000000 # static X50=FFFFFF # static X51=FFFFFF # static X52=FFFFFF # static X53=FFFFFF # static X54=000000 # static X55=000000 # also 0xffffff X56=FFFFFF # static X57=FFFFFF # static X58=000000 # static X59=FFFFFF # static X5A=000000 # static X5B=000000 # static X5C=000000 # static X5D=000000 # static X5E=000000 # static X5F=000000 # static X60=000000 # static X61=000000 # static X62=000000 # static X63=000000 # static X64=000000 # static X65=FFFFFF # static X66=000000 # static X67=000000 # static X68=FFFFFF # static X69=000000 # static X6A=FFFFFF # static X6B=FFFFFF # static X6C=FFFFFF # static X6D=FFFFFF # static X6E=000000 # static X6F=FFFFFF # static X70=000000 # static X71=000000 # static X72=000000 # static X73=000000 # static X74=000000 # static X75=000000 # static X76=000000 # static X77=FFFFFF # static X78=000003 # static X79=000076 # static X7A=000015 # static X7B=000000 # static X7C=000019 # static X7D=00216B # static X7E=00000C # static X7F=00001D # static X80=000058 # static X81=007F44 # static X82=000001 # static X83=000000 # static X84=000000 # static X85=000000 # static X86=000000 # static X87=000000 # static X88=000000 # static X89=000000 # static X8A=000000 # static X8B=000000 # static X8C=000000 # static X8D=000000 # static X8E=000010 X8F=001A6F X90=000000 # static X91=000011 # static X92=0006F0 # static X93=0006F0 # static X94=00000C # static X95=000006 # static X96=000002 # static X97=FFFFFF # static X98=000000 # also 0xffffff X99=FFFFFF # static X9A=FFFFFF # static X9B=000000 # static X9C=000000 # static X9D=000000 # static X9E=000000 # static X9F=000000 # static XA0=000003 # static XA1=000000 # static XA2=FFFFC0 # static XA3=FFFF84 # static XA4=000001 # static XA5=000001 # static XA6=000000 # static XA7=000001 # static XA8=000002 # static XA9=000000 # static XAA=000001 # static XAB=000001 # static XAC=007F3C # static XAD=007F4E # static XAE=007F58 # static XAF=0000FF # static XB0=0003E8 # static (1000) XB1=0000FF # static XB2=000000 # static XB3=00016E # static XB4=0005B5 # static XB5=000708 # static XB6=0003DF # static XB7=0003E5 # static XB8=0003F8 # static XB9=001F40 # static (8000) XBA=00015E # static XBB=000000 # static XBC=000A87 # static XBD=000B9B # static XBE=001D4C # static (7500) XBF=000000 # static XC0=004100 # static XC1=0078E0 XC2=000095 XC3=000000 # static XC4=000056 # floats around here XC5=000054 # floats around here XC6=00012F XC7=00012A # static XC8=00016D # static XC9=001080 # static XCA=007F00 # static XCB=FFFD00 # static XCC=007E00 # static XCD=00110C # static XCE=003348 # static XCF=002730 # static XD0=000384 # static XD1=00293B # static XD2=0029EB # static XD3=0001FF # static XD4=003262 # static XD5=00FFFF # static XD6=0332D4 # static XD7=015180 # static XD8=001F36 # static XD9=014244 # static XDA=000001 # static XDB=000001 # static XDC=000000 # static XDD=000000 # static XDE=000000 # static XDF=989680 # static XE0=FFFFFF # static XE1=F3A27C # static XE2=F3A27C # static XE3=000AFA # static XE4=000000 # static XE5=000AF8 # static XE6=000000 # static XE7=73FAEE # static XE8=CCBBAA # static XE9=050002 # static XEA=050013 # static XEB=050013 # static XEC=050013 # static XED=050013 # static XEE=050013 # static XEF=050013 # static XF0=050013 # static XF1=050013 # static XF2=050013 # static XF3=050013 # static XF4=050013 # static XF5=050013 # static XF6=050013 # static XF7=050013 # static XF8=050013 # static XF9=050013 # static XFA=050013 # static XFB=050013 # static XFC=050013 # static XFD=050013 # static XFE=050013 # static XFF=050013 # static
Showing 1 related entity.