geekhack
geekhack Projects => Making Stuff Together! => Topic started by: ddlawrence 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
-
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.
-
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
-
I think this is a cool idea! Keep us posted!
-
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 (http://deskthority.net/wiki/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
-
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
-
oh I just post a thread concerning this..
https://geekhack.org/index.php?topic=75930.0
this is what you are looking for?
-
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
-
There are lots of keypads made for the GPIO on the raspberry pi. You might want to start there for examples.
-
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.
-
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
-
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