Author Topic: Soarer's Keyboard Controller firmware  (Read 86240 times)

0 Members and 1 Guest are viewing this topic.

Offline yasuo

  • Posts: 978
  • Location: ID
  • spanengan puyeng newbie
Re: Soarer's Keyboard Controller firmware
« Reply #50 on: Thu, 11 December 2014, 23:35:44 »
yup moz help me make 12x6 matrix really nice this is problem solved
but still get pain with soarer controller
i get a lot invalid command from this
is soarer controller dont have individual symbol?
Code: [Select]
# FN2
Q PLUS
A 4
Z *
W (
S 3
X LEFT_BRACKET
E )
D 2
C RIGHT_BRACKET
R !
F 1
V @
T MINUS
G 5
B /
Y "
H 6
N _
U ?
J 0
M &
I {
K 9
COMMA UNASSIGNED 
O }
L 8
PERIOD equal
P %
SEMICOLON 7
SLASH |

endblock
                                          
                                             
Logitech MK220 Colemak DH
SplitSyml by Moz BlacksMx fuk blacks

2/3 8.5pm                                          in de la my september month ya da all get my fukka "fake message"

Offline yasuo

  • Posts: 978
  • Location: ID
  • spanengan puyeng newbie
Re: Soarer's Keyboard Controller firmware
« Reply #51 on: Sat, 13 December 2014, 03:08:39 »
i rewrite my firmware then complie to promicro nah the keyboard when i press show qwertttt gggggggg some random :confused:
what problem? how to i reset pro micro?
Logitech MK220 Colemak DH
SplitSyml by Moz BlacksMx fuk blacks

2/3 8.5pm                                          in de la my september month ya da all get my fukka "fake message"

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Soarer's Keyboard Controller firmware
« Reply #52 on: Sat, 13 December 2014, 16:29:36 »
i rewrite my firmware then complie to promicro nah the keyboard when i press show qwertttt gggggggg some random :confused:
what problem? how to i reset pro micro?
I think what you're saying is that sometimes keys repeat?  If so is it any key at random or only certain keys?  T and G are probably connected in the matrix so looks like you may have a wiring problem...

It would be helpful if you posted your full config file :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline yasuo

  • Posts: 978
  • Location: ID
  • spanengan puyeng newbie
Re: Soarer's Keyboard Controller firmware
« Reply #53 on: Sun, 14 December 2014, 08:44:15 »
i rewrite my firmware then complie to promicro nah the keyboard when i press show qwertttt gggggggg some random :confused:
what problem? how to i reset pro micro?
I think what you're saying is that sometimes keys repeat?  If so is it any key at random or only certain keys?  T and G are probably connected in the matrix so looks like you may have a wiring problem...

It would be helpful if you posted your full config file :)

i think my handwired indeed
and some keys not show when i press
i almost boring with this is project
Code: [Select]
matrix
     blocking 0
 
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED 

end

layerblock
   FN1        1      # One for each hand, where available
   FN2          1      # One for each hand, where available

endblock

# Layerin' time
remapblock
layer 1


# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP


# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock
Logitech MK220 Colemak DH
SplitSyml by Moz BlacksMx fuk blacks

2/3 8.5pm                                          in de la my september month ya da all get my fukka "fake message"

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Soarer's Keyboard Controller firmware
« Reply #54 on: Sun, 14 December 2014, 10:19:06 »
OK, that looks good.

Now, which keys are repeating and which not working?  They are probably all in a row or column, if they are that's where your problem lies.

EDIT:  Just noticed you don't have a debounce line which could be responsible for your repeated keypresses.  It goes in the matrix (on a new line after "blocking 0" and in the example file I found it's set to 5 - see if that helps.
« Last Edit: Sun, 14 December 2014, 10:53:32 by suicidal_orange »
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: Soarer's Keyboard Controller firmware
« Reply #55 on: Sun, 14 December 2014, 11:59:43 »
EDIT:  Just noticed you don't have a debounce line which could be responsible for your repeated keypresses.  It goes in the matrix (on a new line after "blocking 0" and in the example file I found it's set to 5 - see if that helps.
If no debounce is specified, it defaults to #5.
Code: [Select]
matrix
     blocking 0
 
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED 

