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)