[Tutorial] Building and using the AIKON Controller

User avatar
sixty
Gasbag Guru

30 Jan 2011, 13:57

WORK IN PROGRESS

The AIKON keyboard controller

The AIKON (AQUA + Inornate Kontroller) controller is a custom keyboard controller developed by OTD.kr members AQUA and inornate. Previously known as "AQUA'S LIMKB" (Less is more Keyboard Controller), it is the only fully customizable keyboard controller available to be used "ready out of the box" without any programming knowledge.

What is the AIKON and what are the features?

The AIKON is a fully programmable custom keyboard controller. The main intention behind it was to be able to convert old vintage keyboards to work with modern hardware over USB. Of course, it can also be used to build keyboards from scratch. The possibilities are nearly endless.

Features include:
  • Fully programmable keyboard matrix on up to 3 key layers
  • Matrix support up to 18x8. Cols and rows are interchangeable (for example 17x9 is possible, etc...)
  • Full N-Key rollover (requires diodes in the matrix circuit, 6 keys over USB)
  • FN Key support
  • FN Lock support
  • Full programming software (Windows OS)
  • Importing and exporting of keymaps
Sounds awesome! Where can I get one?

In the past, the AIKON was available as a small SMD part based PCB, distributed to members of various Korean keyboard forums. By now they have become more rare and are a bit harder to find. Luckily the AIKON design is pretty simple and you can build one yourself! The according schematics have been released by inornate on OTD and Geekhack.

Building the AIKON - Schematics

Image

Building the AIKON - Parts needed

General Parts:
Soldering knowledge & equipment
Perfboard
Wires
Pin-connectors for rows/cols (optional)
40 PIN IC socket (optional)
ISP programmer (semi optional, you can ask a friend to burn the bootloader for you, if you have any)

IC:
ATMega32 (40 pin)

Capacitors:
C1: 0.1uF ceramic capacitor
C2: 18pF ceramic capacitor
C3: 18pF ceramic capacitor
C4: 10uF tantalum capacitor / electrolytic capacitor
C5: 0.1uF ceramic capacitor

Diodes:
D1: 3.6V zener diode
D2: 3.6V zener diode

Resistors:
R1: 10KR
R2: 82R
R3: 82R
R4: 2.2K
R5: 4.7K
R6: 330R
R7: 330R
R8: 330R

Crystals:
X1: 12,000 Mhz

Uploading/Burning the bootloader

If you are using a self-made AIKON, you will have to first burn the bootloader to the controller, before you can start using it. Inornate has written an extensive guide on how to do this on OTD. The guide is in English, so please check it out. Note that depending on which ISP programmer you have, you might need to also build a tiny adapter. Most cheap ISP programmers on eBay will require you to build another small perf board.

Programming the AIKON

By now you should have an AIKON controller ready, with the bootloader properly loaded as explained in the step above.
Before you can start actually mapping the matrix / programming the controller, you will need various software. Please make sure you read the comments for each download carefully.

Required Software
Spoiler:
Under Construction
Software Tips
If you are on a 32bit OS, try using the 0.1.12 version of the LibUSB drivers first. If those fail or you find yourself unable to use your mouse after installation, try rebooting. If they still fail, try using the older 0.1.10 drivers.

Connecting the AIKON

Extract all files from the Aikon 1.0.X archive to a folder on your system. You should find the following files:
Aikon_x.x.x.hex
bootloadHID.exe
firmup.bat

Do not connect the AIKON to your computer just yet. Before you can change the keymaps on the AIKON, you still have to upload the basic firmware .hex file to the controller. Use a jumper or a wire to bridge a connection between FW and JP, or alternative ROW1 and COL1 accordingly. While bridging the connection, plug in the USB cable. If you have a status LED connected, it should now be blinking. This means the AIKON is in bootloader mode and ready to receive (or update) the firmware.

Step 1

Execute the firmup.bat file. If you are on Windows Vista or Windows 7, make sure to run it in admin mode. If all went fine you should see something like this in the console window:

Image