end

layerblock
   FN1        1      # One for each hand, where available
   FN2          1      # One for each hand, where available

endblock

# Layerin' time
remapblock
layer 1


# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP


# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock


I edit the code a little so I can read it better on my text editor
Code: [Select]
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED
^this part looks good. I wanted to make sure the keys were assigned right.
Code: [Select]

layerblock
   FN1        1      # One for each hand, where available
   FN2          1      # One for each hand, where available

endblock
^ also looks good. This has two keys both select the same function layer However, a better way would probably be to just have two FN1 keys on your KB. code would change to this:

Code: [Select]
matrix
     blocking 0
 
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED



end

layerblock
   FN1        1
   FN2          2
endblock
^See that fn2 switches to layer2

In soarer's example
Code: [Select]
layerblock
    FN1 1
    FN2 1
    FN1 FN2 2
endblock
^soarer's example: pressing either the FN1 or FN2 buttons activates the layer 1 while pressing them both activates layer 2

Code: [Select]
# Layerin' time
remapblock
layer 1
^ I like "layerin' time" made me smile. This part is correct.

Code: [Select]
# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP


# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock

This part is probably incorrect, if you want fn2 to switch those keys you have to define it differently.  here's what I would do
Code: [Select]
layer 1
# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP
endblock

remapblock
layer 2
# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock
^this makes it so that pressing FN1 activates layer 1 and the first set of changes whereas pressing FN2 activates layer2 and the second set of changes.

You can do it some other ways, and have "locking" or "toggle" layers with using "select" and "ifselect".

Entire code:
Code: [Select]
#######################################
#        Soarer Code for Yasuo        #
#           custom keyboard           #
#         Edited by dorkvader         #
#######################################

matrix
     blocking 0
 
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED



end

layerblock
   FN1        1      # One for each hand, where available
   FN2          2      # One for each hand, where available

endblock

# Layerin' time
remapblock
layer 1
# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP
endblock

remapblock
layer 2
# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock
« Last Edit: Sun, 14 December 2014, 14:08:28 by dorkvader »

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Soarer's Keyboard Controller firmware
« Reply #56 on: Sun, 14 December 2014, 12:25:01 »
If no debounce is specified, it defaults to #5.
Noted :)

On a complete tangent do LEDs actually work?  I added "led caps PF1" as described in the docs but whether before the matrix, after the matrix or in the matrix scas doesn't like it:
Code: [Select]
suicidal_orange@mini:~/Soarer tools$ ./scas out.sc out.scb
scas v1.20
error at line 2: invalid argument: PF1
I've tried other pins too.
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: Soarer's Keyboard Controller firmware
« Reply #57 on: Sun, 14 December 2014, 14:19:31 »
If no debounce is specified, it defaults to #5.
Noted :)

On a complete tangent do LEDs actually work?  I added "led caps PF1" as described in the docs but whether before the matrix, after the matrix or in the matrix scas doesn't like it:
Code: [Select]
suicidal_orange@mini:~/Soarer tools$ ./scas out.sc out.scb
scas v1.20
error at line 2: invalid argument: PF1
I've tried other pins too.

Position in the config file doesn't make a difference. It'll just tell you if anything failed before then :p

I don't use indicator LEDs so I haven't  tried it myself, but that should work, I can't imagine why it's not compiling as it's specifically mentioned in the controller firmware, of which there is only one version. I can test it a little on my own.

If you look in the provided sample config files, the kevex-retrete.sc lists some LEDs under "led caps -PF5" etc. I test compiled it into a SCB using scas on windows and it works. Same with the "mini matrix" for his own project.

maybe wire up the LED in reverse and use the negative option?

EDIT: got an error when I did not use the - option on LED. Then I thought of something.

For positive LED (in your case) make it "LED caps +PF1" should work. I changed it in my kevex test file and got no errors.

It's a mistake in the documentation.

Offline yasuo

  • Posts: 978
  • Location: ID
  • spanengan puyeng newbie
