24.03.2023 - HydraFW v0.11
Big thanks again to Baldanos to be the lead developer on HydraFW since 2015 including all major contributions of the project
- Memory pool allocator for temporary buffers (pool_alloc_bytes()/pool_alloc_blocks()/pool_free())
- Memory(RAM) optimizations
- Replace SDCard driver by SDIO
- Convert all python scripts to python3
-
- I2C Add clock stretching support (Thanks to r12f )
- 1-wire Implement scan for multiple devices (Thanks to jbglaw)
- CAN Change filter method
- 2-wire Fix CLI error when writing in 2-wire mode
- UART Add baud rate detector
-
- SDIO
- I2C Add clock stretching
- CAN Change filter method
- SPI fix bug, set phase value properly (Thanks to MrKalach)
- MMC/eMMC
- flashrom Implement serprog protocol SPI speed (Thanks to nlfx)
- pyHydrabus Documentation updated
- Add contrib/SPI_flasher/HydraSPI.py script: dump/program (Thanks to MrKalach)
- Add contrib/pyHydra_SHT3x/hydra_SHT3x.py script for I2C Sensirion Humidity and Temperature Sensor(SHT30, SHT31, SHT35)
07.09.2020 - HydraFW v0.10
This version is the first stable version (if you find any issue please create an issue).
Big thanks to Baldanos to be the lead developer on HydraFW since 2015 including all major contributions of the project (191 commits, 545776 lines added and 479088 lines removed)
- Update ST drivers to 1.7.8 (Based on STM32CubeF4 Firmware Package V1.25.x / 12-February-2020)
- Update ChibiOS 18.2.0 (git version)
- Plug & Play USB Serial Driver using standard driver for windows 8.1 & 10 (Thanks to Guigz2000)
-
Console syntax improvements (Thanks to Azox)
- Support Compressed mode
- Add error message when invalid token found with position highlighted
- Various fixes for BP compatibility + TL_TOKEN_DELIMITER issue
- For more details see https://github.com/hydrabus/tokenline/commits/master
-
- Smart Card (Big thanks to the contributors sylvainpelissier/Azox)
- ADC trigger
- SWD bruteforce (2-wire mode)
- See also HydraFW OpenOCD guide
- JTAG bruteforce fixes and improvements
- See also HydraFW OpenOCD guide
- Auxiliary pin
- I2C for non intrusive sniffer for SDA line
- Display improvement for delays (microseconds) (Thanks to Azox)
-
- Smart Card (Big thanks to the contributors sylvainpelissier/Azox)
- Auxiliary pin
- Flashrom support using native Serprog mode (see https://github.com/hydrabus/hydrafw/wiki/HydraFW-SPI-guide#flashrom-usage for more details)
- Supported with any version of Flashrom since v0.9.8 or more (tested with success also with latest Flashrom v1.2)
- Binary NFC Reader mode (Thanks to gvinet)
- pcap file format support for sniffer output (Thanks to AAsyunkin-se)
- HydraNFC Shield v1 is now superseded by HydraNFC Shield v2 in an other fork see https://github.com/hydrabus/hydrafw_hydranfc_shield_v2
- pyHydrabus Python bindings (Thanks to Gheko for helping on this)
- Script to dump SPI flash
- Script for 93c46 EEPROM read/write/erase
- HydraBus/HydraFW wiki updates
- Build/Debug on Windows/Linux with STM32CubeIDE using SWD and SWO traces
30.09.2018 - HydraFW v0.9 Beta
- Added trigger mode on all supported modes. See commit a982d6b
- Added SUMP mode autodetection. Tools like Sigrok and OLS don't need any prior hydrabus setup. See commit ca90ec2
- Added
\xx
escape sequence in freeform strings. See commit 3614185 - Increased the maximum hexdump capacity to 2^32 bytes.
- Added AVRdude compatibility. See commit2f3aecb
- Fixed compiler errors and warnings when compiling with gcc 8.x
- Updated ChibiOS to latest stable_17.6.x branch
- Updated FatFs to official 0.13b
- Updated ST drivers to STM32Cube 1.2.1
- Reorganized the repository structure
-
Console mode
-
1-wire mode. See commit e79c160
-
NAND flash mode. See commit 5247a83
-
Wiegand mode. See commit b3f3e1b
-
LIN mode. See commit 1b83986
-
CAN
- Added timing settings
- Fixed several CAN issues
-
Add TRST manual configuration in JTAG mode
-
Added BBIO display mode version commands
-
Fixed some BBIO command behavior
-
CAN
- Added timing settings
- Added SLCAN support
13.10.2016 - HydraFW v0.8 Beta
- Updated ChibiOS from actual 3.0 to latest ChibiOS v16.1.6+/ChibiOS RT v4.0.0(Sep 27, 2016 )
- Added benchmark tests see hydrafw command
debug test-rx
and python script https://github.com/bvernoux/hydrafw/blob/master/scripts/tx_bench.py
- Added benchmark tests see hydrafw command
- Updated FatFs to chibios fatfs-0.10b-patched.7z
- Script support (Thanks to Baldanos) see commit 47f181a9
- Added SD script (to execute commands from sdcard file)
- Added SD startup script option (initscript file at root of sdcard)
- Fixed SDCard 4x slowness (was set implicitly to SDC_MODE_1BIT instead of SDC_MODE_4BIT in new chibios)
- Now Read speed on Class 10 MicroSD reach 11MBytes/s (using 24MHz - 4Bits SDIO mode, can be increased later to 48MHz - 4 bits SDIO on microSD supporting it)
- tokenline
- Fixed issue on history with up key (Thanks to 0x8008135)
- Manage invalid value for T_ARG_FLOAT & strict suffix only "k", "m" or "g" or no suffix for T_ARG_UINT & T_ARG_FLOAT
- show_help() fix coverity scan bug "Dereferencing null pointer tl->parsed.last_token_entry"
- Updated drv/stm32cube to latest STM32Cube FW F4 V1.13.0
- HydraFW Coverity Scan defects fixed (Thanks to iceman1001)
- Fixed compatibility with python3 (always compatible with python 2.x) for dfu-convert.py & hydrafw-version.py (Thanks to Baldanos)
-
Console mode
- Raw 3-wire (Thanks to Baldanos)
- UART Bridge enhancement (Thanks to Baldanos)
- The UART bridge now works perfectly at up to 115200 bauds
- Measure frequency & Duty Cycle (from 1282Hz to 84MHz, 128Hz to 8.4Mhz too, autorange ...) (Thanks to Baldanos)
- Hexdump in console command hd to display in hex / ascii data read for spi, i2c, uart, 2 and 3-wire (Thanks to Baldanos)
-
- Raw 3-wire (Thanks to Baldanos)
- Integrated in BBIO bbio_mode_rawwire which support now 2-wire and 3-wire
- SPI binary mode Add configuration/selection of SPI1 or SPI2
- Raw 3-wire (Thanks to Baldanos)
- Added command sd (sdcard commands)
- Added Example bbio_hydranfc_init.py for HydraNFC init using Console mode + switch to bbIO mode for SPI2 Init & communication with TRF7970A (HydraNFC shield)
- Read / Display / Save Mifare Ultra Light tag data (64bytes raw data of the Tag)
read-mf-ul
command now requires a mandatory filename as destination to save the Mifare Ultra Light 64bytes data to microsd file- See commit [d569fcd8] 27-May-2016 (https://github.com/bvernoux/hydrafw/commit/d569fcd853415d7d56e54ef773315abb45015285) (modified scan command)
- Emulate Mifare Ultra Light tag (Beta version does not work with phone) (7Bytes UID and 64bytes data support only READ command)
emul-mf-ul
command add optional filename (same 64bytes raw file previously written to microsd byread-mf-ul
)- See commit [d569fcd8] 27-May-2016 (https://github.com/bvernoux/hydrafw/commit/d569fcd853415d7d56e54ef773315abb45015285) (modified scan command)
- This feature is a Beta version and will be rewritten using low level mode SDM TX/DM1 RX in order to be hard real-time & ISO compliant, which will also fix the emulation when using a Phone...
- NFC sniffer improvements and NFC sniffer command cleanup
- Modified NFC RX Gain Reduction from 10dB to 5dB & use ISO14443A mode
- The sniffer now use native ISO14443A mode instead of previous hybrid mode ISO14443B/A, those modifications (with NFC RX Gain reduction set to 5dB) give better sniffing sensitivity and bigger range to sniff PICC(NFC Tag) and PCD(NFC Reader) configured using @6.3Mbauds(in reality it is 8.4Mbauds) 8N1 with Putty on Win7)
- Removed
sniff-dbg
(replaced byparity
&frame-time
sub commands) - Added following
sniff
sub commands:trace-uart1
to trace in real-time sniffed data to UART1 PA9 @8.4Mbauds 8N1 (validated with FTDI C232HM-DDHSL-0bin
(Force binary sniff trace(UART1 only))parity
(Add parity bit information in binary sniff trace(UART1 only))frame-time
(Add start/end frame timestamp(in CPU cycles))
- Moved
sniff-raw
command tosniff
sub commandraw
16.04.2016 - HydraFW v0.7 Beta
- Fixed ultra slow build (because of built in rules...) thanks to tuxscreen post http://hydrabus.com/forums/topic/make-is-ultra-slow/#post-696 for the fix
- Updated 'tokenline' submodule to the latest version
- Change T_ARG_INT to T_ARG_UINT, supporting only unsigned integers.
-
Added freeform string as byte sequence (in addition to freeform integers) (thanks to Baldanos)
-
Added Binary Modes full documentation in wiki
-
Added Binary Modes (USB CDC compatible with BusPirate BBIO/Bitbang) with:
-
CAN (thanks to Baldanos)
- Corrected filters handling. Now works for both CAN interfaces
- Fixed
bsp_can_rxne()
- Fixed error in can2 pin description
- Added speed change for CAN
-
Optimized sump critical part and Lock Kernel during get_samples()
-
JTAG scanner/debugger mode like JTAGulator (thanks to Baldanos)
- Add support for TRST
- Add support for MSB/LSB when reading
-
Added in standalone mode sniffing LED indication #36 LED 2 ON for Standalone mode
-
Fixed IRQ bug (stopped when enter/exit from sniffer or emul mode)
-
Fixed Trf797xInitialSettings with workaround of Errata SLOZ011A–February 2014–Revised April 2015
-
HydraNFC emulation commands are in alpha stage and they will be fixed in next version of HydraFW
- Added in emul-mifare display of UID parameter when started
- Added in emul-mifare 4 bytes UID parameter
- Added emul-mf-ul command for Mifare Ultralight Emulation preliminary/work in progress code
-
Added dm0 command => Direct Mode 0 Sniffer Test work fine mainly for test with a Logic Analyzer on PC2
-
Added dm1 command => Direct Mode 1 Test (Work in Progress to test TX SDM & RX DM1)
29.11.2015 - HydraFW v0.6 Beta
- Update of tokenline, now both
T_ARG_INT
andT_ARG_FLOAT
take k, m and g suffixes and apply a decimal factor on both argument types. It is always compatible with old syntax khz, mhz, ghz (only first character is checked).
- Added 2-wire mode (support frequency up to 1MHz) (thanks to Baldanos)
- Added random command new token ~ (
T_TILDE
) to write random byte (thanks to Baldanos) - Random number generator (using STM32 hardware RNG) see command which returns a 32bit random number in hex (thanks to Baldanos)
- Added jtag scanner/debugger mode (thanks to Baldanos)
- Classic JTAG (TDI/TDO/TMS/TCK)
- Can be used with command line
- BusPirate-compatible OpenOCD binary mode (openocd command)
- Can scan a JTAG bus with IDCODE and BYPASS methods (idcode and bypass commands)
- Can try to find JTAG bus on all GPIOB pins (like JTAGulator) (brute command)
- Added sump mode, Logic Analyzer up to 1MHz 16chan with SUMP support (thanks to Baldanos)
- Compatible with ols-0.9.7.2 see also ols profile for hydrabus
- Compatible with sigrok: sigrok-cli & PulseView
- Added can mode (thanks to Baldanos & smillier)
- Needs a dedicated shield like HydraOBD to communicate with a real CAN bus
- Support CAN bus 1 or 2 (speed up to 2M)
- Support read, read continuous, write, id and filter commands
- Added in uart mode the bridge command to be used as UART Raw sniffer (thanks to Baldanos)
- UART: fix bug in baudrate->BRR (thanks to doegox)
- HydraNFC Tag Emulation UID Mifare 1K & ISO14443A
- Mifare Emulation (Anticol+UID+HALT) see new command emul-mifare
- ISO14443A Emulation (TRF7970A hardware Anticol/UID) see new command emul-3a
- Rename command mifare to typea (ISO14443A) as it was not specific to MIFARE
- scan command now support 4 and 7bytes UID (thanks to NicoHub)
- Sniffer new command sniff-dbg with following new features:
- Add after each 8bits/byte the parity (ASCII char "0" or "1" + space)
- End Of Frame Timestamp + RSSI
11.02.2015 - HydraFW v0.5 Beta
- New USB VID_0x1d50/PID_0x60a7 using OpenMoko HydraFW, update with new drivers
- Windows see driver_usb_cdc/hydrabus_usb_cdc.inf
- Linux see 09-hydrabus.rules
- Added USB DFU boot by pressing UBTN at PowerOn/RESET for easier future update of the firmware (does not requires any wire).
- Added Log command (thanks to biot):
- Log all commands/answer in the Terminal to HydraBus SD card file:
logging
on
off
sd
- Log all commands/answer in the Terminal to HydraBus SD card file:
- Added command
debug
test-rx
(debug rx) in order to test USB CDC reception performance. - Added PWM command:
- Configurable PWM frequency between 1Hz to 42MHz and duty cycle from 0 to 100%:
pwm
,frequency
,duty-cycle
- Give feedback of real PWM frequency & duty cycle after configuration.
- Configurable PWM frequency between 1Hz to 42MHz and duty cycle from 0 to 100%:
- Added DAC command:
- Configurable DAC1(PA4 used by ULED) or DAC2(PA5) with following modes:
raw
(0 to 4095),volt
(0 to 3.3), also returns feedback of raw/volt DAC value after configuration.triangle
(5Hz / 3.3V Amplitude),noise
(0 to 3.3V Amplitude)dac exit
disable DAC1/2 & Timer6/7 and reinit GPIO for PA4 & PA5
- Configurable DAC1(PA4 used by ULED) or DAC2(PA5) with following modes:
- UART:
- UART returns real baud rate+% error after configuration.
- Check and correct min/max value for UART baudrate.
- I2C added
scan
(thanks to biot). - SPI:
- Fixed
cs
on
/off
bug with Infinite Loop. - Fixed SPI mode
slave
. - Fixed configuration for
phase
&polarity
(was always set to 0).
- Fixed
- HydraNFC:
- Fixed HydraNFC detection/init/cleanup and autonomous sniffer mode started with K4.
- Fixed some potential problems/crash with scan/continuous.
- Add full help for commands.
- Lot of cleanup and fixes in code.
19.12.2014 - HydraFW v0.4 Beta
- Major improvement/refactoring towards terminal/syntax using tokenline (instead of microrl) thanks to Bert Vermeulen (biot) for that amazing piece of software and all the work on this project.
- New commands added:
- ADC, GPIO, more sd commands
- SPI1&2, I2C and UART1&2 are tested with logic analyzer/oscilloscope.
31.10.2014 - HydraFW v0.3 Beta
- New modes added: SPI, I2C, UART
- All modes tested with SCANA Plus logic analyzer, need more test with real hardware.
- Lot of fixes & cleanup.
13.10.2014 - HydraFW v0.2 Beta
- New commands added:
cd <dir> - change directory in sd
pwd - show current directory path in sd
hd <filename> - display sd file (HEX)
sd_rperfo - sd read performance test
*Updated ls command.
- Added an option for HydraNFC to be not included by commenting Makefile line export HYDRAFW_NFC ?= 1 (by default it is added)
- Lot of fixes.
- Thanks to biot for contribution !!
09.10.2014 - HydraFW v0.1 Beta
- First version (0.1Beta)