Firmware Version Descriptions
Updated: 2 September 2014

Version 1.0
General release: 4 October, 2000
Original release.

Version 1.1
General release: 30 November, 2000
Added support for "B0" and "D0" queries in main power-on idle loop.
Corrected a bug in the main power-on idle loop. If an invalid mode switch command was received, it hung in an infinite loop.
Changed the "Read_timer" routine. It is completely different and should be faster.
Removed the direct write to FIFO2W from within the TPU00 interrupt service routine. TPU00 overflow now sets bit #2 of "KWP_errors" which is flagged from the main KWP loop. This change eliminates the error message "21 61"

Version 1.2
General release: 29 December, 2000
Added routines to test both TPU and external memory during initialization.
Corrected an error discovered in the HBCC Initialization routine.
[The call "bsr.x HBCC_initerr" should have been "bra.x HBCC_initerr".]

Version 1.3
General release: 2 February, 2001
Changed the values loaded into the CAN controller for SWC low speed mode (72 0A 0A).
Added the 72 0A 0B command for SWC high speed mode.
SWC low and high speed modes now correspond to J2411 values.
In UBP mode I now check the status of the K-line before starting a transmission.
Corrected a bug in UBP mode where the reduced transmit delay time was not being measured from the actual end of the break symbol.
All memory is now initialized to $00 (it used to be $EE).
Added the "Keep Alive" function and related commands (5x 04, 51 05, and 5x 07 commands) to VPW mode.

Version 1.4
General release: 28 June, 2001
CAN mode only: Added the CAN "Auto Transmit" capability.
There were no changes in the other modes of operation.
Message objects 1 through 14 ($0E) are independently enabled, disabled, and programmable, on 10 millisecond intervals, to auto transmit. If the object is set for receive the "Auto Transmit" function also supports RTR if a downstream object exists. Added the 7x 14, 7x 15, and 7x 16 commands to support the "Auto Transmit" function.

Version 1.5
General release: 3 September, 2001
Completely reworked VPW block transfer / transmit function.
The entire block of data from the host is now buffered before transmission.
Minimum block size is 1 byte (53 20 00 01).
Maximum block size is 8192 bytes (53 20 20 00).
After receiving the 62 20 01 response to the block transfer request (53 20 xx yy) you have 6 seconds to transfer all of the data from the host to the AVT-718.
If the AVT-718 does not get the expected number of bytes (or if the fail timer expires) all bytes received are thrown out, the error message 21 32 is issued, and the exit block mode response (62 20 00) is issued.
Baud rate between host and AVT-718 is not important any longer (at least for transmit).
Host performance for sending data to the AVT-718 is not important any longer (again, for transmit).

Version 1.6
General release: 13 September, 2001
All changes affect CAN mode of operations only.
Changed the name of "Auto Transmit" to Type 0 periodic messages.
Added the Type 1 periodic message functions.
Added new commands to support Type 1 periodic messages.
Added new command to select periodic timer for either 5 or 10 milliseconds.
Read Engineering Note "CAN Periodic Messages" for details on Type 0 and Type 1 periodic messages.

Version 2.0
General release: 27 November, 2001
All changes affect CAN mode of operations only.
This version firmware can only be used with revision "E" hardware. Revision "D" hardware includes the CAN-B add-on board.
Changes to CAN mode to support revision "E" hardware which supports CAN-B (ISO 11519) operations.
When entering CAN mode of operations the last selected physical layer is automatically selected (SWC, CAN-C, or CAN-B). If entering from power up or a reset, no physical layer is selected.
When entering CAN mode, the CAN mode report (91 10) is immediately followed by the physical layer report, 82 11 xx, where xx = physical layer of operation selected. xx = 00 is no physical layer selected. xx = 01 is Single Wire CAN (SWC). xx = 02 is CAN-C (ISO 11898). xx = 03 is CAN-B (ISO 11519).
Added 72 11 03 command to select CAN-B operations.
Added 21 26 error message to indicate that the CAN-B transceiver has detected an error condition on the bus.

