Re: simulating chorded keyboards

2014-10-18 Thread David Rysdam
Matt Minuti  writes:
> One of the bonus points of using an arduino is that he can just hook up as
> many keys as he wants, in whatever kind of layout he wants, and then have
> the arduino appear to be a keyboard.  

Yep, this is the plan. I cleaned out a bunch a few weeks ago because
"nobody's doing any of this electronics stuff" and NOW he wants to do
Arduino. Fortunately I seem to have kept all the vital pieces (boards,
wire, breadboards, etc).
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-18 Thread Matt Minuti
One of the bonus points of using an arduino is that he can just hook up as
many keys as he wants, in whatever kind of layout he wants, and then have
the arduino appear to be a keyboard.  No need for any of this NKRO stuff,
even, since the arduino could interpret the keypresses and send the
appropriate character/code to the OS, as if he just pushed that key on a
normal keyboard! See http://arduino.cc/en/Reference/MouseKeyboard for some
info and to see how simple the "make it look like a keyboard to the OS"
part is. Quite often as simple as just hacking away at one of the bundled
examples, or in this case, that's at least a simple place to start.

The electronics would be dead simple, since there's not that many keys
needed. This is all the wiring he'd need to know:
http://arduino.cc/en/tutorial/button. Sure, there's no debouncing, but that
can be done in either software or hardware once he's got something working
as a proof-of-concept.

On Fri, Oct 17, 2014 at 7:26 AM, David Rysdam  wrote:

> Paul Beaudet  writes:
> > You might be able to get 7 if one of the keys is a modifier like ctrl alt
> > meta or shift
> >
> > Still likely the keyboard, one adventurous way to check is to open up the
> > keyboard and
> > see if there is a diode for every key. If not that, well that explains
> your
> > 3KRO.
> > What is great, is that you can probably find one that does, near someones
> > trash can.
> > Might have to research to find the right models though.
> >
> > I read this a while back that cleared some of my questions.
> > http://blog.komar.be/how-to-make-a-keyboard-the-matrix/
> >
> > Unapologetically written by an EE.. might want to skip to the section
> > before diode part.
>
> I'm not an EE but I have taken small roles in some television
> productions, so I skimmed and got the gist. The real key is finding the
> googleable term "NKRO".
>
> Looks like these keyboards are about $100-$150. That seems a little
> pricey for a fiddling around experiment unless I can find one lying
> around somewhere. Alternatively, I see there are some keypads out there
> with the diodes to allow 10KRO or NKRO for using with an arduino.
>
> In a sense that's exactly what he wants, but I suspect that practically
> speaking it's going to kill his project since he doesn't know anything
> about electronics and I dunno if I want to spend the time being his
> hardware engineer. We'll see.
> ___
> gnhlug-discuss mailing list
> gnhlug-discuss@mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-17 Thread David Rysdam
Paul Beaudet  writes:
> You might be able to get 7 if one of the keys is a modifier like ctrl alt
> meta or shift
>
> Still likely the keyboard, one adventurous way to check is to open up the
> keyboard and
> see if there is a diode for every key. If not that, well that explains your
> 3KRO.
> What is great, is that you can probably find one that does, near someones
> trash can.
> Might have to research to find the right models though.
>
> I read this a while back that cleared some of my questions.
> http://blog.komar.be/how-to-make-a-keyboard-the-matrix/
>
> Unapologetically written by an EE.. might want to skip to the section
> before diode part.

I'm not an EE but I have taken small roles in some television
productions, so I skimmed and got the gist. The real key is finding the
googleable term "NKRO".

Looks like these keyboards are about $100-$150. That seems a little
pricey for a fiddling around experiment unless I can find one lying
around somewhere. Alternatively, I see there are some keypads out there
with the diodes to allow 10KRO or NKRO for using with an arduino.

In a sense that's exactly what he wants, but I suspect that practically
speaking it's going to kill his project since he doesn't know anything
about electronics and I dunno if I want to spend the time being his
hardware engineer. We'll see.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-16 Thread Paul Beaudet
>Huh, that doesn't really work either. I can get up to 6, but I still
>have to choose carefully (or something). Maybe the Linux keyboard driver
>is the real problem? Or the keyboard hardware itself? Or maybe just my
>program, which I will admit is hacked together.

You might be able to get 7 if one of the keys is a modifier like ctrl alt
meta or shift

Still likely the keyboard, one adventurous way to check is to open up the
keyboard and
see if there is a diode for every key. If not that, well that explains your
3KRO.
What is great, is that you can probably find one that does, near someones
trash can.
Might have to research to find the right models though.

