Help with creating hardware keyboard - Hardware Hacking General

Hi everyone. I'm an Engineer and I graduated back in 2007. Since then, I've been a Systems Engineer working software and I'm fairly clueless in modern hardware development. I'd like to start playing around with android hardware creations. My first desire is to make a keyboard. I want it to be as simple as possible, to work through the usb and include a pass through so as to allow charging and other peripherals, and to have it's own power source that would be charged while charging the phone.
I'm not worrying about the casing/buttons/manufacturing right now, I just wand to get the hardware working. Anyone have any suggestions for getting started? I've found a few of the development boards through the android developer site, but the look like a bit of overkill for my needs. I do have experience with PIC microprocessors and so the pic one doesn't look bad.
Basically, what would you recommend and what resources should I be looking at to make this happen?

Can't comment on specifics regarding the keyboard, but I've programmed a lot on PICs and recently moved to an Arduino, which I've found much quicker to develop with. I can't post a link as I'm < posts, but google "Android Open Accessory Development Kit".

With cheap keyboards selling for under $5 I don't really see the point.
If you wanted to do some custom USB HID device, that's a bit different.
There are some things already to support this easily: http://www.ultimarc.com/JShopServer/section.php?xSec=13
If your goal is just to make a wired docking station,
I'd just use a back-powering hub and an off-the-shelf USB keyboard.

It has been done, look up "Motorola lapdock" and "USB otg android" and "USB host android".
Sent from my MB855 using xda premium

honestly, the whole "making a keyboard" thing is just so I can get going understanding hardware development and USB access. I've got some ideas for accessories I'd prefer not to discuss, but I still want to learn the tools I need to do this.
Consequently, I'm looking for a way to learn to interface a simple hardware accessory with an android system. I'll probably need software and hardware.

so no more replys?

If you are just looking to experiment with creating USB hardware, the ATTINYs have V-USB, a software implementation of a USB stack. It should be fine for playing around with simple HID stuff. Some PICs have USB support too, but this V-USB will run on some of the cheapest attinys, if cost is a concern.
Google "HIDKeys - a USB Keyboard" for a a simple USB HID keyboard project which you can base your own code off of.

thanks :angel:

Related

USB data input use on a non USB Host smartphone

