Keyboard Project

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Post Reply
deathazre
Posts: 2
Joined: Tue Dec 27, 2005 2:07 pm

Keyboard Project

Post by deathazre »

Hey guys. I've become pretty disgusted with the PSP on screen keyboard, so, there is some motivation to bring about some method of hardware keyboard input capability. What is the scope of a project to add functionality with a USB keyboard?
-Bradley
Dr. Vegetable
Posts: 171
Joined: Mon Nov 14, 2005 1:32 am
Location: Boston, Massachusetts
Contact:

Post by Dr. Vegetable »

There are a few keyboard projects going on right now, mostly centered around using IR keyboards that were designed for use with PDAs. There is also an effort underway to figure out how to interface USB peripherals with the PSP, but its USB protocol is a bit non-standard, so this will probably require the development of custom USB drivers and special cabling. For starters, the PSP normally behaves as a slave USB device (a simple memory stick adapter) when connected to a PC. But it uses the fifth line on the mini-USB connector (normally not connected) in order to negotiate with Sony peripherals and apparently switch into some semblance of USB bus master mode.

The most widely-used "keyboard" library for homebrew applications is Arwin's p-sprint, which maps keyboard input onto button press combinations on a standard PSP. I have written a crude proof-of-concept program to display characters typed on a Belkin PDA keyboard, and a few others are working with other models of keyboard as well. I am looking at adding support for IR keyboard maps into p-sprint in order to be able to use a "real" keyboard with the many apps that use this library. I think it would be great if someone figured out how to support USB keyboards also.

Here are a few related topics:

USB:
Jakx / Daxter / USB
Does anyone recognize any of this?

Keyboard Drivers and Libraries:
IrDA concept keyboard driver with source
IR Keyboard Configuration & Driver Program. v.02
Am I missing something obvious?
IrDA Keyboard Support Library?
tiersten
Posts: 1
Joined: Mon Jun 06, 2005 9:52 am

Post by tiersten »

Dr. Vegetable wrote:But it uses the fifth line on the mini-USB connector (normally not connected) in order to negotiate with Sony peripherals and apparently switch into some semblance of USB bus master mode.
This is an official extension of the USB 2.0 standard called USB On-The-Go. Newer digital cameras implement it so you can plug them straight into compatible photo printers. The devices negotiate with each other to decide who should be the host and who should be the peripheral.
Dr. Vegetable
Posts: 171
Joined: Mon Nov 14, 2005 1:32 am
Location: Boston, Massachusetts
Contact:

Post by Dr. Vegetable »

The PSP doesn't have the right kind of USB connector for USB-OTG (it should accept two kinds of mini-USB connectors) and it also uses the two connectors on either side of the USB port to provide power to the peripheral. At least from an electrical/physical level, this isn't USB On The Go.

But I don't know if anyone has sniffed the fifth line to see what is happening there. It could very well be USB-OTG protocol (or some variant) but I don't think that has been determined yet.
deathazre
Posts: 2
Joined: Tue Dec 27, 2005 2:07 pm

PSP Keyboard

Post by deathazre »

Thank you kindly. Your response is very valuable to me, I hope to contribute to this community in the future. =)
-Bradley
romero126
Posts: 200
Joined: Sat Dec 24, 2005 2:42 pm

Post by romero126 »

The PSP comes with an Onboard Serial Connector which runs on a 2.5v current. 2.5v is Plenty enough to run a lower powered USB device, ie a USB Keyboard. Which would come down to only software and hardware.

I think this would be the most ideal way of doing things.

Please note the serial port is 1 connector more than a USB cable which I would assume that connector is ground or a dummy cable.

Have fun
mrn
Posts: 116
Joined: Wed Nov 02, 2005 2:26 am

Post by mrn »

the serial port is 1 connector more than a USB cable
you mean one pin?

...and how do we convert USB <-> RS232?
I only see USB-2-RS232 converters for PCs, where the USB is on the
host (ie PC) side..
romero126
Posts: 200
Joined: Sat Dec 24, 2005 2:42 pm

Post by romero126 »

usb is the same as rs232 but uses a differnt type of memory handler.. So mapping of the keyboard should be a simple step.

If you take a look at the PS2(Keyboard/mouse) to USB adapters that are out you will notice that there is minimal change's in the PS2 configuration. IE: Straight through wires and no circuit board.

PS2 is a serial connection adapted to the Windows interface. Since the Serial adapter for the older style keyboards runs on the same concept.

