« Close

Datasheets and User Guides

App Notes

Software & Driver

 

Firmware

Firmware Overview

All LabJack devices, except the U12, have upgradable firmware. From time to time, we release a new firmware to fix any issues that are discovered or add new features. Find your device from the list below to download its firmware, or see revision history.

Firmware Files

Load the firmware onto a device using the appropriate software program.

Firmware Updating Programs

Windows

Linux and Mac OS X

11 comments

Gents, I am running an older U3 with hardware 1.21 and firmware 1.36 on Linux Ubuntu 10.04. I used your cook-book and was delighted about the ease of a flawless installation! Some playing with the U3  worked, but there were odd errors, which might have been caused by the old firmware.

In preparing for upgrading the firmware I noticed some issues, which I believe may result in a real mess.

The python-2.6-firmware-upgrader 's README file appears to be a plain copy of the 2.5 version, not taking into account the changes since 2.5, as e.g. the pre-reqs say:

Pre-reqs:
- The driver for the platform you are on. ( Windows = UD, Mac = liblabjackusb.dylib, Linux = liblabjackusb.so )
- The very latest version of LabJackPython from github (http://github.com/labjack/LabJackPython)
- Python 2.5
- Other Python Modules: simplejson and httplib2

As the README instructions do not distinguish between the three U3 versions, I checked the selfUpgrader.py file and noticed that only the U3C is considered, but not the others:

MAIN_FIRMWARE_URL = 'http://labjack.com/support/firmware'
FIRMWARE_DOWNLOAD_BASE_URL = 'http://labjack.com/sites/default/files'
U3C_LATEST_FIRMWARE_URL = 'http://files.labjack.com/versions/U3Cfirmware.txt'
U6_LATEST_FIRMWARE_URL = 'http://files.labjack.com/versions/U6firmware.txt'
UE9_LATEST_COMM_FIRMWARE_URL = 'http://files.labjack.com/versions/UE9comm.txt'
UE9_LATEST_CONTROL_FIRMWARE_URL = 'http://files.labjack.com/versions/UE9control.txt'

In fact, in a dry run it is downloading only firmware 1.32, which, I am afraid, would 'brick' my U3B?

Please advise if this upgrader can be used at all for my U3B, and what I have to do to make it work. Thanks

 

Sorry for the late response.  I didn't see this comment until now.  Looking at the source it does look like it is capable of programming U3A and U3B devices.  I am not sure why there is no URL for it, but you will need to download the firmware file first and copy it to the same directory as selfUpgrader.py.  Then run a command like this to specify the file you would like to use: "python selfUpgrader.py -f U3Bfirmware_152_03072008.hex 3".  selfUpgrader.py flags and options are documented in the README.txt.

If you are still uncertain of the Python self upgrader, consider using LJSelfUpgrade on a Windows computer to upgrade your U3B.

I hacked the source code, replacing U3C with U3A in the three places where it occured, and it did in fact download the 1.44 firmware.  (U3C occurs four times, twice in a variable, twice in strings, and I replaced all four), but I failed to update the firmware on this rather old U3A.

horizon-[/proj/sombrero/mcr/python2.6-firmware-upgrader] mcr 10078 %python selfUpgrader.py 3

 

Downloading firmware version 1.44 into a file called U3Afirmware_144_12112007.hex

Downloading firmware from website...

Done.

Reading firmware file...

Done.

Firmware file provides firmware version 1.44.

 

Found a U3 with a serial number 310020149 and firmware version 0.100.

Is this the U3 you wish to upgrade? [Y/n] y

Checking Authorization...

Done.

Stage 1 erasing old firmware...

libusb error: LIBUSB_ERROR_TIMEOUT

Traceback (most recent call last):

  File "selfUpgrader.py", line 129, in <module>

    upgradeU3Firmware(filename, recovery, forceYes)

  File "/Users/mikec/projects/labjack/firmware-upgrader/u36Upgrade.py", line 198, in upgradeU3Firmware

  File "/Users/mikec/projects/labjack/firmware-upgrader/u36Upgrade.py", line 56, in unlockFlash

  File "/usr/local/lib/python2.6/dist-packages/LabJackPython.py", line 536, in _writeRead

    result = self.read(readLen, stream=False)

  File "/usr/local/lib/python2.6/dist-packages/LabJackPython.py", line 282, in read

    return self._readFromExodriver(numBytes, stream, modbus)

  File "/usr/local/lib/python2.6/dist-packages/LabJackPython.py", line 324, in _readFromExodriver

    readBytes = staticLib.LJUSB_Read(self.handle, ctypes.byref(newA), numBytes)

  File "/usr/local/lib/python2.6/dist-packages/LabJackPython.py", line 74, in errcheck

    raise LabJackException(ec, "Exodriver returned error number %s" % ec)

LabJackPython.LabJackException: Exodriver returned error number 110

[1]    18819 exit 1     python selfUpgrader.py 3

 

What version of the Linux kernel are you using, or are you running Mac OS X?

Have you tried running selfUpgrader.py again?  If not try that.  If that fails unplug your U3, wait 5 seconds, reconnect and try running selfUpgrader.py again.  Also, the LJSelfUpgrade section of the U3 User's Guide provides helpful troubleshooting information if programming fails: http://labjack.com/support/u3/users-guide/1.2

Also, another alternative to hacking the code is to download the U3A firmware file, and to specify to use this file with the -f flag (example: python selfUpgrader.py -f path_to_file/U3Afirmware_144_12112007.hex 3).

Let us know if nothing works.  Worst case is that the firmware could of been corrupted beforehand, or during the upgrade.  I mention beforehand since your U3's firmware version looks suspicious as version 0.100 is not valid.  In this case email [email protected] and we can talk about an RMA.

Hello,

I just dug out my old labjack DAQ from back in 2009 and am having a difficult time upgrading the firmware.

maybe its just me but the instructions are hard to follow.  Im good with computers but still cant seem to get it.

I have upgraded the driver/software from the website and downloaded the python 2.7 upgrade files and placed them in the upgrade folder under program files.py

When i browse to the files none of them seem to work without giving me the notice 'Please select a valid file. Current file selected is 'one of the three'. valid names are ....' and continues to name the files I should be using but I cant seem to find them.

If anyone has a solution or an indication of where im going wrong I would appreciate the help.

Thanks

Mitch

It sounds like you are getting the Python firmware upgrader confused with the firmware files.  The Python downloads on this page are programs for upgrading your firmware on Linux and Mac OS X, and is an alternative to the LJSelfUpgrade program installed with the Windows driver.  Under the file attachments on this page (or the left side menu), there are links to the U3, U6 and UE9 firmware pages that contain the correct .bin and .hex firmware files.

Don't see the fw file for windows. Where?

The self-upgrading software program for Windows is called LJSelfUpgrade, and is part of the normal installation.  You will find it where you find LJControlPanel.

Hi,  Thought I'd look into upgrading the firmware on my U6 v 1.30.  It currently has 1.26 firmware.  After some struggle getting the python upgrader to work (tip: follow the instructions in the README.txt and don't try to use macports for python or httplib2), I think I got everything to work but the upgrade failed.  My U6 still has 1.26 so no disaster.  What I typed and what I got:

 