Version 2.1
General release: 4 February, 2002
CAN mode: In the CAN ISR clear the status register after reading it. This might help make error messages involving the status register more meaningful.
UBP mode: In UBP mode re-arranged the order of events when the mode is first entered. In lab settings where the bus wire is floating and the bus relay is shut there was sufficient charging of the bus wire to cause the K-line voltage to drop below the threshold. This occasionally caused the UBP receiver to incorrectly sense a start bit and thus a one byte message. The error handler detected the false one byte message and transmitted the nack symbol. Have tried to prevent and/or trap this false event.
KWP mode: Created the "Special Mode #1" initialization sequence to support a customer's special requirements. It is close to ISO 9141. Refer to the document "Summary of Initialization Sequences" (INIT_01B.PDF) for more information. Added the commands 5x 46, 5x 47, 5x 48, 5x 49, and 5x 4A to support the timing variables for SM1 initializations (the "Tx" time variables).
All other modes were not affected.

Version 2.2
General release: Not. Released only for one customer.
Added the 5x 24 command to connect/disconnect from the VPW bus.
Default is, at their request, disconnected. When entering VPW mode you must connect to the VPW bus.
All other modes were not affected.

Version 2.3
General release: 27 March, 2002
Added the 5x 24 command to connect/disconnect from the VPW bus. Default is connected.
Added the 5x 1F command to control the Match function operation.
Added a new feature to the Match function. The Match function is only available in: VPW, PWM, KWP, and UBP modes.
The 32 xx yy command to load the Match Table has not changed.
The Match function can now be invoked in one of two ways:
1. A match (byte position and byte value) results in the message being forwarded to the host.
This is the default mode (52 1F 00 command).
2. A match (byte position and byte value) results in the message being discarded (the host never sees it).
This is the alternate mode (52 1F 01 command).
In KWP mode, changed Special Mode 1 (SM1) initialization method. Address and key bytes use 7, Odd, 1 format. Synch byte and regular communications use 8, None, 1 format.

Version 2.4
General release: 29 April, 2002
Slowed down the transfer rate to/from the DLC device (VPW mode) to clear up an occasional error that would occur during high speed block transfer (transmit) operations.
No other changes.

Version 2.5
Preliminary release for testing: 20 May, 2002
Added the CAN mode AutoResponse function. Added the 7x 20 command to support that function.
Refer to the application note on the operations of this function and how to use it.

Version 2.6
General release: 19 June, 2002
Added LIN mode support.
Refer to the application note on how to use it.
Refer to the latest "Master Commands and Responses" for all commands.
This version includes all version 2.5 changes.

Version 2.7
General release: 12 September, 2002
Corrected errors in KWP and VPW modes.
Deleted unused variables.
Deleted or renamed ambiguous variables.

KWP mode
Corrected a problem with the Keep Alive message; when it lost arbitration, extraneous bytes would be transmitted.
Corrected a problem with the Keep Alive time interval; it was incorrectly linked to the disconnect time interval.
Added the 5x 2F command to query and set the disconnect time.
Command - 51 2F: Query for disconnect time.
Command - 52 2F xx: where xx = disconnect time in 0.0625 second increments.
Response - 62 2F xx: where xx = disconnect time in 0.0625 second increments.
Default = $50 = 5 seconds.
The Keep Alive time default is $48 = 4.8 seconds.
The Keep Alive message is sent when the Keep Alive timer expires, regardless of host transmit activity.

VPW mode
The Keep Alive message is sent when the Keep Alive timer expires, regardless of host transmit activity.

Minimal changes to other modes.

Version 2.8
Limited release: 17 September, 2002
Shifted host serial baud rates down.
Baud rate can be jumper selected to: 9.6k, 19.2k, 38.4k, and 57.6k baud.

Version 3.0
General release: 29 September, 2002
Many changes. They are summarized here. Consult the Master Commands and Responses guide, version 34, for command details. Other documents updated are: "A Discussion about CAN" (can_02e.pdf) and "CAN mode Auto Response" (718_s04b.pdf). All are available from the Download page, link on site map and home page.
Brief summary of changes.
Increased CPU speed to 20.972 MHz. (It was 16.777 MHz. A 25% increase in speed.)
Updated all setup registers to reflect the new speed. Updated routines, as necessary, to reflect new speed.
Moved CAN Auto Respond variables to off chip RAM.
Changed the Auto Respond function from one to four. There are now four Auto Respond objects. They are numbered 0 to 3. Each has it's own command, function call, and variables The commands are 7x 20, 7x 21, 7x 22, and 7x 23.
Changed KWP mode Keep Alive manager so that the Keep Alive message is enabled when ever KWP operations are anything except disconnected.
Added the 5x 40 command to enable/disable sending of transmit acknowledgment packets to the host. Affected modes: VPW, KWP, UBP, and LIN.
Found and corrected a bug in VPW mode processing receive buffer number 2.
Added the CAN transmit 'short form' command. Same format as all other modes: 0x yz rr ss tt vv mm nn ...
0 - to the network
x - count of bytes to follow
y = 0 if standard length, = 8 if extended format
z - message object number
rr ss or rr ss tt vv - arbitration field, right justified
mm nn ... - data field, optional.
Command specifics and acceptable forms are listed in the Master Commands and Responses.

