Wiring Up Teensy ++

Davsmith4

10 Jul 2015, 21:27

So I am making a 104 key keyboard, 6 rows and 21 colums with 3 leds, and I was wondering what the best way is to hook this up to the Teensy ++. I know that there are some pins you have to avoid on the teeny and I was wondering what ones you are supposed to skip on the teensy ++ and in what order you wire it up. Any advice is helpful. I am a bit new to this kind of thing so im feeling a little worried at this point.

User avatar
Muirium
µ

10 Jul 2015, 21:54

The Teensy's LED pin is the one to avoid. And the VCC and GND obviously. I think every other pin is fair game. I hooked up a 128 switch matrix to a Teensy 2++ once. 16*8 as I recall. So 16+8 pins. You'll need 27.

What firmware have you got in mind?

Davsmith4

10 Jul 2015, 22:13

Muirium wrote: The Teensy's LED pin is the one to avoid. And the VCC and GND obviously. I think every other pin is fair game. I hooked up a 128 switch matrix to a Teensy 2++ once. 16*8 as I recall. So 16+8 pins. You'll need 27.

What firmware have you got in mind?
I was going to modify tmk's but i might use sorars since it seems more of an elegant solution. Not sure yet. Which do you reccommend more?

User avatar
Muirium
µ

10 Jul 2015, 22:32