I read this a while back that cleared some of my questions.
http://blog.komar.be/how-to-make-a-keyboard-the-matrix/

Unapologetically written by an EE.. might want to skip to the section
before diode part.

^---mean that in a faltering way.. and sarcasticly as some who appreciates
more of a dumb down.

On Thu, Oct 16, 2014 at 7:24 PM, David Rysdam  wrote:

> Tom Buskey  writes:
> > Does the USB HID simultaneous key limit apply to a MIDI-> usb adapter?
> > They adapters are pretty cheap nowadays.
> >
> > Then you need a your chording keyboard to speak MIDI.
>
> So this is interesting. Evan, the one commissioned to write the program,
> reported that he could only get *3* simultaneous keys out. I tried my
> semi-independent program and I can partially confirm this. I can always
> get 3, but if I choose carefully I can get up to 6. I have to...scatter
> the keys across the keyboard more evenly? Or choose different rows? I'm
> not sure what the pattern is yet, although it doesn't matter because:
>
> Kyle's scheme needs at least 7 but he'd prefer 10 keys. So maybe MIDI is
> the way to go. Or PS2, if I can find a keyboard and a hole to plug it
> into. Oh wait, HIS computer has PS2, so that's OK. And the flea
> market/freecycle/people at work probably have tons of PS2 keyboards
> they'd love to give away.
>
> Oh ho ho! His computer actually *has* a PS2 keyboard already attached!
> Imma try it now.
>
> ...
>
> Huh, that doesn't really work either. I can get up to 6, but I still
> have to choose carefully (or something). Maybe the Linux keyboard driver
> is the real problem? Or the keyboard hardware itself? Or maybe just my
> program, which I will admit is hacked together.
>
> I'm attaching it for comment. I based it on something I found
> online. Compile with
>
> gcc -o keychord keychord.c -lncurses
>
> and run like
>
> sudo ./keychord /dev/input/
>
>
>
> Really, there should be no limitation. I guess it's because they
> keyboard has to report "repeat" when you hold a key down. But with our
> own electronics, we can define the protocol to just detect edges, so no
> numerical limit would exist--just send one at a time, every time.
>
> ___
> gnhlug-discuss mailing list
> gnhlug-discuss@mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-16 Thread David Rysdam
Tom Buskey  writes:
> Does the USB HID simultaneous key limit apply to a MIDI-> usb adapter?
> They adapters are pretty cheap nowadays.
>
> Then you need a your chording keyboard to speak MIDI.

So this is interesting. Evan, the one commissioned to write the program,
reported that he could only get *3* simultaneous keys out. I tried my
semi-independent program and I can partially confirm this. I can always
get 3, but if I choose carefully I can get up to 6. I have to...scatter
the keys across the keyboard more evenly? Or choose different rows? I'm
not sure what the pattern is yet, although it doesn't matter because:

Kyle's scheme needs at least 7 but he'd prefer 10 keys. So maybe MIDI is
the way to go. Or PS2, if I can find a keyboard and a hole to plug it
into. Oh wait, HIS computer has PS2, so that's OK. And the flea
market/freecycle/people at work probably have tons of PS2 keyboards
they'd love to give away.

Oh ho ho! His computer actually *has* a PS2 keyboard already attached!
Imma try it now.

...

Huh, that doesn't really work either. I can get up to 6, but I still
have to choose carefully (or something). Maybe the Linux keyboard driver
is the real problem? Or the keyboard hardware itself? Or maybe just my
program, which I will admit is hacked together.

I'm attaching it for comment. I based it on something I found
online. Compile with 

gcc -o keychord keychord.c -lncurses

and run like

sudo ./keychord /dev/input/

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

void handler (int sig)
{
	printf ("nexiting...(%d)n", sig);
	exit (0);
}

void perror_exit (char *error)
{
	perror (error);
	handler (9);
}

