Author Topic: I2C keyboard  (Read 4031 times)

0 Members and 1 Guest are viewing this topic.

Offline ddlawrence

  • Thread Starter
  • Posts: 5
  • Location: Israel
    • bare metal programming
I2C keyboard
« on: Tue, 06 October 2015, 10:39:43 »
Hi, I am bringing up a bare metal system (no OS) on an ARM platform (beaglebone).  I want an I2C keyboard, and will make one if I have to. 
Open source of course.  Have any of you chaps done this? 
The reason is that many microcontrollers do not support USB. 
And it would be a cool accessory in the maker/IoT movement. 
I also would like a slim/low profile keyset.  Can anyone recommend one?
thanks............dd

Offline Findecanor

  • Posts: 5036
  • Location: Koriko
Re: I2C keyboard
« Reply #1 on: Tue, 06 October 2015, 13:29:08 »
The ErgoDox which is split in two halves uses a MCP23018 I/O expander in one of the halves, which the microcontroller talks to using i2c.
That I/O expander has only 16 GPIO pins (at most a 8×8 matrix), but you could use up to eight of them on a single bus.
There may be other I/O expanders that would be more suitable for your keyboard, depending on how you build it. Each half of the ErgoDox has a 7×7 matrix which made the MCP23018 not a too bad fit for it.

Offline ddlawrence

  • Thread Starter
  • Posts: 5
  • Location: Israel
    • bare metal programming
Re: I2C keyboard
« Reply #2 on: Thu, 08 October 2015, 06:09:13 »
Ok, nice.  Is there inter-compatibility between switches and keycaps among the suppliers?  I am looking for low profile keys like a notebook. 
thanks..........dd

Offline mrflow3r

  • Posts: 158
  • Location: Vancouver
    • T
Re: I2C keyboard
« Reply #3 on: Thu, 08 October 2015, 10:06:15 »
I think this is a cool idea! Keep us posted!
 

Offline Findecanor

  • Posts: 5036
  • Location: Koriko
Re: I2C keyboard
« Reply #4 on: Thu, 08 October 2015, 13:56:37 »
Ok, nice.  Is there inter-compatibility between switches and keycaps among the suppliers?  I am looking for low profile keys like a notebook. 
Among scissor-switches, no.
And.. it would be difficult for a hobbyist to build a one-off scissor-switch keyboard with a custom layout. That would require injection moulding and/or a metal press to make the back plane.

You could perhaps get a laptop keyboard and connect the membrane contacts - but remember that matrices for membrane keyboards are somewhat larger than for mechanical keyboards (that we use to make here) because they don't have diodes. If you don't have diodes then you would need to make the matrix sparser to avoid running into ghosting issues.

If you want a custom layout then you could look at Cherry ML, which is a low-profile (ish) mechanical keyboard switch. Easiest way to get switches and keycaps would be to buy a keyboard in the Cherry G84 series but the keycaps are smaller than normal.
I think only

Offline ddlawrence

  • Thread Starter
  • Posts: 5
  • Location: Israel
    • bare metal programming
Re: I2C keyboard
« Reply #5 on: Fri, 09 October 2015, 01:04:15 »
I think this is a cool idea! Keep us posted!
If u r interested, get involved!  baremetal.tech
and thanks 4 the tip on cherry ml..........dd
« Last Edit: Fri, 09 October 2015, 01:06:29 by ddlawrence »

Offline yoobe

  • Posts: 48
  • Location: Rolle, Switzerland
  • Yoobe
Re: I2C keyboard
« Reply #6 on: Fri, 09 October 2015, 03:50:16 »
oh I just post a thread concerning this..
https://geekhack.org/index.php?topic=75930.0

this is what you are looking for?
Yoobe

ErgoDox - Mx Brown
Filco Minila Air - Mx Red
RedScarfII+ VerC - Gateron White

Offline superbia

  • Posts: 133
  • Location: Republique de Croatie
Re: I2C keyboard
« Reply #7 on: Fri, 09 October 2015, 14:24:43 »
The beaglebone is a capable arm machine, and it has USB host capability.
Knowing that, you have some options:

#1 implement USB host on the Beaglebone

#2 make a converter that will convert USB to i2c/spi/usart/onewire (using a microcontroller that supports usb host)


#3 modify your keyboard to export i2c/spi/usart/onewire

The downsides: #1 time #2 money + time #3 non-flexibility.
So with #1 and #2 you will be able to hook up any keyboard to it (which imo is sweet).

Hope that helped a bit
Keebio Iris 2.8 (Alps) X Colemak Mod-DH

Offline BlueNalgene

  • Posts: 739
  • Location: Oklahoma, USA
Re: I2C keyboard
« Reply #8 on: Fri, 09 October 2015, 14:30:05 »
There are lots of keypads made for the GPIO on the raspberry pi.  You might want to start there for examples.

Offline mrflow3r

  • Posts: 158
  • Location: Vancouver
    • T
Re: I2C keyboard
« Reply #9 on: Thu, 15 October 2015, 13:51:57 »
I think this is a cool idea! Keep us posted!
If u r interested, get involved!  baremetal.tech
and thanks 4 the tip on cherry ml..........dd
Well have u picked an MCU yet? It obviously needs I2C. And probably a bunch of gpios.
 

Offline twiddle

  • Posts: 165
    • Portfolio
Re: I2C keyboard
« Reply #10 on: Fri, 16 October 2015, 23:06:57 »
You could look at something like LPC11U6xxx mcus.. Supports both i2c and USB, optionally in crystal-less configuration for low-speed USB. USB support is provided by ROM-based drivers, so only minimal configuration is required to get HID running.
http://www.nxp.com/documents/application_note/AN11528.pdf <-- Bit of a feature overview here.
Farnell currently has them listed for $3.50 AUD each: http://au.element14.com/nxp/lpc11u67jbd48e/microcontroller-mcu-32-bit-cortex/dp/2402334

Offline ddlawrence

  • Thread Starter
  • Posts: 5
  • Location: Israel
    • bare metal programming
Re: I2C keyboard
« Reply #11 on: Thu, 22 October 2015, 11:17:39 »

Well have u picked an MCU yet? It obviously needs I2C. And probably a bunch of gpios.
[/quote]

For the prototype, I'll probably go with the Teensy, and the i/o expander by Microchip......dd