ADDS 1010 Green Alps Teardown

User avatar
bitemyweewee

10 May 2014, 18:55

Heya fellas!

Ripster and Pyrelink over at /r/MechanicalKeyboards recommended to come here to share a special discovery I've made.
I've picked up an ADDS 1010 Green Alps terminal keyboard in prestine condition at a garage sale for $4.
I've thrown together an imgur gallery of the Teardown: http://imgur.com/a/vq9iQ
I've already got a thread over there with discussion happening but I was told you're the bee's knee's for info so I figured I'd ask a few friendly questions :)
How much is this thing worth?
How would I go about creating an adapter to USB?
How rare are the green Alps?
When was this made?
I'm interested to know pretty much everything about it because I haven't been able to find a whole lot out there.

Thanks!
-bitemyweewee

User avatar
Muirium
µ

10 May 2014, 19:02

For the connector: have a look at this.

http://www.kbdbabel.org/conn/

Quite a few RJ10 versions in there. Perhaps it's one of those protocols?

User avatar
kbdfr
The Tiproman

10 May 2014, 19:03

Welcome to Deskthority, even if recommended by ripster :lol:
bitemyweewee wrote:[…] I've picked up an […] at a garage sale for $4.
[…] How much is this thing worth? […]
Obviously $4 ;)

User avatar
bitemyweewee

10 May 2014, 19:07

kbdfr wrote:Obviously $4 ;)
Thanks! Maybe to the lovely old lady who sold it to me :)

User avatar
bitemyweewee

10 May 2014, 19:13

Muirium wrote:Perhaps it's one of those protocols?
How would I be able to tell?

User avatar
Muirium
µ

10 May 2014, 19:17

Good question. Informed guesswork, plus a resistance meter. I can't remember the rule, but generally you can test which pair VCC and GND are. Think it was Soarer who said this…

User avatar
Daniel Beardsmore

10 May 2014, 19:43

The date range we have for [wiki]Alps SKCL Green[/wiki] switches is 1983–1989, and yours says ©1986, so that should give you an approximate date range of 1986–1989. From your photos, the case is only marked 19th December, without a year. Green Alps switches are neither common nor rare.

The enter key stabiliser is an Alps design but I'm guessing that's not an Alps PCB. I don't think they'd leave off their branding and part numbers.

What's interesting is the paint on the space bar switch slider — I'm guessing they've put a stiffer spring inside it and painted it to ensure it could be differentiated from a normal switch. I've never seen that before with Alps, suggesting that someone in Taiwan was swapping springs over. The Alps official part was [wiki]Alps SKCL Grey[/wiki] (stiffer linear). Hi-Tek on the other hand put just a dab of paint on the space bar sliders of space invader switches until such time as they started making them with dedicated slider colours (originally all their sliders were white).

Great photos, by the way. You should write a wiki page about the keyboard.

User avatar
bitemyweewee

10 May 2014, 20:46

Daniel Beardsmore wrote:The date range we have for [wiki]Alps SKCL Green[/wiki] switches is 1983–1989, and yours says ©1986, so that should give you an approximate date range of 1986–1989.

What's interesting is the paint on the space bar switch slider

Great photos, by the way. You should write a wiki page about the keyboard.
I forgot to mention that I actually figured out that 3 year time gap. I was just reading the green Alps wiki, saw the manufacturing periods and came to the same realisation. Still weird that they don't have a year anywhere on the keyboard.

The spacebar thing is odd. Your theory makes perfect sense but when pretending to type on it I couldn't feel any variation. I might have to measure its actuation force seperately and find out.

I'd be honoured to write the wiki for this keyboard! I need to gather more Intel first so I can do it justice.

quantalume

10 May 2014, 21:08

You could figure out which lines are +5 and ground by tracing them to the 74LS14. The wire which leads to pin 14 would be +5, while the one leading to pin 7 would be ground. Assuming it's a PS/2-style interface, getting the other two connections (clock and data) wrong won't hurt anything. If it doesn't work one way, try the other.

If you're highly motivated and can't figure out the pinout and protocol, you could always install a TMK controller. http://deskthority.net/workshop-f7/how- ... t7177.html

User avatar
Daniel Beardsmore

10 May 2014, 22:00

I dunno, I assume the space bar switch in my Filco is an MX Green, but I can't feel any clear difference between it and any adjacent MX Blue switch.

User avatar
Nuum

10 May 2014, 22:01

Just found a thread on Geekhack of the same keyboard but with Space Invader switches: http://geekhack.org/index.php?topic=56207.0

User avatar
bitemyweewee

12 May 2014, 13:18

Hey guys! Thanks for all your help with the resources and answering my queries. I still have one itching nag though, what do you think this thing's worth?

User avatar
Muirium
µ

12 May 2014, 13:34

Whatever someone's willing to pay. Depends if you find someone mad for green Alps, I suppose.

The lady preferred Topre, so…

User avatar
002
Topre Enthusiast

12 May 2014, 14:04

I've seen a set of green switches (~100) sell for about $50USD. A crappy Zenith board on Yahoo Auctions with Green Alps sold for about 3100JPY which is about $30USD.

