T7 Firmware | LabJack
« Close

Datasheets and User Guides

App Notes

Software & Driver


T7 Firmware


T7 Firmware Overview

The T7-Pro has two processors. The first is referred to as "Main." The second is referred to as "WiFi." The Main processor controls all IO functions, USB communication and Ethernet communication. The WiFi processor controls wireless communications. The two processors use separate firmware. See below for the revision history of each.

The T7 (without the -Pro option) does not have the WiFi processor.


WiFi Firmware Versions

3.12: Initial Release - There have been no further revisions to this firmware.


Main Firmware Versions


Updating to this version, from a version less than 1.0287 will reset the device's startup configuration to factory defaults.

*Added AIN startup Jumpers.
*The SPC-AIN3 jumper will force DHCP off and set IP to factory default.

*Changed Ethernet to allow multiple requests to be queued up in a single socket.
*Added bad address checks to UART modbus ranges.
*UART Tx pin num can now be read.

*Fixed a bug which was preventing the FIO0-SPC jumper from stopping Lua scripts.
*Fix a bug that was causing AIN_EF startup config to fail if an AIN was skipped.

Known Issues

RTC_TIME_S (T7-Pro only): The RTC time stamp (RTC_TIME_S) stopped working in 2021. This is resolved in firmware versions 1.0297 and later.


Click To Expand Change Log

You will need the Kipling software program to load the firmware files onto a T7. Also use Kipling to identify the current WiFi and Firmware versions on your T7.

Change Log

To help our search engine, this is the changelog, change log, revision history or version history.


Updating to this version will reset the device's startup configuration to factory defaults.

*Added UDP Lockdown feature.
*Added additional error reporting to Lua name functions.
*Added MB.readName and MB.writeName to Lua.
*Added MB.readNameArray and MB.writeNameArray to lua.

*Writing unstreamable registers to the stream channel list will now throw an error.
*Using name functions to access 32-bit integer registers will now throw a truncation warning.
*Minimum Lua interval time has been increased to 10 us.
*Updated the DHCP client.

*Fixed a bug in lua names which was causing registers like I2C_SDA_DIONUM to use the 2 as an index.
*Fixed a bug in the lua interval timer that could cause the first interval to be skipped.
*Fixed a bug in one-wire that could cause ReadROM to return invalid results.
*The Lua interval function will now handle large quantities of missed intervals more gracefully.



*Reduced the time between power on and application of startup settings.
*An error will now be thrown when writing to loop_size while the stream out channel is not enabled.
*Disabling ClockSource0 when it is already disabled will no longer disable clock 1 and 2.
*FIO_SetNameLen will now add a NULL character to all written strings.

*Fixed a bug that was causing the Lua function MB.WA to write the wrong number of registers.
*Fixed a bug that could cause stream data errors under certain conditions.
*When reading the stream scan list, Stream_Out channels will now be properly converted to a modbus address before being reported.


*Added DAC1_FREQ_OUT_ENABLE to startup config.
*Added read support for DAC1_FREQUENCY_OUT.

*Factory default will now enable ClockSource0 with prescale = 1 and count = 0.
*DIO_EF 3 and 4 will now read every edge.
*An error will now be thrown when attempting to change the index of an enabled DIO_EF.
*DIO_EF interrupt counter will now maintain two counts. One for rising edges, the other for falling.

*Fixed a bug in UART that was corrupting data when using parity.
*Fixed a bug that was causing stream auto-recover to report a partial packet. Only affected certain stream configurations.
*Fixed a bug that could cause the T7 to fail to process a modbus packet when that packet is split up between more than one Ethernet packet.


*Added a AIN_EF index 51, Thermistor-Beta.
*Added DAC1 frequency out feature.
*Added error condition to the lua function, IntervalConfig, that prevents intervals greater than 50000 ms.
*Added error message indicating a lack of source code to the lua_run.
*Thermocouple types N and B.
*Cleanse function.

*Removed HTTP and ReST.
*When a blank password is written to the WiFi settings, "abc" will be used instead.
*When reading DIO_EF L2L odd channels will be read as if they were even.
*Updated AIN_ALL_NEGATIVE to reflect docs.