Re: Soarer's Keyboard Controller firmware
« Reply #58 on: Sun, 14 December 2014, 16:48:17 »
thats amagic i slow
OK, that looks good.

Now, which keys are repeating and which not working?  They are probably all in a row or column, if they are that's where your problem lies.

EDIT:  Just noticed you don't have a debounce line which could be responsible for your repeated keypresses.  It goes in the matrix (on a new line after "blocking 0" and in the example file I found it's set to 5 - see if that helps.
almost all keys, when i plug to pc it show gggggggggggg
i've try it and with added scanrate but not fix, i've desoldered my handwired
EDIT:  Just noticed you don't have a debounce line which could be responsible for your repeated keypresses.  It goes in the matrix (on a new line after "blocking 0" and in the example file I found it's set to 5 - see if that helps.
If no debounce is specified, it defaults to #5.
Code: [Select]
matrix
     blocking 0
 
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED 

end

layerblock
   FN1        1      # One for each hand, where available
   FN2          1      # One for each hand, where available

endblock

# Layerin' time
remapblock
layer 1


# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP


# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock


I edit the code a little so I can read it better on my text editor
Code: [Select]
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED
^this part looks good. I wanted to make sure the keys were assigned right.
Code: [Select]

layerblock
   FN1        1      # One for each hand, where available
   FN2          1      # One for each hand, where available

endblock
^ also looks good. This has two keys both select the same function layer However, a better way would probably be to just have two FN1 keys on your KB. code would change to this:

Code: [Select]
matrix
     blocking 0
 
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED



end

layerblock
   FN1        1
   FN2          2
endblock
^See that fn2 switches to layer2

In soarer's example
Code: [Select]
layerblock
    FN1 1
    FN2 1
    FN1 FN2 2
endblock
^soarer's example: pressing either the FN1 or FN2 buttons activates the layer 1 while pressing them both activates layer 2

Code: [Select]
# Layerin' time
remapblock
layer 1
^ I like "layerin' time" made me smile. This part is correct.

Code: [Select]
# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP


# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock

This part is probably incorrect, if you want fn2 to switch those keys you have to define it differently.  here's what I would do
Code: [Select]
layer 1
# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP
endblock

remapblock
layer 2
# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock
^this makes it so that pressing FN1 activates layer 1 and the first set of changes whereas pressing FN2 activates layer2 and the second set of changes.

You can do it some other ways, and have "locking" or "toggle" layers with using "select" and "ifselect".

Entire code:
Code: [Select]
#######################################
#        Soarer Code for Yasuo        #
#           custom keyboard           #
#         Edited by dorkvader         #
#######################################

matrix
     blocking 0
 
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED



end

layerblock
   FN1        1      # One for each hand, where available
   FN2          2      # One for each hand, where available

endblock

# Layerin' time
remapblock
layer 1
# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP
endblock

remapblock
layer 2
# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock
amagic :thumb:

« Last Edit: Sun, 14 December 2014, 18:44:00 by yasuo »
Logitech MK220 Colemak DH
SplitSyml by Moz BlacksMx fuk blacks

2/3 8.5pm                                          in de la my september month ya da all get my fukka "fake message"

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Soarer's Keyboard Controller firmware
« Reply #59 on: Mon, 15 December 2014, 02:31:47 »
almost all keys, when i plug to pc it show gggggggggggg
i've try it and with added scanrate but not fix, i've desoldered my handwired
Ouch!  There's a good chance most of it was good :(

You'll have to wire it up again making very sure that all the diodes point the same way and that your sense/strobe connections to the teensy are correct if you want any help, but I can see why you're getting frustrated.
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline yasuo

  • Posts: 978
  • Location: ID
  • spanengan puyeng newbie
Re: Soarer's Keyboard Controller firmware
« Reply #60 on: Sun, 15 February 2015, 22:17:45 »
after break 1 month
^this makes it so that pressing FN1 activates layer 1 and the first set of changes whereas pressing FN2 activates layer2 and the second set of changes.

You can do it some other ways, and have "locking" or "toggle" layers with using "select" and "ifselect".