int main (int argc, char *argv[])
{
	struct input_event ev[64];
	int fd, rd, value, size = sizeof (struct input_event),
		kbdwidth=15, row, col;
	char name[256] = "Unknown", ch;
	char *device = NULL;

	//Setup check
	if (argv[1] == NULL){
		printf("Please specify (on the command line) the path to the dev event interface devicen");
		exit (0);
	 }

	if ((getuid ()) != 0)
		printf ("You are not root! This may not work...n");

	if (argc > 1)
		device = argv[1];

	//Open Device
	if ((fd = open (device, O_RDONLY)) == -1)
		printf ("%s is not a vaild device.n", device);

	//Print Device Name
	ioctl (fd, EVIOCGNAME (sizeof (name)), name);
	printf ("Reading From : %s (%s)n", device, name);

	fflush(stdout);

	initscr();
	noecho();
	curs_set(0);
	refresh();
	while (1){
		/* seems to be some junk (bounce?) in the first event and the
		   third one is always 0, so just use the second */
		if ((rd = read (fd, ev, size * 3)) < size)
			perror_exit ("read()");

		/* printw("\n"); */
		/* printw("type (1 = a key event): %u\n", ev[1].type); */
		/* printw("code (key code, see linux/input.h): %u\n", ev[1].code); */
		/* printw("value (0 = up, 1 = down): %d\n", ev[1].value); */

		if (ev[1].type != 1) continue;

		// keycodes seem to roughly follow layout on actual keyboard
		row = 4*(ev[1].code/kbdwidth);
		col = 10*(ev[1].code % kbdwidth);
		switch(ev[1].code) {
		  case KEY_A: ch = 'a'; break;
		  case KEY_B: ch = 'b'; break;
		  case KEY_C: ch = 'c'; break;
		  case KEY_D: ch = 'd'; break;
		  case KEY_E: ch = 'e'; break;
			  // absolutely no idea why KEY_F doesn't work...
		  case 33: ch = 'f'; break;
		  case KEY_G: ch = 'g'; break;
		  case KEY_H: ch = 'h'; break;
		  case KEY_I: ch = 'i'; break;
		  case KEY_J: ch = 'j'; break;
		  case KEY_K: ch = 'k'; break;
		  case KEY_L: ch = 'l'; break;
		  case KEY_M: ch = 'm'; break;
		  case KEY_N: ch = 'n'; break;
		  case KEY_O: ch = 'o'; break;
		  case KEY_P: ch = 'p'; break;
		  case KEY_Q: ch = 'q'; break;
		  case KEY_R: ch = 'r'; break;
		  case KEY_S: ch = 's'; break;
		  case KEY_T: ch = 't'; break;
		  case KEY_U: ch = 'u'; break;
		  case KEY_V: ch = 'v'; break;
		  case KEY_W: ch = 'w'; break;
		  case KEY_X: ch = 'x'; break;
		  case KEY_Y: ch = 'y'; break;
		  case KEY_Z: ch = 'z'; break;
		  default: ch = ' ';
		}

		mvaddch(row, col, ch|(ev[1].value?A_REVERSE:0));

		refresh();
	}
	endwin();

	return 0;
}

Really, there should be no limitation. I guess it's because they
keyboard has to report "repeat" when you hold a key down. But with our
own electronics, we can define the protocol to just detect edges, so no
numerical limit would exist--just send one at a time, every time.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-16 Thread Bill Freeman
Production is always a separate issue.  MIDI is a real possibility for
research.

A physical keyboard with capacitive switches can probably support being N
key roll over scanned by a custom micro controller code, even if the chip
the keyboard originally had doesn't support N key roll over.  The old Hall
effect switch keyboards can probably support N key rollover scanning as
well, though again, the supplied chip may not.  Keyboards using hard switch
contacts do not support N key roll over unless they also have a series
diode per key.

On Thu, Oct 16, 2014 at 3:16 PM, David Rysdam  wrote:

