This page lists the different WattNode Modbus meter (WNC series) firmware versions and release notes. The WattNode Modbus® meter is not field upgradable and must be returned to the factory for firmware updates. We recommend against firmware upgrades unless necessary to fix a bug or for an essential new feature. There is a nominal charge for firmware updates unless they are needed to fix a bug under warranty. This page does not list every firmware change, but only those likely to affect customers. Some changes are to enhance production or internal diagnostics.

Firmware Version 26

Released 07/1/2016.

Based on V26. This is the latest version for “Opt Fronius” meters that adds new 64-bit integer energy registers with 1 watt-hour resolution and includes a new Custom Register Map and the “Opt FP” fast power registers.

UPDATE: Added new 64-bit Energies register block from address 1401 to 1480 (80 registers). Each 64-bit energy is comprised of four registers and reports the energy in units of 1 Watt-hour. Unlike previous versions, all energies are non-volatile, non-resettable and updated once per second. The consecutive four registers that comprise each energy are in little-endian order. The maximum energy before rollover is 10 terawatt-hours. The Energies block contains a total of 20 energies in the following order:

EnergyPosSum64NR (1401 to 1404), EnergyNegSum64NR (1405 to 1408),

EnergyPosA64NR (1409 to 1412), EnergyPosB64NR (1413 to 1416), EnergyPosC64NR (1417 to 1420),

EnergyNegA64NR (1421 to 1424), EnergyNegB64NR (1425 to 1428), EnergyNegC64NR (1429 to 1432),

EnergyReacSum64NR (1433 to 1436), EnergyReacA64NR (1437 to 1440), EnergyReacB64NR (1441 to 1444), EnergyReacC64NR (1445 to 1448),

EnergyAppSum64NR (1449 to 1452), EnergyAppA64NR (1453 to 1456), EnergyAppB64NR (1457 to 1460), EnergyAppC64NR (1461 to 1464),

EnergySum64NR (1465 to 1468), EnergyA64NR (1469 to 1472), EnergyB64NR (1473 to 1476), EnergyC64NR (1477 to 1480)

UPDATE: Added support for Wild Leg on Phase C, which can be selected by writing a value of 91 to the PhaseOffset register (1619).

UPDATE: Because all energies are non-resettable, the ZeroEnergy configuration register (1620) no longer works. It can still be read but the only value that can be written is zero, which has no effect. Writing any other value will result in a Modbus exception response. Similarly, the float and 32-bit integer energy registers may no longer be written to preset the energy.

UPDATE: The float energies now report in units of 1 Wh instead of 0.1 kWh. The 32-bit integer energy registers may still be read but they always report zero since they are deprecated and replaced by the 64-bit integer energies.

UPDATE: Add 8 new registers from 50005 to 50012, for reporting a manufacturer string, “Fronius”, in SunSpec Common Model Text (i.e. null-terminated and zero-padded ASCII text in Big-Endian order).

INTERNAL: The internal energy accumulators are now in energy iota units of 1Wh/(2^19) instead of 0.1kWh/(2^26).

INTERNAL: To allow saving the new energy iota units in the same amount of FRAM space, the internal 64-bit energy accumulators are saved differently than on previous versions. Instead of compressing the MS sign byte for the 23 energies into a single, uint16 signBits value and discarding the MS and LS byte of each energy, no sign compression is done and the LS two bytes are simply discarded. Thus, up to 0.1 Wh of energy could be lost due to a power failure.

INTERNAL: Improve logic that validates multi-register write commands by having it immediately reject malformed commands instead of relying on subsequent validation logic to reject them.

CHECKSUM: 51126 (obtained by reading the DiagnosticData1 register at address 1802)

Bugs For V26

None

Firmware Version 24

Released 07/20/2015.

Based on V22. This is the latest version for Opt FP meters where the meter responds to measurement requests with an exception if it is uncalibrated and calibration access has not been granted.

BUG: Fixed bug present since V22 where meter reported zero for energies during first second of operation.

BUG: Fixed bug present since V14 where at 9600 baud, the meter only allowed a maximum silent gap of 0.75 ms. between bytes when receiving messages. This caused messages to be ignored if a master inserted gaps longer than that (the maximum that the Modbus standard permits of 1.5 character times or 1.56 ms.).

