Skip to content

v0.4

Latest
Compare
Choose a tag to compare
@purdeaandrei purdeaandrei released this 18 Jun 22:19

This repository supports:

  • Original Unicomp controllers that contain a Raspberry Pi Pico as a daughterboard, that Unicomp started shipping since ~April 2023, called Justify with Mike Smith
    • Warning: Since around ~January 2024, Unicomp ran out of stock on the Justify controllers, and since then, they're shipping only the older AP1 controller. This firmware doesn't (and can never) support the AP1 controller. They are planning to bring back a redesigned version of Justify (that will probably be supported), so your current options are to: 1) Wait 2) Buy a used Mini M that has a supported controller 3) Buy a Mini M, and build an open hardware MiniRazz controller for it.
  • The open hardware replacement controller, called MiniRazz

New in this release:

  • Support for the Unicomp OEM Raspberry Pico-based Justify with Mike Smith controller board. (please select the correct file to download)
  • Each firmware has a debug variant. If you flash the debug variant, then you can use PJRC's hid_listen to check the matrix status.
  • Fixed: Issue #1, see pull request
  • Fixed: Suspend & remote wakeup are now reliable (thanks to @KarlK90 's pull request )
  • Added better deghosting that works well with eager debouncing too
  • Increased the eager debounce time. By its own design eager debouncing is more sensitive than defer type debounces. Global defer restarts its counters any time it sees more changes. And per-key defer debounce only takes into account the final signal value once the timer expires, and so as long as bouncing happens for < twice the set up debounce time, chatter won't be observed. However eager debouncing doesn't have these advantages. The Model Ms appear naturally chattery especially on key-up, so for eager debouncing they need larger debounce time. If you've seen key doubling on previous releases then this change should fix it.
  • Fixed bootloader entry when holding the ESC button while plugging the keyboard in (instead of tilda in the previous release).

Steps to flash:

  1. Disconnect the keyboard from USB

  2. Open the keyboard with a Phillips screwdriver

  3. Gently lift up the assembly enough so you can put a couple fingers underneath it in the back, be careful not to rip the ribbon cables.

  4. Hold the BOOTSEL button (the only button there is on the pico itself), while plugging in the keyboard. When this happens a virtual USB drive appears, and during this time the keyboard doesn't work as a keyboard

  5. Optionally use picotool to save the existing firmware on the command line like this: picotool save -a filename.uf2 -t uf2.

  6. Flash the firmware:

    • For Justify: copy the file called unicomp_mini_m_justify_mike_smith_vial.uf2 downloaded from this release page below, onto the virtual USB drive.
    • For MiniRazz: copy the file called unicomp_mini_m_minirazz_vial.uf2 downloaded from this release page below, onto the virtual USB drive.

And that's it, enjoy.
For future updates as long as you stay on my firmware you don't have to open up the keyboard again, you can just hold ESC while plugging it in. You only have to open it again if you go back to the original firmware, or if you somehow flash wrong firmware.

Notes:

  • To configure the keyboard you can use:
  • The numpad layer automatically activates any time the numlock light turns on. This matches the default behavior. This can be annoying if your OS is configured to turn on the numpad layer when a keyboard is plugged in, or on boot, or if you turn on the numpad layer using a different keyboard.
    • Layer one is this special layer. you can disable this behavior, by making all keys on this layer transparent (the upside down triangle).
    • If you want to use layers for other purposes you should skip layer 1.
  • The firmware is by default 6-key rollover, however you can place the "NKRO Toggle" or "NKRO On/Off" keys (form the Quantum tab) on your keymap. Please be aware that some BIOSes might not support a keyboard that is in NKRO mode, and this is why we default to NKRO off.
    • Note that NKRO in this context only refers to the communication between the controller and computer. Having NKRO enabled only removes the 6-key roll over limitation of the USB boot protocol. The keyboard is still technically a 2KRO keyboard in its worst case, however it has a much sparser matrix than some regular Model Ms, so more longer-than-2key combinations will be permitted. See sharktastica's keyboard simulator, for which key combinations block. This firmware has smarter de-ghosting, so only red keys will block.