Entire code:
Code: [Select]
#######################################
#        Soarer Code for Yasuo        #
#           custom keyboard           #
#         Edited by dorkvader         #
#######################################

matrix
     blocking 0
 
sense PD3 PD2 PD1 PD0 PD4 PC6 PB3 PB1 PF7 PF6 PF5 PF4
strobe PD7 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
strobe PE6 q w e r t delete esc y u i o p
strobe PB4 a s d f g tab enter h j k l semicolon
strobe PB5 z x c v b caps_lock enter n m comma period slash
strobe PB6 lctrl UNASSIGNED  lctrl lshift space FN1 FN2 backspace lshift ralt UNASSIGNED  ralt
strobe PB2 UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  UNASSIGNED  quote UNASSIGNED  UNASSIGNED



end

layerblock
   FN1        1      # One for each hand, where available
   FN2          2      # One for each hand, where available

endblock

# Layerin' time
remapblock
layer 1
# FN1
E PAGE_UP
S HOME
D PAGE_DOWN
F END
W PAUSE
R PRINTSCREEN
X MEDIA_PREV_TRACK
C MEDIA_NEXT_TRACK
V MEDIA_PLAY_PAUSE
B MEDIA_STOP
ESC INSERT
ENTER BACKSPACE
I UP
J LEFT
K DOWN
L RIGHT
P SCROLL_LOCK
M MEDIA_MUTE
COMMA MEDIA_VOLUME_DOWN
PERIOD MEDIA_VOLUME_UP
endblock

remapblock
layer 2
# FN2
Q UNASSIGNED 
A 4
Z UNASSIGNED 
W equal
S 3
X UNASSIGNED 
E MINUS
D 2
C UNASSIGNED 
R UNASSIGNED 
F 1
V UNASSIGNED 
T UNASSIGNED 
G 5
B UNASSIGNED 
Y QUOTE
H 6
N UNASSIGNED 
U UNASSIGNED
J 0
M UNASSIGNED
I LEFT_BRACE
K 9
COMMA UNASSIGNED 
O RIGHT_BRACE
L 8
PERIOD UNASSIGNED 
P BACKSLASH
SEMICOLON 7
SLASH UNASSIGNED 


endblock
funny the code error at line:7   :))
Logitech MK220 Colemak DH
SplitSyml by Moz BlacksMx fuk blacks

2/3 8.5pm                                          in de la my september month ya da all get my fukka "fake message"

Offline tgujay

  • Posts: 316
  • Location: Kalamazoo
Re: Soarer's Keyboard Controller firmware
« Reply #61 on: Sat, 14 March 2015, 10:59:22 »
So I'm dumb, is there an easy way to flash a firmware to the promicro on Windows?
Gotta collect them all

Offline mougrim

  • Posts: 768
  • Location: Ukraine
Re: Soarer's Keyboard Controller firmware
« Reply #62 on: Sat, 14 March 2015, 11:54:18 »
So I'm dumb, is there an easy way to flash a firmware to the promicro on Windows?

There is. I use Arduino Builder. It's free and easy to use.
IBM AT Model F, Vortexgear Race 3, AEKII (Alps Cream Damped), Metoo Zero (modded to Kailh Box Navy)

Offline tgujay

  • Posts: 316
  • Location: Kalamazoo
Re: Soarer's Keyboard Controller firmware
« Reply #63 on: Sat, 14 March 2015, 12:13:02 »
So I'm dumb, is there an easy way to flash a firmware to the promicro on Windows?

There is. I use Arduino Builder. It's free and easy to use.

I just tried that and I'm getting "no new port found"

When using AVRdude I was getting "Connecting to programmer:" and then nothing would happen.

Did I brick the promicro somehow?
Gotta collect them all

Offline mougrim

  • Posts: 768
  • Location: Ukraine
Re: Soarer's Keyboard Controller firmware
« Reply #64 on: Sat, 14 March 2015, 12:24:48 »
So I'm dumb, is there an easy way to flash a firmware to the promicro on Windows?

There is. I use Arduino Builder. It's free and easy to use.

I just tried that and I'm getting "no new port found"

When using AVRdude I was getting "Connecting to programmer:" and then nothing would happen.

Did I brick the promicro somehow?

