Keyboard-Relief Installation & Usage
Introduction
Keyboard-Relief is the CodeChords.com innovative keyboard for the Android platform. Only 9 buttons. Huge ones. You can now hold your phone with one hand, using one thumb and never press the wrong button.
Supported languages
- English
- עברית (Hebrew)
- Русский (Russian)
Installation
First you need to purchase and download it from Google Play. The keyboard is now installed, but there are a few steps you need to take in order to activate it. These steps are common to all keyboard services on android. They are listed below.
Activating the keyboard
From the main Android screen press the Menu button, and select Settings -> Locale and text (or Language and keyboard). You will end up with a screen listing all your current keyboards. Keyboard-Relief will appear there unchecked. Check it.
After you check it, a warning message will pop up:
This message is displayed for every keyboard you activate on your phone. Press Ok. Keyboard-Relief doesn't do any of the things this message warns about.
Selecting the keyboard
The previous step only activated Keyboard-Relief, but it didn't select it as the active one to be used.
Android version before 4
To select this keyboard open some app that requires a keyboard, like writing a SMS. Tap the field where you want to enter the text. The current keyboard will appear. Then make a long press on that field. After a second or two a menu will appear.
The menu might contain a few items. One of them is Input method. Select it. A list of all activated keyboards will appear. Select Keyboard-Relief. This will return you to your text field. Tap the text field to bring up Keyboard-Relief if it doesn't show immediately.
Android version 4
To select the keyboard use the Android's menu - Settings -> Language & Input -> Default.
Use the same method to select any other keyboard, like the original one (but why would you want to do it.. :-)
Using Keyboard-Relief
You start with this screen:
As you can see, each button contains 9 characters. I will refer to this screen from here on as the first buttons set. The last row contains control buttons, I will get to these soon. If you press the top-left button for example, the keyboard will change to this:
Now press for example, a. The keyboard will collapse to the first state, and the letter a will be sent to the text field. The following picture shows what the screen will look like after pressing a.
This is how the keyboard works. Two clicks are needed to produce a key press. This may take a little while to get used to, but not too long (QWERTY did take a while to master too, didn't it? :-), and after a while, I believe you will really love it!
Controls
Let's move on to the other features of this Reyboard-Relief, like approving, canceling, deleting, etc. We will do it by scanning the keyboard controls as they are laid out.
The Ok/Cancel button, 
This is what you get after pressing the Ok/Cancel button. Let's look at the buttons on the last row. The left one is the Ok button. Yes, approving on this keyboard requires pressing the Ok/Cancel button, and then on the Ok button of the exploded buttons set. But since both button are positioned in the exact same place, the approving operation is actually achieved by pressing the bottom left button twice. You can now realize that I really invested thought in laying out these buttons, and in how to get along with only 9 buttons. Remember, being only 9 buttons is what allows for making the button so big, so you can conveniently use them with your thumb without ever pressing the wrong one.
Next on the last row we have the cancel button. Pressing this one simply hides the keyboard. The Ok/Cancel pair is something I missed on my phone's virtual keyboard. The Ok button is an alternative for the approve button on the native's virtual keyboard (which has different labels on different situations, like Done, Next, Enter sign, etc..). The Cancel button is an alternative for the Android Cancel button. The Ok/Cancel scheme places both buttons on the keyboard and also makes them always look the same. I like this.
Next on the last row we have the Close button, which simply returns to the original state of the keyboard. Above the Close button we have the Help button, which pops up some helpful information, containing a short help and a disclaimer of warranties. Please read these.
Let's move on to the next buttons of the first buttons set.
The Space button, 
Inserts a space, just as you would expect.
The Options button, 
This button explodes to the Options buttons set. This set is filled up with controls. Let's scan them from top to bottom.
First row
On the left we have the Settings button. This one opens up a window where you can set various properties of the keyboard, like languages, changing the buttons' font and background, click sound and the keyboard's size. You exit the settings using the Android Cancel button, and then you need to tap the text field in order to bring up the keyboard again.
The next two buttons are the arrows, which allows for accurate positioning of the cursor within the text field. I missed this feature on my phone's virtual keyboard. I find it a good addition to the native touch-to-place-the-cursor scheme. For me it's easier to use the arrow buttons, and also allows me to stay within the keyboard while navigating the cursor.
You can hold down an arrow button, to make the cursor move rapidly.
Second row
The left button with the image of the parrot is for changing the language. Currently English, Hebrew and Russian are supported. Press it, and the keyboard will show a special buttons set from which you can select a language. You can reduce the number of the languages by unchecking languages in the Languages menu available from the Settings buttons. If you leave only two languages selected, then the parrot button will simply toggle them instead of showing the languages buttons set.
The next two buttons are for Caps. The first one is for momentary Caps. Press it, and the first buttons set will appear, with all letters in upper case, like the picture on the right demonstrates. After producing one upper case letter the keyboard will return to lower case. That's momentary Caps.
The last button on this row, on the other hand, is for Caps lock. Press it, and the keyboard will remain in upper case until you go to the Options buttons set and press it again.
Third row
The Options buttons set is refreshed on the left. The left button on the third row closes this buttons set and returns to the first one. This keyboard is designed to return automatically to the first buttons set on each button press, for example, after pressing a letter button or after pressing one of the Caps buttons. However, there are a buttons, which I found more proper to behave differently. For example, the arrow buttons. It would be difficult to use them if every press on the arrow button would return the keyboard to its first buttons set. This is where the Close button comes in - to explicitly close the Options buttons set and return the first button set.
The next two buttons also don't close the Options buttons set. The first one is for deleting a whole word. This is something I missed on my phone's virtual keyboard. The last button is for deleting a letter. Both delete buttons can be held down to make a rapid deletion. Please notice the location I have chosen for the Delete (a letter) button. It's on the same location where the Option button is on the first buttons set. This allows for conveniently reaching to the deletion operation. Press The Option button, then press again on the same location - the Option button is now a Delete button. Again, this shows the thought I payed for this keyboard's design in order to make it as convenient as possible.
More symbols
Let's refresh the first buttons set:
As you can see, the middle row contains numbers and some useful symbols. The rightmost button on the middle row seems to be missing a symbol. If you press that button you will get the buttons set that is shown in the following picture:
Notice the rightmost button on the second row - three dots. Press it and you will end up with the following buttons set:
As you can see, this buttons set contains many symbols not usually found on the native virtual keyboard. Remember, you have reached this buttons set using two clicks on the rightmost buttons of the second row (first click applied to the first buttons set).
Two buttons are of special interest in this buttons set. The first one is the right-bottom button, the Close button, allowing to close this buttons set and return to the first buttons set.
The next interesting button is the rightmost button on the second row. This is the New line button. Press it, and a new line character will be issued. Please note that issuing a new line character with this keyboard boils down to clicking 3 times on the rightmost button of the second row, starting from the first buttons set.
Conclusion
I have written the Keyboard-Relief virtual keyboard to fulfill my desire to be able to hold my phone in one hand and use the thumb to write SMS messages. I didn't like aiming my fingers at the QWERTY keyboard, missing keys from time to time. I just as well didn't like turning my phone to landscape mode each time I wanted to write a message. I really wanted big buttons that will give me the feeling of being sure at 100% that my key presses will come out as I want. To tell the truth, I haven't used any keyboard beside the native ones. Didn't care about words prediction. I just wanted big buttons so much. To me it's the basic requirement for a keyboard - just be big enough!
I remember my old mobile phone with real buttons, with alpha-numeric keys. I liked very much the ease of pressing them, but not so much the alpha-numeric system. Some keys would be produced by 3 clicks or more. Handling letters belonging to the same button was an unpleasant issue just as well. I think of Keyboard-Relief as re-inventing the alpha-numeric system, only this time much better. Only two clicks for every key, and the buttons are much bigger.
So I wrote it. 9 huge buttons. I traded an additional key press for the buttons size. I also designed the keyboard such that everything would be reachable in as few clicks as possible. In the beginning, before I got familiar with the keyboard I wrote, I had doubts about its usage. It took me a little while to produce messages. But getting used to it took much less time than I thought. It was a matter of 10 or 20 messages that I felt that it was a very good idea indeed.
I'm sure that there are many people like me, who are willing to trade clicks for buttons size. If you are one of them, I believe you are going to enjoy it. The feeling of using it is indeed a relief. Being sure that each button press will yield the key you want in 100% and knowing that the buttons are bigger than your thumb indeed induce a feeling of relief and satisfaction.
Products // ChordBits
![]() |
ChordBits 1.1 |
For Windows XP, Windows 7 |
What is ChordBits?
Well, if you happen to be an embedded software programmer or an electronics engineer, or anyone that needs to crunch bits from time to time, please take a look at the following 3 figures.
If the first one reminds you the feeling of "oh, not again..", but the next two give a sense of hope (and maybe joy!), then I believe that you might like ChordBits!
| Section | Bits | Description |
| EN0 | 0 | Enables IO channel 0 |
| COUNT0 | 1, 2 | Sets number of bytes to write into channel 0 |
| TIMEDIV0 | 3, 4 | Sets baud rate for IO channel 0 (selects one of 4 options) |
| MASK0 | 5, 6, 7 | Selects which interrupts to enable for channel 0 |
| I0 | 8 | Max. number of bytes in a burst for channel 0 |
| IZ0 | 9 | Zero byte ends a burst for channel 0 |
| B0 | 10 | Restarts transmission on error for channel 0 |
| BW0 | 11 | Introduces a delay before transmission on error for channel 0 |
| M0 | 12 | Cyclic transmission for channel 0 |
| MW0 | 13 | Introduces a delay between transmission cycles for channel 0 |
| reserved | 14, 15 | Reserved bits |
| EN1 | 16 | Enables IO channel 1 |
| COUNT1 | 17, 18 | Sets number of bytes to write into channel 1 |
| TIMEDIV1 | 19, 20 | Sets baud rate for IO channel 1 (selects one of 4 options) |
| MASK1 | 21, 22, 23 | Selects which interrupts to enable for channel 1 |
| I1 | 24 | Max. number of bytes in a burst for channel 1 |
| IZ1 | 25 | Zero byte ends a burst for channel 1 |
| B1 | 26 | Restarts transmission on error for channel 1 |
| BW1 | 27 | Introduces a delay before transmission error for channel 1 |
| M1 | 28 | Cyclic transmission for channel 1 |
| MW1 | 29 | Introduces a delay between transmission cycles for channel 1 |
| reserved | 30, 31 | Reserved bits |
Read more
Recent updates
![]() |
![]() |
![]() |
|






