Soarer's Keyboard Controller firmware

User avatar
Halvar

24 Aug 2015, 08:56

Where did you get the notion that the Teensy 2.0 is no longer produced? I just oredered and got one, and it doesn't say anything about that on the PJRC store either:

https://www.pjrc.com/store/teensy.html

The source code for Soarer's converter is unfortunately not available. Soarer himself is not active any more, so I'm afraid a Soarer Controller for the ARM Teensies won't happen.

User avatar
Muirium
µ

24 Aug 2015, 11:43

Sadly yes. Soarer's controller and converter are abandonware. Excellent though they are.

I wonder if Arakula is up to releasing his implementation now? Because I'd love to run this on other chips too, and enjoy new features again.

http://deskthority.net/workshop-f7/soar ... t9322.html

User avatar
XMIT
[ XMIT ]

24 Aug 2015, 17:03

antonizoon please put your country of residence in your profile.

The Teensy++ 2.0 is about $20 shipped to the US - check aliexpress.com.

User avatar
flabbergast

24 Aug 2015, 17:58

XMIT wrote: The Teensy++ 2.0 is about $20 shipped to the US - check aliexpress.com.
Yea, but you'd be very likely getting a counterfeit. It would most likely still work... but no money to Paul.

User avatar
Muirium
µ

24 Aug 2015, 18:29

John had all the talent.

User avatar
klikkyklik

24 Aug 2015, 19:11

John?

User avatar
chzel

24 Aug 2015, 19:13

Lennon.

User avatar
klikkyklik

24 Aug 2015, 19:14

*face palm*

User avatar
seebart
Offtopicthority Instigator

24 Aug 2015, 19:17

John had a lot of talent, but not ALL the talent! 8-)

User avatar
Halvar

24 Aug 2015, 23:15

I need a dedicated Thank You button for Muirium's posts, please. Way too often I laugh out loud when I read them but don't have anything good enough to answer.

User avatar
XMIT
[ XMIT ]

24 Aug 2015, 23:42

Teensy 2.0 at mechanicalkeyboards.com:
https://mechanicalkeyboards.com/shop/in ... tail&p=568

User avatar
scottc

25 Aug 2015, 00:47

Halvar wrote: I need a dedicated Thank You button for Muirium's posts, please. Way too often I laugh out loud when I read them but don't have anything good enough to answer.
Thank You for this post, I agree

User avatar
Eszett

25 Aug 2015, 00:53

My first firmware I made/configured with Soarer's, but I had problem with creating macros. Like Pressing Fn + Enter shall effect "Strg-V" (paste). I think this isn't possible with Soarer's, so I changed over to Hasu's TMK.

antonizoon

25 Aug 2015, 02:26

Muirium wrote: Sadly yes. Soarer's controller and converter are abandonware. Excellent though they are.

I wonder if Arakula is up to releasing his implementation now? Because I'd love to run this on other chips too, and enjoy new features again.

http://deskthority.net/workshop-f7/soar ... t9322.html
Looks like the Teensy 2.0 was just on legacy support. I guess I'll just grab one for $20.

What other keyboard controllers work on the Teensy 3.0/LC? Even if they're not as nice as Soarer's Controller, I'll try to figure them out.

User avatar
flabbergast

25 Aug 2015, 09:24

antonizoon wrote: What other keyboard controllers work on the Teensy 3.0/LC? Even if they're not as nice as Soarer's Controller, I'll try to figure them out.
These have Freescale ARM chips, not ATMEL. That's a whole different kettle of fish, so it's not easy to "port". So the only (probably, sort-of) working firmwares for them are kiibohd and TMK.