> Tom Buskey  writes:
> > Then you need a your chording keyboard to speak MIDI.
>
> It's probably ridiculous to require, for instance, school computers to
> have MIDI just so Kyle can use his NerdTyper (I made up that name just
> now, but I kinda like it). Instead, an active (in the sense of "has a
> CPU") device is probably the way to go so it can emulate a real
> keyboard.
> ___
> gnhlug-discuss mailing list
> gnhlug-discuss@mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-16 Thread Tom Buskey
My MIDI device (input & output) was $5.60 on Amazon including shipping.  If
it adapts via USB correctly you just bury the adapter inside the keyboard.

On Thu, Oct 16, 2014 at 3:16 PM, David Rysdam  wrote:

> Tom Buskey  writes:
> > Then you need a your chording keyboard to speak MIDI.
>
> It's probably ridiculous to require, for instance, school computers to
> have MIDI just so Kyle can use his NerdTyper (I made up that name just
> now, but I kinda like it). Instead, an active (in the sense of "has a
> CPU") device is probably the way to go so it can emulate a real
> keyboard.
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-16 Thread David Rysdam
Tom Buskey  writes:
> Then you need a your chording keyboard to speak MIDI.

It's probably ridiculous to require, for instance, school computers to
have MIDI just so Kyle can use his NerdTyper (I made up that name just
now, but I kinda like it). Instead, an active (in the sense of "has a
CPU") device is probably the way to go so it can emulate a real
keyboard.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-16 Thread Bill Freeman
One hopes not.

If memory serves, MIDI is asynchronous serial at 125,000 bits per second
(1/16 or a 2MHz crystal?), send using current loop.

Thus it should be a byte stream at the /dev level, with interpretation as
MIDI data being done at main program level, rather than device driver level.

That is, it should present like a serial port.

And if you have a serial port that supports the funny baud rate (or
something close enough), you could conceivably build a current loop to
RS-232 level translator.

What I don't remember is whether the DC isolation occurs in the sender or
in the receiver.  Probably in the receiver, so you may be stuck providing
and opto-isolator, like official MIDI devices do.

On Thu, Oct 16, 2014 at 2:48 PM, Tom Buskey  wrote:

> Does the USB HID simultaneous key limit apply to a MIDI-> usb adapter?
> They adapters are pretty cheap nowadays.
>
> Then you need a your chording keyboard to speak MIDI.
>
> On Wed, Oct 15, 2014 at 8:17 PM, David Rysdam  wrote:
>
>> Joshua Judson Rosen  writes:
>> > How about MIDI?
>>
>> When I was about to hit "reply", I was going to say "I dunno, we haven't
>> tried it yet." But as I did, I had a thought (which maybe was your
>> intent): MIDI has a chording keyboard input.
>>
>> Of course, nobody has MIDI
>> ___
>> gnhlug-discuss mailing list
>> gnhlug-discuss@mail.gnhlug.org
>> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>>
>
>
> ___
> gnhlug-discuss mailing list
> gnhlug-discuss@mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-16 Thread Tom Buskey
Does the USB HID simultaneous key limit apply to a MIDI-> usb adapter?
They adapters are pretty cheap nowadays.

Then you need a your chording keyboard to speak MIDI.

On Wed, Oct 15, 2014 at 8:17 PM, David Rysdam  wrote:

> Joshua Judson Rosen  writes:
> > How about MIDI?
>
> When I was about to hit "reply", I was going to say "I dunno, we haven't
> tried it yet." But as I did, I had a thought (which maybe was your
> intent): MIDI has a chording keyboard input.
>
> Of course, nobody has MIDI
> ___
> gnhlug-discuss mailing list
> gnhlug-discuss@mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-15 Thread Bill Freeman
I've got (unless my son tossed it) an old Casio keyboard that no longer
makes noise, but the keys to midi out stuff may still work.  You can, of
course wire the switches in a QWERTY keyboard in parallel with the keys.
I'll be at the house to check for it on the 24th.  You still need a midi
interface.

On Wed, Oct 15, 2014 at 8:17 PM, David Rysdam  wrote:

> Joshua Judson Rosen  writes:
> > How about MIDI?
>
> When I was about to hit "reply", I was going to say "I dunno, we haven't
> tried it yet." But as I did, I had a thought (which maybe was your
> intent): MIDI has a chording keyboard input.
>
> Of course, nobody has MIDI
> ___
> gnhlug-discuss mailing list
> gnhlug-discuss@mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-15 Thread David Rysdam
Joshua Judson Rosen  writes:
> How about MIDI?

When I was about to hit "reply", I was going to say "I dunno, we haven't
tried it yet." But as I did, I had a thought (which maybe was your
intent): MIDI has a chording keyboard input. 

Of course, nobody has MIDI
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-15 Thread Joshua Judson Rosen
David Rysdam  writes:
>
> Paul Beaudet  writes:
> > USB hid can only report 6 keys at a time and some modifiers, which would be
> > fine for most chorded applications
> > except for the fact that, the keyboards that any given one of us has likely
> > fails to report more than
> > 3 keys at one time depending on which keys are being chorded.
>
> Oho, I didn't know either of these things.

How about MIDI?

-- 
"'tis an ill wind that blows no minds."
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-15 Thread David Rysdam
Paul Beaudet  writes:
> USB hid can only report 6 keys at a time and some modifiers, which would be
> fine for most chorded applications
> except for the fact that, the keyboards that any given one of us has likely
> fails to report more than
> 3 keys at one time depending on which keys are being chorded.

Oho, I didn't know either of these things. Fortunately, he is
gravitating towards a design with purpose-built hardware and in-line
Arduino. The latter due to not wanting to write device drivers, etc and
the former because he wants to be able to put the buttons right where he
needs them.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread Paul Beaudet
Okay I have already put in a lot of pain in suffering over wanting to do
David's son wants to do
 so I feel obligated to divulge more.