Version 3.1
General release: 9 October, 2002
Corrected a small error in CAN mode. Corrected the responses to the "72 21 xx", "72 22 xx", and the "72 23 xx" commands. The functions worked properly. Only the response was incorrect. All other responses to the "7x 20", "7x 21", "7x 22", and "7x 23" commands were correct. No other changes.

Version 3.2
General release: 19 October, 2002
Added the "Short" method for transmitting a block of data in VPW mode. Refer to the updated document "Block Transfer Operations" (available from the App Notes section of the Download page).
Added the 5x 4B command to select 'normal' and '2's complement' checksum for KWP, UBP, and LIN modes of operation.
Added the 97 03 ... and 96 04 ... commands to write a word to memory and read words from memory. These commands are used for support only.

Version 3.3
Limited release for testing. Date unknown.

Version 3.4
Limited release. About 25 November 2002.
Special version for one customer.

Version 3.5
General release: 29 November 2002.
In CAN mode, corrected code so that a Type1 Periodic message and a 'short form' transmit command don't conflict with one another and don't result in a corrupted message object.
Added time out detection in KWP mode so that the unit can't appear to lock up in the event the K-line is shorted high. If the time out is experienced, the pending message is dumped and an error message is generated.
Completed the interrupt vector table. A spurious interrupt sets an operational flag. Interrupts deemed to be 'less serious' set a different operational flag. All other undefined and 'more serious' interrupts result in dumping the stack pointer, the stack contents, and then resetting the unit. The messages are: one "E4" packet followed by a series of "E2" packets. {Write or call us if you experience this. We will need to know all the specifics about what was happening when the stack dump was experienced.}

Version 3.6
General release: 6 February 2003
Added a new operating mode called "KIE" for K-line Inverted Echo mode.
This protocol uses the K-line for communications. When two nodes communicate the receiving node echoes each received byte by transmitting the complement before the transmitting node sends the next byte. All timing parameters are programmable. There is both a manual connect feature as well as a formal initialization feature. The "Master Commands and Responses" document has been updated (version 36) to reflect this new "KIE" mode of operation for the AVT-718.
Corrected a bug in the CAN short form transmit command.
Corrected a bug in the CAN periodic message timer command.

Version 3.7
General release: 10 March 2003
Added 20 ($01 to $14) individually programmable periodic messages to VPW mode.
No other changes to any other modes.

Version 3.8
General release: 21 March 2003
Corrected a potential problem with the method of conducting a software reset (F1 A5) from within any operating mode.
All modes were affected.
No other changes.

Version 3.9
General release: 6 April 2003
Corrected an error in subroutine "Send_rx_long".
Corrected an error in the Interrupt Flag manager routine.
Changes to CAN ops main loop:
Re-arranged order of main loop calls to ensure that the receive manager was being called more often. Changed the 7x_04 procedure to ensure I update the the object in the proper order to prevent spurious interrupts and other conflicts. Updated the PMM1 routine to ensure the message object status is handled in the proper order.

Version 4.0
Limited release: 2 May 2003
Special version for one customer.
Taken from version 3.4.
Corrected a potential problem with the method of conducting a software reset (F1 A5) from within any operating mode.
All modes were affected.
No other changes.

