Firmware files require LJSelfUpgrade V1.21 or higher in order to upgrade the U3, which is included in the labjack installer.
WARNING: This warning applies to anyone using a programming utility other than LJSelfUpgrade. Attempting to program a U3A with U3B firmware will result in improper programming. This is because the U3A does not have sufficient code space to handle the U3B firmware. If a U3A is programmed with U3B firmware the device can be recovered by jumpering to flash mode and loading U3A firmware. A U3B can be programmed with U3A firmware and will function as a U3A. LJSelfUpgrade will not allow firmware for one version to be programmed onto the other.
U3C Firmware (Hardware 1.30)
1.46: Watchdog wasn't getting cleared unless response packet was read very quickly. Fixed. Timer1 was returning incorrect data when set to modes 2 or 3.
1.44: Feedback will now thrown an error when an AIN is read while stream is active. Added special range support to high voltage channels in modbus. Compatibility settings written by the user will now be loaded at startup. When calling the depreciated, low-level, SWDT config command the bit for enabling a DIO change will be recognized as the bit for DIOA not DIOB. Added a bus idle check to the I2C. Timer modes 5 and 6 (counter and counter with debounce) now respond to their proper timer mode numbers (they were swapped). Timer 1 will now be properly set during initialization. I2C will now return ACK information when only reading. Only one ack for the address will be reported. Improved timer performance. Changed the watchdog so that it will not clear until the host computer has read the response. Fixed a problem that was causing edge32 and edge16 timer modes to return improper data while streaming with reset. Increased I2C max clock stretch time to 1000 clock cycles. When a timer is set to mode 0 or 1 (PWM) reading the timer will return the controlling count.
1.32: Added special channel support to CR functions. SPI modes changed to match documentation. Added Line-to-Line timer mode. Added 1-wire communication. ModBus related: Added DAC limit checking. Will now compensate for 8-bit or 16-bit DAC calibration. Added support for 3.3V input range. Added Negative Chn support for chn 199 (GND). Fixed an issue that was corrupting data returned by modbus. Added modbus data format check. Changed the default device name string to ASCII. Fixed an issue that could prevent counters from being enabled by the startup settings system. Fixed a problem that could force DACs to 8-bit mode.
1.24: Added extended default system. Added ModBus functionality. Added extended watchdog function. Fixed a problem that was clearing SWDT settings during initialization. Enabled descriptor string reading. USB has been updated to improve compatibility with Linux kernels prior to 2.6.28.WARNING: Upgrading across this boundary will reset startup setting to the manufacturer's defaults. Downgrading across this boundary will result in randomized startup values.
1.12: Fixed an issue that was corrupting stream channels. Changed the time interval of the short_wait feedback function from 64 to 128us
1.11: Port digital state functions are now allowed to update EIO6 and EIO7.
1.10: Added a compatibility bit that forces the DACs to 8-bit mode to reduce noise.
1.09: Stream will no longer decode channel 193 to channel 1. Added stream channel 194 for CIO lines.
1.08: Improved UART support for hardware 1.30. Changed counters so that resets will occur after reading the value.
1.07: Fixed a problem that was causing EIO6 and 7 to not work with the I2C function.
1.04: Fixed a problem that was causing stream channel 193 to return inappropriate data.
1.03: Fixed a problem that was causing Digital port IO types to apply changes to incorrect channels. Fixed a problem that was causing analog read of EIO[0:3] to report voltages on other channels.
1.02: ConfigIO will no longer throw errors when no write bits are set.
U3B Firmware (Hardware 1.21)
1.54: Added a clock stretching feature to the I2C function. USB has been updated to improve compatibility with Linux kernels prior to 2.6.28.
1.52: Added an I2C option to disable the stop used when restarting. Sending 255 to the debounce function will now have the same effect as 254. Added an I2C option to enable clock stretching, up to a maximum of 50 clock periods.
1.50: State DIO functions will now force masked pins to output.
1.49: I2C acknowledge array now includes the address byte. Added an error to prevent AIN functions from being called while streaming. Added an error to prevent using channel 30 (Vref) as the negative channel while using Vdd as the reference voltage (30 is an invalid Negative channel while using Vdd as Vref). Stream channel 193 now returns FIO in the LSB to match the documentation.
1.44: Fixed CIO startup sequence. Default CIO settings will now be loaded properly. Removed level sensitivity from timer debounce mode. Debounce quantity is now 1+requested amount.
U3A Firmware (Hardware 1.20)
1.44: Improved code layout to prevent upgrade issues.
1.43: Fixed an upgrading issue that was causing flash corruption. The corruption caused the U3 to reset whenever a AIN command was executed.
1.41: (May 3, 2007) Fixed an issue that was causing the U3 hardware version 1.20 to reset when acquiring analog data.
1.40: (April 6, 2007) Improved 16-bit PWM updates.
1.38: (March 6, 2007) Added support for reading the lower 32-bits of the system timer as a stream channel.
1.36: (February 27, 2007) More flash protection.
1.35: (February 7, 2007) A new error was added to indicate a missed scan count overflow while stream auto-recover is active. Added additional flash protection.
1.32: (January 22, 2007) Occasionally the U3 experiences unexpected flash modification. This new firmware adds serval new flash protections to prevent unintentional flash changes.
1.28: (December 12, 2006) Improved counter reading in stream mode. (U3 hardware Rev 1.21 only).
1.26: (September 14, 2006) Added special stream channels for counters and timers. Firm counter data can now be read while streaming. (U3 hardware Rev 1.21 only).
1.20: (September 8, 2006) Major change to Upgrade procedure. (Requires LJSelfUpgrade 1.11)
1.19: (August 28, 2006) Initial stream implementation. (U3 hardware Rev 1.21 only)
1.18: (August 25, 2006) Updated settling times for the higher clock speed of the U3 rev 1.21.
1.17: (August 15, 2006) Added support for changing USB descriptor strings. Added logic to prevent roll issues in between low and high system timer reads.
1.16: (August 10, 2006) Fixed issue affecting FIO4 when streaming or using Wait IOType in Feedback function. Added I2C and UART functions.
1.14: (July 25, 2006) Moved power-up defaults to earlier in the startup sequence. Fixed a problem where DAC1 enable power-up default was not working correctly.
1.12: (July 19, 2006) Unknown functions now return checksum error.
1.10: (July 11, 2006) Fixed a problem that was preventing DAC defaults from working if DIO defaults were not being used.
1.09: (July 6, 2006) Minor changes made to the way that timers are enabled and disabled.
1.06: (May 30, 2006) Fixed issue with the FIOAnalog and EIOAnalog parameters in the ConfigIO function.
1.05: (May 18, 2006) Changed descriptors to fix a Mac enumeration issue that occurred with more than one U3 connected to a hub.
1.04: (May 2, 2006) Added initial functionality for hardware rev 1.21.
1.03: (April 18, 2006) Improved accuracy of the short wait function. Improved the SoftPWM functions. Resolution is now 100us.
1.02: (April 11, 2006) Changed stop timer mode to use positive edges. Write either PCA module will reset the PCA counter.
U3 Beta Firmware
I have died and gone to heaven. Exactly what I needed to look at the problem [...]—Owen, USA