Firmware Revision History

Top  Previous  Next

 

This topic briefly describes application firmware genesis from V2.21 (considered to be the first "really useful" firmware version) and up until current official version. This information is provided for your reference only; Tibbo is not obliged to elaborate on or explain detailed meaning of any item listed below.

 

----------

Release V3.32 [the latest published and documented version for the R3 branch]

Release V3.63 [the latest published and documented version for the R3 branch]

 

Added new Get My IP (T) command.
Corrected a bug in the DHCP implementation. Under certain conditions, when the TCP connection or UDP "connection" is established, and additional DHCP exchange takes place (for example, to reconfirm the IP-address, etc.) this could inadvertently terminate the connection.
Fixed another minor problem. With TCP, outgoing TCP connections are established from different ports. When TCP-capable device boots up, the first port number that will be used for establishing an outgoing connection is selected randomly, from the pool of available ports. This number is then incremented for each new outgoing connection. We have found out that random port number selection on the DS was insufficiently random. That is, the first port selected after each power-up was almost always the same. This has been fixed and the first port number for outgoing connection is now truly random. Number randomization is quite important for connection reestablishment from the DS to another device in case the DS suddenly reboots. If the same first port number is selected the receiving end of the connection might not accept it.
Corrected RTS line behavior -- by popular request. Before, even when current Flow Control (FC) [setting/parameter] was at 0 (disabled), the DS still switched the RTS line to LOW (HIGH for external devices) when the serial port was opened and HIGH when the serial port was closed. Many of our Customers suggested that with the flow control disabled, the DS should not touch the RTS line at all. Done!
We have found out that (apparently) some networking equipment ignores MSS option! MSS (Maximum Segment Size) defines how much data can be sent in a single TCP packet. The DS specifies correct MSS to its "peer" but, obviously, sometimes this gets ignored. We have extended the MSS of the DS so that this (actually wrong) behavior of other devices won't affect TCP communications with the DS. Note that MSS problem is extremely rare -- we were able to witness it only once.

 

----------

Release V3.31

 

Corrected a bug that was preventing first-generation devices from operating properly in the serial programming mode. The bug was introduced in V3.30. Our apologies!

 

----------

Release V3.30

Release V3.62

 

Corrected a bug that was causing the DS to lose (miss) data at 115200bps even when the RTS/CTS flow control was enabled. Now the DS can sustain full-duplex data transmission at 115200bps (RTS/CTS still required).
Default IP address of the DS has been changed to 0.0.0.1. Previous default address of 127.0.0.1 was not a good choice- this IP is standard "loopback" IP of many operating systems. Our users reported that Linux systems, in particular, normally discard packets received from the device with IP address of 127.0.0.1. Default Gateway IP and Destination IP have also be corrected in the similar matter.

 

----------

Release V3.61

 

Corrected a bug that sometimes made the last byte of the serial-->Ethernet transmission get stuck in the serial-->Ethernet buffer.
Added DTR Startup Mode (DS) setting.
Increased the speed of line status change recognition.

 

----------

Release V3.28

 

Corrected certain aspects of handling broadcast UDP packets. Users of DS Manager sometimes encountered this situation: you click SETTINGS, the dialog with progress bar appears, things go normally, and suddenly the progress bar gets stuck right near the end. This has now been corrected.
Added DTR Startup Mode (DS) setting.

 

----------

Release V3.56

 

Minor correction related to serial port behaviour at 300bps.

 

----------

Release V3.26

 

New Cable Status (C) command

 

----------

Release V3.25/3.55

 

The difference from V3.24/3.54 is in minor corrections in the behavior of the RTS line.

 

----------

Release V3.24/3.54

 

Two firmware versions has been released simultaneously: V3.24 for first-generation devices (EM100-00/ -01/ -02, DS100-00/ -01/ -02) and V3.54 for second-generation devices (EM120-00, EM200-00, EM202-00, DS202-00). Majority of all changes was implemented in parallel in both firmware releases. In several selected cases changes were made to only one of the versions- such changes are marked with the version label like this one: [V3.24 only].

 

New: several major new features and corresponding settings/parameters have been added:

 