Typically usb and laptop keyboards will likely fail to meet his needs

USB hid can only report 6 keys at a time and some modifiers, which would be
fine for most chorded applications
except for the fact that, the keyboards that any given one of us has likely
fails to report more than
3 keys at one time depending on which keys are being chorded.
(not the like the convenient keys to decent hand placement). PS/2 "COULD"
handle more without hacks
 but, who has a native PS/2 port on their machines now and days?
Like mentioned before to over come this you will need an "NKRO" ( N key
roll-over) or
Keyboard that is designed properly as opposed to the cheap stuff that most
of us have. These can
be anywhere between $40-$400 (yes, people do buy mech keyboards for that
much).
Though you might be able to find a cheaper old PS/2 that is -> IBM spec <-
that is suitable,
then use a usb converter or something like this -
https://www.adafruit.com/products/1136
and then use a leonardo or mircro to pipe over the keys as an emulated
keyboard. Easy code.
I also rebuilt some firmware to have the arduino do the conversion wiring
ps2 to it directly,
but its kinda unreliable, so I recommend the converter
Even at that point I think building the layout on the Arduino might be the
way to go.
Mainly because of the effort in programming around the 6 key limit.
Yes people have done it by having one device report as multiple keyboards.
If this is the way David wants to go, providing a helping hand.
Configuring the TKM firmware with a teensy would be the way to go.
A lot of good stuff has been build in teensy land, not for the faint of
heart though.

Unfortunately this as much of a hardware challenge as is finding software
that might make
it a tackleable for David's son to make his own layout. The Arduino
suggestion may seem like
 the hard road for young person who might less keen on C programming, but
if you really want
it, you do what you got to do. Good chance to hook him into a valuable
skill young, wish I found
my hook into the programming world along time ago. My lack of experience is
a real bane to my
efforts now.
 The arduino leo was actually what I found to be the most simple approach
based on what I
had available to me and my complete inability to program at the time I
started the jesterType project.

The chorded keyer was second to blinking the LED for me... little bit of a
leap, but I think we
just established the learning experience is important [?]
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread David Rysdam
John Abreau  writes:
> If the purpose is to play and learn, rather than to solve a problem, then
> there's nothing wrong with inventing your own programming language.

I agree with the explicit statement above, but I disagree with the
implicit statement that other goals mean there is something wrong with
inventing your own programming language.

___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread John Abreau
If the purpose is to play and learn, rather than to solve a problem, then
there's nothing wrong with inventing your own programming language.

On Tue, Oct 14, 2014 at 9:07 PM, David Rysdam  wrote:

> John Abreau  writes:
> > Same logic could be applied to programming. Why write in C++, Java,
> > Perl, or Python, when he could have the fun of designing his own
> > programming language from scratch?
>
> You say this like it's a bad idea for a 13 year old to make things.
>
> > Heck, why not take it a step further and savor the joys of designing and
> > fabricating his own CPU? Or even reinvent the entire history of
> technology
> > right from the beginning with the earliest stone axe? Yabba dabba do!  :)
>
> Actually, he's already built (some of) his own CPU in Minecraft redstone.
>



-- 
John Abreau / Executive Director, Boston Linux & Unix
Email j...@blu.org / WWW http://www.abreau.net / PGP-Key-ID 0x920063C6
PGP-Key-Fingerprint A5AD 6BE1 FEFE 8E4F 5C23  C2D0 E885 E17C 9200 63C6
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread David Rysdam
John Abreau  writes:
> Same logic could be applied to programming. Why write in C++, Java,
> Perl, or Python, when he could have the fun of designing his own
> programming language from scratch?

You say this like it's a bad idea for a 13 year old to make things.

> Heck, why not take it a step further and savor the joys of designing and
> fabricating his own CPU? Or even reinvent the entire history of technology
> right from the beginning with the earliest stone axe? Yabba dabba do!  :)

Actually, he's already built (some of) his own CPU in Minecraft redstone.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread John Abreau
>Any time I try to show him other people's starts
>he waves them away because designing it is 99%
>of the fun.

Same logic could be applied to programming. Why write in C++, Java,
Perl, or Python, when he could have the fun of designing his own
programming language from scratch?

Heck, why not take it a step further and savor the joys of designing and
fabricating his own CPU? Or even reinvent the entire history of technology
right from the beginning with the earliest stone axe? Yabba dabba do!  :)