UPDATE: Added logic to make an uncalibrated meter respond to measurement requests with a Modbus “slave device failure” exception and log a new error code 196 (eanMeterUncalibrated), unless the meter has been unlocked for calibration.

UPDATE: Removed logic for suppressing the following two error codes for detecting defective EEPROM on uncalibrated meters: eanBadNVCfg (code 68) and eanBadEECfg (code 73). Although defective EEPROM was detected without this change, this update allows the problem to be detected sooner in the calibration/test process.

INTERNAL: Refactor/rename IsCalUnlocked() macro to IsCalLocked() to eliminate duplicated code.

CHECKSUM: 24342 (obtained by reading the DiagnosticData1 register at address 1802)

Bugs For V24

Firmware Version 23

Released 07/20/2015.

Based on V20. This is primarily intended to support pre-programmed microcontrollers and ensure that the firmware will not report measurements until after calibration.

BUG: Fixed bug present since V16 where meter reported zero for energies, power, voltage etc. measurements during first second of operation.

BUG: Fixed bug present since V14 where at 9600 baud, the meter only allowed a maximum silent gap of 0.75 ms. between bytes when receiving messages. This caused messages to be ignored if a master inserted gaps longer than that (the maximum that the Modbus standard permits of 1.5 character times or 1.56 ms.).

UPDATE: Added logic to make an uncalibrated meter respond to measurement requests with a Modbus “slave device failure” exception and log a new error code 196 (eanMeterUncalibrated), unless the meter has been unlocked for calibration.

UPDATE: Removed logic for suppressing the following two error codes for detecting defective EEPROM on uncalibrated meters: eanBadNVCfg (code 68) and eanBadEECfg (code 73). Although defective EEPROM was detected without this change, this update allows the problem to be detected sooner in the calibration/test process.

INTERNAL: Fixed issue where in the rare event that the calibration or configuration was corrupt, a UART watchdog error (eaUARTWatchdog, error code 33) would be reported when it didn’t actually occur.

INTERNAL: Updated a few cases in the interrupt handler where conditions that should never happen were reported by a FAIL_ASSERT instead of ISR_FAIL_ASSERT.

INTERNAL: Fix MISRA C warning.

INTERNAL: Refactor/rename IsCalUnlocked() macro to IsCalLocked() to eliminate duplicated code.

CHECKSUM: 7198 (obtained by reading the DiagnosticData1 register at address 1802)

Bugs For V23

None

Firmware Version 22

Released: 03/15/2015

Firmware version 22 is only used for the Option FP (Fast Power) version of the WattNode meter. It provides fast power registers that update five times per second. Firmware version 21 was a beta version that was never publicly released.

  • UPDATE: Added CalOptions option, OPT_FP bit (weight 16384), to indicate that the meter has option Fast Power firmware enabled.
  • UPDATE: Added OptRevenueGrade customer diagnostics register 1737, that reads 1 or 0 to indicate that the meter is or is not a revenue-grade model, respectively.
  • UPDATE: Added OptFastPower customer diagnostics register 1738, that reads 1 or 0 to indicate that the meter does or does not have option Fast Power enabled, respectively.
  • UPDATE: Added PowerSecondsFast Basic Float register 1035, that reports the timestamp of the most recent update for the PowerFast registers and increments by 0.2 seconds at 5 hz. This rolls over to zero every 24 hours.
  • UPDATE: Added PowerSumFast Basic Float register 1037, that reports the sum of the fast power readings for all phases and is updated at 5 hz. Averaging does not apply.
  • UPDATE: Added PowerAFast Basic Float register 1039, that reports the power for phase A and is updated at 5 hz. Averaging does not apply
  • UPDATE: Added PowerBFast Basic Float register 1041, that reports the power for phase B and is updated at 5 hz. Averaging does not apply
  • UPDATE: Added PowerCFast Basic Float register 1043, that reports the power for phase C and is updated at 5 hz. Averaging does not apply
  • UPDATE: During startup, before valid readings are available, previous versions would respond with zero values. This firmware version waits to respond to measurement queries until valid readings are available (1-2 seconds).

