From c300c2f0a882d45b616ba2f991fadb4fff44fe2c Mon Sep 17 00:00:00 2001 From: ploopyco Date: Wed, 11 Dec 2024 10:47:12 -0500 Subject: [PATCH] updated firmwares; updated documentation --- README.md | 4 +++- docs/appendices/debugapp.md | 7 ++++++- docs/appendices/programming.md | 28 +++++++++++----------------- ploopyco_pavonis_debug.uf2 | Bin 0 -> 80384 bytes 4 files changed, 20 insertions(+), 19 deletions(-) create mode 100644 ploopyco_pavonis_debug.uf2 diff --git a/README.md b/README.md index 5c7f431..79a021d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,9 @@ Kits bought from the [Ploopy store](https://ploopy.co/product-category/trackpad/ The firmware for the Trackpad hasn't been merged into QMK at the time of this commit, so for now, [firmware can be found here](https://github.com/ploopyco/qmk_firmware/tree/multitouch_experiment). -The firmware hex file that ships with all Adepts is included in this repository as well, as `ploopyco_pavonis_default.uf2`. +The firmware hex file that ships with all Trackpads is included in this repository as well, as `ploopyco_pavonis_default.uf2`. + +A version of the firmware that is used for debugging and development is included here, as `ploopyco_pavonis_debug.uf2`. Don't use this firmware unless you need to use the [Maxtouch Debug App](https://ploopyco.github.io/trackpad/appendices/debugapp/). ## Under what license is this released? diff --git a/docs/appendices/debugapp.md b/docs/appendices/debugapp.md index 0282aae..6a1d924 100644 --- a/docs/appendices/debugapp.md +++ b/docs/appendices/debugapp.md @@ -13,11 +13,16 @@ To alter them quickly and see the effects that the alterations have, [George Nor ## Debug firmware -In order to use the debug app, you'll need to rebuild the Pavonis firmware, using the `debug` keymap instead of the `default` keymap. +In order to use the debug app, you'll need to flash the `debug` firmware onto the Trackpad, available [here](https://github.com/ploopyco/trackpad/blob/main/ploopyco_pavonis_debug.uf2). If necessary, follow the guide in [Appendix D](programming.md) to put new firmware onto the Trackpad. +## Putting the Ploopy Trackpad into bootloader mode while using the `debug` keymap firmware + +Putting the Ploopy Trackpad into bootloader mode while using the `debug` firmware is very easy. Just put all five fingers down on the trackpad surface at once! The computer should state that your Trackpad was disconnected, and that a mass storage device was just plugged in. Once this is done, you should be able to drag and drop files onto the Ploopy device, as if the board was a USB drive. + + ## How to use it, though? This, unfortunately, is the tricky part. Microchip places the documentation for the MXT1066 under NDA, which means that we are unable to share our copy with you. However, if you have a Microchip account, you can download the documentation for yourself quickly and easily. diff --git a/docs/appendices/programming.md b/docs/appendices/programming.md index 5c61ca6..f895dd4 100644 --- a/docs/appendices/programming.md +++ b/docs/appendices/programming.md @@ -35,25 +35,13 @@ Alternatively, you can invoke the Makefile directly with the following: For more details on building QMK firmware in general, see the [QMK firmware guide](https://docs.qmk.fm/#/newbs_building_firmware). -## Putting the Ploopy Trackpad into bootloader mode +## Putting the Ploopy device into bootloader mode -Putting the Ploopy Trackpad into bootloader mode is very easy. Just put all five fingers down on the trackpad surface at once! The computer should state that your Trackpad was disconnected, and that a mass storage device was just plugged in. Once this is done, you should be able to drag and drop files onto the Ploopy device, as if the board was a USB drive. +Putting the Ploopy device into bootloader mode is very simple and straightforward. -While plugged in this way, the Ploopy device will accept new firmware. - -If you want to upload a new firmware file (a ".uf2" file, like "ploopy_trackpad_v42069" or something), just drag it into the folder, and it'll automatically install on the Ploopy device and restart itself. - -Whenever you want to put new firmware onto the Ploopy device, go through these steps again. - -**TIP**: If your firmware is in some kind of strange state and uploading new firmware isn't fixing it, try uploading [a flash nuke](https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython#flash-resetting-uf2-3083182) to the Trackpad before flashing the new firmware. It wipes the memory of the Trackpad completely clean, which can help clear a few types of errors. - -## Putting the Ploopy device into bootloader mode if it's bricked - -Putting the Ploopy device into bootloader mode if it's bricked is a bit more involved, but still doable. - -1. Unplug it from your computer. -2. Flip it over. Unscrew the bootloader cap. -3. You should see two gold-covered holes exposed on the PCB. +1. Unplug the device from your computer. +2. Flip it over onto it's back. Unscrew the bootloader cap. +3. You should see two gold-covered holes exposed on the PCB once the cap is removed. 4. Get a paper clip (non-insulated, i.e. no plastic shit covering it) or a pair of tweezers, or some wire. Whatever you've got on hand that's metal. 5. Stick the paper clip or tweezers into the holes. You're trying to form an electrical connection between the two holes. 6. While you've got the two vias connected with your metal bridge, plug the Ploopy device into your computer. @@ -61,6 +49,12 @@ Putting the Ploopy device into bootloader mode if it's bricked is a bit more inv And that's it. While plugged in this way, the Ploopy device will accept new firmware. +If you want to upload a new firmware file (a ".uf2" file, like "ploopy_trackpad_v42069" or something), just drag it into the folder, and it'll automatically install on the Ploopy device and restart itself. + +Whenever you want to put new firmware onto the Ploopy device, go through these steps again. + +**TIP**: If your firmware is in some kind of strange state and uploading new firmware isn't fixing it, try uploading [a flash nuke](https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython#flash-resetting-uf2-3083182) to the Trackpad before flashing the new firmware. It wipes the memory of the Trackpad completely clean, which can help clear a few types of errors. + ## And that's it! Happy customizing! diff --git a/ploopyco_pavonis_debug.uf2 b/ploopyco_pavonis_debug.uf2 new file mode 100644 index 0000000000000000000000000000000000000000..78e8d5c8fdf30364b58ec0f8e7efbfcb2c8240ac GIT binary patch literal 80384 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 W5yxY4f_(pr5C2bs|B@PD`2Qb^B9IaQ literal 0 HcmV?d00001