Version 4.1
General release: 16 June 2003
Only CAN mode is affected.
Added a programmable time delay function for CAN mode auto response objects.
The new command is 7x 25 and is summarized here. Users should consult the "xxx" and the "Master Commands and Responses" documents for more detailed information.
The minimum time delay for an auto response object, when set to mode 00, no delay, is nominally 750 microseconds. When using modes 01, 02, or 03 the time delay accuracy is -0 to +1 millisecond.
72 25 xx - Status query. Value xx is the auto response object number.
73 25 xx 00 - Command. Set auto response object number xx to mode 00. Mode 00 is the default value. No time delay from receipt of triggering message to transmission of the auto response.
74 25 xx 01 yy - Command. Set auto response object number xx to mode 01. Mode 01 is a fixed time delay. The value yy specifies the time delay, in milliseconds, from receipt of the triggering message to transmission of the auto response.
74 25 xx 02 yy - Command. Set auto response object number xx to mode 02. Mode 02 uses the specified byte in the received message to determine the number of milliseconds to wait before transmitting the auto response message. The value yy is the byte number (position) in the received message. Note that the byte number has a value of 00 to 07.
75 25 xx 03 yy zz - Command. Set auto response object number xx to mode 03. Mode 03 is a combination of modes 01 and 02. The value yy specifies the byte position in the received message as the number of milliseconds to wait. To that value is added the value of zz, in milliseconds.

Version 4.2
Limited release: 16 June 2003
Special version for one customer.
Taken from version 4.1.
All modes were affected.

Version 4.3
General release: 2 July 2003
Taken from version 4.1.
Corrected an error in LIN mode checksum computation.
Corrected the method to compare a received checksum with the expected checksum.
Corrected the method of handling short transmitted Master messages.
Removed the 5x 4B command, it was not used in LIN mode.

Version 4.4
General release: 15 July 2003
Taken from version 4.3.
Modified the code to improve synch break time control in LIN mode.
In LIN mode this version requires hardware revision "J" to operate.
No changes to other operating modes.

Version 4.5
Limited release: 12 August 2003
Taken from version 4.4.
Removed all calls to open or shut the L-line relay.
Added the 5x 4E command to manually control the L-line relay.
To be used only with hardware revision "K".
The L-line relay can now supply a downstream module with V-Batt supply.

Version 4.6
General release: 18 August 2003
Taken from version 4.4.
Corrected a problem in KWP mode.
It was possible to begin a transmission of a message in the middle of receiving a message.

Version 4.7
Limited release: 30 August 2003
Taken from version 4.6.
Special for one customer. Added support for SDM-AOS communications, also known as GM specification CM20324.
Requires the implementation of hardware revision "L" and the installation of the AVT-718X add-on board.
NOTE: This version can only be used with board hardware revision "G" and above.
Added SDM mode of operation. Updated use of TPU05.

Version 4.8
Never released.
Taken from version 4.6.
Several different versions with small changes for specific customers and purposes.

Version 4.9
General release: 17 November 2003
Taken from version 4.6.
CAN mode: Added a time out function for short form transmit commands. If the network has a problem and a transmit object cannot complete, then a subsequent short form transmit command could cause the incoming command processing to halt - it then appears as if the AVT-718 unit will no longer respond to commands. The AVT-718 firmware now checks if a short form transmit command has been pending for more than 0.5 seconds. If that happens, the command is flushed, the 31 0x response is issued, and the CAN error message (23 24 xx yy) is issued with bit #5 of the 'xx' byte set.
PWM mode: Added the keep alive message function. Commands 5x 04, 51 05, and 5x 07 were added. These are the same keep alive message commands as defined for KWP and VPW modes.

