
There are a lot of useful computer devices around us, which, with the right application of forces, can greatly assist us in solving typical routine tasks. And, unfortunately, few know about it and are able to put such things into practice. Today I want to tell you about the curious use of the POS-keyboard for essential assistance in the work of a QA-engineer. This is just one of many applications of such a class of devices for tasks where it is necessary to perform specified sequences of identical actions.
What is a POS keyboard?
From Wikipedia :
There are two main differences between the POS keyboard and the standard keyboard. First, the programmable keyboard is used not so much to enter symbolic information, but rather to control cash transactions. Secondly, the keys of the programmable keyboard are not originally bound to code sequences (or macros). They are prescribed by a technician when installing peripheral equipment. The functionality of the selected keyboard depends on the number of potential combinations of macros.
How did I come to this
I work as a QA engineer in an outsourcing company. And so historically, almost all projects are distributed client-server applications with mobile clients. The first project was no exception. I immediately got into the active development phase. There were 7 programmers on the project (Android, iOS, Back-End, Front-End) and me. In the hottest months, I got 150 bug reports, plus tasks / bugs from the customer, tasks from the PM and, of course, work with already open / rediscovered tasks. Every day, several client updates, work with test documentation and much more. It was interesting and fun! But many actions are mostly related to the routine, and it very noticeably reduced productivity, leaving less time for much more necessary activities on the project.
What did I try to use before that?
Programs for creating macros of pressing, clipboard managers, various toolbars, etc. Something was caused by hot keys, somewhere there were pop-up toolbars. The main problem was that there were too many key combinations. The most frequent and popular ones were remembered, less popular in a week or two had time to “fly out” of the head. Plus, the combinations were not complicated, and often there was a conflict between local and global key combinations. In the end, I did not get accustomed to this option, and I began to look at the hardware solution.
Search for hardware solutions
So, I started looking for hardware solutions. The first options were insane:
')
- use the buttons of different game joysticks and reassign buttons;
- search for functional multimedia keyboards with subsequent extraction of the internals and connection to a mechanical keyboard;
- and many others;
In the process of searching, I came across a POS-keyboard. I read the description, and I realized that this is exactly what is needed. I went to the online store of commercial equipment, looked at the price tags ... 100-300ue. For Junior QA salary this was a bit much. I decided to search the free bulletin boards. And, about a miracle, the POS-keyboard on 96 buttons for 13 dollars. A couple of days of waiting, and she's in my hands.
Install the keyboard and drivers on the PC
So, the POSUA LPOS-II-096 keyboard with PS / 2 interface fell into my hands. Her image and tth:

- Programmable keys: 96
- Layout Levels: 4
- Key type: Cherry MX1A cross gold contacts (Germany)
- Resource clicks:> 50'000'000
- Operating temperature range: 0 ° C ... + 70 ° C
- Power supply: 4.5-5.6 V
Installation is not complicated, I will describe it in steps:
- go to the manufacturer's website, download the PS / 2 “Win7_64drv” keyboard driver (it is needed for programming the keys) and the “MPOS-Master” configuration program;
- according to the manufacturer’s advice, to install a non-signed driver (I’ve got Win7, x64) enable the test mode in Windows;
- Install the driver and configuration program;
The keyboard is ready to use. For the version of the keyboard with USB interface, simply install the configuration program.
Key programming
- run the previously installed MPOSMaster program;
- we create a new project, and indicate our type of equipment (at the moment I use the 64-button USB version, which was also purchased on the bulletin board);

- in the new project, we see not yet assigned keys;

- Do not forget to set the number of keyboard layers in the “Keyboard” -> “USB Interface Settings” section if you plan to use them at more than one level, otherwise the program will generate an error when programming: “This level does not exist”;

Next, we analyze in more detail the functions of the keys. To do this, double click on the unassigned key, and see its configuration parameters:

In this menu, we can select the “Macro key” mode, or select a temporary or permanent transition to the level from 0 to 3. For each level, you can assign a unique macro, i.e. as a result, we get 64 * 4 = 256 unique macros. Key macro features:


- we can specify any sequence or combination of characters for 4 layers, but no more than 42 characters in one layer (controller memory limit);
- You can set macros either by typing using the “capture” window, or by inserting keystrokes, release codes, or manually pressing a key. With the help of manual input, it is possible to specify key combinations of this type Ctrl + Alt + Shift + Win + ”x”;
- It is also possible to insert a pause from 0.1 s to 1.6 s anywhere in the macro. If you need a big pause or not standard, you can insert several pauses in a row;
- we can set a beep sound: short, medium or long;
- we can turn on “auto repeat” for the key. If it is disabled, the macro is executed only once, regardless of how long we hold the key;
A more detailed description can be found in the user manual.
Some examples from my practice
This is my second version of the keyboard with 64 buttons with USB interface:

All the icons I did in a graphic editor of 103 * 103 pixels and printed on a color printer. Pictures, of course, chose to your taste and color.
Almost all buttons assigned a unique key combination. I used a combination of the following: Ctrl + Alt + Shift + 'keys 0-9, AZ, incl. character '. If there are not enough combinations, add the “Win” button to them. Combinations of 4-5 buttons usually do not lead to conflicts with Windows and software, because extremely rarely used.
Now more about some of the keys.