cjgm:Labjack c4g$ python selfUpgrader.py 6 

Downloading firmware version 1.35 into a file called U6firmware_135_11302011.hex

Downloading firmware from website...

Done.

Reading firmware file...

Done.

Firmware file provides firmware version 1.35.

 

Traceback (most recent call last):

  File "selfUpgrader.py", line 145, in <module>

    upgradeU6Firmware(filename, recovery, forceYes)

  File "/home/david/Development/git/firmware-upgrader/u36Upgrade.py", line 426, in upgradeU6Firmware

  File "/Library/Python/2.7/site-packages/u6.py", line 213, in open

    Device.open(self, 6, firstFound = firstFound, serial = serial, localId = localId, devNumber = devNumber, handleOnly = handleOnly, LJSocket = LJSocket )

  File "/Library/Python/2.7/site-packages/LabJackPython.py", line 603, in open

    d = openLabJack(devType, ct, firstFound = True, handleOnly = handleOnly, LJSocket = LJSocket)

  File "/Library/Python/2.7/site-packages/LabJackPython.py", line 1457, in openLabJack

    return _makeDeviceFromHandle(handle, deviceType)

  File "/Library/Python/2.7/site-packages/LabJackPython.py", line 1552, in _makeDeviceFromHandle

    device.localId = rcvDataBuff[21] & 0xff

IndexError: list index out of range

 

Did a previous upgrade fail and the U6's LED is blinking quickly? If so, run self upgrader with the "python selfUpgrader.py -r 6" command. The README.txt describes the "-r" option. If the LED light stays on and the U6 is functioning like normal, use the normal "python selfUpgrader.py 6" command.

Also, you can try unplugging your U6, waiting 5 seconds, reconnecting your U6 and try running self upgrader again with the appropriate option depending on LED activity.

 

Hi, I have problem with firmware upgrading of my U3, Firmware Version: 1.000, U3 Bootloader Version: 0.270, U3 Hardware Version: 1.300. I tried with last version (U3C firmware_146_01212013.hex) but unfortunately always is appears message "Unauthorized device"? Can you help please?