On Tue, Oct 14, 2014 at 6:53 PM, David Rysdam  wrote:

> Paul Beaudet  writes:
> > I'm more than willing to sit down with and help out anyone with a serious
> > interest in building typing devices to help people communicate more
> > efficiently.
>
> Thanks for the tips and the offer. Any time I try to show him other
> people's starts he waves them away because designing it is 99% of the
> fun.
> ___
> gnhlug-discuss mailing list
> gnhlug-discuss@mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>



-- 
John Abreau / Executive Director, Boston Linux & Unix
Email j...@blu.org / WWW http://www.abreau.net / PGP-Key-ID 0x920063C6
PGP-Key-Fingerprint A5AD 6BE1 FEFE 8E4F 5C23  C2D0 E885 E17C 9200 63C6
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread Paul Beaudet
>designing it is 99% of the fun.

hahahahaha so ironic, If he only knew what he was getting himself into.
Let him explore, I learn things the hard way too!

Functional design is what I consider to be my "core" talent and
have been pinned into the "learning computer science" aspect of the project
for the greater portion of the last couple of years. I wish I could sub out
the grind and
get to the 99% fun part.

Ultimately depends on what he wants to design, If its just the layout, I
have been intentionally
building my code as a skeleton for that type of thing making it as readable
as possible
for someone new or familiar with Arduino code. Wish I had built on someone
else's
code base, but like him I thought... "why, I want all the design control".
Which is somewhat
valid because other code I saw was proprietary and completely greek to me
at the time.

You might want to check out "Plover" If you do find a NKRO keyboard.
Plover is also open source. (and Python based!)

Make sure he documents his experiments, I would be interested in seeing
them.
Just posted an update to the tenkey device -
https://hackaday.io/project/1386/log/10446

On Tue, Oct 14, 2014 at 6:53 PM, David Rysdam  wrote:

> Paul Beaudet  writes:
> > I'm more than willing to sit down with and help out anyone with a serious
> > interest in building typing devices to help people communicate more
> > efficiently.
>
> Thanks for the tips and the offer. Any time I try to show him other
> people's starts he waves them away because designing it is 99% of the
> fun.
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread David Rysdam
Paul Beaudet  writes:
> I'm more than willing to sit down with and help out anyone with a serious
> interest in building typing devices to help people communicate more
> efficiently.

Thanks for the tips and the offer. Any time I try to show him other
people's starts he waves them away because designing it is 99% of the
fun.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread David Rysdam
Matt Minuti  writes:
> I'd strongly suggest looking at doing a little bit of hardware hacking via
> the Arduino Leonardo. It's trivially easy to make it show up as a generic
> USB HID keyboard, meaning no fancy driver concerns, no matter the OS.
>
> The keys could either be a handful (heh) of buttons laid out however he
> wants, or you could even use a PS/2 keyboard and have the Arduino interpret
> the keycodes and send the appropriate keypress signals via USB.

I actually suggested this, but he knows what I consider the bare minimum
of programming and even less electronics. Right now he's in an
exploratory phase. If he gets farther, I'll help him with an
Arduino/Pi/programmable keylogger and he can design and 3D print an
enclosure with keys.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread Paul Beaudet
Have been building chorded keyers for a couple of years now, Going to be
brief because I could go off on a real tangent about DIY keyboards.
If he is really interested I'll likely have test pcb boards in the future
and other opportunities. Ultimately I have been gunning to build a wearable
computing platform around wearable typing design idea I've been stewing on
for a long time.

Most existing keyboards are poorly suited for chording, you'll probably
need to spend $80+ to get an keyboard without rollover/ghosting.