Hmm... did you installed drivers from Arduino site?
IBM AT Model F, Vortexgear Race 3, AEKII (Alps Cream Damped), Metoo Zero (modded to Kailh Box Navy)

Offline tgujay

  • Posts: 316
  • Location: Kalamazoo
Re: Soarer's Keyboard Controller firmware
« Reply #65 on: Sat, 14 March 2015, 12:27:23 »
So I'm dumb, is there an easy way to flash a firmware to the promicro on Windows?

There is. I use Arduino Builder. It's free and easy to use.

I just tried that and I'm getting "no new port found"

When using AVRdude I was getting "Connecting to programmer:" and then nothing would happen.

Did I brick the promicro somehow?

Hmm... did you installed drivers from Arduino site?

I believe so, I just tried to flash my other pro micro that isn't soldered to the 4P4C connector and it took to the firmware right away :/
Gotta collect them all

Offline mougrim

  • Posts: 768
  • Location: Ukraine
Re: Soarer's Keyboard Controller firmware
« Reply #66 on: Sat, 14 March 2015, 15:50:37 »
So I'm dumb, is there an easy way to flash a firmware to the promicro on Windows?

There is. I use Arduino Builder. It's free and easy to use.

I just tried that and I'm getting "no new port found"

When using AVRdude I was getting "Connecting to programmer:" and then nothing would happen.

Did I brick the promicro somehow?

Hmm... did you installed drivers from Arduino site?

I believe so, I just tried to flash my other pro micro that isn't soldered to the 4P4C connector and it took to the firmware right away :/

Hmm. Reset it, and while doing it, look for com port number in Device manager. Write it down. Then do it again, and while doing reset you'll have a few seconds to flash some sketch from standard Arduino program (I use blinking LED sketch). After this you should be able to write firmware to arduino with Builder.
IBM AT Model F, Vortexgear Race 3, AEKII (Alps Cream Damped), Metoo Zero (modded to Kailh Box Navy)

Offline SecretV

  • Posts: 6
Re: Soarer's Keyboard Controller firmware
« Reply #67 on: Sun, 26 April 2015, 21:09:45 »
I registered just to say thank you Soarer. I was able to use this firmware to get my AEKII working after removing the PCB and handwiring the keyboard matrix. Layer's and all.

Offline Eszett

  • Posts: 543
  • Supporting the communities Geekhack & Deskthority
Re: Soarer's Keyboard Controller firmware
« Reply #68 on: Sun, 02 August 2015, 12:47:38 »
I'd like to have the combination of FN1 with ENTER for pasting something. But ...
Code: [Select]
layerblock                                                                   
   FN1        1            # define that FN1 accesses layer 1
endblock                                                                   
                                                                   
remapblock             
   layer 1                                                       
   ENTER        PASTE
endblock   
                                                               
... I can't get the HID code "PASTE" to work (in Windows 7, Teensy 2.0), it does not effect any pasting here. I assume it simply is not intended to work? What alternative do I have? I thought about setting up a macro "strg-v" instead, but how do I get a macro into a Fn layer?
« Last Edit: Sun, 02 August 2015, 15:40:57 by Eszett »

Offline JBert

  • Posts: 764
Re: Soarer's Keyboard Controller firmware
« Reply #69 on: Wed, 08 February 2017, 19:05:32 »
Ah, hopefully this can be run on a GH60 as well, that way I can keep using my layers and macros for the Poker.

So I just got my GH60 hardware today...

Turns out this firmware doesn't work because the keys connected to column PD6 go haywire, Soarer's post on DT shows why:

Quote from: Soarer
Yeah, PD6 has the LED on it, and my firmware still uses it - I guess that should be configurable too!

Argh, so close!!
IBM Model F XT + Soarer's USB Converter || Cherry G80-3000/Clears

The storage list:
IBM Model F AT || Cherry G80-3000/Blues || Compaq MX11800 (Cherry brown, bizarre layout) || IBM KB-8923 (model M-style RD) || G81-3010 Hxx || BTC 5100C || G81-3000 Sxx || Atari keyboard (?)


Currently ignored by: nobody?

