Skip to content

Releases: Waffelo/HydraFlasher

Firmware v1.3

Choose a tag to compare

@github-actions github-actions released this 16 Oct 10:04
1c78393

Its own USB identity, done properly. The Pico now uses Raspberry Pi's USB vendor ID with the product ID Raspberry Pi assigns to Pico SDK serial devices, instead of TinyUSB's example vendor ID 0xCAFE, which isn't meant for distributed devices. Nothing else changed: flashing, verifying, the socket detection and the LEDs work as in 1.2.

Changed

  • USB ID 2E8A:000A (was CAFE:4001): Raspberry Pi's shared ID for Pico SDK serial (CDC) devices, which their rules ask such devices to use. The product name stays "HydraFlasher", which is how the app finds the Pico.
  • Serial number from the Pico's unique flash ID (was 621621 on every board), so two Picos get different names in /dev/serial/by-id/ and on Windows.

Compatibility

  • Update with app 1.1.0 or newer. App 1.0.0 still finds and uses a Pico with 1.3, but loses it during a firmware update (it looks for the old ID when the Pico restarts).
  • On Windows, the Pico gets a new COM port number once, as it's a new device to Windows.
  • Works with flashprog and flashrom as before (serprog:dev=…,cs=<n>).

What's Changed

  • Release titles: "Firmware v1.2" and "App v1.0.0" by @Waffelo in #9
  • Release titles: "Firmware v1.2" and "App v1.0.0" by @Waffelo in #10
  • AppImage: file picker works, notifications close after 6 s, no notifi… by @Waffelo in #11
  • LEDs work under sudo in the packaged app by @Waffelo in #12
  • Polish: file dialogs don't freeze the window, KDE dialog with filter, quieter notifications, build commit by @Waffelo in #13
  • Taskbar entry lights up when a job ends while you're in another window by @Waffelo in #14
  • Temporary padding, flash history page, audit fixes, firmware 1.3 USB ID, new screenshot by @Waffelo in #15
  • Release app 1.1.0 and firmware 1.3 by @Waffelo in #16

Full Changelog: app-v1.0.0...fw-v1.3

App v1.1.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 10:06
1c78393

The Linux AppImage works properly, and the flash log becomes a page in the app. The AppImage's file buttons and notifications are fixed, a finished job lights up the taskbar, the flash log has its own history page, and the app is ready for firmware 1.3.

Downloads

  • Windows: HydraFlasher-Setup-1.1.0.exe (installing it over 1.0.0 updates it) or HydraFlasher-1.1.0-portable.exe.
  • Linux: HydraFlasher-1.1.0-x86_64.AppImage: chmod +x, then run it. It needs FUSE (sudo apt install fuse3; the 1.0.0 notes wrongly said libfuse2), or start it with --appimage-extract-and-run. Desktop notifications need notify-send (libnotify-bin).
  • Firmware 1.3 is released the same day: settings → firmware → latest.

New

  • Flash history page (flash log ▸): every write and verify as a table, newest first, with socket names and green/red results; filter all / failures / today; export CSV…, open folder, and clear…, which archives the old log as flash_log-<date>.csv instead of deleting it.
  • The taskbar entry lights up when a job ends while you're in another window (Linux: until you switch back; Windows: it flashes), whether notifications are on or not.
  • Firmware 1.3's USB identity (2E8A:000A) is recognised, also when the Pico restarts during a firmware update.
  • Licenses: the packages include the licence texts of everything bundled with HydraFlasher (Python, Tcl/Tk, customtkinter, pyserial, …); settings → version → licenses opens them.
  • Settings show the git commit a package was built from next to the version.

Changed

  • Notifications only appear while the HydraFlasher window isn't focused, close after 6 seconds and show the hydra icon. A successful probe (or the automatic identify of a new chip) no longer notifies; a failed one still does. On Linux they go through notify-send.
  • Padding or truncating an image no longer leaves a _padded/_truncated file next to it: the copy is temporary and deleted once the queue is done.
  • File dialogs on Linux: KDE gets its own dialog (kdialog) even when zenity is installed, with the image filter, in front of the HydraFlasher window. The window keeps drawing and scanning while a dialog is open.
  • Builds use pinned tools: appimagetool 1.9.1 with its checksum, GitHub Actions pinned to commits.

