Page 1 of 1
Soviet "Gerkonic" (Zbrojovka Brno/Consul/Tesla) adapter resources
Posted: 18 Oct 2017, 14:56
by rymut
Some time ago I bought zbrojovka brno 263.2 keyboard like this one
https://youtu.be/Qef2QGLkHMk.

- Zbrojovka Brno 263.2 keyboard
- DSC_0028.JPG (300.64 KiB) Viewed 6806 times
After some digging I found few good resources:
*
https://sites.google.com/site/computerr ... icany-fk-1
*
http://home.zcu.cz/~dudacek/Simicos/SIMICOS.htm
Basically keyboard runs on 5V (USB) and uses 8 pins for data, and one pin as a clock (strobe signal).
Because of that keyboard can register only single key at one time (1-KRO), and typing experience is horrible because of it.
Here is a simple code (for arduino ide):
Code: Select all
#define DATA0 5
#define DATA1 6
#define DATA2 7
#define DATA3 8
#define DATA4 9
#define DATA5 10
#define DATA6 11
#define DATA7 12
#define STROBE 3
void setup() {
Serial.begin(9600);
Serial.print("setup: ");
pinMode(DATA0, INPUT);
pinMode(DATA1, INPUT);
pinMode(DATA2, INPUT);
pinMode(DATA3, INPUT);
pinMode(DATA4, INPUT);
pinMode(DATA5, INPUT);
pinMode(DATA6, INPUT);
pinMode(DATA7, INPUT);
pinMode(STROBE, INPUT);
attachInterrupt(digitalPinToInterrupt(STROBE), key, RISING);
Serial.println("end");
}
// read key input code
unsigned char readInput() {
unsigned char value = 0;
value = (value << 1)| digitalRead(DATA7);
value = (value << 1) | digitalRead(DATA6);
value = (value << 1) | digitalRead(DATA5);
value = (value << 1) | digitalRead(DATA4);
value = (value << 1) | digitalRead(DATA3);
value = (value << 1) | digitalRead(DATA2);
value = (value << 1) | digitalRead(DATA1);
value = (value << 1) | digitalRead(DATA0);
return value;
}
// if key is pressed display information over serial
void key() {
unsigned char value = readInput();
unsigned short v = (1<<8)|value;
if ( value == 0xEF ) {
Serial.println("");
}
Serial.print(value, HEX);
Serial.print(" ");
}
// procrastinate
void loop() {
delay(1000);
}
Correct strobe and 8 data pin can be be easily checked out by tracking the traces on pcb with multimeter or by eye.
As far as I can say interface is very similar to as other "Gerkonic" keyboard like Consul, Zbrojovka Brno, Tesla 259
https://youtu.be/TNsyTSEFvrU, but pin ribbon cable is different (still it uses the 9 pins for communication, or opt for serial communication instead).
Posted: 18 Oct 2017, 19:02
by OldIsNew
Nice work! My understanding is that those boards use Hall effect switches - is that right? Even if the board is 1 KRO it's very cool that you got an old Hall effect board working!
Posted: 18 Oct 2017, 19:48
by seebart
Great work rymut, this will help people in the long run! Yeah these are Hall-effect if I recall, they show up now and then, I never got one myself though. Real nice.
Posted: 18 Oct 2017, 22:10
by rymut
OldIsNew wrote: Nice work! My understanding is that those boards use Hall effect switches - is that right? Even if the board is 1 KRO it's very cool that you got an old Hall effect board working!
Wait I thought that adapter is available for Honeywell Hall keyboards.
I own second hand Honeywell BO1810 keyboard which have is modded by some previous owner: prototype board with bunch of output wires and some EPROM, probably for connecting to atari or commodore.
From what i checked pcb board have similar traces layout and overall design to Zbrojovka Brno so making adapter should no be difficult process. If adapter is not available I should be able to do (with my limited knowledge of electronics) after I finish Zbrojovka Brno USB adapter.
Posted: 18 Oct 2017, 22:16
by seebart
rymut wrote: Wait I thought that adapter is available for Honeywell Hall keyboards.
No, never seen one. Looking foreward to it.

