From: Chris T. <chr...@gm...> - 2005-07-21 15:08:20
|
Hi all, I have a need for some sort of device that does the following: Connect over serial/usb/parallel/etc to a host linux PC and receive a stream of characters. This is a piece of cake and I have no problem with this. The hard part is the other end. I need this "device" to have multiple USB ports that I can connect to other devices and pretend to be a USB keyboard. The goal here is to allow a central PC (for my MythTV PVR setup) to be able to change channels on ScientificAtlanta/TimeWarner cable boxes. The boxes have USB ports and respond to USB keyboards on those ports. (These boxes are notoriously slow and fragile when used with IR blasters, whereas the USB/Keyboard thing is instant and reliable) =20 I have yet to find anything that can do this, apart from a serial->USBKey convertor at several hundred dollars per, and I need at least three, probably four. Anyone have any idea if this sort of thing is possible from a gumstix both from an electrical and protocol level? To flip the equation on its head, anyone have any experience with making a serial port talk PS/2 keyboard protocol that I could convert with a PS/2->USB keyboard adapter? --=20 ------------------------ Chris Thompson |
From: Joel W. <jo...@in...> - 2005-07-21 15:56:01
|
>Chris Wrote: > >To flip the equation on its head, anyone have any experience with >making a serial port talk PS/2 keyboard protocol that I could convert >with a PS/2->USB keyboard adapter? Check out the Atmel Applications note AVR313. This could easily be done with 1 micro and a single RS-232 connection. Is USB a requirement? Joel |
From: Dave H. <dhy...@gm...> - 2005-07-21 16:35:16
|
Hi Chris, > To flip the equation on its head, anyone have any experience with > making a serial port talk PS/2 keyboard protocol that I could convert > with a PS/2->USB keyboard adapter? Here's a link with information about interfacing to a keyboard: http://www.beyondlogic.org/keyboard/keybrd.htm > Anyone have any idea if this sort of thing is possible from a gumstix > both from an electrical and protocol level? From the electrical level, the gumstix should be fine. It boils down to a software interface. Keyboards follow a standard protocol (something to do with HID's). The issue becomes, does linux have the stuff to implement a HID? I don't know the answer. --=20 Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Richard T. S. <rs...@pa...> - 2005-07-21 17:11:32
|
Chris, Dave, I read in the gumstix FAQ that the gumstix is set up to be a USB device, = not a host. See: = http://www.gumstix.org/tikiwiki/tiki-view_faq.php?faqId=3D6#q56 Could that be changed? I don't know... However, since the gumstix is a device and the cable box is a host, it should be possible to get them talking in a one-to-one relationship. = Then it is a matter of sending the proper codes to control the box. = Determining those codes could be a challenge. I think you could start by assuming = that you need to transmit the standard keyboard code in the standard bit = order. If it is possible to connect a PS/2 keyboard to a USB input, and the keyboard certainly wouldn't know about USB, the bit sequence needs to be = the same. What I don't understand is how they combine PS/2 clock and data = into a single USB differential pair. All in a little plastic adapter! A logic analyzer would clear this up! But that's why I like the PS/2 to USB adapter - I don't need to know how = USB works. I just have to generate PS/2 timing of the clock and data lines = and the key codes are already established. Also, since the cable box is a host, connecting a single gumstix device = to many boxes isn't going to happen. It seems costly to use a gumstix per cable box but it would work. Of course WiFi would also work so each = gumstix would have a separate IP address and life is good! The remote end could = be anything on the WiFi network; another gumstix, a laptop, whatever! It would be cheaper to use a wired network - perhaps with a single = wireless access point/multiport switch. Now only the remote would be wireless. = The gumstix at the cable boxes would use etherstix. Very high tech but it seems like the expensive way to get it done. = Frankly, I like the PIC->PS/2->USB Adapter approach although I would substitute = an Atmel processor without hesitation! AVRLib is too useful and the GNU = tool chain is quite capable and FREE! Richard -----Original Message----- From: gum...@li... [mailto:gum...@li...] On Behalf Of Dave = Hylands Sent: Thursday, July 21, 2005 9:34 AM To: gum...@li... Subject: Re: [Gumstix-users] USB Client pretending to be USB Keyboard? Hi Chris, > To flip the equation on its head, anyone have any experience with > making a serial port talk PS/2 keyboard protocol that I could convert > with a PS/2->USB keyboard adapter? Here's a link with information about interfacing to a keyboard: http://www.beyondlogic.org/keyboard/keybrd.htm > Anyone have any idea if this sort of thing is possible from a gumstix > both from an electrical and protocol level? From the electrical level, the gumstix should be fine. It boils down to a software interface. Keyboards follow a standard protocol (something to do with HID's). The issue becomes, does linux have the stuff to implement a HID? I don't know the answer. --=20 Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick _______________________________________________ gumstix-users mailing list gum...@li... https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Chris T. <chr...@gm...> - 2005-07-21 19:20:27
|
Thanks to all. I read that Atmel note, and while it's describing the equation in the wrong direction (Hooking a keyboard to a microcontroller rather than a microcontroller pretending to be a keyboard) It could probably work with the right code. You can already fake PC to PC usb under linux with usbnet and a special USB cable, but when I ask about that creating keyboard signals, I get no response in the kernel hacker community. My problem is, I'm not a hardware hacker. I can tell a resistor from a diode, but really don't have the skillset to know how to tie a microcontroller to a PS2 port. If the conversation strays into pull-up resistors and isolation and the like and my eyes cross. Gumstix looked like a good solution because it looks complete.=20 Could the lines on the gumstick be subverted with code only to send the right sort of timing and data? Code I can handle. If there's odd interfacing between those lines and the keyboard lines, I'd have to hire out. On 7/21/05, Richard T. Stofer <rs...@pa...> wrote > Chris, Dave, >=20 > I read in the gumstix FAQ that the gumstix is set up to be a USB device, = not > a host. See: http://www.gumstix.org/tikiwiki/tiki-view_faq.php?faqId=3D6= #q56 >=20 > Could that be changed? I don't know... >=20 > However, since the gumstix is a device and the cable box is a host, it > should be possible to get them talking in a one-to-one relationship. The= n > it is a matter of sending the proper codes to control the box. Determini= ng > those codes could be a challenge. I think you could start by assuming th= at > you need to transmit the standard keyboard code in the standard bit order= . > If it is possible to connect a PS/2 keyboard to a USB input, and the > keyboard certainly wouldn't know about USB, the bit sequence needs to be = the > same. What I don't understand is how they combine PS/2 clock and data in= to > a single USB differential pair. All in a little plastic adapter! >=20 > A logic analyzer would clear this up! >=20 > But that's why I like the PS/2 to USB adapter - I don't need to know how = USB > works. I just have to generate PS/2 timing of the clock and data lines a= nd > the key codes are already established. >=20 > Also, since the cable box is a host, connecting a single gumstix device t= o > many boxes isn't going to happen. It seems costly to use a gumstix per > cable box but it would work. Of course WiFi would also work so each gums= tix > would have a separate IP address and life is good! The remote end could = be > anything on the WiFi network; another gumstix, a laptop, whatever! >=20 > It would be cheaper to use a wired network - perhaps with a single wirele= ss > access point/multiport switch. Now only the remote would be wireless. T= he > gumstix at the cable boxes would use etherstix. >=20 > Very high tech but it seems like the expensive way to get it done. Frank= ly, > I like the PIC->PS/2->USB Adapter approach although I would substitute an > Atmel processor without hesitation! AVRLib is too useful and the GNU too= l > chain is quite capable and FREE! >=20 > Richard >=20 >=20 >=20 > -----Original Message----- > From: gum...@li... > [mailto:gum...@li...] On Behalf Of Dave Hyla= nds > Sent: Thursday, July 21, 2005 9:34 AM > To: gum...@li... > Subject: Re: [Gumstix-users] USB Client pretending to be USB Keyboard? >=20 > Hi Chris, >=20 > > To flip the equation on its head, anyone have any experience with > > making a serial port talk PS/2 keyboard protocol that I could convert > > with a PS/2->USB keyboard adapter? >=20 > Here's a link with information about interfacing to a keyboard: > http://www.beyondlogic.org/keyboard/keybrd.htm >=20 > > Anyone have any idea if this sort of thing is possible from a gumstix > > both from an electrical and protocol level? >=20 > From the electrical level, the gumstix should be fine. It boils down > to a software interface. Keyboards follow a standard protocol > (something to do with HID's). >=20 > The issue becomes, does linux have the stuff to implement a HID? I > don't know the answer. >=20 > -- > Dave Hylands > Vancouver, BC, Canada > http://www.DaveHylands.com/ >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users >=20 >=20 >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&opclick > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users >=20 --=20 ------------------------ Chris Thompson |
From: Joel W. <jo...@in...> - 2005-07-21 20:07:17
|
I apologize for not reading your first post entirely, I missed the part about the cable box having USB connections. I had it stuck in my head you were using PS/2 port on cable tuner. doh! The PC acts as a USB Host, verses a keyboard which plays the role of a USB Device. You are correct in searching out the Gumstix, as it plays the role of a USB device. If you were to associate a Single Gumstix per tuner, you could use Bluetooth to communicate back to the PC. On PC side depending on the drivers available, you might have simple app talk to virtual serial ports. On the Gumstix side you would just need to emulate a HID device, and deal with Bluetooth data. So the real work is writing/porting/finding the HID driver for the Gumstix. So I think you're headed down the right path, and no hardware tweaking would be required. Joel |
From: Craig H. <cr...@gu...> - 2005-07-21 20:08:31
|
Having the gumstix act as a fake keyboard basically ought to involve =20 "merely software". You'll essentially need to write a HID-gadget =20 driver, I would guess, unless USB keyboards basically act as a USB =20 serial device, in which case the existing USB serial gadget might =20 well just work. The code in linux-x.y.z/drivers/usb/gadget/serial.c =20 and the docs at http://www.linux-usb.org/gadget/ and http://=20 www.usb.org/developers/hidpage/ might be enough to get a HID gadget =20 driver working. C On Jul 21, 2005, at 12:19 PM, Chris Thompson wrote: > Thanks to all. > > I read that Atmel note, and while it's describing the equation in the > wrong direction (Hooking a keyboard to a microcontroller rather than a > microcontroller pretending to be a keyboard) It could probably work > with the right code. > > You can already fake PC to PC usb under linux with usbnet and a > special USB cable, but when I ask about that creating keyboard > signals, I get no response in the kernel hacker community. > > My problem is, I'm not a hardware hacker. I can tell a resistor from a > diode, but really don't have the skillset to know how to tie a > microcontroller to a PS2 port. If the conversation strays into pull-up > resistors and isolation and the like and my eyes cross. > > Gumstix looked like a good solution because it looks complete. > > Could the lines on the gumstick be subverted with code only to send > the right sort of timing and data? Code I can handle. If there's odd > interfacing between those lines and the keyboard lines, I'd have to > hire out. > > On 7/21/05, Richard T. Stofer <rs...@pa...> wrote > >> Chris, Dave, >> >> I read in the gumstix FAQ that the gumstix is set up to be a USB =20 >> device, not >> a host. See: http://www.gumstix.org/tikiwiki/tiki-view_faq.php?=20 >> faqId=3D6#q56 >> >> Could that be changed? I don't know... >> >> However, since the gumstix is a device and the cable box is a =20 >> host, it >> should be possible to get them talking in a one-to-one =20 >> relationship. Then >> it is a matter of sending the proper codes to control the box. =20 >> Determining >> those codes could be a challenge. I think you could start by =20 >> assuming that >> you need to transmit the standard keyboard code in the standard =20 >> bit order. >> If it is possible to connect a PS/2 keyboard to a USB input, and the >> keyboard certainly wouldn't know about USB, the bit sequence needs =20= >> to be the >> same. What I don't understand is how they combine PS/2 clock and =20 >> data into >> a single USB differential pair. All in a little plastic adapter! >> >> A logic analyzer would clear this up! >> >> But that's why I like the PS/2 to USB adapter - I don't need to =20 >> know how USB >> works. I just have to generate PS/2 timing of the clock and data =20 >> lines and >> the key codes are already established. >> >> Also, since the cable box is a host, connecting a single gumstix =20 >> device to >> many boxes isn't going to happen. It seems costly to use a =20 >> gumstix per >> cable box but it would work. Of course WiFi would also work so =20 >> each gumstix >> would have a separate IP address and life is good! The remote end =20= >> could be >> anything on the WiFi network; another gumstix, a laptop, whatever! >> >> It would be cheaper to use a wired network - perhaps with a single =20= >> wireless >> access point/multiport switch. Now only the remote would be =20 >> wireless. The >> gumstix at the cable boxes would use etherstix. >> >> Very high tech but it seems like the expensive way to get it =20 >> done. Frankly, >> I like the PIC->PS/2->USB Adapter approach although I would =20 >> substitute an >> Atmel processor without hesitation! AVRLib is too useful and the =20 >> GNU tool >> chain is quite capable and FREE! >> >> Richard >> >> >> >> -----Original Message----- >> From: gum...@li... >> [mailto:gum...@li...] On Behalf Of =20 >> Dave Hylands >> Sent: Thursday, July 21, 2005 9:34 AM >> To: gum...@li... >> Subject: Re: [Gumstix-users] USB Client pretending to be USB =20 >> Keyboard? >> >> Hi Chris, >> >> >>> To flip the equation on its head, anyone have any experience with >>> making a serial port talk PS/2 keyboard protocol that I could =20 >>> convert >>> with a PS/2->USB keyboard adapter? >>> >> >> Here's a link with information about interfacing to a keyboard: >> http://www.beyondlogic.org/keyboard/keybrd.htm >> >> >>> Anyone have any idea if this sort of thing is possible from a =20 >>> gumstix >>> both from an electrical and protocol level? >>> >> >> =46rom the electrical level, the gumstix should be fine. It boils = down >> to a software interface. Keyboards follow a standard protocol >> (something to do with HID's). >> >> The issue becomes, does linux have the stuff to implement a HID? I >> don't know the answer. >> >> -- >> Dave Hylands >> Vancouver, BC, Canada >> http://www.DaveHylands.com/ >> >> >> ------------------------------------------------------- >> SF.Net email is sponsored by: Discover Easy Linux Migration =20 >> Strategies >> from IBM. Find simple to follow Roadmaps, straightforward articles, >> informative Webcasts and more! Get everything you need to get up to >> speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick >> _______________________________________________ >> gumstix-users mailing list >> gum...@li... >> https://lists.sourceforge.net/lists/listinfo/gumstix-users >> >> >> >> >> ------------------------------------------------------- >> SF.Net email is sponsored by: Discover Easy Linux Migration =20 >> Strategies >> from IBM. Find simple to follow Roadmaps, straightforward articles, >> informative Webcasts and more! Get everything you need to get up to >> speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&opclick >> _______________________________________________ >> gumstix-users mailing list >> gum...@li... >> https://lists.sourceforge.net/lists/listinfo/gumstix-users >> >> > > > --=20 > ------------------------ > Chris Thompson > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dclick > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |
From: Joel W. <jo...@in...> - 2005-07-21 20:36:38
|
> Having the gumstix act as a fake keyboard basically ought to involve > "merely software". You'll essentially need to write a HID-gadget > driver, I would guess, unless USB keyboards basically act as a USB > serial device, in which case the existing USB serial gadget might > well just work. The code in linux-x.y.z/drivers/usb/gadget/serial.c > and the docs at http://www.linux-usb.org/gadget/ and http:// > www.usb.org/developers/hidpage/ might be enough to get a HID gadget > driver working. Also try http://www.lvr.com/hidpage.htm http://stephen.homesite.net/encore_c/index.html Joel |
From: Richard T. S. <rs...@pa...> - 2005-07-21 16:59:35
|
Chris, I have always been interested in how a USB keyboard can be converted to = PS/2 with a little plastic adapter. What I find more interesting, and is = more applicable to your project, is how a PS/2 keyboard can be converted to = USB with a similar little plastic adapter. See http://www.tigerdirect.com/applications/Category/category_slc.asp?CatId=3D= 469 So, if a PS/2 keyboard can be converted to USB then why can't just about anything that can generate PS/2 timing (data and clock) not be used with = USB and a little plastic adapter? I don't currently have an application for this so I probably won't work = on the electronics but, were it me, I would want to know a lot more about = the PS/2 to USB adapter. Then I would look into using a PIC microcontroller = to generate the PS/2 timing (probably receive as well as send). As your project requires several such devices, I might look at PICs that have addressable USARTS and hook them up on an RS485 serial link. That done, = I can use anything that can generate a serial stream to talk over RS485 to these PIC controllers. There are probably more elegant approaches - this one is fairly fast. = Get one to work; build some more. Of course, you could stuff dozens of these little converters into an = FPGA and have one input and multiple outputs. In fact, with a little = programming effort, you could actually use a PS/2 keyboard for input and implement = hot key switching similar to a KVM switch. This would be elegant, but a lot more work. And PCBs for FPGAs are a PITA - 208 pin QFPs are tough to = solder without a high end PCB with a solder mask. Richard -----Original Message----- From: gum...@li... [mailto:gum...@li...] On Behalf Of Chris Thompson Sent: Thursday, July 21, 2005 8:01 AM To: gum...@li... Subject: [Gumstix-users] USB Client pretending to be USB Keyboard? Hi all, I have a need for some sort of device that does the following: Connect over serial/usb/parallel/etc to a host linux PC and receive a stream of characters. This is a piece of cake and I have no problem with this. The hard part is the other end. I need this "device" to have multiple USB ports that I can connect to other devices and pretend to be a USB keyboard. The goal here is to allow a central PC (for my MythTV PVR setup) to be able to change channels on ScientificAtlanta/TimeWarner cable boxes. The boxes have USB ports and respond to USB keyboards on those ports. (These boxes are notoriously slow and fragile when used with IR blasters, whereas the USB/Keyboard thing is instant and reliable) =20 I have yet to find anything that can do this, apart from a serial->USBKey convertor at several hundred dollars per, and I need at least three, probably four. Anyone have any idea if this sort of thing is possible from a gumstix both from an electrical and protocol level? To flip the equation on its head, anyone have any experience with making a serial port talk PS/2 keyboard protocol that I could convert with a PS/2->USB keyboard adapter? --=20 ------------------------ Chris Thompson ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick _______________________________________________ gumstix-users mailing list gum...@li... https://lists.sourceforge.net/lists/listinfo/gumstix-users |