How To Upgrade To A New LabOne Version¶
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.
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
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
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
The update process is finished once the device successfully rebooted and ready to connect.
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
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
The following bit masks can be used to check the update progress.
Update in progress:
statusflags & 1 << 8
(statusflags & 1 << 4) || (statusflags & 1 << 5)
LabOne update required (or firmware downgrad)
(statusflags & 1 << 6) || (statusflags & 1 << 7)