Software Dev Update: Animus Innova 2.3 completed, brings along tap dance, dual roles, sticky modifiers, Arbites configurator to be updated in 1-2 days.

In Uncategorized by blahlicus

Hey, haven’t done a software dev blog in a while so I thought this is a good time, as part of the preparations for shipping of the September batch (which starts tomorrow), I bring you Animus Innova 2.3.

Version 2.3 brings along several quality of life improvements as well as some features additions, let’s go through the feature additions first:

Tap Dance

As per this reddit post, I’ve replicated the tap dance functionality from QMK within Animus, for those that are not familiar with the concept, tap dance allows one to assign multiple keys to a physical button, for example, press once to output “a,” press twice to output “b,” etc. Tap dance in Animus is saved in EEPROM as well and fully configurable.

Diving more into the more technical side of things, the default firmware configuration allows up to 20 tap dance keys and each key could hold up to 3 taps, I would have preferred it to be able to hold more taps but the 1024 bytes (of which 601 bytes are reserved for the keyboard layout) of EEPROM onboard the controllers is quite restrictive on how much data I could allocate for this, of course, one could custom bake their copy of Animus to allocate more space for tap dance just like any other modules within Animus. You could find the source file for tap dance here.

Dual Roles

Modular dual role keys (such as commaShift, spaceCtrl, etc) have always existed in Animus since 2.0 but it used an approach similar to the macro module where additional EEPROM was used for data binding where some of the bytes “wasted” in EEPROM acted as pointers, anyway, the new Dual Roles module has been completely rewritten and now does not take up any EEPROM, instead, it now utilises 20 out of the 256 keytype slots available instead, keytypes are an ample resource so I think this approach is better.

The dual roles keys are now normal “key” data structs taking up only 2 bytes instead of the previous 4, they are much easier to configure, functionally they are identical as before.

You could find the new source code over here.

Sticky Key

Sticky keys are nothing new, gamers all over the world hate it when they rapidly tap shift multiple times and that thing pops up and takes you out of the fullscreen application. Anyway, sticky keys were also actually in Animus Innova 2.0, but it also utilised EEPROM, a similar rewrite to the Dual Roles module was made, now sticky key only takes 1 keytype and no EEPROM to do its job.

Sticky keys allows you to tap your shift key, then tap your ctrl key, then press delete to perform the ctrl+shift+del combo, etc, basically it acts as a sort of toggle until a key is pressed for modifiers, in Animus, stickFn keys are also here to allow combinations of modifiers and layer switching.

You could find the source code to the sticky key module here.

Quality of Life Improvements

Bug from this thread fixed, now there’s consistent behaviour over modifiers and layer switching.

Layer stuck if the EEPROM layout is misconfigured bug fixed.

Batch Update: August batch shipping starts, messy home, good progress

In Uncategorized by blahlicus

Hey, just a quick update, August shipping is finally starting, things are getting packed and shipped at quite a rapid rate, the first ~20 box of orders are getting shipped out and a steady flow of things are expected to be shipping off during this entire week until next Monday where everything will be shipped.

Here are some pictures of said messy home and leaning tower of Terminus Mini 2:



Building Diverge 3s.


Packing Felices:


Felix in box:


Tower of stuff


More stuff

As usual, tracking codes will be sent out over the duration of the week. I’ll go catch some hay now. I hired a guy to help out with building the boards but managing people is a lot more difficult than I thought, eh, its all good experiences.

August Batch Update: Delays due to Chinese National Day Golden Week and Chong Yeung Festival.

In Uncategorized by blahlicus

Just a quick update on the August batch, unfortunately, the Acrylic Manufacturer was unable to finish all of the acrylic cuts for August batch before the Golden Week arrived (Followed by Chong Yeung). They will resume work on 11 October once the holiday ends, this means the August batch shipping schedule will be delayed to mid to late October. I am very sorry about this, I’ll keep you up to date on the situation.

Software Update: Arbites and Animus Innova 2 Launched, Firmware Upgrade Required

In Uncategorized by blahlicus

Important Notice: You have to update your device’s firmware if you purchased your device before 6th October 2016 for Arbites Innova 2 to work properly, using Arbites Innova 2 on a device with the older firmware will not work.

Diverge, Diverge TM, Terminus Series Firmware Update Guide

Terminus Mini, Felix Firmware Update Guide


Yay! Finally, after such long waits, Arbites and Animus Innova 2 are finally out. This update does not seem much but a lot of the underlying code on both Animus and Arbites were refactored, you could get the new copy of Arbites over here (Guide also included). Right now only the Windows versions are up but I’ll also post the Linux and Mac versions (gtk2/3 and cocoa respectively) over the weekend once I’ve made sure they are bug free.


The new version of Arbites finally adds multi-language support, I haven’t have time to set up the other languages but the capability is there (see arbites/input-method), as far as I know, this makes Arbites the first key remapper tool with a configurable input method, other tools always assume that the user utilises the US input method.

