Firmware
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.
LJSelfUpgrade for upgrading using Windows
Use the latest version of LJSelfUpgrade to upgrade the firmware on Windows. In order to run, LJSelfUpgrade version 1.24 and above requires the installation of UD driver 3.15 on your system.
Python Firmware Upgrader for upgrading using Linux and Mac OS X
Linux and Mac users, or adventurous Windows users, can use a Python firmware upgrader from the list below. (Grab the correct one for your system, Python 2.7, 2.6 or 2.5.)
- Requires Internet access during programming.
- If you have UE9 Control firmware older than 1.78, you must use LJSelfUpgrade.
- If you have a U3A or U3B (hardware revisions 1.20 or 1.21), you can use the Python upgrader by manually downloading and specifying the proper firmware file (see readme file), but it is lightly tested. If you run into problems, find a Windows machine and use LJSelfUpgrade to attempt to recover as described in Section 1.2.
Note: The Python Firmware Upgrader requires httplib2. It can be downloaded from its Google code page. Python 2.5 also requires simplejson, which can be downloaded here.
Warning to Linux and U6 Users: Linux with newer kernels 3.0.0 and above has problems with upgrading U6 firmware. Older kernels, such as 2.6.32, can upgrade a U6 with no issue. It is uncertain exactly what kernel version the problem starts at or if only certain distributions are affected. To be safe, upgrade U6 firmware on Mac OS X or Windows.
Search
Shopping Cart
Testimonials
-
Man, you LabJack folks are great! ...and with fast responses! I think this will do just fine for me. THANK YOU VERY MUCH!!!—Lew, ISB, LLC


Comments
#1
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
#2
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.
#3
Don't see the fw file for windows. Where?
#4
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.
#5
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
#6
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.
#7
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
#8
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 support@labjack.com and we can talk about an RMA.
#9
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
#10
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.