Version 5.0
General release: 1 February 2004
Taken from version 4.9.
Change #1: Added an external trigger input function. Connector P2 pin #4 is a digital signal input. If P2 pin #4 is pulled to ground (P2 pin #2 is ground) then the AVT-718 will immediately generate a timer alert message: 65 18 00 xx yy zz. Once pulled low the input signal must be released to go high and stay high approximately 50 milliseconds before the next falling edge will generate the message. This function was added to all operating modes.
CAUTION: The input (P2 pin #4) is not buffered or protected. Use this input at your own risk !!

Change #2: Added code to automatically detect either AVT-418 or AVT-718 hardware. If AVT-418 hardware is detected the host serial baud rate is set to 230.4 kbaud. If AVT-718 hardware is detected the baud rate is set according to the jumpers on JP2, as before.

Version 5.1
General release: 2 May 2004
Taken from version 5.0.
All changes concerned with CAN operations.
Added full support for ISO 15765 message structures. These are also known as Segmented Messages or Multi-Frame Messages.
The function must be enabled with the 7x 26 command. Default settings are that this function is disabled (maintains compatibility with previous firmware releases). Added the 7x 27 command to disable/enable message padding when ISO 15765 mode is enabled.

When the ISO 15765 function is enabled the AVT-418/718 firmware will automatically handle all aspects of transmitting and receiving ISO 15765 messages. This new function releases the user from having to do any of the work involved with receiving or transmitting ISO 15765 structured messages (Single Frame, First Frame, Flow Control Frame, Consecutive Frame, Separation Time, Flow Status, Block Size, etc.). Everything is handled by the AVT-418/718. For a message from the network, the AVT-418/718 will automatically determine the frame type, remove padding bytes (if present), send Flow Control frames, if necessary, re-assemble the message, and then pass it as one complete message to the host. Transmitting a message onto the network is a similar operation. The host passes the complete message to the AVT-418/718 which will form up the frames and handle all related functions. The host is notified upon completion of a successful transmission.

Please refer to the AVT-718 manual supplement (file name: xxx - to be written - xxx) for detailed information on using this function/feature.

Version 5.2
Never released.
An attempt to make an AVT-718 "look like" an AVT-716.
Never fully tested, never released.

Version 5.3
General release: 28 May 2004
Taken from version 5.1.
Updated all FLASH loader routines for full microcontroller speed and full exception processing with stack dump.
Updated Boot routines and related FLASH loader routines for full microcontroller speed and full exception processing with stack dump.
Variable memory was re-organized. Large, slow, or infrequent variables were moved off-chip.
Completely re-wrote all CAN receive routines. All receive objects are unloaded immediately and processed off-line.
CAN receive operations are more robust with no loss of messages in a very heavy traffic or 'bursty' environment.

Version 5.4
Limited release: 31 May 2004
Taken from version 5.3.
Added special mode (PPD) for a customer.
No other changes.

Version 5.5
General release: 20 June 2004
Taken from version 5.3.
Corrected all routines that set RAM device chip select.
Corrected an error in Type 1 periodic messages; the reset table was the wrong size, too small.
Removed all CAN receive buffers and replaced them with one big CAN receive FIFO.
With the buffer implementation there was a chance that the host could receive CAN messages out-of-order from which they were received from the network.
The new FIFO, implemented in software, will prevent that.
Corrected the same chip select timing issue in the BOOT version 1.5 files.
Reviewed and re-vamped the stack dump capability in all modes of operation including boot load, operational, and FLASH modes.

Version 5.6
General release: 27 July 2004
Taken from version 5.5.
Corrected a bug in CAN mode, on entry the baud rate indicator was erased.
Other minor changes in variable clearing routines and in how VPW receive buffers are handled.
Completely revamped the match filtering function. Now have the ability to specify one or two bytes for matching. If two are specified, then the match is a logical "AND" function. If only one byte is specified, then the table functions as before. All table entries are always a logical "OR" function.
Filter commands are:
32 xx yy or 34 xx yy rr ss
xx - byte position 1
yy - byte value 1
rr - byte position 2
ss - byte value 2

Version 5.7
Limited release: 26 July 2004
Special for one customer.
Taken from version 4.2.
Incorporated new match table filter function/capability (from version 5.6).
Updated memory wait states for both FLASH and off-chip RAM.

Version 5.8
General release: 7 October 2004
Taken from version 5.6.
Added a 5x 57 command in KWP mode to select parity operation for all communications.
51 57: status query
52 57 00: no parity (default value)
52 57 01: odd parity
52 57 02: even parity
Updated the KWP mode K-line state monitor routine. The routine monitors for K-line short to ground and now also monitors for KWP mode stuck in state 08 or stuck in an illegal state.
Updated the 7x 0A and 7x 0B routines in CAN mode to more properly update the CAN controller device when switching baud rates.
Updated the 7x 27 command in CAN mode to allow specification of the pad byte value (remember, this is only applicable when ISO 15765 processing is enabled).
71 27: status query
72 27 00: disable message padding
72 27 01: enable message padding, pad byte value is what ever it was before.
73 27 01 xx: enable message padding, xx = pad byte value.
The default value of the pad byte is "00".
Updated the way the CAN controller reset is handled. The baud rate and network connections are preserved and restored after the CAN controller is reset and re-initialized. All Type0 and Type1 periodic messages are disabled when the CAN controller is reset.

The "Master Commands and Responses" document will be updated and posted as soon as possible.

Version 5.9
General release: 26 January 2005
Taken from version 5.8.
KWP mode: Changed many "bra" instructions from type ".w" to ".b" in the initialization routines.
KIE mode: Added failure codes to the initialization routine.
UBP mode: Did not call the Service Interrupt Flags routine.
UBP mode: Put in a monitor for "byte in progress". I do not start transmitting if either receive buffer is not idle or if a new edge on the receive line has been detected since the last byte was received.
CAN mode: Major upgrades to CAN I5P mode of operations. The new "7x 28" command was created for declaring paired objects. Completely re-wrote many I5P (ISO 15765 Processing) routines. I will update documentation just as soon as I can with the new "7x 28" command and how to use it.
CAN mode: Rearranged the beginning of the CAN_isr. I don't overwrite the saved status register if it is zero. I don't overwrite the saved status register if no interrupt is pending. This should help with the occasional "23 24 01 00" error response - which does not convey any useful information.
VPW mode: Changed the way the DLC device is reset, initialized, and tested. Implemented a loop call to initialize and test the device 3 times before declaring a failure. I have (rarely) seen devices that will occasionally fail the self test.
All modes: Removed the "CAN_select_none" and the "Open_all" calls at the start of the code for all operational modes. It was redundant. Those calls are made before executing a mode switch command. Removed the "Disable_all" call before executing a mode switch command. Cleaned up and made all mode switch command sequences more consistent.

Version 6.0
General release: 27 January 2005
Taken from version 5.9.
CAN mode: Redesigned and rewrote the CAN controller interrupt service routine to reduce and/or eliminate errant "23 24 xx yy" error messages that conveyed no useful information.
No other changes.

Version 6.1
General release: 15 February 2005
Taken from version 6.0.
UBP mode: Updated firmware to prevent starting to transmit a message if there is a byte in-progress on the network.
LIN mode: Updated firmware to support LIN version 2.0 "Enhanced checksum." Added the 5x 5A command to disable or enable the enhanced checksum feature. 51 5A: query for status; 52 5A 00: disable enhanced checksum (default); 52 5A 01: enable enhanced checksum.
KWP and KIE modes: Updated the 5x 03 command. Minimum value acceptable is "0002". Values too low are rejected as an error.
CAN mode: With I5P mode enabled, the default buffer time out, when receiving a long message, was changed to 0.5 seconds (it was 1.0 seconds; that seemed too long). Added the 22 55 05 error message if the flow control transmit frame is still pending when the buffer times out.

Version 6.2
General release: 1 March 2005
Taken from version 6.1.
Created a new GM URT mode (also known as UART; or 8192 UART; or ALDL).
DANGER: This new mode for the AVT-418 / 718 is a +12v (V-Batt) signal. It is NOT the old +5v signal. They are NOT compatible.
The "Master Commands and Responses" document, version 45 has been updated with the new AVT-718 URT command set.
CAN mode: Changed the 7x 03 command for Object #15 mask to accept either an 11-bit or 29-bit mask.
VPW mode: Created a single receive buffer processing routine.
KWP mode: Created a single receiver buffer processing routine. Created a new transmit watchdog function.

Version 6.3
General release: 8 March 2005
Taken from version 6.2.
LIN mode: Corrected the checksum calculation routine.

NOTE: Late on 10 March 2005 a bug in KWP mode of version 6.3 firmware was discovered. I am working to correct it and will release version 6.4 as soon as possible. Call or write if you have questions. If you are using KWP mode I recommend moving back to version 6.1; that firmware file is available from our Product Documentation page.

Version 6.4
General release: 16 March 2005
Taken from version 6.3.
KWP mode: Revamped the entire mode. Changed transmit watchdog functions. Changed what the transmit watchdog is responsible for. Added new timer. Changed timer assignments. Changed timer update routines. Changed other main loop functions and flow. The 'auto buffer terminate' function is now enabled by default.
CAN mode: Changed transmit time out timer. Changed receive processing routine to check for invalid DLC values. If a DLC value of greater than "8" is found, it is truncated to 8, bit #4 of the object number byte (status byte) is set, and an error message bit in CAN error is set.
Other minor changes were implemented as they were found.
Other modes: The default 'keep alive' timer value is 4.0 seconds.
(I will update the "Master Commands and Responses" document as soon as I can.)

Version 6.5
Never released.

Version 6.6
General release: 18 February 2006
Taken from version 6.5.
Lots of changes, new functions, new commands, etc.
Refer to the document: " AVT-418 / 718 Firmware version 6.6 " for details.

Version 6.7
General release: 14 September 2006
Taken from version 6.6.
Lots of changes, new functions, and new commands.
[ The Master Commands and Responses document will be updated as soon as possible.]

Idle mode
Removed the J1850 PWM device test in the idle state.
Due to RoHS restrictions future AVT-718 and AVT-418 units may not have the J1850 PWM device installed.
Therefore, the device is not tested until J1850 PWM mode is entered.

CAN mode
Allow both I5P processing and the AutoResponse functions to operate at the same time.
This is not recommended, but it can be useful for particularly troublesome applications.

CAN mode
Added the 7x 0E command to query for and change the I5P flow control frame separation time (ST_min).

CAN mode
Changed the baud rate register parameters for sampling at the 75% point using single sample mode.
500 kbps; 250 kbps; 125 kbps; 33.333 kbps; 83.333 kbps.

CAN mode
Added the 21 0C command to reset the CAN controller and restore all operating parameters to what they were before the reset command was issued. This should be especially helpful when a bus fault occurs and the device goes to the BUSOFF state. In that case, the only way to restore communications is to reset the CAN controller which destroys all the settings. This new command does not require the user to restore and/or re-initialize the CAN controller.

CAN mode
Added a latch for the CAN-B error condition. The asynchronous error message (21 26) is still sent out once, but the fact that an error was detected is latched.
If a fault condition is detected on the CAN-B network, I send the error message and set the latch.
Added the 71 10 command to read and clear the latch.
If the user sends the 71 10 command I respond with either
82 10 00 if no error has been latched since the last query.
82 10 01 if an error has been latched since the last query.
The latch is then cleared.

CAN mode
Added a data filtering function and related commands as follows:
Command 7x 2D disable/enable the function. Default condition is: disabled.
Command 7x 2E set the four match bytes. Default is: A1 0F 8A FF
Command 7x 2F set the mask bytes. Default is: FF FF FF FF
Command 5x 1F set operating mode, match equals forward or match equals throw out.
Brief operating description follows.
The 72 2D 00 command disables this function (default).
The 72 2D 01 command enables this function.
The 75 2E rr ss tt vv command sets the match bytes, where rr ss tt vv are the match bytes, in order.
The 75 2F rr ss tt vv command sets the mask bytes, where rr ss tt vv are the mask bytes, in order.
Note that "rr" is CAN frame data byte 0, "ss" is CAN frame data byte 1, etc.
When a CAN message is received, the first four bytes of the data field (only if there are at least four bytes) are logically bit-wise 'AND'ed with the mask bytes.
That result is then compared to the match bytes.
Action taken at this point depends on the operating mode as set by the 52 1F xx command.
52 1F 00 command means:
If they match, the message is forwarded to the host.
If they do not match, the message is discarded.
52 1F 01 command means:
If they match, the message is discarded.
If they do not match, the message is forwarded to the host.

KWP mode
Added the 5x 64 command to query for and change the initialization parameter W2_max.

KWP mode
Added the 5x 65 command to query for and change the initialization parameter W3_max.

KWP mode
Added the 21 06 CAN reset command.

KWP mode
Added the new 21 0C CAN reset and restore command (described above).

KWP mode
Added the 7x 0E command (described above).

KWP mode
Added the 7x 10 command (described above).

KWP mode
Added the 7x 2D command (described above).

KWP mode
Added the 7x 2E command (described above).

KWP mode
Added the 7x 2F command (described above).

SDM mode
Added the 5x 50 command to change the SDM network baud rate.

Version 6.8
General release: 22 October 2006
Taken from version 6.7.
Moved some variables from on-chip to off-chip RAM.
Increased the size of the SDM mode receive buffers to hold an incoming 310 byte message.

Version 6.9
General release: 11 August 2009.
Taken from version 6.8.
Many changes affecting several modes.

KWP: changed receive message limit check to equal the size of the receive buffer.
KWP: added the following CAN commands to permit sending a message while in KWP mode.
7x 06: set object data.
7x 07: transmit object.
7x 08: object transmit ack control.
KWP: added the new "KW82" initialization mode. It is invoked with the "61 17" init command.
KWP: corrected the response to the 5x 65 command. The command was executed properly, but the response command byte was incorrect.

(LIN version 1.3 and earlier; the ID byte indicated the number of data bytes in the data field.)
(LIN version 2.0 and later, the ID byte does not necessarily indicate such information.)
LIN: added the following command to disable/enable LIN message ID byte processing.
51 28: query for ID byte processing status.
52 28 00: disable ID byte processing.
52 28 01: enable ID byte processing (default).
LIN: when ID byte processing is disabled, the receive buffer is closed (a network message is received) based on receive buffer timeout or timeout since the last byte was received; whichever occurs first. There are commands to set each of those timeout parameters.
LIN: added support for communications with an "ABIC" module.
LIN: ABIC communications uses the "P4_min" (5x 27 command) as the time between transmitted bytes.
LIN: added the 5x 2A command for the ABIC receive buffer time out.
51 2A: query for ABIC response receive buffer time out.
55 2A rr ss tt vv: set ABIC response receive buffer time out (default = 00 00 61 A8 = 25000 usec = 25 msec).
LIN: added the 5x 2B command for ABIC strobe duration.
51 2B: query for ABIC strobe duration.
55 2B rr ss tt vv: set ABIC strobe duration (default = 00 00 00 68 = 104 usec; about 1 bit time at 9600 baud).
LIN: corrected a mistake in the ABIC checksum routine.
LIN: changed the ABIC watchdog time out to 1 second.
LIN: added the ABIC 53 6B command to send a break onto the LIN bus.
53 6B xx yy: send a break onto the LIN bus that is "xx yy" microseconds long.
LIN / ABIC: refer to the "Master Commands and Responses" document (version 51 or later) for an example of how to transmit a message to an ABIC module, while in LIN mode.

CAN: added the 72 1E 02 command to select the periodic message timer to 2 millisecond interval.
CAN: added the 75 33 xx yy rr ss command to allow streaming data out a specified CAN object.
CAN: changed the 5x 1D command to allow a value of zero. This is the time between frames when streaming data.
CAN: increased the number of Type1 and Type2 periodic messages in both groups. There are now 16 periodic messages in each group.
Group 1: periodic message numbers $01 to and including $10 (decimal 1 to 16).
Group 2: periodic message numbers $11 to and including $20 (decimal 17 to 32).
Each message is independent with individual timer for Type1 operations.
Each message is independent with timers $01 and $02 for Group1 Type2 operations.
Each message is independent with timers $11 and $12 for Group2 Type2 operations.

SDM: changed to permit messages up to 120 bytes long. Added "11 xx" alternate header format support for long messages.
SDM: added the 21 86 error message for long slave message error.
SDM: added 21 0D message too short error.
SDM: added 21 0E message too long error.
SDM: added the following command to select inverted or non-inverted data.
51 68: status query for data inversion selection.
52 68 00: normal data.
52 68 01: inverted data (default).

Version 7.0
General release: 22 November 2013
Taken from version 6.9.
All modes: Re-wrote the FIFO #1 test routine(s) to be much more comprehensive.
All modes: Added support for the "B1 01" firmware version request.
CAN mode: Added the "7x 4A" and "7x 4B" commands for the "Counter And Checksum" (CAC) function.
Detailed information about this function and the commands can be found starting on page 9 of this document:
CAN Periodic Messages - Discussion (PDF 42K) .
CAN mode: Added the "7x 1D" command for the "Rolling Nibble" function. This command is described in the "Master Commands and Responses" document version 53 (and later).
KIE mode: Added the "61 18" initialization routine.
VPW mode: Added the "21 14" command to reset and test FIFO #1
Moved and changed some variables.

Version 7.1 (0A)
General release: 31 July 2014
Taken from version 7.0 (0E)
All changes in CAN mode.
Modified the "7x 4B" command to allow specifying the location of the 4-bit counter by bit number (not upper or lower nibble).
The bit location is the location of the lowest order bit of the counter.  The bit location can be 0 to 7.  I also updated the CAN Periodic Message document (link above).
Removed one un-used CAN variable.

Version x.x
General release: xxx
Taken from version xxx

Version x.x
General release: xxx
Taken from version xxx

Version x.x
General release: xxx
Taken from version xxx

Version x.x
General release: xxx
Taken from version xxx

Site Map