Firmware Version 20

Released: 12/17/2013

Firmware version 20 is only used with special versions of the WattNode meter that do not include LEDs and the DIP switches.

  • UPDATE: Updated the CalOptions register to include option OPT_NO_LED (weight 4096), which disables the LEDs (status and COM). This may be used for power saving or cost reduction.
  • UPDATE: Updated the CalOptions register to include option OPT_NO_DIP (weight 8192), to disable the DIP switch hardware. Instead, the baud rate will default to 19,200 and the Modbus address to 127. Generally this option will be used in conjunction with factory options to specify the desired baud rate and Modbus address. Enabling this option will disable the feature to restore factory communication settings by setting all DIP switches to the OFF position for 10 seconds.
  • UPDATE: Enabled the hardware watchdog timer with a 1.0 second timeout interval.

Firmware Version 19

Released: 3/18/2013

Manual Supplement: MS-23-WNC-Modbus-Revenue.pdf (PDF, 2 pages)

This release is used for both standard and revenue models of the WattNode Modbus. The factory default configuration for both models is unlocked. Meters can be ordered from the factory locked by specifying Option L.

  • UPDATE: Add feature to factory lock CtAmps, CtAmpsA, CtAmpsB, CtAmpsC at the time of calibration. The CT models and rated amperage must be specified when the meter is ordered.
  • UPDATE: Add feature to factory lock any configuration registers that could affect energy readings: GainAdjustA, GainAdjustB, GainAdjustC, PhaseAdjustA, PhaseAdjustB, PhaseAdjustC, CreepLimit, and CtDirections.

Firmware Version 18

Released: 11/26/2011

Manual: WNC-Modbus-Manual-V18.pdf

Register List: WNC-Modbus-Register-List-V18.xls – Same as the V16 register list.

  • UPDATE: Implement double-buffering for all timestamps, floating point registers, and 32 bit integer registers so they all correspond to the same set of measurements. This facilitates synchronized accuracy testing by polling all energies and the timestamp with a single Modbus transaction.
  • UPDATE: Eliminated yellow (low power factor) and yellow/red (low power factor, negative power) LED flashing patterns on the phase status LEDs.

Firmware Version 17

Released: 06/15/2011

Manual: File:WNC-MODBUS-Manual-V16.pdf – The V16 manual still applies

Register List: File:WNC-Modbus-Register-List-V16.xls – The V16 register list still applies

This is a minor maintenance release. There are no changes to the manual or the register list. If you are affected by one of the corrected bugs, you should contact CCS about getting a firmware upgrade.

  • BUG: When the Averaging register 1608 was assigned a value higher than the default of 1 (for a 5 second averaging interval), the averaged readings didn’t update properly. The averaged readings alternated between the present averaged value and an older, stale value that was no longer valid. Fixed.
  • BUG: If zero was written to the CreepLimit register (1618), the phase LEDs turned red and the meter reset every 10 seconds. Fixed, a zero value can no longer be written and will cause an exception response.
  • BUG: The OptIoPinMode register didn’t always reflect the factory assigned setting. The IoPinMode register reported the correct value. Now both registers report the correct value.
  • UPDATE: Restrict values written to ModbusMode register 1655 to 0 (RTU) or 1 (TCP-RTU). This prevents invalid values from being written, which could cause communication problems.

Firmware Version 16

Released: 11/16/2010

Manual: File:WNC-MODBUS-Manual-V16.pdf

Register List: File:WNC-Modbus-Register-List-V16.xls

