Skip to content

How To Upgrade To A New LabOne Version

Downgrade

The process for downgrading is identical to the upgrading process. However we recommend using the latest LabOne release to make best use of the latest features and bugfixes.

Updating LabOne

The first step when updating to a new LabOne version is to get the latest LabOne software package from the Download Center. (If you are using a remote DataServer you only need to Download/Install the preferred API).

Updating the API

pip install --upgrade zhinst

Please follow the Installation guide to located the sources within your LabOne installation.

Please follow the Installation guide to located the sources within your LabOne installation.

Please follow the Installation guide to located the sources within your LabOne installation.

Please follow the Installation guide to located the sources within your LabOne installation.

Important

It is critical that the data server version matches the exactly the version of the API.

Most APIs provide a utils function to check for compatible versions.

The Data Server exposes its version through two nodes /ZI/ABOUT/VERSION and /ZI/ABOUT/REVISION.

Updating the Device Firmware

A new LabOne version normally also includes a updated firmware. The bitstream for every supported device is included in each LabOne software version. Therefore no other sources are required.

Keep things simple

The simplest way of updating the firmware is through the Session dialog (start screen) of the Labone UI. The Column Update indicates if the device needs to be updated and can be used to initiate the update process.

The update process is fully automated within the LabOne data server. To start the update process for a specific device a 1 needs to be written to /DEV..../SYSTEM/UPDATE.

The update process is finished once the device successfully rebooted and ready to connect.

Important

The firmware update process involves a reboot of the device. Causing the Device to disconnect from the data server. The data server does not reconnect after this reboot.

Using Discovery to validate the update process

The discovery information can be used to detect if a device needs a update. This also can be used to validate a update process, since after a successful update the discovery will indicate that no update is required any more.

To get the discovery information for a single device the get function can be used. For the update process the relevant element is the statusflags.

from zhinst.core import ziDiscovery
discovery = ziDiscovery()
# The find step is mandatory in order to get the information
assert discovery.find("DEV2345")
info = discovery.get("DEV2345"
statusflags = info["statusflags"]
ZIConnection conn = nullptr;
handleError(conn, ziAPIInit(&conn));
const char* _;
handleError(conn, ziAPIDiscoveryFind(conn, "/DEV2345", _));
ZIIntegerData statusflags;
handleError(conn, ziAPIDiscoveryGetValueI(conn, "/DEV2345", &statusflags));
ziDAQ('discoveryFind', 'DEV2345');
info = ziDAQ('discoveryGet', 'DEV2345');
statusflags = info['statusflags'];
ziDotNET daq = new ziDotNET();
daq.discoveryFind("DEV2345");
String statusflags = daq.discoveryGetI("DEV2345", "statusflags");

Please use the ziUpdateDevice VI to update a device through LabView.

The statusflags are returned as a bit encoded integer value (see ZIDeviceStatus_enum). The following bit masks can be used to check the update progress.

  • Update in progress:

    statusflags & 1 << 8 
    
  • Update required:

    (statusflags & 1 << 4) || (statusflags & 1 << 5)
    
  • LabOne update required (or firmware downgrad)

    (statusflags & 1 << 6) || (statusflags & 1 << 7)