*Fixed a bug that was causing data corruption when reading two or more quadrature channels in stream.
*Fixed a bug that could corrupt the DIO_EF values returned by stream when running more than one DIO_EF input.
*Fixed a bug that could cause invalid L2L results.
*AIN_EF Config_J can now be read.
*Fixed a bug preventing the LUA_LOAD_SAVED register from loading code.
*Fixed a bug that was preventing stream from applying gain and differential settings to channels higher than 96.
*Fixed AIN_EF bug that was causing unit ordering confusion.


*I2C lua library.
*Cleanse Function.
*Unit options to AIN_EF Thermistor.
*IO_Config checksum.
*Stream start time stamp.
*Firmware will now prevent incompatible firmware versions from being loaded.
*SNTP last time register.
*SPC debugging waveform output.
*Timeout feature for DIO_EF Frequency In (indices 3, 4, and 11). *UART buffer protection error checks.
*New error code to indicated that a directory search has completed. This change breaks versions 1.23 and below of the microSD Card Utility, please download version 1.24 or higher.

*TDAC functions will now default to a lower speed: ~100 kHz instead of 400.
*Stream will now set the settling time for single channel stream to 10 us regardless of range and resolution settings.
*The FIO0 jumper will now prevent startup scripts from running.
*Minimum value of I2C throttle is now 46000. Smaller values were causing errors.
*Changed SNTP server to pool.ntp.org
*The USB interface will now reset itself if a packet going to the host takes more than 100 ms.
*SNTP minimum update interval set to 10 s.
*Updated AIN_ALL_NEGATIVE_CH to allow reads and writes of 1 to represent "differential" without requiring that the proper channel be specified.
*The externally clocked stream divisor will now default to 1, was 0.

*Bug that was disabling the watchdog time if the LEDs were set to low-power mode.
*Bug that was causing AIN_EF Average and Threshold to erroneously throw stream errors.
*Bug in the Lua interval function.
*Bug that was preventing Stream_Out3 from being written to.
*Bug that was causing DIO_EF to return old values after being reset.
*Bug that was causing stream special channels to corrupt AIN channels.
*Bug that was causing stream to return erroneous data for hardware counters.
*Bug that was causing the Thermocouple Type-c calculation errors above 1600 degrees C.

*Updating to this version from 1.0206 or lower will reset the startup configuration.



Changes / Additions:
*Added AIN_EF support for RTDs, thermistors , Type-C thermocouples, and Type-S thermocouples.
*Updated DIO_EF modes 3, 4 and 5. In continuous mode they will measure every edge. In one-shot mode reading the value will no longer clear the result (that same value will be returned until a new measurement has been completed).
*Added digital channel support to stream.
*IO memory system revised. Old IOMEM functions removed from lua.
*Added LFN support to the modbus file IO interface.
*SD card format can now be read.
*Added FIFO user mem.
*device_name will now immediately update when the default value is written.
*RTC functions will allow volatile writes when RTC is not present
*Ethernet will now allow two connections to port 502.
*Changed I2C buffer sizes to 128, was 40.
*SHT enable-line control will now default to ON.
*Added stream trigger support.

Bug fixes:
*DACs can now handle being interrupted by stream.
*Ethernet will now reconnect properly after link is lost.
*Fixed a bug that was causing the RTC to set to invalid values.
*Fixed a bug causing DIO_EF to use the wrong value for calculations when the clock source period was set to zero.
*Fixed a bug that was causing C-R streams to get stuck in auto-recover.

1.0146: Fixed a bug that would prevent UART from being disabled once enabled. Also fixed a bug involving AIN_EF power-up default settings.  On previous versions of firmware, configuring some AIN_EF channels as thermocouples, and then saving those settings as power-up defaults would cause the device to enter a continuously-resetting state on the next power reset wherein the LEDs would blink rapidly.  It is possible to recover from the continuously-resetting state by jumpering a wire between SPC and FIO3, or between SPC and FIO2.

1.0144: Fixed FIO2 jumper detection. Fixed a bug causing DIO_EF options to always report zero.