Fixed

  • Linux AppImage: the buttons that open a file did nothing. The AppImage's bundled libraries leaked into every program it started, and KDE's file dialog couldn't start with them. Programs started from the app (file dialog, flashprog, notify-send…) now use the system's libraries, and if the desktop's file dialog still fails, HydraFlasher opens its own.
  • Linux AppImage: notifications stayed on screen until clicked.
  • Status LEDs under sudo (when your user can't open the serial port) didn't work in the packages.
  • Firmware downloads are checked against the SHA-256 checksum GitHub lists for the release file, and only files from this repository's releases are downloaded. A damaged download is refused instead of installed.
  • The settings file can't be left half-written by a crash or a full disk. An unreadable one is kept as hydra_flasher.json.broken instead of being overwritten with defaults.
  • A file name starting with =, +, - or @ is written to the flash log with a leading ', so spreadsheets don't run it as a formula.

What's Changed

  • Release titles: "Firmware v1.2" and "App v1.0.0" by @Waffelo in #9
  • Release titles: "Firmware v1.2" and "App v1.0.0" by @Waffelo in #10
  • AppImage: file picker works, notifications close after 6 s, no notifi… by @Waffelo in #11
  • LEDs work under sudo in the packaged app by @Waffelo in #12
  • Polish: file dialogs don't freeze the window, KDE dialog with filter, quieter notifications, build commit by @Waffelo in #13
  • Taskbar entry lights up when a job ends while you're in another window by @Waffelo in #14
  • Temporary padding, flash history page, audit fixes, firmware 1.3 USB ID, new screenshot by @Waffelo in #15
  • Release app 1.1.0 and firmware 1.3 by @Waffelo in #16

Full Changelog: app-v1.0.0...app-v1.1.0

Firmware v1.2

Choose a tag to compare

@github-actions github-actions released this 15 Oct 13:53
6f2839b

Socket detection. The Pico can now tell which of its chip-select lines lead to a socket, so the app sets its socket count by itself.

New

  • S_CMD_Q_CS_WIRED (0x24): returns a bitmap of the CS lines that have a pull-up resistor. Each CS pin is briefly read as an input against the RP2040's internal pull-down (50–80 kΩ); a line with an external 10 kΩ pull-up to 3V3 reads high, an open one low. The pin is set high again before it drives, so no chip sees a select glitch.

Hardware (optional, recommended)

  • Add a 10 kΩ resistor from each socket's /CS line to 3V3 (Pico pin 36). Values from 4.7 kΩ to 10 kΩ work; 22 kΩ or more is too weak. Keep the resistors' common side on 3V3: tied only to each other they seem to work while the Pico runs, but nothing holds the chips deselected while it starts or resets.
  • Boards without the resistors keep working: the app then uses the socket count set by hand.

In the app

  • settings → sockets → auto (the default) shows exactly the wired sockets; a socket between wired ones without a resistor shows as not wired and is skipped. Without pull-ups the app falls back to a manual count; detect again re-checks.

Compatibility

  • Works with older versions of the app (they don't ask for the wiring). Everything from 1.1 stays the same.

What's Changed

Full Changelog: fw-v1.1...fw-v1.2

Firmware v1.1

Choose a tag to compare

@github-actions github-actions released this 15 Oct 10:55
15d0a93

Ten sockets, firmware updates from the app. First release published on GitHub.

New

  • 10 chip selects: CS0–CS9 on GP5–GP14 (was 6: CS0–CS5 on GP5–GP10). The broadcast that selects every socket at once moved from index 6 to 10.
  • S_CMD_Q_NUM_CS (0x23): reports the number of CS lines, which is also the broadcast index. The app uses it to work with both this and older firmware.
  • Version: the standard program-name query (S_CMD_Q_PGMNAME) answers HydraFlasher 1.1 (before: pico-serprog), so the app can show the version and offer updates.

Changed — hardware

  • Status LEDs moved to GP16 / GP17 / GP18 (Pico pins 21 / 22 / 24), the other side of the board. Move them when updating from older firmware: GP11–GP13 are chip selects now, and LEDs left there just stay lit.
  • Sockets CS0–CS5 keep their pins.

Fixed

  • Builds against pico-sdk 2.2.0, whose TinyUSB 0.18.0 the patched CDC driver (tinyusb_patched/) needs; CI couldn't build the firmware before.

What's Changed

Full Changelog: https://github.com/Waffelo/HydraFlasher/commits/fw-v1.1

App v1.0.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 14:28
fb8749d

First packaged release. HydraFlasher now comes as a Windows installer, a portable Windows .exe and a Linux AppImage, so Python isn't needed any more.

Downloads

  • Windows: HydraFlasher-Setup-1.0.0.exe installs it with a Start-menu entry and an uninstaller. HydraFlasher-1.0.0-portable.exe runs without installing (it unpacks itself at every start, which takes a few seconds). Windows may warn about an unknown publisher: More info → Run anyway.
  • Linux: HydraFlasher-1.0.0-x86_64.AppImage: make it executable (chmod +x) and run it. Needs a distribution from 2022 or newer (glibc 2.35), and on some libfuse2. For the serial port, your user must be in the dialout group (uucp on Arch).
  • flashprog (or flashrom) is still needed separately: HydraFlasher looks for it on the first start and asks for it if it's missing. See Installation.

Highlights

  • Up to 10 sockets, counted automatically from pull-up resistors on the CS lines (firmware 1.2), or set by hand; sockets can be named.
  • Settings page (⚙ or Ctrl+,): socket count and names, live scan on/off with interval and speed, status LEDs, flashprog binary, notifications, resetting learned data, app version.
  • Firmware updates from the app: shows the Pico's firmware and the newest release, installs the latest release or any .uf2 (also dropped on the window), mounts the Pico's bootloader drive on Linux.
  • Drag and drop: an image on a socket card writes it, on the log verifies it.
  • Time left for jobs that ran before, and for the whole queue.
  • Job queue, one-by-one and broadcast writes, production mode with a CSV flash log, partial writes and verification on the Pico.
  • Light and dark mode; the hydra as the window and app icon.

Fixed

  • The window no longer freezes on a Pico that doesn't answer (other or hung firmware): it's reported as not responding, and the firmware update asks for BOOTSEL.
  • The settings page scrolls with the mouse wheel on Linux.
  • Flaky or missing pull-up resistors no longer make the socket count switch back and forth at every reconnect.

What's Changed

  • Detailed release notes from a firmware changelog, PR template by @Waffelo in #7
  • App release by @Waffelo in #8

Full Changelog: fw-v1.2...app-v1.0.0