diff --git a/.gitignore b/.gitignore index ea611cce1f..3a0285ad81 100644 --- a/.gitignore +++ b/.gitignore @@ -304,4 +304,7 @@ fastlane/test_output # After new code Injection tools there's a generated folder /iOSInjectionProject # https://github.com/johnno1962/injectionforxcode -iOSInjectionProject/ \ No newline at end of file +iOSInjectionProject/ + +qmk_toolbox.exe +qmk_toolbox_install.exe \ No newline at end of file diff --git a/windows/QMK Toolbox/Flashing.cs b/windows/QMK Toolbox/Flashing.cs index 42920df412..c62c577cfc 100644 --- a/windows/QMK Toolbox/Flashing.cs +++ b/windows/QMK Toolbox/Flashing.cs @@ -16,6 +16,7 @@ public enum Chipset { Halfkay, Caterina, STM32, + Kiibohd, NumberOfChipsets }; public class Flashing { @@ -36,7 +37,7 @@ public class Flashing { "teensy_loader_cli.exe", "dfu-util.exe", "libusb-1.0.dll", - "libusb0.dll", // amd64/libusb0.dll + "libusb0.dll", // x86/libusb0_x86.dll "mcu-list.txt", "atmega32u4_eeprom_reset.hex" }; @@ -91,6 +92,8 @@ public void flash(string mcu, string file) { flashHalfkay(mcu, file); if (f.canFlash(Chipset.STM32)) flashSTM32(mcu, file); + if (f.canFlash(Chipset.Kiibohd)) + flashKiibohd(file); } public void reset(string mcu) { @@ -150,6 +153,10 @@ private void resetHalfkay(string mcu) { private void flashSTM32(string mcu, string file) { runProcess("dfu-util.exe", "-a 0 -d 0483:df11 -s 0x08000000 -D \"" + file + "\""); } + + private void flashKiibohd(string file) { + runProcess("dfu-util.exe", "-D \"" + file + "\""); + } } } diff --git a/windows/QMK Toolbox/Form1.cs b/windows/QMK Toolbox/Form1.cs index 74b3d05d9a..dc6158f671 100644 --- a/windows/QMK Toolbox/Form1.cs +++ b/windows/QMK Toolbox/Form1.cs @@ -172,6 +172,7 @@ private void Form1_Load(object sender, EventArgs e) { printer.printResponse(" - Caterina (Arduino, Pro Micro) via avrdude (http://nongnu.org/avrdude/)\n", MessageType.Info); printer.printResponse(" - Halfkay (Teensy, Ergodox EZ) via teensy_loader_cli (https://pjrc.com/teensy/loader_cli.html)\n", MessageType.Info); printer.printResponse(" - STM32 (ARM) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info); + printer.printResponse(" - Kiibohd (ARM) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info); List devices = new List(); @@ -358,6 +359,8 @@ private bool DetectBootloader(ManagementBaseObject instance, bool connected = tr var halfkay_nohid = Regex.Match(instance.GetPropertyValue("Name").ToString(), @".*USB.*"); var dfuUtil_pid = Regex.Match(instance.GetPropertyValue("DeviceID").ToString(), @".*VID_0483.*"); var dfuUtil_vid = Regex.Match(instance.GetPropertyValue("DeviceID").ToString(), @".*PID_DF11.*"); + var kiibohd_pid = Regex.Match(instance.GetPropertyValue("DeviceID").ToString(), @".*VID_1C11.*"); + var kiibohd_vid = Regex.Match(instance.GetPropertyValue("DeviceID").ToString(), @".*PID_B007.*"); Regex deviceid_regex = new Regex("VID_([0-9A-F]+).*PID_([0-9A-F]+)"); var vp = deviceid_regex.Match(instance.GetPropertyValue("DeviceID").ToString()); @@ -380,6 +383,9 @@ private bool DetectBootloader(ManagementBaseObject instance, bool connected = tr } else if (dfuUtil_pid.Success && dfuUtil_vid.Success) { device_name = "STM32"; devicesAvailable[(int)Chipset.STM32] += connected ? 1 : -1; + } else if (kiibohd_pid.Success && kiibohd_vid.Success) { + device_name = "Kiibohd"; + devicesAvailable[(int)Chipset.Kiibohd] += connected ? 1 : -1; } else { return false; } diff --git a/windows/QMK Toolbox/Properties/AssemblyInfo.cs b/windows/QMK Toolbox/Properties/AssemblyInfo.cs index fd1c36158d..8eb7746450 100644 --- a/windows/QMK Toolbox/Properties/AssemblyInfo.cs +++ b/windows/QMK Toolbox/Properties/AssemblyInfo.cs @@ -6,9 +6,9 @@ // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("QMK Toolbox")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyDescription("A flashing/debug utility for devices running QMK Firmware")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("QMK")] [assembly: AssemblyProduct("QMK Toolbox")] [assembly: AssemblyCopyright("Copyright © 2017 Jack Humbert")] [assembly: AssemblyTrademark("")] @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.0.7")] -[assembly: AssemblyFileVersion("0.0.7")] +[assembly: AssemblyVersion("0.0.8")] +[assembly: AssemblyFileVersion("0.0.8")] diff --git a/windows/QMK Toolbox/QMK Toolbox.csproj b/windows/QMK Toolbox/QMK Toolbox.csproj index 99d9d26525..503a634625 100644 --- a/windows/QMK Toolbox/QMK Toolbox.csproj +++ b/windows/QMK Toolbox/QMK Toolbox.csproj @@ -39,7 +39,7 @@ bin\Debug\ DEBUG;TRACE prompt - 4 + 0 AnyCPU diff --git a/windows/QMK Toolbox/libusb0.dll b/windows/QMK Toolbox/libusb0.dll index 6ec64316bd..28122e14fc 100644 Binary files a/windows/QMK Toolbox/libusb0.dll and b/windows/QMK Toolbox/libusb0.dll differ diff --git a/windows/install_compiler.iss b/windows/install_compiler.iss index 35838dfaf0..874b64f395 100644 --- a/windows/install_compiler.iss +++ b/windows/install_compiler.iss @@ -3,7 +3,7 @@ #define MyAppName "QMK Toolbox" #define MyAppHandle "qmk" -#define MyAppVersion "0.0.5" +#define MyAppVersion "0.0.8" #define MyAppPublisher "QMK" #define MyAppURL "http://qmk.fm" #define MyAppExeName "qmk_toolbox.exe" diff --git a/windows/release.bat b/windows/release.bat new file mode 100644 index 0000000000..938f290cc4 --- /dev/null +++ b/windows/release.bat @@ -0,0 +1,2 @@ +COPY "QMK Toolbox\bin\Release\qmk_toolbox.exe" "qmk_toolbox.exe" +COPY "install.exe" "qmk_toolbox_install.exe" \ No newline at end of file