They are nice, but probably not really sought after as much as rare Cherry gear is, so I don't think you're really sitting on a gold mine with that one, sorry :)

User avatar
tlt

12 May 2014, 14:20

Double shot alps caps in good condition could also be interesting to someone think you would get 30$+ for those.

User avatar
Daniel Beardsmore

12 May 2014, 19:14

Depends what they're after — I didn't realise how weird all the keycap sizes are.

Too bad about the arrow key arrangement as blue doubleshot Alps arrow keys are funky.

User avatar
bitemyweewee

16 May 2014, 15:49

Figured out how to reverse engineer the keyboard matrix. Took me a while but I got there :)
Image
Little confused why Shift & Ctrl are on an entirely separate column than the rest, will double check tomorrow, if am right I can just bridge 19 and 20 to save on using/programming an extra column?
Image
Last edited by bitemyweewee on 17 May 2014, 02:20, edited 1 time in total.

User avatar
Muirium
µ

16 May 2014, 16:50

Apparently so. There are diodes in there, right? A separate column looks like a way to preserve rollover for those vital mods. Which shouldn't be a problem with a diode on every switch.

User avatar
Halvar

16 May 2014, 16:53

Where is the second Shift key? Are the both the same electrically on your board?

Putting Shift and Ctrl in their own rows and columns is probably done to minimize the "ghosting" problem, because Shift and Ctrl are often pressed together with other keys.

http://deskthority.net/wiki/Rollover,_b ... d_ghosting

User avatar
Daniel Beardsmore

16 May 2014, 21:31

Column to coulomb … ? Must have posted it from an iPhone.

User avatar
photekq
Cherry Picker

16 May 2014, 21:46

What a beautiful board. The same colour scheme as the NCR G81-3077. Those keycaps look like they're very close to Cherry profile, and the font looks quite similar to Cherry aswell. Very nice find!

User avatar
bitemyweewee

17 May 2014, 02:17

Muirium wrote:Apparently so. There are diodes in there, right? A separate column looks like a way to preserve rollover for those vital mods. Which shouldn't be a problem with a diode on every switch.
From the looks of PCB it seems to have diodes on most but it's hard to tell seeing as the diodes under the plate :/
Halvar wrote:Where is the second Shift key? Are the both the same electrically on your board?
Left and Right Shift were electrically the same, yeah! I was surprised as well because other dupe keys are different... oh well.
Daniel Beardsmore wrote:Column to coulomb … ? Must have posted it from an iPhone.
Nope, just a bad speller. Thanks though, will change :)
photekq wrote:What a beautiful board. The same colour scheme as the NCR G81-3077. Those keycaps look like they're very close to Cherry profile, and the font looks quite similar to Cherry aswell. Very nice find!
Thanks! I'm really happy with the find as well :)

User avatar
bitemyweewee

17 May 2014, 07:14

Heya! Now that I've got the matrix I'm gonna go ahead with the purchase of a teensy, I think I'll be going with 2.0++ model as that's got a hefty amount of pins to populate :3 I do believe that should work with Hasu's firmware but please let me know if I'm wrong.

First time doing this so I'm stoked and clueless.

jacobolus

25 May 2014, 09:40

I think you could probably get at least $50–60 for it on US ebay, judging from recent sales of other green Alps keyboards.

About that spacebar switch with the coloring on top: is that switch noticeably heavier than the others? I think it’s possible that the coloring is to indicate a stronger-weighted spring. I found some linear Alps switches with beigish sliders with some kind of black goop/marking on the top of them used for very heavy switches (used for a “break” key on a terminal keyboard).

User avatar
bitemyweewee

25 May 2014, 17:05

jacobolus wrote:I think you could probably get at least $50–60 for it on US ebay, judging from recent sales of other green Alps keyboards.

About that spacebar switch with the coloring on top: is that switch noticeably heavier than the others? I think it’s possible that the coloring is to indicate a stronger-weighted spring. I found some linear Alps switches with beigish sliders with some kind of black goop/marking on the top of them used for very heavy switches (used for a “break” key on a terminal keyboard).
It's a heavier spring yeah, haven't weighed it yet though. Will weigh it for my wiki entry. I've got another terminal keyboard in the mail with cherry blacks that's due for a tear down and wiki page as well.

jacobolus

30 May 2014, 10:38

Here’s another example of an Alps switch with some goop the top of it indicating a heavier spring: http://www7.ocn.ne.jp/~hisao/image/pc8801.htm

Notice the "STOP" and "COPY" switches have a slightly different than normal click leaf, and a much heavier spring. The text says they are 200g to depress.

User avatar
bitemyweewee

31 May 2014, 10:31

Problem: Following the guide to Hasu's keyboard firmware but it appears to only be for 60% keyboards. How do I find the necessary info for full size keyboards?
I'm assuming it makes no difference, but I don't know the names of the keys (when making the keymaps) that are excluded on the 60% units such as number-pad keys.

Here's what I've got so far:

Matrix:
Spoiler:
Image
config.h:

Code: Select all

