2011-11-14: 1.0.0 (5afa1c2) - Initial version 2012-03-02: 1.0.1 (1836e39) - Add timeout for message callbacks 2012-03-28: 1.0.2 (dc58be8) - Don't wait 100ms if no callback available - Add macOS support 2012-04-11: 1.0.3 (e7e4121) - Remove global reactor import for macOS 2012-04-13: 1.0.4 (e35d70c) - Remove double fork completely for macOS 2012-04-15: 1.0.5 (3313060) - Update to newest python-libusb1 version (thanks to vpelletier) - Remove possible memory leak 2012-04-24: 1.0.6 (971d172) - Remove faulty libusb locking 2012-06-05: 1.0.7 (e4745c1) - Fix handling of incomplete packets 2012-06-25: 1.0.8 (19f38a7) - Break a reference cycle between USBDevice and USBTransfer objects - Add date to log output - Fix stack ID routing for enumerate with multiple connected stacks - Add --version commandline option 2012-07-30: 1.0.9 (7002e21) - Reduce Windows and macOS installer size - Avoid race condition when enumerating USB devices on Linux - Use more expressive log file name and correct line endings on Windows - Don't cancel pending USB transfers to avoid segfault in libusb on USB hotunplug on Linux - Update bundled libusb to 1.0.12 to make USB 3.0 work on Windows - Increase USB hotplug/unplug stability by using a libusb context per device 2012-10-12: 1.0.10 (e893ec0) - Enable non-root usage on Linux - Avoid potential data corruption in python-libusb1 2012-10-26: 1.0.11 (0d870e6) - Don't broadcast GetStackID responses, avoids confusing clients - Update bundled libusb to 1.0.14 to support the 2nd generation of Renesas USB 3.0 controllers on Windows - Lock the PID file on Linux to prohibit starting multiple instances 2013-01-22: 2.0.0 (3ced6b6) - Complete rewrite in C for protocol 2.0 2013-01-25: 2.0.1 (d820268) - Add socket peer name to related log messages - Don't accept an empty string as valid integer value in config file - Reject 0 as port number in config file - Report config errors to log file 2013-02-07: 2.0.2 (dc8b108) - Make errors during client peer name lookup non-fatal - Support running as normal console application on Windows - Support MinGW as compiler on Windows - Support running as non-root on Linux - Improve --help output 2013-02-08: 2.0.3 (6e4f690) - Fix USB unplug detection on Windows 2013-04-03: 2.0.4 (8e22cd3) - NSIS installer automatically installs/updates the WinUSB driver on Windows < 8 - Improve callback related log messages - Fix wrong log level of startup greeting on Windows - Drop incoming disconnect probe requests - Fix packet buffer handling in unlikely error case 2013-04-19: 2.0.5 (1be1146) - Avoid non-portable usage of bit fields - Handle big endian byte order correctly - Show UIDs in log messages in Base58 - Debian i386 package now really compiled for i386 instead of i686 2013-08-08: 2.0.6 (c9d5504) - Workaround struct packing bug in MinGW GCC 4.7 - Add Log Viewer tool for Windows - Prohibit starting a second instance on Windows - Check for USB device additions/removals changes on SIGUSR1 - Ignore SIGPIPE and handle socket write errors properly 2013-09-12: 2.0.7 (693f7bd) - Add OpenWrt package Makefile (thanks to bjoern-r) - Debian package now works with libudev0 and libudev1 - Use GetSystemTimePreciseAsFileTime() on Windows 8 for more precise log timestamps - Fix race between socket select thread and USB poll thread on Windows - Fix text of some USB related error messages - Don't set SO_REUSEADDR for server socket on Windows 2013-09-13: 2.0.8 (19f5c69) - Fix dynamic loading of libudev on Linux 2013-11-04: 2.0.9 (333f72b) - Use libusb hotplug support if available on Linux - Update bundled libusb to 1.0.17 on macOS, libusb hotplug replaces custom IOKit code - Update bundled libusb to 1.0.17 on Windows, adds support for VIA VL805 USB 3.0 host controllers - Add --libusb-debug option to enable libusb debug output - Report too long lines in config as errors instead of silently ignoring them - Add IPv6 support with configurable dual-stack handling - Don't interfere with Apple's USB Ethernet Adapter on macOS - Sign brickd.app and installer on macOS to silence the Gatekeeper - Linux packages build on older Debian/Ubuntu to lower required glibc version 2013-12-03: 2.0.10 (5bacb2c) - Reduce log level of messages about USB write queue usage, packet burst are expected for the LED Strip Bricklet - Handle USB transfers correctly that complete during usb_stack_destroy() - Add Queue type for the USB stack's write queue instead of Array type 2014-04-08: 2.1.0 (3575dad) - Add authentication support (disabled by default) - Add WebSocket support (port 4280, disabled by default) - Make USB device lookup more robust in case of some USB driver bugs on Windows - Update bundled libusb to 1.0.18 on macOS, fixes a SIGFPE bug - Update bundled libusb to 1.0.18 on Windows, adds support for Intel and AMD USB 3.0 root hubs - Improve handling of request packets with invalid length in the header - Handle rare case of socket_receive failing with EWOULDBLOCK - Don't lose connection to USB devices on host-resume-from-suspend on Linux and macOS (requires pm-utils on Linux) - Increase upper limits for pending requests and USB write queues - Add socket_send queue for clients, enqueue packet instead of disconnecting client if socket_send would block - Only dispatch response to the first client with a matching pending request, fixes response duplication 2014-07-31: 2.1.1 (466a67c) - Add live debug log view to Log Viewer on Windows - Include signed version of the Brick bootloader driver for Windows - Workaround race condition in USB hotplug handling on Linux - Fix crash if client with pending responses disconnects - Fix possible mismatch while handling responses for identical requests - Avoid broadcasting unexpected responses in most cases 2014-12-10: 2.2.0 (76081ce) - Add RED Brick support - Colorized log messages - Detect and drop pending requests that will never get a response - Windows installer and drivers are signed now - macOS installer signed on macOS 10.10 to pass the Gatekeeper again - Enable logrotate for brickd.log on Linux - Remove all categories from logging system - Handle partial writes if outgoing socket buffer is almost full 2015-02-02: 2.2.1 (36a039b) - Improve RED Brick hotplug detection and error handling on Windows - Add debug filter to fine-tune debug output - Wait for WebSocket handshake completion before sending data - Use redapid version as RED Brick firmware version - Don't send packet twice after partial write 2015-10-01: 2.2.2 (fcc07cd) - Use uname to get RED Brick kernel release for loading Ethernet Extension kernel driver (hotfix-1: already released as part of RED Brick Image 1.6) - Improve RED Brick SPI stack protocol error recovery (hotfix-2: already released as part of RED Brick Image 1.7) - Add start menu link for Log Viewer on Windows - Adapt to file system protection changes in macOS 10.11 - Update libusb WDF co-installer for Windows Vista and Windows 7 2016-11-29: 2.2.3 (e754f54) - Update bundled libusb to 1.0.20 on Windows, add support for Intel Alpine Ridge USB 3.1 controller - Update bundled libusb to 1.0.20 on macOS - Merge --debug and --libusb-debug options - Properly quote path to brickd.exe for service registration on Windows - Switch to .pkg based installer for macOS - Fix crash in RS485 Extension code for RED Brick - Add experimental Windows 10 IoT Core (Universal Windows Platform) support, no precompiled app available yet, brickd for Windows 10 IoT Core has to be compiled from source 2017-01-24: 2.3.0 (7b487f2) - Add support for WIFI Extension 2.0 Mesh mode - Improve RED Brick SPI stack protocol ACK handling - Add Co-MCU Bricklet handling to RED Brick SPI stack protocol - Avoid crash due to improperly cancelled USB transfers at device disconnect on macOS - Update bundled libusb to 1.0.21 on Windows and macOS - Also read config from unsupported Extensions on RED Brick to allow Brick Viewer showing them as unsupported - Avoid using Debian specific init script helper functions on Linux 2017-10-06: 2.3.1 (879b323) - Add support for RED Brick Image 1.10 and drop support for older RED Brick Image versions - Add AppService as alternative to TCP/IP connection on Windows 10 IoT Core to allow C# Bindings (since 2.1.3) to connect from the same device - Adapt to Windows 10 IoT Core version 15063 - Add logic to reopen USB devices to recover from stalled USB transfers - Avoid race condition with USB prober on macOS while opening USB devices 2018-07-16: 2.3.2 (c58ca19) - Fix notification event name handling on Windows 10 IoT Core - Read USB string descriptors instead of faking them on Windows 10 IoT Core - Add compile-time backward compatibility to RED Brick Image 1.9 - Update bundled libusb to 1.0.22 on Windows and macOS, this fixes enumeration problems with ASMedia USB hubs, composite devices and bogus USB device address reports on Windows - Add MSVC project on Windows - Use systemd instead of init.d on Linux, if available - Add experimental Android support, no precompiled app available yet, brickd for Android has to be compiled from source 2019-07-02: 2.4.0 (d3d7482) - Add support for HAT (Zero) Brick (SPI connected Bricklets) - Install Log Viewer start menu link for all users on Windows - Add commandline options to override config, log and PID file location on Linux and macOS - Remove accidental dependency to libusb 1.0.20 on Linux - Replace Event Log usage with persistent log file on Windows - Extend Log Viewer to start/stop brickd, view log file and edit config file on Windows - Fix rare crash in WIFI Extension 2.0 mesh packet handling - Add support for receiving multiple response packets per USB read transfer - Update bundled libusb to 1.0.23-rc1 on Windows and macOS, this fixes problems with ROOT/SYSTEM/0001 USB hubs on Windows - Bind to all IP addresses resolved from the listen.address config option, instead of just the first one 2019-12-11: 2.4.1 (431b1a2) - Rename bundled libusb to avoid potential collision with system libusb on macOS - Add missing network dependency to systemd service on Linux - Make sleep time between SPI reads for HAT (Zero) Brick configurable - Add experimental support for HAT (Zero) Brick (SPI connected Bricklets) on Windows 10 IoT Core, disabled by default due to missing HAT detection - Notarize Brick Daemon app to make it ready for macOS 10.15 2020-11-12: 2.4.2 (1e6411a) - Properly shutdown subsystems on Ctrl+C instead of abruptly exiting on Windows - Rotate persistent log file on Windows and limit its total size to 25 MB - Add commandline options to override log and config file location on Windows - Colorize Log Viewer live log messages on Windows - Reword Log Viewer messages to be less ambiguous on Windows - Add build option to work without a device file manager such as udevd on Linux - Allow to handle more then 6 USB devices on Windows - Use BCM2835 library for SPI connected Bricklets on Raspberry Pi to improve performance and work around SPI chip select conflict between Linux kernel 5.4 and HAT Brick firmware < 2.0.2 - Improve log messages related to HAT (Zero) Brick on Linux - Fix SPI hardware chip select usage on Linux - Allow to fully static link brickd for Docker container usage on Linux - Switch Debian package build to debhelper and drop SysV init support - Improve USB transfer error logging and stall error recovery 2020-12-01: 2.4.3 (2f57246) - Fix SPI clock for HAT (Zero) Brick on Linux, if core_freq differs from 250 MHz - Add config option to override SPI backend detection 2023-01-16: 2.4.4 (889c425) - Add menu entry to clear Live Log in Windows Log Viewer - Abort delayed USB stall recovery if device was removed in the meantime - Add rate limit for Bricklet error messages - Increase libusb requirement from 1.0.6 to 1.0.20 - Allow to disable mesh gateway - Update bundled libusb to 1.0.26.11755 on Windows (Windows Vista or newer required) and macOS 2023-11-30: 2.4.5 (f841c6b) - Add Raspberry Pi 5 support for HAT (Zero) Brick - Fix rare crash in initial USB device scan