1.0142: DIO_EF indices 3, 4, 5, and 11 will not reset automatically if in one-shot mode and not currently working on a measurement. Improved stream performance under certain conditions. Opening a file that does not exist using mode 'r' will no longer produce an invalid handle. Some UART registers will no longer allow writes while UART is enabled. Added SNTP update interval control register, default is 0 which is OFF.

1.0137: HTTP templating will now only be used on files with htm or html extensions. DIO_EF L2L will now be rearmed when reset. Fixed a bug causing 32-bit clock sources to be truncated to 16-bits.

1.0135: Added checksum verification to SHT communication, which is the type of communication used by the EI-1050 temperature/humidity probe.  This solves a potential problem that arises with EI-1050 probes using long (>6ft) of wire. 

1.0134: Added DIO_EF debounce modes 5 and 6. Fixed calendar time reads. Changed file system to FatFS, this solved the file creation issues. Added AIN_EF RTD modes, excitation modes 3,4,5 are new. Fixed a crash that would occur during lua compilation if a syntax error is encountered. Added DIO_EF index 12 (Conditional reset). Changed File IO modbus interface, this interface is not backwards compatible with code that was written to access the SD card on previous firmware versions.

1.0126: Fixed a bug causing STREAM_SETTLING to always return zero. Fixed a bug causing stream to go into digital only mode erroneously. 

1.0124: Fixed a bug that was causing PWM run improperly when initialized to 0% duty cycle. Fixed error codes produced by Test_U32. Fixed bugs causing AIN_SETTLING and UART_BAUD_RATE registers to report incorrect values when read. Added AIN_EF_AutoRMS index 11.

1.0119: Fixed a stream bug that could cause overlaps to go unreported. Changed firmCounter with debounce modes. Added AIN_EF index 10, RMS_Flex.

1.0117: Bug fixes. DIO_EF set to quadrature will now return the count in READ_A_F.

1.0114: StreamNumScans will now be set to zero when stream is disabled. Increased I2C buffers to 40 bytes. Changed read_B for DIO_EF indices 3, 4, and 11. Changed analog multiplexer update sequence. Fixed a bug could cause stream to incorrectly calculate USB packet size.

1.0109: Fixed a bug causing the MSb in UART data to be cleared. The data type of the UART data registers was changed from BYTE to UINT16.

1.0108: Fixed bugs causing DIO_EF index 3, 4, and 11 to return bad readings when reading multiple signals. Added ASYNCH parity and number of stop bit options.

1.0105: Slight improvement to stream performance. Modified temperature sensor calibration constants for better accuracy between 0 and 40 ºC. Added eFrequencyIn.

1.0103: Stream data analog results capped to 0xFFFE to ensure proper auto-recover scan placement. Changed Ethernet_Apply_Settings to uint32. AIN#(0:254)_NEGATIVE_CH will now allow extended channels to specify Channel + 8 to signify differential. 

1.0102: Bug fixes related to externally clocked stream. Using a packet sent over Ethernet to adjust Ethernet power will now cause an error. Added Ethernet_Apply_Settings register. Changed DIO_EF 3, 4, 5, and 11 to default to one-shot mode. WiFi IP will now be set to 0 when powered down. Increased max stream-out buffer to 16384.

1.01: New features added: DIO_EF, AIN_EF, Stream-Out, Software Watchdog, 1-Wire, UART, Scripting (Alpha), HTTP Server (Alpha). Bug Fixes.

1.0091: Hardware watchdog enabled. Unused DIO_EF binary results will now return zero instead of internal numbers.

1.0090: Reversed logic on the one-shot option of DIO_EF index 11. DIO_EF index 3,4,11 will not return period for READ_A, READ_A_F and frequency for READ_B_F. The binary version of READ_B returns 0.

1.0088: Bug fixes. Added LSb first option to SPI. DIO_EF index 11 result registers changed to match index 3 and 4. 

1.0087: Added array functions for Lua. Added support for reading DIO_EF indexes 7, 8, 9, and 10 from stream.

1.0086: Bug fixes. Added DIO_EF reads to stream, only quadrature is currently supported others are on the way.

1.0083: Added an error code for invalid channels added to the stream scan list. Quadrature will now determine the initial direction during initialization. Fixed a problem causing DIO#(0:22)_EF_READ_B to throw inappropriate errors.