Support for Link Server (new Link Server- some trial version of Link Server existed before):
New Link Server Login (TL) setting and parameter
New LS Auto-Registration (AR) setting
New dDNS Service Registration (DD) setting
New dDNS Service IP-address (LI) setting
New dDNS Service Port (LP) setting

 

[V3.54 only] PPPoE support has been added to second-generation devices (first-generation devices do not have sufficient "spare" resources for PPPoE to "fit in"):
New PPPoE Mode (PP) setting
New PPPoE Login Name (PL) setting
New PPPoE Login Password (PD) setting
Extended Echo (X) command
Extended Status (U) command
Extended Status LED patterns

 

New option to accept incoming connections from any remote host or only remote host whose IP matches the one set in current Destination IP-address (DI) [setting/parameter]:
Source IP Filtering (SF) setting and parameter

 

Option to choose which ASCII character will serve as escape character:
Escape Character (EC) setting

 

 

New: custom profiles now work with firmware for second-generation Devices (V3.54). Unfortunately, there remains a limitation on firmware V3.54. In order for the custom profile to work correctly the upgrade process (that will load firmware file with custom profile attached) has to be performed through the network. Upgrading through the serial port will (unfortunately!) delete custom profile data from internal FLASH of the DS. This limitation does not apply to Release3 branch of application firmware (i.e. firmware that runs on first-generation Device Servers). 

 

Improvement: when DHCP (DH) setting is 1 (enabled) the DS now detects Ethernet cable disconnects and re-requests its IP-address once the cable is plugged back in (see ).

 

Bug fix: serial port was not getting opened (i.e. did not accept any data from attached serial device) when current Transport Protocol (TP) [setting/parameter] was 0 (UDP) and  Connection Mode (CM) settingwas 0 (immediately).

 

Bug fix: when current Transport Protocol (TP) [setting/parameter] was 0 (UDP) and DS was establishing a UDP "connection" to another network host the first UDP datagram sent by the DS always had zero length (contained no data) even if there was some data to send. This has now been corrected.

 

Bug fix: DHCP client of the DS had a slight problem. As a last step of IP-address configuration the DS sends out an ARP request with IP-address that was offered by the DHCP server. This is a way recommended by RFC to make sure that no other station on the network is using this IP. With some switching Ethernet hubs this request could actually go back to the DS itself. The DS would then reply to itself (again, through the hub), receive this reply and decide that somebody else was, indeed, using this IP-address. This resulted in endless rejection of whatever IP was offered by the DHCP server. The problem has been corrected: the DS now checks the sender of ARP reply and ignores the reply if the sender was the DS itself.

 

Bug fix: when the DS received an on-the-fly command (network-side parameter) that disabled RTS/CTS flow control (i.e. PFC0) this did not make any actual changes and the DS continued to work with RTS/CTS enabled (although Status (U) command reply indicated that flow control has been turned off). This has now been corrected.

 

[V3.54 only] Bug fix: second-generation devices did not boot up when Ethernet cable was unplugged in case DHCP (DH) setting was at 1 (enabled). The after the cable was plugged in that the DS started to operate normally. This has now been corrected.

 

Bug fix: Ethernet-to-serial buffer was erroneously set to 1024 bytes. This has now been corrected and both routing buffers have equal capacity of 8192 bytes.

 

Bug fix: "type 1" escape sequence (see Soft Entry (SE) setting) for entering the serial programming mode had a slight problem: time gap before the first escape character was never counted. As a result, even when the time gap between a data character with ASCII code matching that of escape character and preceding data character was <100ms this was erroneously counted as the beginning of escape sequence. For example, supposing that the following string was sent into the serial port without any gaps: "ABC<<ABC" (< depicts escape character). In this case the data routed to the network host would be "ABC<DEF". In other words, one character would be lost! This has now been corrected.

 

Several minor fixes and adjustments were made to improve reliability of DS operationg and (especially) network communications.        

 

----------

Release V3.16/3.51

 

Bug fix: serial port did not work properly with baudrate of 300bps

 

----------

Release V3.15/3.51

 

Bug fix: several small issues related to Link Server communications

 

New: added support for dDNS (not thoroughly documented yet)

 

Adjustment: now Ethernet-to-serial buffer is not cleared when data connection is closed

 