(Note: TMK supports ARM chips via mbed, and it's so far some way from ideal - it's hard to actually compile (hasn't yet been done on OS X for instance), and the firmware does not work as expected.)

Also - none of these are targeted at Teensy 3.0/3.1/LC chips, but at a similar one which is in the infinity keyboard. So you'll need to necessarily fiddle with the sources. Some experience with arm-none-eabi-gcc toolchain is definitely recommended.

User avatar
Muirium
µ

25 Aug 2015, 15:07

True. But easier to port than a closed binary!

Bear in mind that "port" has long meant giant leaps like Amiga games going over to DOS or even the Super Nintendo! It might as well be shorthand for "support" instead. As what people mean by a port isn't code base identity but "do you have a version that will run on my…"

And we really want a finished software product. I can't build code for shit, and how I have tried! Many more interested potential users aren't as shameless as me to admit that! We want a binary. Supported by an open source dev team behind the scenes.

andrewjoy

08 Nov 2015, 15:15

It may just be me , but i am terribly confused and the documentation for this is terrible.

How do i go about remapping keys ? I want to read the current layout and change a few keys.

Is there no simple GUI utility to do this like the beamspring controller ?

User avatar
Muirium
µ

08 Nov 2015, 15:19

Mwa hahaha!

I was very almost literally singing the praises of this documentation while you wrote that.

Have you configured Soarer's Converter before? The Controller is the same thing, with matrix driving functionality on top. To understand it, you must know the way of the Converter. Read the documentation for both.

I agree that Xwhatsit's Controller GUI is a huge improvement when you haven't yet learned a text config format. Soarer's code for scas, scwr etc. is open source and available in the OP on his Converter and Controller threads. If someone — who is not me — wants to make a GUI for his two, they everything they need right there.

andrewjoy

08 Nov 2015, 15:21

Nope never done it before. I have flashed the converter firmware but that's it

User avatar
Muirium
µ

08 Nov 2015, 15:23

Okay, go read the Converter documentation. The key concept is that the firmware is its own little black box. You talk to it via Soarer's utilities. The most important two are scas (assemble), scwr (write).

andrewjoy

08 Nov 2015, 15:29

I had a quick look through that but scrd does nothing. I want to read the current config file that's on the controller so i don't have to re create the whole thing.

Even if i did that , how would i know what each key on the matrix is connected to ?

User avatar
Muirium
µ

08 Nov 2015, 15:36

There is no current config! Forget scwr. Just use scas and scwr.

What you need to do first is define a matrix. Everything else can wait. Here's the matrix definition block from my Shiny 60%:

Code: Select all

# Muirium's Shiny 60%: Mk.II


matrix
	scanrate 1
	debounce 5
	blocking 0

	sense			PD0			PD1			PD2			PD3			PC6
	strobe	PF0		esc			tab			lctrl		lshift		fn2
	strobe	PF1		1			q			a			z			lalt
	strobe	PF4		2			w			s			x			lgui
	strobe	PF5		3			e			d			c			unassigned
	strobe	PF6		4			r			f			v			unassigned
	strobe	PF7		5			t			g			b			space
	strobe	PB6		6			y			h			n			unassigned
	strobe	PB5		7			u			j			m			unassigned
	strobe	PB4		8			i			k			comma		unassigned
	strobe	PD7		9			o			l			period		rgui
	strobe	PB0		0			p			semicolon	slash		ralt
	strobe	PB1		minus		left_brace	quote		unassigned	unassigned
	strobe	PB2		equal		right_brace	unassigned	rshift		rctrl
	strobe	PB3		backslash	unassigned	enter		unassigned	unassigned
	strobe	PB7		back_quote	backspace	unassigned	fn1			pad_enter
end
See if you can work it out. PB0 = Teensy pin B0. The key names come from his documentation. And the whole thing might need rejiggered depending on which way around your diodes are. Go, fiddle!

Then save that as a text file, compile it with scas and write it to the Teensy with scwr.

andrewjoy

08 Nov 2015, 15:40

I am using the phosphorglow mode M controller if that helps

User avatar
Muirium
µ

08 Nov 2015, 15:49

Ah, you should have said! I run Soarer's Controller on mine and know my way around it well.

What are you trying to do with it then?

andrewjoy

08 Nov 2015, 15:50

I am trying to remap Caps lock to control Right control to Windows/Command and program the tab key on my number pad as its currently not assigned to anything.

User avatar
Muirium
µ

08 Nov 2015, 15:58

Does scinfo see the keyboard?

If it's showing up fine, run:

scrd andy
scdis andy andy.txt

On OS X, you need ./ right before those commands. That should read the binary config from the controller, and disassemble it into a text file in the current folder. If it works, paste the contents of andy.txt between

Code: Select all

 tags here so we can see.

Oh, and you don't have any other Soarer controller/converters hooked up to your machine while you do this, right?

andrewjoy

08 Nov 2015, 15:59

Yeh it can see it just fine.

andrewjoy

09 Nov 2015, 11:15

ahhhh so scrd <filename> dumps the config?

Thats all i needed to know, i will get busy with this tonight :).

Had another read of the documentation and to be fair to it , how to do layout and how to do macros and the likes is very good. but for the utilities i am used to linux/unix man files and how they deal with things so i must have just has a blond moment.

Its still got nothing on the arch linux wiki however , thats some seriously good documentation, second only to IBM in the system 360 days. I mean who else gives a full logic diagram for the whole system and net-lists for every single chip. Crazy! IBM MAPS ( Maintenance Analysis procedures) are incredible , the little booklet in my beamspring some and they are Yes No problem solving guide that will diagnose anything , from "is it plugged in" to if the voltage on this test point is between x and y do this , if its between z and q test this and so on , amazing documentation

andrewjoy

09 Nov 2015, 20:58

Got it, time to play!

Code: Select all

# length: 176
# signature: S C
# version: 1 3

# block length: 9
ifset any
ifkeyboard any
ifselect any
# configblock
# config count: 3
	led caps -PB3
	led scroll -PB2
	led num -PB4
# end

# block length: 161
ifset any
ifkeyboard any
ifselect any
matrix
	scanrate 1
	strobe_mode 0
	sense_polarity 0
	debounce 5
	blocking 1
	debounce_method 0
	sense_delay 1
	sense  PA4 PA5 PA6 PA7 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PE1 PE0 PD7 PD5
	strobe PB5 UNASSIGNED UNASSIGNED UNASSIGNED UNASSIGNED UNASSIGNED B SPACE N UNASSIGNED UNASSIGNED SLASH DOWN RIGHT PAD_MINUS LEFT RALT
	strobe PB6 RCTRL RSHIFT Z X C V ENTER M COMMA PERIOD UNASSIGNED NUM_LOCK PAD_SLASH PAD_ASTERIX PAUSE UNASSIGNED
	strobe PB7 UNASSIGNED UNASSIGNED A S D F BACKSLASH J K L SEMICOLON PAD_1 PAD_2 PAD_3 PAD_ENTER UNASSIGNED
	strobe PE4 UNASSIGNED UNASSIGNED Q W E R UNASSIGNED U I O P PAD_7 PAD_8 PAD_9 PAD_PLUS SCROLL_LOCK
	strobe PE5 UNASSIGNED UNASSIGNED 1 2 3 4 F10 7 8 9 0 F11 F12 PAGE_DOWN END PRINTSCREEN
	strobe PD0 LCTRL UNASSIGNED BACK_QUOTE F1 F2 5 F9 6 EQUAL F8 MINUS DELETE INSERT PAGE_UP HOME UNASSIGNED
	strobe PD1 UNASSIGNED LSHIFT TAB CAPS_LOCK F3 T BACKSPACE Y RIGHT_BRACE F7 LEFT_BRACE PAD_4 PAD_5 PAD_6 UNASSIGNED UNASSIGNED
	strobe PD4 UNASSIGNED UNASSIGNED ESC UNASSIGNED F4 G F5 H F6 UNASSIGNED QUOTE UNASSIGNED PAD_0 PAD_PERIOD UP LALT
end

andrewjoy

09 Nov 2015, 21:11

I can now TAB from my number pad woo hoo!

This works quite well if not a bit confusing with the text file, do you know how the compiler picks up the keys you assign, for example can i do a tab or space between them in the text file for easy human reading ?

Post Reply

Return to “Workshop”