/wally

The Flash(ing tool)

Primary LanguageGoOtherNOASSERTION

Wally

Flash your ZSA Keyboard the EZ way.

ℹ️ Windows users: There's a new version of Wally rewritten from the ground up using native technologies.

ErgoDox EZ users: Teensy Loader will still work for flashing your ErgoDox EZ (as will Wally — you've got options!).

Getting started

⚠️ Warning starting from firmware v19, Wally needs to be updated to v2.1.0 in order to detect your keyboard.

Wally comes in two flavors, a GUI and a CLI app. Download the application for your favorite platform from the relevant release page: GUI / CLI.

Note for Linux users, make sure your udev rules match the latest version from the wiki.

Note for Mac OS users, the CLI requires libusb to be installed: brew install libusb

Contributing

The following instructions apply only to those who wish to actively develop Wally and contribute new features or bugfixes to this open-source project. If you simply want to flash your board with some fresh firmware, see above.

Wally is built using Wails at its core and Preact for the UI. This guide assumes you have a sane Wails environment setup.

Installing dev dependencies

Wally is compatible with Windows, Linux, and macOS. Developing using each platform requires some extra setup:

Windows

  1. Install Wails
  2. Setup pkg-config - see http://www.mingw.org/wiki/FAQ "How do I get pkg-config installed?"
  3. Grab and install the latest version of libusb from here
  4. At the root of the project run wails build, the resulting binary will be available in the build folder.

Linux

The easiest way to compile locally is to use Docker:

Run ./build.linux.sh, the resulting binary will be available in the dist/linux64 directory.

An alternative method:

  1. Follow the instructions from our wiki page.
  2. Install Wails
  3. At the root of the project run wails build, the resulting binary will be available in the build folder.

macOS

  1. Install libusb using brew:
brew install libusb
  1. Install Wails
  2. At the root of the project run wails build, the resulting binary will be available in the build folder.

Note: the GUI app won't include libusb so it needs to be installed on the computer running it. To embed libusb into the binary, install dylibbundler and run:

dylibbundler -of -b -x ./dist/osx/Wally.app/Contents/MacOS/Wally -d ./dist/osx/Wally.app/Contents/libs/

Sending feedback

As you may have noticed, we do not have GitHub Issues enabled for this project. Instead, please submit all feedback via email to contact@zsa.io — you will find us very responsive. Thank you for your help with Wally!