/* key matrix size */
#define MATRIX_ROWS 9
#define MATRIX_COLS 13
matrix.c

Code: Select all

static void  init_cols(void)
{
    // Input with pull-up(DDR:0, PORT:1)
    DDRD  &= ~(1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7);
    PORTD |=  (1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7);
    DDRE  &= ~(1<<0 | 1<<1);
    PORTE |=  (1<<0 | 1<<1);
    DDRC  &= ~(1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4);
    PORTC |=  (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4);
}

static matrix_row_t read_cols(void)
{
    return (PIND&(1<<1) ? 0 : (1<<0)) |
           (PIND&(1<<2) ? 0 : (1<<1)) |
           (PIND&(1<<3) ? 0 : (1<<2)) |
           (PIND&(1<<4) ? 0 : (1<<3)) |
           (PIND&(1<<5) ? 0 : (1<<4)) |
           (PIND&(1<<7) ? 0 : (1<<5)) |
           (PINE&(1<<0) ? 0 : (1<<6)) |
           //((PINB&(1<<0) && PINB&(1<<7)) ? 0 : (1<<8)) |     // Rev.A and B
           (PINE&(1<<1) ? 0 : (1<<7)) |
           (PINC&(1<<0) ? 0 : (1<<8)) |
           (PINC&(1<<1) ? 0 : (1<<9)) |
           (PINC&(1<<2) ? 0 : (1<<10)) |
           (PINC&(1<<3) ? 0 : (1<<11)) |
           (PINC&(1<<4) ? 0 : (1<<12));
}

/* Row pin configuration
 * row: 0   1   2   3   4
 * pin: D0  D1  D2  D3  D5
 */
static void unselect_rows(void)
{
    // Hi-Z(DDR:0, PORT:0) to unselect
    DDRB  &= ~0b11111111;
    PORTB &= ~0b11111111;
    DDRD  &= ~0b00000001;
    PORTD &= ~0b00000001;
}

static void select_row(uint8_t row)
{
    // Output low(DDR:1, PORT:0) to select
    switch (row) {
        case 0:
            DDRB  |= (1<<0);
            PORTB &= ~(1<<0);
            break;
        case 1:
            DDRB  |= (1<<1);
            PORTB &= ~(1<<1);
            break;
        case 2:
            DDRB  |= (1<<2);
            PORTB &= ~(1<<2);
            break;
        case 3:
            DDRB  |= (1<<3);
            PORTB &= ~(1<<3);
            break;
        case 4:
            DDRB  |= (1<<4);
            PORTB &= ~(1<<4);
            break;
        case 5:
            DDRB  |= (1<<5);
            PORTB &= ~(1<<5);
            break;
        case 6:
            DDRB  |= (1<<6);
            PORTB &= ~(1<<6);
            break;
        case 7:
            DDRB  |= (1<<7);
            PORTB &= ~(1<<7);
            break;
        case 8:
            DDRD  |= (1<<0);
            PORTD &= ~(1<<0);
            break;    
    }
}
led.c:

Code: Select all

void led_set(uint8_t usb_led)
{
    if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
        // output low
        DDRD |= (1<<6);
        PORTD &= ~(1<<6);
    } else {
        // Hi-Z
        DDRD &= ~(1<<6);
        PORTD &= ~(1<<6);
    }
}
keymap_common.h:

Code: Select all

#define KEYMAP( \
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
    K10, K11, K12, K13,      K15, K16, K17, K18, K19, K1A, \
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
    K30, K31, K32,      K34, K35, K36, K37, K38, K39, K3A, \
    K40, K41, K42, K43, K44, K45, K46, K47,      K49, K4A, \
                                                           K5B, K5C, \
    K60, K61, K62, K63, K64, K65, K66, K67, K68, \
    K70, K71, K72, K73, K74, K75, K76, K77, K78, \
    K80, K81, K82, K83, K84, K85, K86, K87, K88, K89\                                                       
) { \
    { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A }, \
    { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_NO   , KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A }, \
    { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A }, \
    { KC_##K30, KC_##K31, KC_##K32, KC_NO   , KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A }, \
    { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO   , KC_##K49, KC_##K4A }, \
    { KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_##5B , KC_5C }, \
    { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67, KC_##K68 }, \
    { KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77, KC_##K78 }, \
    { KC_##K80, KC_##K81, KC_##K82, KC_##K83, KC_##K84, KC_##K85, KC_##K86, KC_##K87, KC_##K88, KC_##K89 }, \
}
I just now have to figure out what to put in keymap_poker.c or keymap_plain.c (how do I make it point to that instead).
If anyone could please give me a hand that would be absolutely brilliant!

jacobolus

31 May 2014, 11:16

I’m too sleepy to think about this now, but I recommend you post in hasu's tmk_firmware geekhack thread: http://geekhack.org/index.php?topic=41989.0

User avatar
bitemyweewee

31 May 2014, 11:23

jacobolus wrote:I’m too sleepy to think about this now, but I recommend you post in hasu's tmk_firmware geekhack thread: http://geekhack.org/index.php?topic=41989.0
Thanks,
Will do!

Post Reply

Return to “Keyboards”