1.0.0: Initial version
1.0.1: Add thread for callbacks in IPConnection (allows to call getters in callbacks)
1.0.2: Remove accidental debug output that was present in 1.0.1
1.0.3: Add support for IMU Brick, Analog In Bricklet and Analog Out Bricklet
1.0.4: Add ChibiFreuqency and ChibiChannel methods
1.0.5: Add sync rect support to Stepper Brick bindings and make Device class public
1.0.6: Make Device class abstract
1.0.7: Add version information to manifest of tinkerforge.jar
       Silently ignore messages from devices with unknown stack ID
       Don't generate addListener method for devices without callbacks
       Add inline code documentation
1.0.8: Ensure that the answering device matches the expected type in IPConnection.addDevice
1.0.9: Treat '-' and ' ' as equal in device name check for backward compatibility
1.0.10: Improve exception handling in receive thread
        Ensure to unblock callback thread when destroying the IPConnection
        Fix handling of fragmented packets
1.0.11: Add RS485 support
1.0.12: Add chip temperature and reset functions
1.0.13: Add monoflop functionality to Dual Relay Bricklet API
1.0.14: Add time base all data function/callback and state callback to Stepper Brick API
1.0.15: Fix direction of getAllDataPeriod method in Stepper Brick API
        Make addDevice thread-safe
        Ensure correct shutdown order of threads
1.0.16: Fix race condition in addDevice method
        Add monoflop functionality to IO-4 and IO-16 Bricklet API
1.0.17: Add WIFI support
1.0.18: Add getter for WIFI buffer status information
        Change WIFI certificate getter/setter to transfer bytes instead of a string
        Add API for setting of WIFI regulatory domain
        Add reconnect functionality to IPConnection (for WIFI Extension)
        Add API for Industrial Bricklets: Digital In 4, Digital Out 4 and Quad Relay
        Use StringBuilder when deserializing strings and strip NUL characters
        Avoid a race condition in expectedResponseFunctionID handling
        Fix semaphore deadlock on timeout
1.0.19: Add API for Barometer Bricklet
1.0.20: Replace Barometer Bricklet calibrate function with getter/setter for reference air pressure
1.0.21: Add getUSBVoltage function to Master Brick API
        Add Barometer Bricklet examples
1.0.22: Add API for Voltage/Current Bricklet
        Add API for GPS Bricklet
2.0.0: Add compatability for Protocol 2.0
2.0.1: Add support for custom characters in LCD Bricklets
2.0.2: Remove unused IPConnection.*Exception classes
2.0.3: Ensure to set socket and stream to null even if close() throws an IOException
       Use a shorter format for JavaDoc links
       Don't let the callback thread die silently on exception in user code
       Add get/setLongWifiKey functions to Master Brick API
2.0.4: Split IPConnection.addListener into per-Listener add functions
       Reduce scope of request and socket mutex to improve concurrency
       Improve and unify code for response expected flag handling
       Add get/setWifiHostname functions and callbacks for stack/USB voltage and stack current to Master Brick API
2.0.5: Add get/setRange functions to Analog In Bricklet API
       Fix unlikely race condition in response packet handling
       Add TinkerforgeException as basis for all other exceptions
2.0.6: Add enable/disable functions for PositionReached and VelocityReached callbacks to Servo Brick API
       Add get/set_i2c_mode (100kHz/400kHz) functions to Temperature Bricklet API
       Add default text functions to LCD 20x4 Bricklet API
       Don't dispatch callbacks after disconnect
       Fix race condition in callback handling that could result in closing the wrong socket
       Don't ignore socket errors when sending request packets
       Send a request packet at least every 10sec to improve WIFI disconnect detection
2.0.7: Add Ethernet Extension support to Master Brick API
       Only send disconnect probe if there was no packet send or received for 5s
       Avoid race condition during socket closing
       Add IMU orientation and Barometer averaging API
       Fix locking for disconnect probe thread detecting a socket error
2.0.8: Add support for PTC Bricklet and Industrial Dual 0-20mA Bricklet
2.0.9: Avoid ConcurrentModificationException in listener handling by using CopyOnWriteArrayList
2.0.10: Avoid race condition between disconnect probe thread and disconnect function
2.0.11: Add edge counters to Industrial Digital In 4, IO-4 and IO-16 Bricklet
        Make averaging length configurable for Analog In Bricklet
2.0.12: Fix signature of edge count functions in IO-16 Bricklet API
2.0.13: Add support for Distance US, Dual Button, Hall Effect, LED Strip, Line, Moisture, Motion Detector, Multi Touch, Piezo Speaker, Remote Switch, Rotary Encoder, Segment Display 4x7, Sound Intensity and Tilt Bricklet
        Throw IllegalArgumentException on invalid Base58 value as UID
2.0.14: Add Get/SetClockFrequency function to LED Strip Bricklet API
        Fix mixup of Set/GetDateTimeCallbackPeriod and Set/GetMotionCallbackPeriod in GPS Bricklet API
        Support addressing types of Intertechno and ELRO Home Easy devices in Remote Switch Bricklet API
2.1.0: Add authentication support to IPConnection and Master Brick API
       Add TinkerforgeListener and DeviceListener as base interfaces for all listeners
       Escape special HTML characters in JavaDoc
2.1.1: Add support for WS2811 and WS2812 to LED Strip Bricklet API
2.1.2: Add support for Color, NFC/RFID and Solid State Relay Bricklet
       Replace System.console() usage with an Eclipse compatible pattern in examples