1.0081: Added lua "bit" library subset: band, bnot, bor, bxor, lshift, rshift. Added SPI_GO register

1.0080: Ethernet will now be powered up more slowly. Lua intervals now work with fractional values.

1.0079: Bug fixes.

1.0078: Updated stream error codes. Added Lua DEFAULT registers. 

1.0074: Added asynch.

1.0071: Added streamable registers for system and core timers and a capture register for the upper 16-bites of data from 32-bit channels. Bug fixes.

1.0065: New feature to read files from the SD card through modbus. Fixed a bug causing improper number conversions during Lua compilation.

1.0059: Added save and run at startup features to scripting.

1.0058: Changed ReST to use read and write instead of R and W. HTTP bug fixes. 1-wire support added.

1.0051: Added ReST interface. Fixed a bug preventing Ethernet from clearing the watchdog. HTTP updated to chunked transfers. Default lines for SBUS will now be 0 for data, 1 for clock, 2 for power. SBUS power delay set to 20 ms.

1.0044: Fixed a bug causing bad steps from the HS converter with internal FW 1.0026. AIN_EF big changes, most modes disabled. Thermocouple mode added. Added Thermocouple options for ºC and ºF. K is default. Added option for AutoZero. Fixed bugs in TC calculations. Changed ambient temp adjustment to -4.3 ºC. Added new Lua interval feature. Added clock_source smooth update feature for prescale and reload value. Fixed a bug preventing divisors from working on 16-bit clock sources. Other clock-source bug fixes. Added new AIN_EF system to startup config, no read function exists at this time. Clock-source smooth update will not take effect until a new roll value has been written. AIN_EF CJC default address has been set to device temperature. Bug fixes related to startup configuration. Uncalibrated devices will now return binary results. Register 43990 has been added to switch to nominal calibration. Fixed a bug causing multiple power register writes to get the wrong value. Added slope offset AIN_EF type. Changed analog startup delay to 10 ms. WiFi status will no longer return WIFI_UNPOWERED while the module is being prepared for sleep. When a script is stopped any opened files will now be closed and any lua IO mem writes will be deleted. Fixed lua interval bugs. Several changes to allow power levels to switch more gracefully.

1.0017: Updated I2C so higher numbers correspond to higher speeds. Fixed a bug causing bad data to be read from power settings. Attempted to alleviate an erroneous stream overlap error when starting stream. Updated stream to support O-Stream using modbus addresses. Changed WiFi to set the ping and reset timers to 150% normal times after receiving a modbus packet. Updated to USB 2.9. Factory jumper will now reset Ethernet, Power, WiFi, IO, and Watchdog settings. Fixed a bug that prevented stream out from accepting data as an array. Fixed a bug that could cause random error codes when enabling the swdt. AIN14 will now return volts instead of kelvin. Device and ambient temperature registers added.

1.0000: Stream features added and timing calibrated. Stream bug fixes. I2C modbus interface updated. Added z-phase support to quadrature. Digital EF bug fixes and feature additions.

0.9421: Added stream support. EF clock source roll value is now specified as the number of counts instead of the roll value. SHT can now be read. Both H and T are locked in high-resolution mode. T is being retuned in Kelvin. Changed AIN settling to a float and number of microseconds. Added stream overlap detection. Analog EF will now run normal settling time before starting the acquisition stream. DIO port registers changed back to contain inhibit in the upper byte. Changed Stream channel numbers from analog channel numbers to modbus addresses. Added custom AF mode. Channels limited to 0-15. Added WiFi constant ping and reset upon timeout. Added block to prevent reading the flash chip while WiFi initializes. Shortened WiFi rejoin times. Changed stream enable/disable to one modbus address. Added core timer reg. Fixed a C-R settling time bug. I2C Ack array moved to its own register.

0.9308: Improved response time to WiFi joining failures. AIN negative channels will now default to 199. Fixed a problem that could cause AIN settings to be applied to the wrong channel.

0.9305: Added O-Stream synchronization. Fixed several O-Stream bugs. WiFi Data-Rate parameter moved. All comm settings will be reset to factory default. Fixed problems with the PORT IO inhibit parameter.