Disclaimer: we don\'t help you save money on [strike]keyboards[/strike] hardware, rather we make you feel less bad about your expense.
[/SIZE]

Offline invariance

  • Posts: 257
  • Location: Brisbane, Australia
  • ...here with all the other boson's
Re: Soarer's Keyboard Controller firmware
« Reply #70 on: Thu, 09 February 2017, 21:45:38 »
Ah, hopefully this can be run on a GH60 as well, that way I can keep using my layers and macros for the Poker.

So I just got my GH60 hardware today...

Turns out this firmware doesn't work because the keys connected to column PD6 go haywire, Soarer's post on DT shows why:

Quote from: Soarer
Yeah, PD6 has the LED on it, and my firmware still uses it - I guess that should be configurable too!

Argh, so close!!


Hasu noted that it might be possible
Quote
EDIT:  You wll able to use PD6 as "strobe"(output) but not as "sense"(input). Anyway PD6 is to be avoided or the last pin to use.
The only BS I
want to hear is
from a Model M:
PN:1391401
DOB: 04FEB87
      Wyse 85      Mtek K104
SMK Blue: Chicony KB-5181; HyperX Aqua: HyperX Alloy Origins *Yet-to-rebuild: A 69 key C. P. Clare Foam & Foil assy *Rubber: Digital LK46W-A2; uSoft Natural Pro RT9401, Natural Multimedia 1.0A RT9470, Natural Ergonomic 4000 KU-0460; "Avid" Sejin SLKR2233; "Diamond Touch" Mitsubishi 6511-PB

Offline JBert

  • Posts: 764
Re: Soarer's Keyboard Controller firmware
« Reply #71 on: Tue, 14 February 2017, 14:57:18 »
I've read that post in the meantime, sadly it's still no use seeing how the diodes of the GH60 prevent me from using PD6 as an output - the current just won't flow in any other direction.

I've contacted someone who was reverse engineering Soarer's firmware as a pastime to see if we can somehow neutralize the offending code.


EDIT: Success! See my thread over at Deskthority: https://deskthority.net/workshop-f7/soarer-s-keyboard-controller-firmware-for-atmega32u4-designs-gh60-t15958.html
« Last Edit: Thu, 23 February 2017, 11:48:42 by JBert »
IBM Model F XT + Soarer's USB Converter || Cherry G80-3000/Clears

The storage list:
IBM Model F AT || Cherry G80-3000/Blues || Compaq MX11800 (Cherry brown, bizarre layout) || IBM KB-8923 (model M-style RD) || G81-3010 Hxx || BTC 5100C || G81-3000 Sxx || Atari keyboard (?)


Currently ignored by: nobody?

Disclaimer: we don\'t help you save money on [strike]keyboards[/strike] hardware, rather we make you feel less bad about your expense.
[/SIZE]

Offline AtomicChameleon

  • Posts: 16
Re: Soarer's Keyboard Controller firmware
« Reply #72 on: Tue, 05 June 2018, 21:07:46 »
Wanted to add my text file for a WY-50 that worked with Soarer's Wyse tool and his pinout. When this is dropped onto the scaswr application file it will map your WY-50 with the stock keycap mapping.

Offline 624245305

  • Posts: 19
Re: Soarer's Keyboard Controller firmware
« Reply #73 on: Sat, 23 March 2019, 03:02:27 »
Has the IBM 3178 C2 keyboard keyboard converter been successful?

Offline dabone

  • Posts: 1
Re: Soarer's Keyboard Controller firmware
« Reply #74 on: Thu, 19 September 2019, 15:33:18 »
Please help with a bit of strange matrix ghosting.

I'm using the controller for a commodore 64 keyboard, it uses a 8x8 matrix, with no diode blocking.

Everything works fine for the keyboard, and then I've added the 2 joystick ports. These use 5 signal plus one common. (Up, Down, Left, Right, Fire , Common(gnd))

The joysticks are floating when plugged in, and not being pushed in a direction, but just having J1 plugged in causes the insert key to trigger itself, and the 1 key.
Unplugging the joystick, the key only triggers insert.

Any suggestions on why it's causing this behavior?