These are the buttons for managing layers, they produce a temporary transition to the L1 level and the L2 level. Level L0 is set by default. L3 is not currently used, since 192 combinations are enough for me.
Further about the physically selected control unit of the screenshot editor (in my case it is the Snagit Editor).

The first row on top is additional screenshots taking profiles.
- Share a screenshot without processing through Google Drive (I use it when I need to quickly create a link and drop it into chat, or when I don’t need to process the image);
- create a video and send it to the editor;
- create a screenshot and save to hard disk without processing and questions;
- create a screenshot and copy it to the clipboard;
Of tool control buttons:
- arrow;
- line;
- highlighted area;
- insert text;
- smoothing layers;
- insert markers;
- redo and undo, they also reduce the size of the font in the text box when you press the L1 button;
- The main button for taking screenshots (sends the image to the editor);
- ESC button, in case you need to change the capture area;
Separately, I note the save button.

- is a keystroke macro of the following type:
Ctrl + S ⇒ pause 1,2s (to save the save window) ⇒ Enter
Allows you to save the edited screen to your hard drive with one click.
This block of buttons in my work is the most used, so it is in the most convenient place.
All other keys work through a program for creating keystroke macros, which performs all actions. This makes it easy to change the configuration and reassign buttons without limiting the physical macro keys to 42 characters. It also allows you to perform other actions that are not possible only in the "iron" version. As an example: launching programs, recording press macros without restriction, opening a URL, inserting previously prepared text, managing windows, various actions with the system, and more. another.

- opens the clipboard manager log. When switching to the L1 layer, the same button opens the “favorites” section;

- Search for text from the clipboard in Google. Here we use the following key macro:
Win + R ⇒ (pause 0.3s) ⇒ “www.google.com/search?as_q=(Ctrl+V)” ⇒ Enter

- opens the url, which is in the clipboard. Macro:
Win + R ⇒ (pause 0.3s) ⇒ “(Ctrl + V) ⇒ Enter”
The link opens in the default browser.

- various options for running ADB using BAT files:

- work with mail;
Personal, working and two test. They use two layers:

- the button with the bat file opens the working folder:
explorer.exe F:\Dropbox\work_doc

- open Google docks with checklists and specifications for the current project in Chrome (by default, the system is FF, but Chrome with Google docks works better);
Command text:
start Chrome.exe https://docs.google.com/document/d/1OYBf….

- turns on / off the desk lamp using a USB HID relay, which is controlled via the console;
I will also give an example of one of the one-time tasks that I did just a couple of days ago.
Task:- check the counter, which sorts people according to the list of their party affiliation, only 7 parties.
- to reach the party selection, you must answer 50 questions; all questions are randomly mixed each time.
- in the test there are traps that reject non-honest respondents, such as: protection from linear answers, comparing answers to the same type of questions, questions-traps, etc.
Given:The list of correct answers that pass all server validations in a txt file.
Decision:The project is small and short. Time to check - an hour or two, and the task itself - a one-time. You can of course just go through the list, and find the correct answers in a text file, but it is harmful for the nerves. I made a macro on the free key in a minute, which performs the following keystroke sequence:
Ctrl + F ⇒ Ctrl + V ⇒ Enter ⇒ Esc
After this, the verification process looked like this:
- open a web form with a list of questions;
- Copy the question to the clipboard (I use additional keys on the mouse for this);
- We focus on Notepad ++;
- click on the macro key, which finds the text of the question and hides the search box, leaving the question text highlighted with the correct answer in the range from -3 to 3;
- click in the web form on the correct answer, etc .;
Result : about 600 questions were passed with an acceptable level of comfort, the nerves were saved, the customer is happy.
After that, it came up with the idea that several unused buttons should be marked with colored shapes, so that they could be used for one-time / temporary tasks.
The rest of the buttons are not special. And about their purpose, in most cases, you can guess from the pictures.
A few words about the manufacturers of POS-keyboards
In practice, I used the keyboard of only one brand. But, the general principle and capabilities of all are about the same. They differ mainly only in appearance and the number of buttons, which is from 4 to 128 pieces.
They can be found in online stores and in offices for the installation of commercial equipment. There are also such keyboards on aliexpress and ebay. They are not much in demand now, and there should not be any problems with purchasing at low cost.
Separately, I want to mention here this manufacturer -
X-keys . As I understand it, their emphasis is placed on the audience of gamers, so outwardly, their keyboards look much better than models for commercial equipment. Plus they have keyboards with very interesting configurations. Here are some examples:

What's inside?
Here are a few photos in a disassembled state (clickable pictures):




By the way, like many other POS keyboards, it is protected from liquid and dirt on the keyboard.
Conclusion
The article turned out great, but I hope it will help someone in the implementation of their ideas. I will be glad to questions and suggestions in the comments.
And lastly, a photo of my first keyboard. Do not be scared. She went through a lot of changes, and so far temporarily sent to the well-deserved rest.