0.9301: Due to several issues this firmware is no longer available-Added some External Flash error codes. Added support for four O-Stream channels. Fixed an error in DIO port write functions that was caused by the switch from mask to inhibit. Fixed a bug in stream that was causing scans of 3 channels to not terminate until after a forth channel. Fixed several O-Stream bugs. No more known O-Stream bugs.Fixed a bug in stream buffer status reporting.

0.9206: Added support for WiFi 3.10. Added WiFi data rate, WiFi Upgrade, and WiFi Upgrade Status registers. Reading device name now returns the device's current name rather than what is saved in flash.

0.9203: Changed WiFi options data type from u32 to u16. USB will now resume properly. Changed I2C address to lower 7 bits. Added support for WiFi 3.04, support for previous versions removed due to protocol incompatibility. Added current source value reads. Major changes to WiFi modbus interface. Moved WiFi SSID and passphrase registers. Added WiFi factory reset command. Added AF (analog features). Added new stream target (no target). To signal C-R mode. If target is set to zero firmware will send data to the source that calls stream enable. Some changes to A-R stream. Stream registers will now tolerate individual access. Changed stream to use normal AIN settings. Fixed a bug causing SHT reads to return I2C info. Amended the startup configuration functions to work with the new clock source write functions. Added stream sample signaling. Cleaned up an endianness confusion in the Ethernet stack.

0.9013: The WiFi options register can now be used to control DHCP. USB will now force a system reset if it gets zero length packets. It is now possible to turn DSFs off. DSF mode 2 will now throw an error if the output line is set high. Improved P cap and N cap and PWM readings.

0.9010: All non user-configurable WiFi settings will now be set every time the joining process is started.

0.9009: Fixed random error codes from WiFi scan start. WiFi will now respond or UDP or TCP packets. There is still only one socket.

0.9007: Changed WiFi to default to DHCP ON.

0.9006: A zero length modbus packet received over USB will cause a device reset. Changed FIO port writes over to the new inhibit system. The clear register will now reset the WDT. Added fix to change MACs with 0x89 to 0x87. Extended the MAC fix checks.



T7 Firmware (Firmware Section)


Reference - T-Series Device FW Updating

Updating Firmware

How to Upgrade T-Series Device Firmware

To upgrade the Firmware of a T-Series device (T4, T7), open the device in Kipling and navigate to the "Device Updater" tab.  Then select the appropriate firmware version and press "Download and Update":

Update LabJack T4, T7 Firmware using Kipling

If the update fails, it may be necessary to download and install the latest beta LJM installer.  If this fails, it may be necessary to use the functionality of one of the SPC jumper/reset pins.  If your device is no longer working correctly or further assistance is required, contact LabJack Support as we have a few additional Windows utilities that may be able to help upgrade a device's firmware or recover a bricked device.



Hello there,

I have a little problem. I've got two of these T7 pro modules, they had both the similar firmware version 0.9421. One could easily be updated to version 1.0000 but when I try it to do with the other module I get the error message: "Error encountered durring update procedure: LJM error = EXFLASH_UNAVAILABLE [2358]"

Could you please help me out?

Hi I have problem in configuring wifi of t7 pro through Kipling. Keep on giving 

error message "association failed". Please help.

wifi version 3.120

firmware 0.9241

Go to the page WiFi and Ethernet for the T7 and T7-Pro.  In step #8 there are various tips.


i have a LABJACK T7 pro and i try to connect it to laptop via wifi but i unable to connect, so i want to know which firmware version of labjack t7 support wifi communication with laptop???

and i also want to how to update wifi firmware without connect internet????

reply me

For WiFi connection help, go to the T7 Datasheet WiFi Section (see Figure 3 and perhaps try My WiFi Router as mentioned) and the Setup WiFi and Ethernet for the T7 App Note (see Troubleshooting Tips in step #8).  Post a new comment on one of those pages as needed.

The WiFi module requires an Internet connection to update firmware.  That is just the way Microchip makes the module.  If your WiFi firmware is <3.12, I suggest you find some network with Internet access that you can join to do an update.