Code: [Select]
# Matrix setup for COMMODORE 64

matrix
        scanrate 1
        debounce 5
        blocking 1

# PROMicroPins          13          14           15         20         17          18         19          16         1          PromicroPins
                                                                                                                                        Joy Pins
  sense                 PB6         PB2          PB3        PF4        PF7         PF6        PF5         PB1        PD3

  strobe        PB5     BACKSPACE   ENTER        RIGHT      F7         F1          F3         F5          DOWN       PAD_PERIOD    #12   -J1 6(F)
  strobe        PD0     3           W            A          4          Z           S          E           LSHIFT     PAD_ASTERIX   #6    -J1 2(D)
  strobe        PD4     5           R            D          6          C           F          T           X          PAD_2         #7    -
  strobe        PC6     7           Y            G          8          B           H          U           V          PAD_3         #8    -
  strobe        PD7     9           I            J          0          M           K          O           N          PAD_PLUS      #9    -J1 4(R)
  strobe        PE6     MINUS       P            L          EQUAL      PERIOD      SEMICOLON  LEFT_BRACE  COMMA      PAD_5         #10   -
  strobe        PB4     INSERT      RIGHT_BRACE  QUOTE      HOME       RSHIFT      BACKSLASH  DELETE      SLASH      PAD_MINUS     #11   -J1 3(L)
  strobe        PD1     1           ESC          TAB        2          SPACE       LCTRL      Q           LALT       PAD_SLASH     #5    -J1 1(U)
  strobe        PD2     UNASSIGNED  PAD_2        PAD_8      PAD_0      UNASSIGNED  PAD_6      UNASSIGNED  PAD_4      F10           #2    -J2 8(Common)

# Joypins               |N|         |J2 2(D)|    |J2 1(U)|  |J2 6(F)|  |N|         |J2 4(R)|  |N|         |J2 3(L)|  J1 8 (Common)       
end


macroblock

#Left Shift Keys....

        macro DOWN LSHIFT # Left Shift + Down = Up
                CLEAR_META LSHIFT
                MAKE UP
                onbreak
                BREAK UP
        endmacro
       
        macro RIGHT LSHIFT # Left Shift + Right = Left
                CLEAR_META LSHIFT
                MAKE LEFT
                onbreak
                BREAK LEFT
        endmacro
       
        macro F1 LSHIFT # Left Shift + F1 = F2
                CLEAR_META LSHIFT
                MAKE F2
                onbreak
                BREAK F2
        endmacro
       
        macro F3 LSHIFT # Left Shift + F3 = F4
                CLEAR_META LSHIFT
                MAKE F4
                onbreak
                BREAK F4
        endmacro
       
        macro F5 LSHIFT # Left Shift + F5 = F6
                CLEAR_META LSHIFT
                MAKE F6
                onbreak
                BREAK F6
        endmacro
       
        macro F7 LSHIFT # Left Shift + F7 = F8
                CLEAR_META LSHIFT
                MAKE F8
                onbreak
                BREAK F8
        endmacro
       
        macro F10 LSHIFT # Left Shift + Restore = F12
                CLEAR_META LSHIFT
                MAKE F12
                onbreak
                BREAK F12
        endmacro
       
# ALT Keys (Runstop Key)
       
       
        macro F1 LALT # Left Shift + F7 = F8
                BREAK LALT
                MAKE F11
                onbreak
                BREAK F11
                endmacro
       
        macro F3 LALT # Left Shift + F7 = F8
                BREAK LALT
                MAKE BACK_QUOTE
                onbreak
                BREAK BACK_QUOTE
        endmacro
       
        macro F5 LALT # Left Shift + F7 = F8
                BREAK LALT
                MAKE PAGE_UP
                onbreak
                BREAK PAGE_UP
        endmacro
       
        macro F7 LALT # Left Shift + F7 = F8
                BREAK LALT
                MAKE PAGE_DOWN
                onbreak
                BREAK PAGE_DOWN
        endmacro
       
        macro F10 LALT # Left Shift + F7 = F8
                BREAK LALT
                MAKE F9
                onbreak
                BREAK F9
        endmacro
       
endblock