Posted: 24 Oct 2017, 17:25
by HuBandiT
<off>
If it really is 1KRO, how do you type e.g. the symbol # on it? Press Shift, release Shift, press 3/#, release 3/#?
</off>
Posted: 24 Oct 2017, 18:54
by Chyros
HuBandiT wrote: <off>
If it really is 1KRO, how do you type e.g. the symbol # on it? Press Shift, release Shift, press 3/#, release 3/#?
</off>
Rollover doesn't determine hoe many keys you can press at the same time, it determines how many keys you can press at the same time AT THE MINIMUM. Even with 2KRO boards it's easy to get 6-key combinations, for example.
Posted: 24 Oct 2017, 19:08
by rymut
HuBandiT wrote: <off>
If it really is 1KRO, how do you type e.g. the symbol # on it? Press Shift, release Shift, press 3/#, release 3/#?
</off>
Ye, of little faith... this is great example of CCCP technology build to last and with a mind set of Soviet block countries where left hand doesn't know what the right hand is doing or even that right hand exist at all.
Basically red keys are to the computer as nobility to CCCR - they just don't exist.
Computer is never aware of pressing the red keys (so 1-KRO) keyboard internally is doing some simply manipulating base key value if shift, caps or ctrl is held down. This value manipulation is done only for some keys on the keyboard for example whole numeric block plainly ignores ctrl, shift or caps keys.
As for other weird thing in this keyboard ROLL key (responsible for STROBE pin control), after it is pressed (and released) it repeats its last value until roll is pressed again (it was probably used for quickly moving cursor with direction keys)... Yes holding any key down does nothing, key presses are only registered on a down stroke - so compute was not even aware how long key was hold down... (When key is pressed strobe value is set to 1 for 1ms after data 0-7 channels are set to hex value of pressed key. Data channels value stays the same until the next key press is registered, there is no value change on data 0-7 when key is released).
Here is a full hex code table for every key on this keyboard recognized by computer.
Code: Select all
ESC | + | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | COPY | BS | BREAK | KEY_VALUE
----|----|----|----|----|----|----|----|----|----|----|----|----|------|----|-------|---------------------
D8 | C8 | CD | CE | CC | C7 | C5 | C6 | C4 | CB | C9 | CF | E1 | BE | FB | B7 |
D8 | C8 | CD | CE | CC | C7 | C5 | C6 | C4 | CB | C9 | CF | E1 | BE | FB | B6 | CTRL
D8 | C8 | CD | CE | CC | C7 | C5 | C6 | C4 | CB | C9 | CF | E1 | BE | FB | B7 | CAPS
D8 | E8 | ED | EE | EC | E7 | E5 | E6 | E4 | EB | E9 | CF | C1 | BC | FB | B5 | LEFT_or_RIGHT_SHIFT
TAB | J | C | U | K | E | N | G | [ | ] | Z | H | * | LF | DEL | KEY_VALUE
----|----|----|----|----|----|----|----|----|----|----|----|----|----|-----|---------------------
F9 | 6A | 6C | 45 | 68 | 65 | 62 | 64 | 48 | 41 | 4A | 6B | CA | FA | 40 |
F9 | FA | FC | D5 | F8 | F5 | F2 | F4 | D8 | D1 | DA | FB | CA | FA | 40 | CTRL
F9 | 7A | 7C | 55 | 78 | 75 | 72 | 74 | 58 | 51 | 5A | 7B | CA | FA | 40 | CAPS
F9 | 7A | 7C | 55 | 78 | 75 | 72 | 74 | 58 | 51 | 5A | 7B | EA | FA | 40 | LEFT_or_RIGHT_SHIFT
F | Y | W | A | P | R | O | L | D | V | \ | > | CR | KEY_VALUE
---|----|----|----|----|----|----|----|----|----|----|----|----|---------------------
66 | 49 | 44 | 6D | 4F | 4E | 60 | 63 | 67 | 46 | 43 | E2 | F1 |
F6 | D9 | D4 | FD | DF | DE | F0 | F3 | F7 | D6 | D3 | E2 | F1 | CTRL
76 | 59 | 54 | 7D | 5F | 5E | 70 | 73 | 77 | 56 | 53 | E2 | F1 | CAPS
76 | 59 | 54 | 7D | 5F | 5E | 70 | 73 | 77 | 56 | 53 | C2 | F1 | LEFT_or_RIGHT_SHIFT
ROLL | Q | ^ | S | M | I | T | X | B | @ | < | ? | _ | KEY_VALUE
-----|----|----|----|----|----|----|----|----|----|----|----|----|---------------------
BF | 4D | 42 | 4C | 61 | 69 | 47 | 4B | 6E | 6F | E3 | E0 | 50 |
BF | DD | D2 | DC | F1 | F9 | D7 | DB | FE | FF | E3 | E0 | D0 | CTRL
BF | 5D | 52 | 5C | 71 | 79 | 57 | 5B | 7E | 7F | E3 | E0 | 50 | CAPS
BD | 5D | 52 | 5C | 71 | 79 | 57 | 5B | 7E | 7F | C3 | C0 | 50 | LEFT_or_RIGHT_SHIFT
F1 | F2 | F3 | UP | KEY_VALUE
---|----|----|----|---------------------
1F | 1D | 1E | 3D |
1F | 1D | 1E | 3D | CTRL
1F | 1D | 1E | 3D | CAPS
1F | 1D | 1E | 3D | LEFT_or_RIGHT_SHIFT
7 | 8 | 9 | DOWN | KEY_VALUE
---|----|----|------|---------------------
84 | 8B | 89 | 3E |
84 | 8B | 89 | 3E | CTRL
84 | 8B | 89 | 3E | CAPS
84 | 8B | 89 | 3E | LEFT_or_RIGHT_SHIFT
4 | 5 | 6 | RIGHT | KEY_VALUE
---|----|----|-------|---------------------
87 | 85 | 86 | 3C |
87 | 85 | 86 | 3C | CTRL
87 | 85 | 86 | 3C | CAPS
87 | 85 | 86 | 3C | LEFT_or_RIGHT_SHIFT
1 | 2 | 3 | LEFT | KEY_VALUE
---|----|----|------|---------------------
8D | 8E | 8C | 37 |
8D | 8E | 8C | 37 | CTRL
8D | 8E | 8C | 37 | CAPS
8D | 8E | 8C | 37 | LEFT_or_RIGHT_SHIFT
0 | DOT | UP-LEFT | KEY_VALUE
---|-----|---------|---------------------
8F | A2 | B1 |
8F | A2 | B1 | CTRL
8F | A2 | B1 | CAPS
8F | A2 | B1 | LEFT_or_RIGHT_SHIFT
Edit 1. Typo correcting read to red
Posted: 01 Nov 2017, 11:28
by armatus
1KRO?
why not just rewire it? you can use power and ground lines as is (on pcb), but make a new signal matrix for mcu
(cut the old one)
i have the same polish(or cz) board - keys works with arduino, but needs a power strobe to NKRO
(note than power from arduino pin is not enough for line of MH3SS2's, or even for 1. i use a transistor to drive the power in rows from common usb source)
---
happy 11.11 independence day!
Posted: 04 Nov 2017, 17:51
by rymut
armatus wrote: 1KRO?
why not just rewire it? you can use power and ground lines as is (on pcb), but make a new signal matrix for mcu
(cut the old one)
i have the same polish(or cz) board - keys works with arduino, but needs a power strobe to NKRO
(note than power from arduino pin is not enough for line of MH3SS2's, or even for 1. i use a transistor to drive the power in rows from common usb source)
---
happy 11.11 independence day!
I like having original board with minimal modification done, still caps flat profile is not suited for typing.
Posted: 07 Nov 2017, 12:10
by armatus
it's like all-R3 SA set, very good!
you can use it in any layout you want (colemak, workman etc...) bcs of uniform profile
i think it's advantage
top surface is nice too, i like to touch it
i'm going to make something atreus style with this switches and keycaps

Posted: 22 Nov 2017, 12:08
by armatus
how it's going? any news?
have you a github repo?
Posted: 28 Nov 2017, 08:49
by rymut
armatus wrote: how it's going? any news?
have you a github repo?
Not yet, quite busy month in the work.
Posted: 14 Mar 2018, 22:21
by rymut
armatus wrote: how it's going? any news?
have you a github repo?
I sold the keyboard because the lack of time but base code and the idea is presented in the first post.