The only issue would be powering the device which would have to be a loopback (IE plugged in) on the headphones (only to use the Serial Port with power).
digihoe
Posts: 108
Joined: Sat May 14, 2005 7:40 pm

Post by digihoe »

Has anyone seen my post on this?

http://forums.ps2dev.org/viewtopic.php? ... highlight=

I think one can use a PS2-USB adapter if one has to...

Best regards!
Namlas
Posts: 2
Joined: Tue Aug 15, 2006 2:05 am

using a normal keyboard to emulate the psp's button combinat

Post by Namlas »

hi,
I was just wonderwing would it be possible to interface with sony's firware virtual keyboard with a actually keyboard through the psp remote port.the virtual keyboard on the psp requires the user to press the x button and use the d-pad. for example, for the letter "b" the user must press thex button twice. Would it be possible to connect up a keyboard(normal pc) to the psp remote and when the letter b is pressed on the keyboard the signal is converted to a command that will tell the psp the x button has been pressed twice , hence interfacing with the txt entry with sony's firware ? Or is this an impossible and stupid idea?
Grizzly_cf
Posts: 6
Joined: Mon Jul 24, 2006 8:03 pm

Post by Grizzly_cf »

Hi.

At now I just work on this project. For more details: PSP-Team.

Image

What I'm done:
- Make a adapter PSP<>Ericsson CHA-10
- Few programs to test communication witch chatboard

To do:
- Make better adapter witch include Jack plug.
- Fix problem witch communication
- Do final program to use the chatboard

Features:
- Support witch Ericsson Chatboard CHA-10
- Working in background
- Easy plug in/plug out
- Nice looking adapter
- Easy way to reconfigure all keys on CHA-10
- Still you could plug a headphones

Program will be simulate a click of sequence of buttons. So if we have virtual keyboard like in cell phone, and we hit "a" on cha-10, the program will simulate analog up and, rectangle. Propably I will need to wrote a PRX libary. Maybe keyboard will be working only witch in Custom Firmware, at now I dont know. Propably I will pattern on code of program to do ScreenShot (code to the background work).

At now I break on some of problem witch communication. Chatboard send my only first string "A" (correct should be "AT" and 13 <-Carriage Return).
More about transmision witch CHA-10:

Code: Select all

Startup protocol where&#58; -> = "from chatboard", <- = "to chatboard", and <13> = ASCII 13

Ericsson Chatboard Driver v0.01
Finding Keyboard...
-> AT<13>
<- OK<13><10><0>
-> AT+CGMM<13>
<- OK<13><10><0>
-> AT+CGMR<13>
<- OK<13><10><0>
Keyboard detected!
Please press the SMS key...
-> AT*EDME?<13>
<- OK<13><10><0>
-> AT*ESVM?<13>
<- OK<13><10><0>
-> AT+CKPD="eseee<see<<s>>ss1"<13>
<- OK<13><10><0>
-> AT+CKPD="c",25<13>
<- OK<13><10><0>
Keyboard initialised!
From Mage Forge.

First I used the sample app from LuaPlayer, next time I was write my own program in LUA, few days later I wrote test program in C. All Workings good, but still I recived only first string :(. But when I send "OK" 13, 10 to the cha-10, it will reply to me of some four numbers. I used also some code from GPS.

Code: Select all

	while&#40;i<200000000&#41;
	&#123;
		i++;
		sceKernelDelayThread&#40;20&#41;;
		ch = pspDebugSioGetchar&#40;&#41;;

		if &#40;ch>0&#41; &#123;
			if &#40;ch=='\n'&#41;
				linecounter++;
			if &#40;counter<510 || linecounter<4&#41;
				buffer&#91;counter++&#93;=ch;
			else &#123;
				memset&#40;buffer,0,sizeof&#40;buffer&#41;&#41;;
				counter=0;
				linecounter=0;
			&#125;

			status = nmeap_parse&#40;&nmea,ch&#41;;
        
        switch&#40;status&#41; &#123;
        case NMEAP_GPGGA&#58;
			/* GOT A GPGGA MESSAGE */
            print_gga&#40;&gga&#41;;
            break;
        case NMEAP_GPRMC&#58;
			/* GOT A GPRMC MESSAGE */
            print_rmc&#40;&rmc&#41;;
            break;
        default&#58;
            break;
        &#125;
Ofcourse I changed it.

Maybe somone know what's the problem.

Sorry for my english I know is very weak :(

Regards!
Image
Post Reply