Firmware Enhancements

  • Digital Input/Output Options – Adds support for the new Option IO and Option SSR that configure the WattNode meter X terminal for counting pulses from an external meter, monitoring a digital status signal, or for controlling loads for shedding applications. This support includes the new PulseCount, IoPinData, and IoPinMode registers.
  • Energy Presets – Adds the ability to reset or preset the resettable energy registers on a per-register basis. The preset feature is particularly useful if you are replacing an existing meter and want the reported energy to pick up where the old meter left off. The ConfigPasscode can be configured to ensure this feature isn’t used for tampering.
  • Improved Modbus Response Time – Improves the Modbus message response time. Before the V16 firmware, the worst-case response time was 300 milliseconds. This has improved to less than 25 ms.
  • Configurable Reply DelayReplyDelay (1656) configures a user-defined minimum Modbus reply delay between 5 and 180 milliseconds (the default is 5 milliseconds). This is useful with some Modbus master devices or software that can miss response data if the WattNode meter responds to a request too quickly.
  • Extended Phase Adjustment Limits – Changes the minimum and maximum limits for the PhaseAdjustA, PhaseAdjustB, and PhaseAdjustC registers from ±5000 millidegrees to ±8000 millidegrees (8 degrees).
  • Per-Phase Demand Registers – Adds DemandA, DemandB, and DemandC registers that report the real power demand for each individual phase.
  • Configurable Integer Current Scaling – Adds CurrentIntScale register for scaling the integer current registers. There was previously a virtual (could not be read or written) CurrentIntScale register; now it is a real register that can be changed.
  • Improved Line-to-Line Voltage Estimation – Adds line-to-line voltage estimation for four-wire delta (wild phase) and grounded delta electrical service types.
  • Simplified CtAmps Logic – Updates the functionality of the registers CtAmps, CtAmpsA, CtAmpsB, and CtAmpsC to prevent confusion.
    1. The global CtAmps register changes into a command register that assigns the specified value (amps) to all three phase registers (CtAmpsA, CtAmpsB, or CtAmpsC) whenever it is written.
    2. The global CtAmps register reads back zero unless all three per-phase CtAmps registers are the same, in which case it read backs the common value. This behaves much like it did on previous firmware versions, except that it reads back zero if the per-phase CtAmpsA, CtAmpsB, or CtAmpsC are different, which alerts the user to the fact that the per-phase registers must be read to ascertain the CT rating for each phase.
  • Custom Register Map – Adds a configurable register mapping feature for the following two situations:
    1. You want to read a specific group of registers efficiently, but not all the registers are in the same block, so you would need two or more Modbus frames to read all the data. With a custom mapping, you can combine all the registers you need into a single block.
    2. The custom register map allows you to emulate another device by reorganizing the WattNode Modbus meter registers.
  • Improved Modbus Error Detection – Improves framing error detection and incorrect baud rate detection for communications trouble-shooting indication on the Modbus Com LED. Older firmware versions would sometimes flash the Com LED yellow when the baud rate was incorrect; the new firmware will flash the LED red.

Additional Updates and Bug Fixes

  • UPDATE: Added logic to ensure that any internal error that affects the accuracy of reported data will result in a Modbus exception “slave device failure” in response to commands for reading the data registers.
  • UPDATE: Added code to make the Modbus COM LED follow the same Red-Yellow-Green power-up pattern as the other LEDs.
  • UPDATE: Added OptCtAmpsA, OptCtAmpsB, OptCtAmpsC, OptModbusMode, OptAddress, OptBaudRate, OptParityMode, Opt232, OptTTL, OptIO, OptX5, OptSSR, and OptIoPinMode registers for showing the factory-define options.
  • UPDATE: Added support for RoHS / lead-free hardware revision. All V16 and later WattNode Modbus meters will be fully RoHS compliant.
  • BUG: If the register DemSubInts was set to zero (which should be treated like 1), an internal variable was incorrectly computed so the demand wasn’t computed. Fixed.
  • BUG: If the GainAdjustA, GainAdjustB or GainAdjustC registers were written with zero (which should have been treated like 10000) the WattNode reported error 41 (BadGainAdj), turned the phase LEDs red and rebooted every 10 seconds. Fixed.

Firmware Version 15

Released: 09/16/2010

Manual: WattNode Modbus Installation and Operation Manual (PDF, 59 pages)

Register List: WNC Modbus Register List V12 (XLS)

  • BUG: Version 13 introduced an unintended side-effect that caused the WattNode meter to no longer respond to illegal function codes (i.e. function codes that it doesn’t support) with a Modbus exception (01 – Illegal Exception) response. Instead of responding with the exception, the meter would flash the COM LED red and ignore the message. Version 15 reinstates the exception response so that Modbus master controllers can rely on it for slave device discovery purposes.