I have already written a lot of open source code for 5, 8, and 10 key
keyers for the leonardo and sparkcore that can be found on Github.
Need to update the project page with the 10 key keyer, but the following
has links to my github and some of the basic ideas involved.
https://hackaday.io/project/1386-Neotype%3A-Haptic-Interfacing. Goes a
little further than just chording. (-;
Will warn that its hard to get one of these up and running, never-mind
actually learning how to use one.
I'm more than willing to sit down with and help out anyone with a serious
interest in building typing devices to help people communicate more
efficiently.

On Tue, Oct 14, 2014 at 3:16 PM, Matt Minuti  wrote:

> I'd strongly suggest looking at doing a little bit of hardware hacking via
> the Arduino Leonardo. It's trivially easy to make it show up as a generic
> USB HID keyboard, meaning no fancy driver concerns, no matter the OS.
>
> The keys could either be a handful (heh) of buttons laid out however he
> wants, or you could even use a PS/2 keyboard and have the Arduino interpret
> the keycodes and send the appropriate keypress signals via USB.
>
> A student of mine once made a Minecraft griefing controller: it basically
> had QWEASD, spacebar, shift, and a dedicated spamming button. The buttons
> worked as expected, sending keypresses, but the spam button sent the
> necessary keypresses to go into "talk" mode, write some nonsense like
> "HAHAHA n00b, you can't get me lol!!," and send it to everyone on the
> server. I'm sure the possibilites for good are even greater than such
> evil... :)
>
> On Mon, Oct 13, 2014 at 2:22 PM, David Rysdam  wrote:
>
>> Remember the MIDI son? This is a different son, Kyle, with a different
>> project. He's interested in chorded keyboards. You can find these here
>> and there online, but he wants to design his own. To start, he wants to
>> simulate one with a regular keyboard.
>>
>> We've been looking into ways to let him flexibly define keyboard input
>> (chords, modifier keys, etc) but without requiring a ton of low-level
>> programming.
>>
>> 1) A simple game engine (pygame, e.g.) that reports "key down" and "key
>> up" events rather than simply delivering a pressed key via something
>> like read(), getchar(), etc. He needs to get between these events to
>> figure out the "current chord". Even pygame is more programming than he
>> really wants to do, though.
>>
>> 2) xkeycaps looks like the opposite of what I want, but it's described
>> so poorly I can't tell for sure. It looks like I can generate multiple
>> keysyms from a single key press, but not vice versa.
>>
>> 3) emacs! This was actually my first suggestion, since it does almost
>> everything he wants. Of course, he'd have to learn emacs first. However,
>> there's another problem that I'm not sure can be overcome. Aren't emacs
>> sequences limited such that you can't have one be a prefix of another?
>>
>> For instance, he'd like to be able to do this:
>>
>> 'i' key down followed by 'i' key up: 'i'
>> 'i' down followed by 'k' down followed by 'i' and 'k' both up: 'm'
>>
>> but with emacs you can have "i+k" mapped to m but then not 'i' mapped to
>> 'i'.
>> ___
>> gnhlug-discuss mailing list
>> gnhlug-discuss@mail.gnhlug.org
>> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>>
>
>
> ___
> gnhlug-discuss mailing list
> gnhlug-discuss@mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread Mark Komarinski
Second this.  Not all the Arduino family will do it but the Leonardo and 
Leonardo-compatible ones will.

-Mark

On October 14, 2014 3:16:17 PM EDT, Matt Minuti  wrote:
>I'd strongly suggest looking at doing a little bit of hardware hacking
>via
>the Arduino Leonardo. It's trivially easy to make it show up as a
>generic
>USB HID keyboard, meaning no fancy driver concerns, no matter the OS.
>
>The keys could either be a handful (heh) of buttons laid out however he
>wants, or you could even use a PS/2 keyboard and have the Arduino
>interpret
>the keycodes and send the appropriate keypress signals via USB.
>
>A student of mine once made a Minecraft griefing controller: it
>basically
>had QWEASD, spacebar, shift, and a dedicated spamming button. The
>buttons
>worked as expected, sending keypresses, but the spam button sent the
>necessary keypresses to go into "talk" mode, write some nonsense like
>"HAHAHA n00b, you can't get me lol!!," and send it to everyone on the
>server. I'm sure the possibilites for good are even greater than such
>evil... :)
>
>On Mon, Oct 13, 2014 at 2:22 PM, David Rysdam  wrote:
>
>> Remember the MIDI son? This is a different son, Kyle, with a
>different
>> project. He's interested in chorded keyboards. You can find these
>here
>> and there online, but he wants to design his own. To start, he wants
>to
>> simulate one with a regular keyboard.
>>
>> We've been looking into ways to let him flexibly define keyboard
>input
>> (chords, modifier keys, etc) but without requiring a ton of low-level
>> programming.
>>
>> 1) A simple game engine (pygame, e.g.) that reports "key down" and
>"key
>> up" events rather than simply delivering a pressed key via something
>> like read(), getchar(), etc. He needs to get between these events to
>> figure out the "current chord". Even pygame is more programming than
>he
>> really wants to do, though.
>>
>> 2) xkeycaps looks like the opposite of what I want, but it's
>described
>> so poorly I can't tell for sure. It looks like I can generate
>multiple
>> keysyms from a single key press, but not vice versa.
>>
>> 3) emacs! This was actually my first suggestion, since it does almost
>> everything he wants. Of course, he'd have to learn emacs first.
>However,
>> there's another problem that I'm not sure can be overcome. Aren't
>emacs
>> sequences limited such that you can't have one be a prefix of
>another?
>>
>> For instance, he'd like to be able to do this:
>>
>> 'i' key down followed by 'i' key up: 'i'
>> 'i' down followed by 'k' down followed by 'i' and 'k' both up:
>'m'
>>
>> but with emacs you can have "i+k" mapped to m but then not 'i' mapped
>to
>> 'i'.
>> ___
>> gnhlug-discuss mailing list
>> gnhlug-discuss@mail.gnhlug.org
>> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>>
>
>
>
>
>___
>gnhlug-discuss mailing list
>gnhlug-discuss@mail.gnhlug.org
>http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