Adjustment: in DHCP now process "name field" so the DS also supplies its name to the DHCP server

 

----------

Release V3.14/3.51

 

Bug fix: several small fixes in TCP/IP protocol stack, related to UDP communications

 

Bug fix: related to remote control of RTS/CTS lines

 

----------

Release V3.13-BETA

 

Bug fix: several small fixes related to inband command processing

 

Bug fix: several small fixes in DHCP implementation

 

Improvement: adjusted TCP/IP protocol stack (several small issues)

 

----------

Release V3.12-BETA

 

Bug fixes: several minor adjustments in  DHCPimplementation

 

New: additional escape sequence, extended Soft Entry (SE) setting

 

New: accept out-of-band UDP commands on port 32767 also

 

New: extented Connection Mode (CM) setting- added options 2 (on command) and 3 (on command or DSR=HIGH)

 

Adjustment: many small fixes and improvements in the TCP/IP protocol stack

 

New: processing of profiles (see "define your own default setting values")

 

New: add ability to send data UDP packets as broadcasts (when Destination IP-address (DI) setting is 255.255.255.255)

 

New: optional password protection for on-the-fly commands (On-the-fly Password (OP) setting)

 

----------

Release V3.00-BETA

 

New: Connection Mode (CM) setting has been added (only with options 0 and 1)

 

Adjustment: multiple small improvements in TCP/IP stack, data routing

 

New: inband command processing

 

New: error mode added- now it is possible to setup the DS through the network even when one or several settings are invalid

 

New: Echo (X) command extented to return status info

 

New: Logout (O) command to exit programming mode without rebooting

 

New: network programming source tracking. For example, in out-of-band UDP programming make sure that all subsequent commands after login come from the same IP

 

New: serial-side parameters and instructions (modem commands)

 

New: automatic login timeout for network programming

 

New: Buzz (B) command

 

New: Status (U) command

 

New: routing buffer overrun tracking, special pattern that reflects overruns

 

New: sequence numbers in out-of-band UDP commands (for "gang" command execution)

 

New: serial-side parameters and instructions (modem commands)

 

New: escape sequence change: "silence gap" is now required before each escape character

 

Bug fixes: several small issues related to serial commands

 

New: selection of particular device in the broadcast out-of-band mode using Select In Broadcast Mode (W) command

 

New: DHCP support

 

New: quick initialization

 

Adjustment: Echo (X) command reply changed and extended

 

New: Data Login (DL) setting and command-phase programming

 

New: processing of broadcast UDP data packets and Broadcast UDP (BU) setting

 

Adjustment: decrease total number of start and stop characters- now can only have one of each

 

Adjustment: Status (U) command reply changed and extented

 

New: Add Link Server support

 

New: Notification (J) messages, Notification Destination (ND) setting, Notification Bitmask (NB) setting

 

New: DTR Mode (DT) setting

 

----------

Release V2.53

 

Serious bug fix: found that initialization routine for the network controller inside the DS was wrong. This caused the network interface of the DS to not be properly initialized. In practice, this looked like sporadic "disappearance" of the DS from the network

 

----------

Release V2.52

 

Adjustment: on startup verify and correct IP-address (IP) and MAC-address (FE) if they are invalid. This makes sure that the DS will always be visible at least on a local network segment

 

New: make Version (V) Command return "+N" if the NetLoader is present

 

----------

Release V2.50

 

New: UDP broadcast storm protection. Now, under heavy load conditions the DS selectively ignores broadcast messages thus making room for processing "useful" UDP packets

 

New: Parity (PR) Setting gets 3 (Mark) and 4 (Space) parity options

 

Adjustment: TCP packet retransmission algorithm has been improved

 

Bug fix: several small things related to the data transmission with UDP/IP

 

----------

Release V2.22 has been released

 

New: accept TCP "reconnects" from same IP but different port. Now, when TCP connection is already established and new connection attempt is made from the same IP the old connection will be "forgotten" and the new one will be accepted. More on this here.

 

Adjustment: now firmware recognizes that when UDP packet arrives with its checksum field set to zero this means that checksum is not set. Before such packet would have been rejected and now it will be accepted

 

Bug fix: related to the TCP connection termination procedure

 

----------

Version 2.21 (original "base" version)