I'm too simple for TMK so I always use Soarer's Controller. (I also use it in my IBM Model M SSK thanks to Phosphorglow's replacement controller.) You can simply define the matrix in a config file. Name the pins you want for rows and columns, and set up the base layer. Elegant indeed, and pre-built for Teensy 2++ among others.

I found Soarer's Controller pretty much effortless because I was already used to his Converter (a sister project for PS/2 etc. to USB conversion for existing controllers). Once you're used to his utilities (scas and scwr for the most part) you're all set.

The downside: Soarer's been inactive for a long time, so no tech support from the man himself and no new features.

Davsmith4

11 Jul 2015, 00:35

Muirium wrote: I'm too simple for TMK so I always use Soarer's Controller. (I also use it in my IBM Model M SSK thanks to Phosphorglow's replacement controller.) You can simply define the matrix in a config file. Name the pins you want for rows and columns, and set up the base layer. Elegant indeed, and pre-built for Teensy 2++ among others.

I found Soarer's Controller pretty much effortless because I was already used to his Converter (a sister project for PS/2 etc. to USB conversion for existing controllers). Once you're used to his utilities (scas and scwr for the most part) you're all set.

The downside: Soarer's been inactive for a long time, so no tech support from the man himself and no new features.
You happen to know of a guide that shows me how to use it?

Davsmith4

11 Jul 2015, 00:58

Muirium wrote: I'm too simple for TMK so I always use Soarer's Controller. (I also use it in my IBM Model M SSK thanks to Phosphorglow's replacement controller.) You can simply define the matrix in a config file. Name the pins you want for rows and columns, and set up the base layer. Elegant indeed, and pre-built for Teensy 2++ among others.

I found Soarer's Controller pretty much effortless because I was already used to his Converter (a sister project for PS/2 etc. to USB conversion for existing controllers). Once you're used to his utilities (scas and scwr for the most part) you're all set.

The downside: Soarer's been inactive for a long time, so no tech support from the man himself and no new features.

Also is there anyway to see if a keypress is ever being registered by the micro controller before I go to the proble of programming it?

User avatar
Muirium
µ

11 Jul 2015, 14:10

Soarer's own documentation is very good. Download the zip file and you'll find it:

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

As I said, his controller is actually based on the same code and workflow as his converter. So you need both downloads for all the tools and docs:

http://deskthority.net/workshop-f7/xt-a ... t2510.html

The basic workflow with Soarer's Controller is:
  • Flash the Teensy. Use PJRC's Teensy Loader to install Soarer's ready made .hex file on the Teensy. Your computer will see a USB keyboard is now connected. It won't do anything quite yet!
  • Hook up the hardware. Wire your switches into a matrix with diodes, and attach the rows and columns to pins on the Teensy 2++.
  • Open up a text editor and create a config file. I've copied mine below so you can see how they work. All you need to do is tell the controller which pin to look at for every column and row, and then define the key at each intercept.
  • Use Soarer's tools to assemble (scas) and write (scwr) the config to the Teensy.
  • Suddenly, everything should work! If it doesn't, keep a terminal window open running his diagnostic (tool scinfo) which will give you clues.
  • And there's plenty of us here with experience at this, so you can always ask!
I like how Soarer's Controller handles config files: as soon as you write one to it, it's active. So any small change you make, you can test immediately.

It's pretty smart in its defaults. So you only need to define things you care about and leave out the rest. For example, my SSK:

Code: Select all

# Matrix setup for Model M SSK using Colossus v1.0 Universal M Controller
# Mac Style

led caps 	-PB4
led scroll 	-PB3
led num 	-PB2

matrix
	scanrate 1
	debounce 4
	blocking 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		UNASSIGNED	LEFT		rgui
	strobe	PB6		ralt		RSHIFT		Z			X			C			V			ENTER			M			COMMA			PERIOD		UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	PAUSE		UNASSIGNED
	strobe	PB7		UNASSIGNED	UNASSIGNED	A			S			D			F			BACKSLASH		J			K				L			SEMICOLON	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED
	strobe	PE4		UNASSIGNED	UNASSIGNED	Q			W			E			R			UNASSIGNED		U			I				O			P			UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	SCROLL_LOCK
	strobe	PE5		UNASSIGNED	UNASSIGNED	1			2			3			4			F10				7			8				9			0			F11			F12			PAGE_DOWN	END			PRINTSCREEN
	strobe	PD0		lalt		UNASSIGNED	BACK_QUOTE	F1			F2			5			F9				6			EQUAL			F8			MINUS		DELETE		fn1			PAGE_UP		HOME		UNASSIGNED
	strobe	PD1		UNASSIGNED	LSHIFT		TAB			lctrl		F3			T			BACKSPACE		Y			RIGHT_BRACE		F7			LEFT_BRACE	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED
	strobe	PD4		UNASSIGNED	UNASSIGNED	ESC			UNASSIGNED	F4			G			F5				H			F6				UNASSIGNED	QUOTE		UNASSIGNED	UNASSIGNED	UNASSIGNED	UP			lgui
end

layerblock
	fn1 		1		# Media layer
endblock


# Media Layer

remapblock
layer 1
	
	esc				system_power		# Power Button
	back_quote		europe_2			# Dat ISO key
	
	# 				Media keys across the number row	

	1				F14					# Decrease Display Brightness 
	2				F15					# Increase Display Brightness
	3				F10					# Exposé: All App Windows
	4				F12					# Dashboard
	5				F11					# Exposé: Show Desktop
	6				F9					# Exposé: All Windows in All Apps
	7				MEDIA_PREV_TRACK	# iTunes / media playback controls
	8				MEDIA_PLAY_PAUSE
	9				MEDIA_NEXT_TRACK
	0				MEDIA_MUTE			# Volume controls
	MINUS			MEDIA_VOLUME_DOWN
	EQUAL			MEDIA_VOLUME_UP

endblock


# Macros

macroblock

	# Embedded Numpad Lock

	macro SCROLL_LOCK shift
	PRESS NUM_LOCK
	PRESS SELECT_1
	endmacro


# Double Shift = Caps Lock

	macro lshift rshift
	press caps_lock
	endmacro

	macro rshift lshift
	press caps_lock
	endmacro


# Two Mod >> Three Mod Macros
# To avoid these, press right Command instead of Left Command.
# They only apply to left.
	
	# Option + Command + V = Jumpcut trigger, for rollover and ergonomics!

	macro v lalt lgui
	push_meta set_meta lctrl
	press v
	pop_meta
	endmacro


	# Control + Command + 8 = Invert colours mode

	macro 8 lalt lgui
	push_meta set_meta lctrl
	press 8
	pop_meta
	endmacro
	

	# Control + Command + I = Isolator trigger (Ignored on Shift, because of Shift+Command+Option+I Isolator preferences.)

	macro I lalt lgui -shift
	push_meta set_meta lctrl
	press I
	pop_meta
	endmacro

	
	# Control + Command + N = New Notational Velocity Note / New Audio Recording

	macro N lalt lgui
	push_meta set_meta lctrl
	press N
	pop_meta
	endmacro
	

	# Right Command + Backtick = ISO style window cycling (These two are crafty enough not to trigger in normal setup.)

	macro back_quote rgui
	press europe_2
	endmacro


	# Left Command + Backtick = ANSI style window cycling	

	macro europe_2 lgui
	press back_quote
	endmacro


endblock

# Embedded Numpad

ifselect 1
remapblock
	U 					PAD_4
	I 					PAD_5
	O 					PAD_6
	J 					PAD_1
	K 					PAD_2
	L 					PAD_3
	M 					PAD_0
	7 					PAD_7
	8 					PAD_8
	9 					PAD_9
	PERIOD 				PAD_PERIOD
	SLASH 				PAD_SLASH
	SEMICOLON 			PAD_ASTERIX
	MINUS 				PAD_MINUS
	EQUAL 				PAD_PLUS
	ENTER 				PAD_ENTER
endblock

# And return…?

ifselect any
# = comments, of course. (Just like C's //)

And everything after the matrix block is fancy complex stuff you don't even need to care about. Only the matrix is mandatory. Everything else in that code is for advanced stuff, which you might want to try later of course. Namely layers and macros.

mtl

11 Jul 2015, 21:13

If you want to dim the LEDs using PWM there are certain pins you need to reserve for them. Your matrix can be wired to any other general I/O pins. D6 is the one you want to skip as it's connected to the Teensy's LED. You could test connectivity using an Ohm meter but it's probably easier just to flash and test on a live firmware. Not sure about Soarer's but TMK has a debug mode that will help.

Davsmith4

12 Jul 2015, 07:40

Muirium wrote: Soarer's own documentation is very good. Download the zip file and you'll find it:

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

As I said, his controller is actually based on the same code and workflow as his converter. So you need both downloads for all the tools and docs:

http://deskthority.net/workshop-f7/xt-a ... t2510.html

The basic workflow with Soarer's Controller is:
  • Flash the Teensy. Use PJRC's Teensy Loader to install Soarer's ready made .hex file on the Teensy. Your computer will see a USB keyboard is now connected. It won't do anything quite yet!
  • Hook up the hardware. Wire your switches into a matrix with diodes, and attach the rows and columns to pins on the Teensy 2++.
  • Open up a text editor and create a config file. I've copied mine below so you can see how they work. All you need to do is tell the controller which pin to look at for every column and row, and then define the key at each intercept.
  • Use Soarer's tools to assemble (scas) and write (scwr) the config to the Teensy.
  • Suddenly, everything should work! If it doesn't, keep a terminal window open running his diagnostic (tool scinfo) which will give you clues.
  • And there's plenty of us here with experience at this, so you can always ask!
I like how Soarer's Controller handles config files: as soon as you write one to it, it's active. So any small change you make, you can test immediately.

It's pretty smart in its defaults. So you only need to define things you care about and leave out the rest. For example, my SSK:

Code: Select all

# Matrix setup for Model M SSK using Colossus v1.0 Universal M Controller
# Mac Style

led caps 	-PB4
led scroll 	-PB3
led num 	-PB2

matrix
	scanrate 1
	debounce 4
	blocking 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		UNASSIGNED	LEFT		rgui
	strobe	PB6		ralt		RSHIFT		Z			X			C			V			ENTER			M			COMMA			PERIOD		UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	PAUSE		UNASSIGNED
	strobe	PB7		UNASSIGNED	UNASSIGNED	A			S			D			F			BACKSLASH		J			K				L			SEMICOLON	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED
	strobe	PE4		UNASSIGNED	UNASSIGNED	Q			W			E			R			UNASSIGNED		U			I				O			P			UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	SCROLL_LOCK
	strobe	PE5		UNASSIGNED	UNASSIGNED	1			2			3			4			F10				7			8				9			0			F11			F12			PAGE_DOWN	END			PRINTSCREEN
	strobe	PD0		lalt		UNASSIGNED	BACK_QUOTE	F1			F2			5			F9				6			EQUAL			F8			MINUS		DELETE		fn1			PAGE_UP		HOME		UNASSIGNED
	strobe	PD1		UNASSIGNED	LSHIFT		TAB			lctrl		F3			T			BACKSPACE		Y			RIGHT_BRACE		F7			LEFT_BRACE	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED
	strobe	PD4		UNASSIGNED	UNASSIGNED	ESC			UNASSIGNED	F4			G			F5				H			F6				UNASSIGNED	QUOTE		UNASSIGNED	UNASSIGNED	UNASSIGNED	UP			lgui
end

layerblock
	fn1 		1		# Media layer
endblock


# Media Layer

remapblock
layer 1
	
	esc				system_power		# Power Button
	back_quote		europe_2			# Dat ISO key
	
	# 				Media keys across the number row	

	1				F14					# Decrease Display Brightness 
	2				F15					# Increase Display Brightness
	3				F10					# Exposé: All App Windows
	4				F12					# Dashboard
	5				F11					# Exposé: Show Desktop
	6				F9					# Exposé: All Windows in All Apps
	7				MEDIA_PREV_TRACK	# iTunes / media playback controls
	8				MEDIA_PLAY_PAUSE
	9				MEDIA_NEXT_TRACK
	0				MEDIA_MUTE			# Volume controls
	MINUS			MEDIA_VOLUME_DOWN
	EQUAL			MEDIA_VOLUME_UP

endblock


# Macros

macroblock

	# Embedded Numpad Lock

	macro SCROLL_LOCK shift
	PRESS NUM_LOCK
	PRESS SELECT_1
	endmacro


# Double Shift = Caps Lock

	macro lshift rshift
	press caps_lock
	endmacro

	macro rshift lshift
	press caps_lock
	endmacro


# Two Mod >> Three Mod Macros
# To avoid these, press right Command instead of Left Command.
# They only apply to left.
	
	# Option + Command + V = Jumpcut trigger, for rollover and ergonomics!

	macro v lalt lgui
	push_meta set_meta lctrl
	press v
	pop_meta
	endmacro


	# Control + Command + 8 = Invert colours mode

	macro 8 lalt lgui
	push_meta set_meta lctrl
	press 8
	pop_meta
	endmacro
	

	# Control + Command + I = Isolator trigger (Ignored on Shift, because of Shift+Command+Option+I Isolator preferences.)

	macro I lalt lgui -shift
	push_meta set_meta lctrl
	press I
	pop_meta
	endmacro

	
	# Control + Command + N = New Notational Velocity Note / New Audio Recording

	macro N lalt lgui
	push_meta set_meta lctrl
	press N
	pop_meta
	endmacro
	

	# Right Command + Backtick = ISO style window cycling (These two are crafty enough not to trigger in normal setup.)

	macro back_quote rgui
	press europe_2
	endmacro


	# Left Command + Backtick = ANSI style window cycling	

	macro europe_2 lgui
	press back_quote
	endmacro


endblock

# Embedded Numpad

ifselect 1
remapblock
	U 					PAD_4
	I 					PAD_5
	O 					PAD_6
	J 					PAD_1
	K 					PAD_2
	L 					PAD_3
	M 					PAD_0
	7 					PAD_7
	8 					PAD_8
	9 					PAD_9
	PERIOD 				PAD_PERIOD
	SLASH 				PAD_SLASH
	SEMICOLON 			PAD_ASTERIX
	MINUS 				PAD_MINUS
	EQUAL 				PAD_PLUS
	ENTER 				PAD_ENTER
endblock

# And return…?

ifselect any
# = comments, of course. (Just like C's //)

And everything after the matrix block is fancy complex stuff you don't even need to care about. Only the matrix is mandatory. Everything else in that code is for advanced stuff, which you might want to try later of course. Namely layers and macros.
Thanks for the help! Is there a way to test connectivity using sorasr controller? i would hate to write up all the firmware only to find I have to rewire the matrix. :P

User avatar
Muirium
µ

12 Jul 2015, 11:39

You can revise your Soarer config easily, live, at any time. Even editing the matrix is trivial. No need to fear making mistakes there.

Davsmith4

12 Jul 2015, 18:59

Muirium wrote: You can revise your Soarer config easily, live, at any time. Even editing the matrix is trivial. No need to fear making mistakes there.
Very last question I promise (not really :P). The tools you mentioned. HOw do you use them,

User avatar
Muirium
µ

12 Jul 2015, 19:17

Use the docs, Luke.

Image

Davsmith4

13 Jul 2015, 05:47

Muirium wrote: Use the docs, Luke.

Image
So I saw ond of sorars posts on how to use the hid listen tool before flashing firmware to the thing and only some of the keys are being read. Yet when I check the keys with my multi meter they are all out putting a signal to the device. What might be causing that?

User avatar
Muirium
µ

13 Jul 2015, 11:24

Before flashing the firmware? Nope. All Soarer's tools communicate with his firmware. That needs "flashed" to the teensy first.

It's all nondestructive by the way! You can reprogram a Teensy many times.

Davsmith4

16 Jul 2015, 01:22

Muirium wrote: Soarer's own documentation is very good. Download the zip file and you'll find it:

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

As I said, his controller is actually based on the same code and workflow as his converter. So you need both downloads for all the tools and docs:

http://deskthority.net/workshop-f7/xt-a ... t2510.html

The basic workflow with Soarer's Controller is:
  • Flash the Teensy. Use PJRC's Teensy Loader to install Soarer's ready made .hex file on the Teensy. Your computer will see a USB keyboard is now connected. It won't do anything quite yet!
  • Hook up the hardware. Wire your switches into a matrix with diodes, and attach the rows and columns to pins on the Teensy 2++.
  • Open up a text editor and create a config file. I've copied mine below so you can see how they work. All you need to do is tell the controller which pin to look at for every column and row, and then define the key at each intercept.
  • Use Soarer's tools to assemble (scas) and write (scwr) the config to the Teensy.
  • Suddenly, everything should work! If it doesn't, keep a terminal window open running his diagnostic (tool scinfo) which will give you clues.
  • And there's plenty of us here with experience at this, so you can always ask!
I like how Soarer's Controller handles config files: as soon as you write one to it, it's active. So any small change you make, you can test immediately.

It's pretty smart in its defaults. So you only need to define things you care about and leave out the rest. For example, my SSK:

Code: Select all

# Matrix setup for Model M SSK using Colossus v1.0 Universal M Controller
# Mac Style

led caps 	-PB4
led scroll 	-PB3
led num 	-PB2

matrix
	scanrate 1
	debounce 4
	blocking 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		UNASSIGNED	LEFT		rgui
	strobe	PB6		ralt		RSHIFT		Z			X			C			V			ENTER			M			COMMA			PERIOD		UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	PAUSE		UNASSIGNED
	strobe	PB7		UNASSIGNED	UNASSIGNED	A			S			D			F			BACKSLASH		J			K				L			SEMICOLON	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED
	strobe	PE4		UNASSIGNED	UNASSIGNED	Q			W			E			R			UNASSIGNED		U			I				O			P			UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	SCROLL_LOCK
	strobe	PE5		UNASSIGNED	UNASSIGNED	1			2			3			4			F10				7			8				9			0			F11			F12			PAGE_DOWN	END			PRINTSCREEN
	strobe	PD0		lalt		UNASSIGNED	BACK_QUOTE	F1			F2			5			F9				6			EQUAL			F8			MINUS		DELETE		fn1			PAGE_UP		HOME		UNASSIGNED
	strobe	PD1		UNASSIGNED	LSHIFT		TAB			lctrl		F3			T			BACKSPACE		Y			RIGHT_BRACE		F7			LEFT_BRACE	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED
	strobe	PD4		UNASSIGNED	UNASSIGNED	ESC			UNASSIGNED	F4			G			F5				H			F6				UNASSIGNED	QUOTE		UNASSIGNED	UNASSIGNED	UNASSIGNED	UP			lgui
end

layerblock
	fn1 		1		# Media layer
endblock


# Media Layer

remapblock
layer 1
	
	esc				system_power		# Power Button
	back_quote		europe_2			# Dat ISO key
	
	# 				Media keys across the number row	

	1				F14					# Decrease Display Brightness 
	2				F15					# Increase Display Brightness
	3				F10					# Exposé: All App Windows
	4				F12					# Dashboard
	5				F11					# Exposé: Show Desktop
	6				F9					# Exposé: All Windows in All Apps
	7				MEDIA_PREV_TRACK	# iTunes / media playback controls
	8				MEDIA_PLAY_PAUSE
	9				MEDIA_NEXT_TRACK
	0				MEDIA_MUTE			# Volume controls
	MINUS			MEDIA_VOLUME_DOWN
	EQUAL			MEDIA_VOLUME_UP

endblock


# Macros

macroblock

	# Embedded Numpad Lock

	macro SCROLL_LOCK shift
	PRESS NUM_LOCK
	PRESS SELECT_1
	endmacro


# Double Shift = Caps Lock

	macro lshift rshift
	press caps_lock
	endmacro

	macro rshift lshift
	press caps_lock
	endmacro


# Two Mod >> Three Mod Macros
# To avoid these, press right Command instead of Left Command.
# They only apply to left.
	
	# Option + Command + V = Jumpcut trigger, for rollover and ergonomics!

	macro v lalt lgui
	push_meta set_meta lctrl
	press v
	pop_meta
	endmacro


	# Control + Command + 8 = Invert colours mode

	macro 8 lalt lgui
	push_meta set_meta lctrl
	press 8
	pop_meta
	endmacro
	

	# Control + Command + I = Isolator trigger (Ignored on Shift, because of Shift+Command+Option+I Isolator preferences.)

	macro I lalt lgui -shift
	push_meta set_meta lctrl
	press I
	pop_meta
	endmacro

	
	# Control + Command + N = New Notational Velocity Note / New Audio Recording

	macro N lalt lgui
	push_meta set_meta lctrl
	press N
	pop_meta
	endmacro
	

	# Right Command + Backtick = ISO style window cycling (These two are crafty enough not to trigger in normal setup.)

	macro back_quote rgui
	press europe_2
	endmacro


	# Left Command + Backtick = ANSI style window cycling	

	macro europe_2 lgui
	press back_quote
	endmacro


endblock

# Embedded Numpad

ifselect 1
remapblock
	U 					PAD_4
	I 					PAD_5
	O 					PAD_6
	J 					PAD_1
	K 					PAD_2
	L 					PAD_3
	M 					PAD_0
	7 					PAD_7
	8 					PAD_8
	9 					PAD_9
	PERIOD 				PAD_PERIOD
	SLASH 				PAD_SLASH
	SEMICOLON 			PAD_ASTERIX
	MINUS 				PAD_MINUS
	EQUAL 				PAD_PLUS
	ENTER 				PAD_ENTER
endblock

# And return…?

ifselect any
# = comments, of course. (Just like C's //)

And everything after the matrix block is fancy complex stuff you don't even need to care about. Only the matrix is mandatory. Everything else in that code is for advanced stuff, which you might want to try later of course. Namely layers and macros.
Ok so i had some time to myself today and decided to give my keyboard another go. So i read through the docs word for word.I configured my config file and ran the program. It told me that I had and invalid command at line 4 (i.e the first line of code). So I decided to run yours. Same issue. Invalid command at line 4. What the heck and i doing wrong?

User avatar
Muirium
µ

16 Jul 2015, 09:37

Try using the scas and scwr utilities from the controller instead of the converter. They are subtly different. And makes sure to use the pin numbering from the Teensy 2++. My config is for its little brother.

iandoug

16 Jul 2015, 13:14

Thanks for this discussion, will come in very handy :-)

Davsmith4

16 Jul 2015, 20:02

Muirium wrote: Try using the scas and scwr utilities from the controller instead of the converter. They are subtly different. And makes sure to use the pin numbering from the Teensy 2++. My config is for its little brother.

Ok progress is being made. It is now assembling the program but when it goes to write it it sawys converter not found. This is in spite of the fact that I have the converter. Is it supposed to be in a specific place?

User avatar
Muirium
µ

16 Jul 2015, 20:13

Nope. Never had that myself. But you're on Windows… expect a rough ride. Hopefully Halvar or Andy or someone can answer. I haven't touched it in a decade.

Davsmith4

16 Jul 2015, 23:03

Muirium wrote: Nope. Never had that myself. But you're on Windows… expect a rough ride. Hopefully Halvar or Andy or someone can answer. I haven't touched it in a decade.

Well thats encouraging :P
WEll all i have to figure out is that last step. Progress is progress at this point. Thanks for your help. :D

User avatar
Muirium
µ

16 Jul 2015, 23:32

Let's just check: you did already install the converter firmware .hex file on your Teensy using the Teensy Loader app, right?

That must be installed and running, otherwise scas will never find it.

Davsmith4

17 Jul 2015, 06:15

Muirium wrote: Let's just check: you did already install the converter firmware .hex file on your Teensy using the Teensy Loader app, right?

That must be installed and running, otherwise scas will never find it.
Yep but I found the issue. I had to take the teeny out of programming mode to run the tools. I guess I jsut assumed it had to be in that mode since I was writing configs for it :P
Thanks for you help im off to go do up the full matrix for it :D

User avatar
Muirium
µ

17 Jul 2015, 17:07

That's the stuff.

Soarer's controller (and converter) is something like a little robot that you send commands to. It must be up and running or your commands won't get anywhere. All config editing is done this way. The firmware remains the same.

While different model than Hasu's and other firmwares. Those you do have to nuke every time you change something. I like Soarer's way better. Especially the lack of real code to mess up!

Davsmith4

18 Jul 2015, 06:54

Muirium wrote: That's the stuff.

Soarer's controller (and converter) is something like a little robot that you send commands to. It must be up and running or your commands won't get anywhere. All config editing is done this way. The firmware remains the same.

While different model than Hasu's and other firmwares. Those you do have to nuke every time you change something. I like Soarer's way better. Especially the lack of real code to mess up!
Yeah I tried using TMK and I still have a few errors to work out with it. But as far as ease of use goes sorars is far and away the better choice imo.

Davsmith4

19 Jul 2015, 03:48

Davsmith4 wrote:
Muirium wrote: That's the stuff.

Soarer's controller (and converter) is something like a little robot that you send commands to. It must be up and running or your commands won't get anywhere. All config editing is done this way. The firmware remains the same.

While different model than Hasu's and other firmwares. Those you do have to nuke every time you change something. I like Soarer's way better. Especially the lack of real code to mess up!
Yeah I tried using TMK and I still have a few errors to work out with it. But as far as ease of use goes sorars is far and away the better choice imo.

Keyboard completed. THanks for the help ;)
Here is the link to my build if you are interested!
http://linustechtips.com/main/topic/410 ... davsmith4/

Post Reply

Return to “Keyboards”