Hy everyone,
First of all, thanks for this great forum which never fails to impress me.
I have a question which some of you might help answering: I'm wondering if it's possible to use the mini-usb port of my smartphone to get some data input.
Let me explain myself a bit more: I know that smartphones (HTC Touch for me) aren't USB hosts. However, the data connexions are still present.
Here's what I'd like to do: even though the smartphone can't control another peripheral, I'd like that external peripheral to send data to the smartphone, and the smartphone to use that data to control the screen. That would give an alternative way of controlling the screen.
The input would come from another touch surface, so my guess is that using the data to control the screen shouldn't be much of a problem.
So? Any idea if it's possible? What kind of platform/language would be nice to do that? C#?
(I have JAVA development experience, but I'm quite a newbie as far as Win Mobile devs are concerned. I'm willing to learn though
I think I searched this forum (and others) quite extensively before posting. If by any chance I missed a related post, I'd be glad to know about it
No ideas? Anyone?
Last up before I stop...
prob. not
i dont think that is technically possible. i think one has to be the host, and that host provides power. so to power the input device(im thinking keyboard) it would need the smartphone/ppc to be a host....
but i have no clue in this area...maybe someone could prove me wrong?
Hey, thanks for your answer.
The powering issues could be overcomed by cutting the cables and giving power from an external power source (I think several people have tried doing it, I need to find the links again). By the way, the peripheral itself is plugged on 110V, so there's plenty of available power
I'm not seeking here to "control" the device, just to aquire the signal it's sending... Does that seem feasible, or does the peripheral need to be somehow "activated" by a Host before sending anything?
Well, in order to get data, the host must ask the slave each time it needs some. Other things must be done by the host, like usb enumeration. That means there has to be a host or it won't work, unless you use usb on-the-go, but I do not know many devices that support it.
according to the qualcomm website, the msm chipsets support otg

Is the USB master? Can I connect external HDD etc?

I wonder if the USB on the Nexus One allows me to connect an external hard drive. I'm only talking about data transmission with externally powered USB-devices. The N1 doesn't need to power USB-devices for me to be satisfied.
And if not: could the deficiency possibly be mended software-wise, or is it a limitation of the hardware itself?
Thanks beforehand!
no it cannot be the host. Read this on a google forum, someone posted the link as an answer to a similar question yesterday.
Thank you for your answer, britoso!
But oh, what a pitty!!!
Can't it possibly be fixed by booting with another software driver or something?
What's the point of removing this ability? It seems completely ridiculous. It gains nothing at all to "un-specify" USB host capability:
"Now, I have my files on this USB memory stick and here's the Nexus One. Oh, what's the use. Google didn't care at all about this kind of scenaria..."
Well, let's see what can be done with bulky wireless adapters and stuff like that then, to mend this unnecessary fail of the N1... I probably need to use a PC running Windows and a cable internet in order to have any use at all of the N1. Was this the purpose of this deliberate design "feature"?!?
this feature was not removed, but simply never implemented into the Android OS (afaik). if USB was host that means anything connected to it would have to draw power from the Nexus One's battery. Im sure HTC does not want this, because some things connected to USB can put incredible stress on a battery.
I thought the inability was due to a USB design that will allow charging, but doesn't allow hosting.
(at least that what I gathered about the n900 and why it couldn't act as a host.)
edit: nevermind nokia opted to skip on the go support to get the product out faster.
I don't know if there's a hardware limitation in place, but even if there isn't, the software does not support it.
There's an app for the n900 to add host support in the maemo repository. Don't know if it works though. I've always thought host support was due to the software.
Go here:
http://code.google.com/p/android/issues/detail?id=738
Sign in with your google ID. Vote for the feature by clicking the star.
(While you are there, click on "Back to list" and browse for other issues/features you care about and "star" them too...)
Its been accomplished on the Droid... Host mode works, but as there are no drivers, anything that runs over usb will turn on / charge but not connect.
http://www.engadget.com/2010/02/10/droid-gets-a-usb-hack-allowing-it-to-control-printers-and-camera/
mikecyber said:
Its been accomplished on the Droid... Host mode works, but as there are no drivers, anything that runs over usb will turn on / charge but not connect.
http://www.engadget.com/2010/02/10/droid-gets-a-usb-hack-allowing-it-to-control-printers-and-camera/
Click to expand...
Click to collapse
Thanks for posting this as I saw this on another site and came here to raise awareness. I've heard that someone got a USB keyboard working over USB host. Could someone try this out on their N1?

Future Things We Would Like for Elocity A7 (Hope Elocity/Google/Nvidia Reads)

1. Being able to use the USB port to connect to the P.C. and being able to transfer information.
2. Gingerbread since Elocity is stating that Honeycomb is out for the A7 due to multitouch "This is a downer)
3. Better support from Elocity like a forum to talk about our issues to the support group since no one wants to respond to phone calls
4. This Tablet has great Hardware and the only one who is making a difference is Dexter who Elocity should owe great gratitude since he has spent numerous hours making it a better device.
5. Google to add tablet support to the market place
6. Nvidia to step up to the plate and help Google with getting updates out to the tablet users.
Please post anything else you would like to see with this tablet in the future updates so that Elocity will read it here since they won't respond to any calls.
Add to this wish list:
Cifs
USB 3g/4g support
Working WPA2 Enterprise
Hope some more people have more to say as this is being sent to Elocitynow.com
I would like to see them release the kernel source / patches. They're obligated to by the GPL, but they've flat out ignored all my questions about it.
Some people have reported that they were told that an nVidia contract prevents releasing it, but that can't be true. Maybe some specific nVidia drivers need to be kept closed but not the Linux Kernel.
Other than what has already been asked for I would like to see either the specs for the dock connection or some type of powered speakers that you could just drop our device into. I really think our device would make a really nice multimedia station.
Sent from my A7-040 using Tapatalk
rdjack21 said:
Other than what has already been asked for I would like to see either the specs for the dock connection or some type of powered speakers that you could just drop our device into. I really think our device would make a really nice multimedia station.
Sent from my A7-040 using Tapatalk
Click to expand...
Click to collapse
I do think we will see a dock down the line. I believe it will share the same dock that will eventually be available for their new A7.x line (assuming that comes to fruition).
As for speakers... I personally doubt you'll see something from eLocity. Maybe a jack built into the dock. You could always just plug you computer speakers into the A7's audio jack.
rdjack21 said:
Other than what has already been asked for I would like to see either the specs for the dock connection or some type of powered speakers that you could just drop our device into. I really think our device would make a really nice multimedia station.
Sent from my A7-040 using Tapatalk
Click to expand...
Click to collapse
OHH i like that... maybe some kind of app that turns the screen into a radio/mp3/alarm clock function that would also charge it... that could be leading to something...
Tether function like Archos tabs. While they're at it, make sure it works with Blackberry.
Mouse
Unless I'm doing something wrong, I cannot get a mouse cursor to show up when I use a mouse. Because the tablet has hdmi capability I would love to see a mouse cursor to show up on the screen to use it to navigate via bluetooth on the big tv
Customer support that actually responds back!
swiggyswag said:
Unless I'm doing something wrong, I cannot get a mouse cursor to show up when I use a mouse. Because the tablet has hdmi capability I would love to see a mouse cursor to show up on the screen to use it to navigate via bluetooth on the big tv
Click to expand...
Click to collapse
The mouse cursor is not showing up. it works but it's like it wasn't designed actually have a little cursor running around the screen.
XBOX 360 PC Controller
There is a mod under the "Android Development" section that expands on Dexter's 1.1 mod. It allows for an XBOX 360 controller to be used. It works great on emulators. I am also able to move through icons, open programs, and open the search tab with the controller. If you had a wireless USB reciever for PC to use a 360 controller, then you could conceivably hook it up to the TV via HDMI and controll it from afar with a wireless 360 controller. Hope that helps!
We should focus on getting honeycomb working on the tablet ... I'm sure we can bypass that multitouch thing.
I agree, besides the Google Maps tilt function and Fruit Ninja, I didn't see anything in their demo today that screemed "hardware must have multi-touch"
No kernel source -> no roms -> no other things
5[Strogino] said:
No kernel source -> no roms -> no other things
Click to expand...
Click to collapse
We should then ask eLocity to give us what we need ... will help their sells and then try to port Honeycomb ...
masterfred said:
We should then ask eLocity to give us what we need ... will help their sells and then try to port Honeycomb ...
Click to expand...
Click to collapse
Unfortunately, their tech-support didn't answer any questions. I read some topics - a lot of people did not receive anything from them.
5[Strogino] said:
Unfortunately, their tech-support didn't answer any questions. I read some topics - a lot of people did not receive anything from them.
Click to expand...
Click to collapse
It's pretty simple ... Dexter for exemple should ask with Mods permission, the right to access sources or eLocity shall remove XDA from their web site in the support page (http://www.elocitynow.com/support.shtml).
It's pretty stupid they rely on a community without providing the proper tools.
We should also ask for a buy back program so we can upgrade those 3-4 months tablet in a useless form for the new A7 that will run Honeycomb ...
The tablet was still a 300-350$ investment that led to ... nothing ...
I 100% agree, this has been like a $300 beta device, no matter how nice it is to have a Tegra powered tablet, if it can't run without major modding we've been hosed. I've managed to get regular Android Market(not new one) running on top of the 2nd official ROM by using Root Explorer to copy a ton of files to the /system/app folder...still not excited though.
Stream TV needs to setup an exchange program for the customers who purchased these headache tablets that forced us to become part-time programmers and get us at the least into the low-end new A7.x tablet. Maybe for difference in retail and with free shipping of new tablet and return shipping of old unreliable tablet(unless they're as tired of it as general public).

[Q] Does any eInk Nook have hardware that could support a physical keyboard?

Please forgive my ignorance - I'm a fairly new developer and know very little about hardware.
The subject line of the post pretty much says it all. I'm looking for something inexpensive with an eInk screen that I can use to type on, as regular monitors tire out my eyes after a while. If no software exists, I'd be very happy to contribute to that development, which is part of why I was looking to the Nook (I'm most comfortable in Java).
Does the current model or any previous eInk model have the capacity to connect a physical keyboard? If not, are there any other eReaders that do have this ability? (I know I can get an eInk screen for a netbook, but I don't want to spend that much if I can avoid it.) I saw a few old threads discussing whether or not USB Host was possible, but none seemed to have a conclusive answer one way or another.
Thanks for your help!
I'm not quite sure if the current version has Bluetooth. But since it is android and if it does have Bluetooth. Chances are there would be the possibility of connecting a Bluetooth keyboard.
Another possibility is getting an eeepc network and replacing the screen yourself with a pixelqi screen. That should be easier on your eyes (though probably not so easy on your wallet)
Sent from a Galaxy S 2 Far Away
Sorry, Volcanolotus, but the STR does not have bluetooth. One further option for that would be use the usb connector, converting it to usb host, and adding the physical keyboard. It is just a concept, but it may work.
apeine said:
Sorry, Volcanolotus, but the STR does not have bluetooth. One further option for that would be use the usb connector, converting it to usb host, and adding the physical keyboard. It is just a concept, but it may work.
Click to expand...
Click to collapse
Hm. I thought so too. Fret not! I just thought of a solution. It has wifi right... Use this! https://market.android.com/details?...?t=W251bGwsMSwxLDEsImNvbS52b2xvc3l1a2l2YW4iXQ..
Though its really a clumsy solution but a solution nonetheless
Though i love the nook, would not a kindle, already having a keyboard be a better option?
Now, in regards to using the USB port as a USB host, in regards to cell phones running android, the hardware is there, though software uses have been hit/miss on. ICS (Android 4.0) enables usb host functionality natively in the operating system, this will probably be your best bet for the functionality you want. The downside is that I would expect it to be atleast a year or longer before ICS comes to the nook.
keyboard now working
I asked verygreen to work on this and 24 hours later, voila.
(Nook Touch Android Development) USB Host support (working)

Looking for a USB "controller" like Arduino ...

I am looking for something specific, but don't know what … maybe you guys can help me out.
Let me provide some background first. There are special controllers for espresso machines available which act as a PID controller for temperature regulation. To simplify things: They read the temperature of the water and regulate the heating element to a specific temperature with much greater precision than the integrated "mechanical" thermostat is able to.
Today there are kits for various espresso machines available, but they are rather expensive. So I was thinking: Well, what about some homebrew stuff (no pun intended)? I could fit more functionality in there and – here comes the interesting part for the XDA community – connect the controller to my Galaxy Nexus!
My first idea was grabbing some development platform (e.g. Arduino or IOIO), but I'm not sure if this is the right approach. Let me explain what the perfect board can do:
- read two or three temperature probes
- read a water level sensor
- read and control four switches
- provide some kind of CPU for acting as a controller
- provide a clock to "wake" the machine in the morning
- provide a USB connection for controlling from Android and programming/flashing from OS X
- optional: Bluetooth functionality for wireless Android control
I can figure out how to wire the stuff together and how to write some PID software. But the most interesting part will be the Android connectivity, but I have no idea what platform I can use …
It would be awesome to plug a USB cable in (or connect via Bluetooth) and read the live temperature data, start/stop the brewing process and so on. The PID has to regulate the machine without the phone – depending on the switch state (i.e. "pull a shot" or "make steam") the heating element would be regulated.
Of course there are even more interesting applications, like sending a tweet ("I just brewed a coffee!") or a pressure readout …
As far as I understand, I just have to look for a single-board microcontroller with some analogue and digital inputs, some digital outputs and a USB connection. Is this possible with something like an Arduino? Or do I need something more complex?
Hey! Nice to see another homebrewer! They sell chips like that already. People have converted freezers to kegerators, and the chip manages the temp, turning on the freezer around 55 degrees F.
Sent from my SCH-I535 using xda premium
I would suggest you toying with Android ADK
This is a board you could use is: arduino.cc/en/Main/ArduinoBoardADK it's a bit pain in the ass to set it up for the first time but once you get used to it it's pretty simple
Freezer? 55 degrees? I'm talking about brewing espresso … The problem there is temperature stability within 1° Celsius.
I already learned more about the Arduino platform and I think it is the right idea for my small project.
As far as I know a bluetooth connection via Android can be established, too.
You should definitely check out a book called;
"Programming Your Home: Automate with Arduino, Android and Your Computer"
Author is Mike Riley.
Publisher is The Pragmatic Bookshelf, Dallas Texas - Raleigh, North Carolina.
I'm pretty sure it's available as an e-book and is full of projects combining these technologies.
The first project has a ball float incorporated in it so I think it's perfect for your idea.
I'm working on a sous-vide immersion circulator at the moment, but it isn't too complex.
A PID controller does all the hard work.
PS
No barista in their right mind would let a machine steam milk!
---------- Post added at 05:48 PM ---------- Previous post was at 05:41 PM ----------
...almost forgot - ISBN-13: 978-1-93435-690-6
You can pretty much do everything including put the PID into the Arduino. You though will need to create the shield board with the extra sensors you need. Once that is available talking to the Arduino from Nexus is a cake walk. The USB Host and well as USB Accessory mode API is pretty straight forward and you can use either depending on how you want to interface the two. If you use some other microcontroller board other than Arduino then you will probably not be able to use Accessory mode but will have to use the USB Host with the microcontroller board exposed as a CDC class device using the USB as virtual serial port (Atmel, MicroChip controllers provide this interface). Also you will need to hack your Nexus to provide additional power supply (probably using Pogo pins) as USB port will be powering your controller board.
Best of luck!
pankaj013 said:
You can pretty much do everything including put the PID into the Arduino. You though will need to create the shield board with the extra sensors you need. Once that is available talking to the Arduino from Nexus is a cake walk. The USB Host and well as USB Accessory mode API is pretty straight forward and you can use either depending on how you want to interface the two. If you use some other microcontroller board other than Arduino then you will probably not be able to use Accessory mode but will have to use the USB Host with the microcontroller board exposed as a CDC class device using the USB as virtual serial port (Atmel, MicroChip controllers provide this interface). Also you will need to hack your Nexus to provide additional power supply (probably using Pogo pins) as USB port will be powering your controller board.
Best of luck!
Click to expand...
Click to collapse
If you have a device that supports OTG/USB Host, a USB-enabled microcontroller is MUCH cheaper than ADK (which requires the accessory to act as a host).
ADK should be described as "DDK" - Dock Development Kit. The requirement for the "accessory" to act as a host and to provide power makes it limited to dock-style devices. True accessories should be powerable from the device.
Adafruit's ATMega32U4 board is a great one to work with - https://www.adafruit.com/products/296
Another option, much more expensive but allows your device to be network-enabled easily (built-in Ethernet) is the BeagleBone. Lots of GPIOs on 0.1" headers and Ethernet.
I would tend to lean towards arduino. It is certainly powerful enough. All the research I have done makes conecting bluetooth really easy. Although serial to android seems a bit more difficult. For the task you are trying to do I would expect a standard arduino (or clone) and a bluetooth module off of ebay (make sure you choose one that can handle 5v) should be a good starting point.
I have only every made diy arduino buy purchasing the usbisp cable and pl-2303 style usb>serial ttl adaptors. If you search on ebay some of them have the dtr line on one of the pins making auto reset easy. They are a bit more rare, but are worth searching for and paying a few dollars more.
I have never done brewing, but fiddle with arduino (atmega8 atmega168 atmega328 atmega644p atmega1284p). Feel free to ask questions.
arjag said:
I would tend to lean towards arduino. It is certainly powerful enough. All the research I have done makes conecting bluetooth really easy. Although serial to android seems a bit more difficult. For the task you are trying to do I would expect a standard arduino (or clone) and a bluetooth module off of ebay (make sure you choose one that can handle 5v) should be a good starting point.
I have only every made diy arduino buy purchasing the usbisp cable and pl-2303 style usb>serial ttl adaptors. If you search on ebay some of them have the dtr line on one of the pins making auto reset easy. They are a bit more rare, but are worth searching for and paying a few dollars more.
I have never done brewing, but fiddle with arduino (atmega8 atmega168 atmega328 atmega644p atmega1284p). Feel free to ask questions.
Click to expand...
Click to collapse
I will have to agree on that one, but only by experience.
those chips are a pleasure to deal with.
I even got my tablet talking to mine before I screwed it up!
Hit me up here or on #arduino on freenode (or anyone else there for that matter) if you want any hints or help if you decide to go that route, I'd be happy to help!
DW
You should try Arduino board, it's not that difficult to use and they're plenty of resources on the Internets.
Also, you could develop an Android app for controlling it. My team had successfully developed an Android controlled RC-car via Bluetooth.
You could find the source code of the Android app here on Github!
Another approach might be to get an ethernet shield for arduino and hook it up to your homw network. Then you could use a browser to control it, so you are not just limited to your Android device.
Ethernet setup is really simple, start with the demo code and modify to your needs.
Sent from my SAMSUNG-SGH-I747 using xda app-developers app
check out the andropod
Not 100% what you described, but this is absolutely rad nonetheless...
i just saw this the other day: http://www.ftdichip.com/Android.htm
with a standard UART to android usb host in one cable, you can do regular old RS232 or TTL-voltage RS232 comms with practically any of the simplest of the simple mcu's out there.
UART interfacing hardware with your phone? it'd be super easy to write java or shell interface wrappers to do tons of cool automation stuff, plus if you have an old beater phone lying around, it's a super robust DAQ unit in the making...
booooiiinnnniiiiiinnnnnggggg I want...
http://code.google.com/p/tc4-shield/
It's already got a four-channel ADC intended for thermocouple use, as well as GPIOs to drive the SSRs. People have already worked out zero-crossing detectors if you want finer control.
The water probe is a little problematic; I'd stick with the existing Gicar or equivalent.
I'm in the process of using it for thermocouple and power-relay interface to a Raspberry Pi to run a La Marzocco GS I'm restoring.
The Arduino is disappointing in its computational power. Its enough to run a PID, but can't really deal with a TCP stack and a webserver too.
Please note that Arduino can use Bluetooth connectivity to Android. It is easy on Arduino and very convenient.
Arduino can be battery powered for a long time if you program its sleep mode correctly.
http://tvwbb.com/showthread.php?35674-HeaterMeter-v4-0-for-RaspberyPi-Standalone
Shouldn't be a far leap from a fan/heating element to a water heating element. Plus: "HeaterMeter is also reportedly suitable for connecting to a solid state relay and controlling a sous vide heater if you prefer your food float around in fancy water instead of smoke and fire."
Arduino (or Msp430 Launchpad, or Microchip Pic or whatever) + a cheap, 6 dollar Bluetooth Serial adapter, + coding an app for android is all you need. Don't mess with usb or ethernet/wifi. Bluetooth Serial is all you need.
also use Android Suit

Categories

Resources