The values may vary from system to system. If all went fine, remove the bridge, replug the Aikon and proceed to Step 2. If you got an error saying the device was not found, try replugging the USB cable (don't forget to bridge the pins again to keep the Aikon in bootloader mode) and see if that fixes it.

Step 2

By now, it is time to mount the Aikon to the keyboard. At this point you should have already figured out the keyboard matrix. Connect all the ROW and COL circuits to the according pins on your Aikon controller. If you did not yet figure out the matrix or do not know how to do so, read my basic guide on how to reverse a keyboard matrix.

Step 3

Install the LibUSB filter drivers. If you are on Windows Vista or Windows 7, It is recommended that you should run the LibUSB installer in Windows XP compatibility mode. To do this, right click the installer and select Properties. On the "Compatibility" tab set the options as shown below:

Image

After the installation of LibUSB, all your USB devices will be restarted. This may result in some devices not working until you reboot your machine. It is recommended to unplug all your USB devices before installing LibUSB.

Depending on your anti-virus solution and security settings, you will be warned about potential dangers when installing LibUSB. These are, of course, false positives and can be ignored.

Once you are done with all three steps, you have the hardest parts behind you. Time to move on to mapping your keyboard!

Using the AIKON Client - Mapping your keyboard

Image

Extract and start the AIKON.exe client. You should be greeted with a familiar interface similar to the one of AQUA's Keytest as seen above. Before proceeding, make sure to check the very bottom of the application to see if the AIKON is being recognized. If the program tells you that no device has been found try to quit the application and replug your AIKON. If the device still fails to be recognized, try rebooting and/or reinstalling the LibUSB drivers. Use alternative drivers as explained above if the problem continues.
Last edited by sixty on 30 Jan 2011, 14:33, edited 3 times in total.

User avatar
webwit
Wild Duck

30 Jan 2011, 14:20

Great! I still need to get into this.
Topic needs pretty picture of AIKON..

Image

User avatar
sixty
Gasbag Guru

30 Jan 2011, 14:25

Software is currently missing in the main post, I'm waiting for permission from inornate to host them here. In the meantime, they can be dowloaded at OTD: Client, LibUSB Latest (64bit), Firmware 1.0.4., Bootloader.

User avatar
mbodrov

05 Mar 2011, 21:42

Was the source code for the controller's firmware ever made public?
I wonder if it includes proper debouncing for both mechanical and membrane switches.
Also, am I right to assume this controller can't poll capacitative switches?

User avatar
sixty
Gasbag Guru

07 Mar 2011, 00:28

mbodrov wrote:Was the source code for the controller's firmware ever made public?
I wonder if it includes proper debouncing for both mechanical and membrane switches.
Also, am I right to assume this controller can't poll capacitative switches?
No, its closed source. I have never tried it on a membrane board, but it has proper debouncing for every mechanical switch I threw at it so far (including the aaaaaancient ALPS switches from the old Apple keyboards).

intealls

07 Mar 2011, 13:04

Just wondering if the Aikon supports adding modifiers to FN-layer keys (if FN+A could for instance become SHIFT+0)?

User avatar
sixty
Gasbag Guru

07 Mar 2011, 17:54

intealls wrote:Just wondering if the Aikon supports adding modifiers to FN-layer keys (if FN+A could for instance become SHIFT+0)?
Hmm.. I think it does not. But I'm not sure anymore, so I'll check it tonight.

User avatar
002
Topre Enthusiast

20 Mar 2011, 02:22

Has anyone actually made one of these themselves? If so, would you mind posting a picture of it?

User avatar
sixty
Gasbag Guru

20 Mar 2011, 12:47

I built one that is only missing a few didodes. Looks very unspectacular... breadboard with a IC mounting thing on it and the full sized atmega

User avatar
Wodan
ISO Advocate

01 Apr 2016, 09:57

I know this topic is age old but I still feel like this is the go-to place for people building their own AKION controllers.

I've been building my second Aikon these days and came across something I thought was worth sharing. It drove me NUTS because I already built a working one a while ago and the second one just refused to work even though I replaced every part at least once and all the connections were perfectly fine !

Well ... choose your ZENER diode carefully ! I got a small amount of 3.6V Zener diodes for my first build and a larger batch of them for additional builds. Even though both diodes have nearly identical characteristics and even share a product code (BZX85C3V6) only one of them worked for me:

Good, working:
http://de.rs-online.com/web/p/zener-dioden/9014143/

BAD BAD BAD:
http://de.rs-online.com/web/p/zener-dioden/7598879/

And don't think they look any different, the pictures are just examples. They look nearly identical but one has the markings horizontally printed and the other has the markings vertically printed. Don't use the Fairchild Semiconductors Zener Diodes in this project !!!


PS: Thanks so much for posting this sixty, you're a hero man !!

User avatar
Redmaus
Gotta start somewhere

01 Apr 2016, 10:26

I am guessing no, but are AIKON controllers still available? I don't like the prices for Teensies.

User avatar
Wodan
ISO Advocate

01 Apr 2016, 12:29

I gotta put together a list of components and their prices if you get them cheap.
But building your own AIKON isn't too complicated and much cheaper than a Teensy. I'm guessing you can build one for around 8€ with everything included.

But be aware that the AIKON works differently than a teensy and is not TMK compatible. Just making sure you're aware ..

Post Reply

Return to “Workshop”