Firmware Version 14

Released: 06/10/2010

Manual: File:WNC-MODBUS-Manual-V12.pdf

Register List: File:WNC Modbus Register List V12.xls

  • BUG: When a high voltage model (e.g. WNC-3D-480-MB) is used with a large CT amps rating (e.g. 3000 amps) and the meter measures a power level that exceeds one megawatt on one or more phases, a false error code 76 (“impossible power register value”) is reported and the meter stops reporting power. Energies for all three phases then accumulate at half the normal rate for as long as there’s one or more phases measuring power greater than one megawatt.

Firmware Version 13

Beta version, released: 02/22/2010

  • UPDATE: Ignore all RS-485 bus traffic after receiving the last byte of the master’s command message for the first 5 ms. after receiving a message from the master before starting to transmit the response. This makes the WattNode meter more tolerant of misbehaving Modbus masters that glitch the bus after sending the last byte of a command message to the meter. This also makes the meter more fault-tolerant of an electrically noisy (e.g. unbiased) RS-485 bus.

Firmware Version 12

Beta version, released: 02/22/2010

  • UPDATE: Ignore all RS-485 bus traffic after receiving the last byte of the master’s command message for the first 5 ms. after receiving a message from the master before starting to transmit the response. This makes the WattNode meter more tolerant of misbehaving Modbus masters that glitch the bus after sending the last byte of a command message to the meter. This also makes the meter more fault-tolerant of an electrically noisy (e.g. unbiased) RS-485 bus.

Firmware Version 11

Released: 9/23/2009

  • BUG: Although the factory and customer diagnostic registers could be written with a single-register write command, they could not be written with a multi-register write command. Fixed.
  • BUG: ErrorStatus1 to ErrorStatus8 registers were updated in a way that resulted in the same error code being logged multiple times. Fixed.
  • BUG: If bus contention occurred while the WattNode meter was sending a reply, the meter would fire an erroneous eaLPIntSpurTx2 assertion and do a reset. Fixed.
  • BUG: Severe errors were being counted twice in the internal error log. Fixed.
  • UPDATE: Added a register for configuring the unit for even parity and implemented logic to reset this option back to no parity if DIP switches are set to all zero for 10 seconds. Made the framing error count register also count parity errors.
  • UPDATE: Added a factory command to make the unit compute a 16-bit checksum for verifying its program code.
  • UPDATE: Added communications configuration registers for assigning baud rate of 38400, even parity and slave address greater than 127.

Firmware Version 10

Released: 12/29/2008

  • UPDATE: Implemented the new duplicate address and bus contention detection algorithm that gives the new alternating red/yellow LED flashing indication and improved the Modbus LED behavior in general to provide less potentially confusing error/fault indications.
  • UPDATE: Implemented the new automatic RS-485 reverse A/B polarity correction feature.
  • UPDATE: Implemented the new alternate error reporting registers (or 8-register ErrorStack) from 41716 to 41723. Writing a zero to any of the eight registers resets them all.
  • UPDATE: Added code to respond with a Modbus “slave device failure” exception whenever data registers (e.g. energies, power, volts, amps) are read when the WattNode needs calibration (unless the calibration passcode has been entered). This does not affect requests to read errors, configuration or calibration registers.
  • UPDATE: Added new info-only error codes, duplicate address (249) and RS-485 bus contention (248).
  • UPDATE: Implemented on-the-fly message CRC computation and error-checking in the Modbus FSM’s ISR handling code to provide more reliable Modbus error LED indications and assertion reporting when invalid communications parameters are used. These changes also facilitate the duplicate address and bus contention detection algorithm. This also eliminates the long timing latency (several hundred milliseconds) that was previously due to deferral of final error checking to mainline code. This makes the WattNode much more tolerant of minor timing violations by the master and/or other slave devices.
  • BUG: Not all of the energies saved in FRAM were protected by a checksum (CRC) so if a cosmic ray caused a bit to flip while the WattNode was powered down it might not be detected by the WattNode when the unit was powered up. Fixed.

Firmware Versions 1-9

Development and limited release versions.