Macro editing is finally in the thing, I gotta say the macro editing capability is working like a charm.


I’ll have some more detailed info below.

Usage Guides for the new Arbites: (Seriously, you will need to read it)

Getting Started with Arbites

Rebinding Keys with Arbites

Editing Macros with Arbites

Technical Talk on Animus

The older version of Animus stores its layout by ASCII code (97 dec is “a”), the new version of Animus stores its layout by HID scancode (4 dec is “a”), this means that the older version of Arbites will not work with the newer version of Animus and vice versa, I would really love to avoid reverse/compatibility issues but this is really something that I wish I’ve done sooner.

The older version uses ASCII codes because Animus’ base code heavily utilises the Arduino libraries, and part of it was using Arduino’s implementation of the HID keyboard, which means the older version of Animus grandfathered the ASCII code storage. This is fine if we could just settle for supporting only US ASCII on the editor, but I’d really like to get multi-language support working, so the HID module was rewritten and standard HID scancodes are used instead.

The implementation of macros in Animus is of course, hardware based, but editable via software, (see the Editing Macros Guide for more details) this means you could configure your macros on a machine with Arbites, then you could bring your keyboard anywhere and the macros would still work on any machine.

About the expand-ability and future of Animus and Arbites

If you have been looking at some of my code, you will realise that Arbites has always been playing the catch up game with Animus, Animus has a lot of capabilities which can be tapped into, but Arbites was never able to fully utilise Animus, for example, the macros and dual roles modules for Animus has been done for over 3 months already (you could check the github commits), but there was no easy way to configure the macros other than manually sending a serial command containing hex code. Now Arbites is finally catching up, so I’m pretty excited about it.

Arbites at its current state is still not complete, like previously mentioned, the capability for additional language support is already there, but I haven’t got any time to create the alternate input methods (such as swedish/nordic/german/british/etc) since each set of language has over 1400 entries that I have to manually edit (which is extremely tedious), the key menu is also not completely filled, in the key menu, you will notice that the tabs “ctrl’d”/”alt’d”/”shifted” exists, but tabs for a combination of those keys still do not, the capability is already there in Animus (so no further firmware upgrade in the future is necessary), but I haven’t set it up in Arbites.

I was going to also sort out the aforementioned features first before releasing but I figured you guys have waited long enough, so I’ll push out the upgrade progressively.

I’ll also make a batch update post in a few minutes, there’s so much to say but for some reason I am finding it quite difficult expressing myself. (heh, I’m probably just tired because its 5:19 AM and I slept for only 2 hours ~20 hours ago)

Software Update: New Arbites almost ready, adds macro, dual roles, mouse, LEDs, multiple input method support, rest of August batch getting shipped

In Uncategorized by blahlicus

Hey, Here’s a quick update on the new Arbites development progress.

The entire Arbites software has been rewritten with added functionalities for macros, dual roles, mousing, and LED control, multiple OS level input method support (such as German/Nordic/Swedish keyboard input methods) have also been added.

This has been a long awaited update and I believe this is also the first program with GUI to have built-in handling of multiple input method support. The update on OS level input method support also means an overhaul in Animus’ HID keyboard module (which was completed 3-4 months ago), a lot of newer functions in the new Arbites requires the newer Animus firmware to be installed, so an Animus updater will be released alongside the official release for the new Arbites.

As always, the utilisation of Eto.Forms means the software is fully cross-platform like the current version of Arbites.

Here’s a screenshot for now, I’ll post more update once I am done sleeping



In other news, as the completion of everything software side is completed and that the invoicing system has been sorted out, shipping will progress and shipping emails shall be sent out within this week.



July Batch Update: batch shipping progressing as expected, keycap orders all getting shipped tomorrow.

In Uncategorized by blahlicus

Hey, just a quick update, shipping for everything is running as expected, there was a slight accident with the invoice printing module and I had to clear the index and reprint all the invoices but everything else was fine.

Batch shipping is as expected, almost all DIY kits are packed and are waiting for the firmware upgrade.

I also recently started selling keycaps by themselves, and they are also getting shipped tomorrow.

July Batch Update: Animus firmware update impending, July batch shipping to be completed by next Monday.

In Uncategorized by blahlicus

Hey, just a batch update on the July batch, everything is in progress except for some problems relating to orders with the “Cheap Flat ABS Keycaps” option, other than that, the hardware is ready for shipment. But I’ve elected to delay this month’s shipment by a few days in order to load the latest version of Animus onto the controllers of the existing orders.

This is a relatively major Animus update as the HID portion of the firmware has been completely rewritten, it’s mostly to do with how HID scancodes are handled and translated to OS outputted ASCII type characters, I’ll have another long arse post to talk about the impending Animus update soon™, sorry about not explaining it in-depth but I really need to hit the hay now after pulling some nights.

In the mean time here are some photos (*coughs something about unreleased product)







Cheers and signing off for bed.