Re: simulating chorded keyboards

2014-10-14 Thread Matt Minuti
I'd strongly suggest looking at doing a little bit of hardware hacking via
the Arduino Leonardo. It's trivially easy to make it show up as a generic
USB HID keyboard, meaning no fancy driver concerns, no matter the OS.

The keys could either be a handful (heh) of buttons laid out however he
wants, or you could even use a PS/2 keyboard and have the Arduino interpret
the keycodes and send the appropriate keypress signals via USB.

A student of mine once made a Minecraft griefing controller: it basically
had QWEASD, spacebar, shift, and a dedicated spamming button. The buttons
worked as expected, sending keypresses, but the spam button sent the
necessary keypresses to go into "talk" mode, write some nonsense like
"HAHAHA n00b, you can't get me lol!!," and send it to everyone on the
server. I'm sure the possibilites for good are even greater than such
evil... :)

On Mon, Oct 13, 2014 at 2:22 PM, David Rysdam  wrote:

> Remember the MIDI son? This is a different son, Kyle, with a different
> project. He's interested in chorded keyboards. You can find these here
> and there online, but he wants to design his own. To start, he wants to
> simulate one with a regular keyboard.
>
> We've been looking into ways to let him flexibly define keyboard input
> (chords, modifier keys, etc) but without requiring a ton of low-level
> programming.
>
> 1) A simple game engine (pygame, e.g.) that reports "key down" and "key
> up" events rather than simply delivering a pressed key via something
> like read(), getchar(), etc. He needs to get between these events to
> figure out the "current chord". Even pygame is more programming than he
> really wants to do, though.
>
> 2) xkeycaps looks like the opposite of what I want, but it's described
> so poorly I can't tell for sure. It looks like I can generate multiple
> keysyms from a single key press, but not vice versa.
>
> 3) emacs! This was actually my first suggestion, since it does almost
> everything he wants. Of course, he'd have to learn emacs first. However,
> there's another problem that I'm not sure can be overcome. Aren't emacs
> sequences limited such that you can't have one be a prefix of another?
>
> For instance, he'd like to be able to do this:
>
> 'i' key down followed by 'i' key up: 'i'
> 'i' down followed by 'k' down followed by 'i' and 'k' both up: 'm'
>
> but with emacs you can have "i+k" mapped to m but then not 'i' mapped to
> 'i'.
> ___
> gnhlug-discuss mailing list
> gnhlug-discuss@mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/


simulating chorded keyboards

2014-10-13 Thread David Rysdam
Remember the MIDI son? This is a different son, Kyle, with a different
project. He's interested in chorded keyboards. You can find these here
and there online, but he wants to design his own. To start, he wants to
simulate one with a regular keyboard.

We've been looking into ways to let him flexibly define keyboard input
(chords, modifier keys, etc) but without requiring a ton of low-level
programming.

1) A simple game engine (pygame, e.g.) that reports "key down" and "key
up" events rather than simply delivering a pressed key via something
like read(), getchar(), etc. He needs to get between these events to
figure out the "current chord". Even pygame is more programming than he
really wants to do, though.

2) xkeycaps looks like the opposite of what I want, but it's described
so poorly I can't tell for sure. It looks like I can generate multiple
keysyms from a single key press, but not vice versa.

3) emacs! This was actually my first suggestion, since it does almost
everything he wants. Of course, he'd have to learn emacs first. However,
there's another problem that I'm not sure can be overcome. Aren't emacs
sequences limited such that you can't have one be a prefix of another?

For instance, he'd like to be able to do this:

'i' key down followed by 'i' key up: 'i'
'i' down followed by 'k' down followed by 'i' and 'k' both up: 'm'

but with emacs you can have "i+k" mapped to m but then not 'i' mapped to
'i'.
___
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/