PSPZ Project WIP

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

Moderators: cheriff, TyRaNiD

hlide
Posts: 739
Joined: Sun Sep 10, 2006 2:31 am

Post by hlide »

What about the status of this project ?
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

hlide..........

will be posting the example driver code i used and general data format in next couple of days, will then assemble some "dev" units and distribute them to interested software developers, will take another week, then still on target to offer consumer units in about 2.7 months. At the moment sourcing EXACTLY the right size touchscreens is proving a problem, but will sort it ! So suppose its going well with all the usual unexpected delays !!
User avatar
jean
Posts: 489
Joined: Sat Jan 05, 2008 2:44 am

Post by jean »

i was thinking that i could be of help providing a library of mine performing character recognition via a small ANN: it's small in size, has a small memory footprint, fast, robust....think about it
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

jean....... wow that sounds cool!!!, you still running a phat? , the dev units for phats are well delayed, initially was'nt going to support phats at all but public presseure forced re-think !!!
Wraggster
Posts: 121
Joined: Fri Aug 26, 2005 7:40 am
Contact:

Post by Wraggster »

hey jube do you have a blog/website where you can post updates on this project, would be good to hear the progress on this.
Webmaster of http://www.dcemu.co.uk

DCEMU The Worlds Only Homebrew & Gaming Network of Sites.
User avatar
jean
Posts: 489
Joined: Sat Jan 05, 2008 2:44 am

Post by jean »

yeah...i was thinking to pass to a slim before ta88v2 hell arrives here in europe, but 60 euros of difference for 32Mb of ram and a tv-out are an exageration (i mean...selling my phat and re-buying a slim will cost me approx 60 euros)
What do you exactly mean by "dev-units"?
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

Post by moonlight »

jean wrote:yeah...i was thinking to pass to a slim before ta88v2 hell arrives here in europe, but 60 euros of difference for 32Mb of ram and a tv-out are an exageration (i mean...selling my phat and re-buying a slim will cost me approx 60 euros)
What do you exactly mean by "dev-units"?
ta88v2 are fine, it is v3 the real problem :p
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

jean............ im making and distributing ( free to interested commited developers ) about 10 dev units, these will be functionally identical to the final production units except very "rough" in terms of the hardware ( stick on screen, trailling wires etc ). Its going to cost me, but im hoping that by the time of the launch there will be a number of hombrew apps and games supporting the screen. Im going to be taking PM,s from interested developers today or tomorrow sometime and hopefully shipping the dev units to people by end of week, thats why asked if you were running slim, cos phat dev units not ready !

No blog im affraid, have zero idea how to go about one !!, who hosts that kind of thing ?
Art
Posts: 642
Joined: Wed Nov 09, 2005 8:01 am

Post by Art »

Nice, bu tnow I can only see the thumbnail.
If not actually, then potentially.
KickinAezz
Posts: 328
Joined: Sun Jun 03, 2007 10:05 pm

Post by KickinAezz »

Good progress :) Phat units not yet ready?
Last edited by KickinAezz on Wed Aug 06, 2008 10:27 pm, edited 1 time in total.
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
kralyk
Posts: 114
Joined: Sun Apr 06, 2008 8:18 pm
Location: Czech Republic, central EU

Post by kralyk »

jube, youre going to make it a commercial product though it will only work on Homebrew/CFW? I mean, is it legally all right?
hlide
Posts: 739
Joined: Sun Sep 10, 2006 2:31 am

Post by hlide »

kralyk wrote:jube, youre going to make it a commercial product though it will only work on Homebrew/CFW? I mean, is it legally all right?
Well just think about a Datel Tool (Red) Battery : is it illegal ?
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

no not worried about the legality as hlide pointed out its damn sight less contraversial than something like pandora. Yes V1 works only through the sio hence is only a cfw product that is going to limit the customer base big time but since the main motivation is not to make money, but to get the screen out there supported by devs, as long as i break even not to worrid :)
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

hi guys, her is another 2 vids showing app have done, will post the code in a bit, BUT DONT FLAME ME !!!!!, am just starting on psp code and the code is shit!!!!! not exactly text-book c!!! ( coming from a microcontroller background where even function calls are a no-no when they eat up your stack!! )




http://ru.youtube.com/watch?v=eXNpe7NWaZw

http://ru.youtube.com/watch?v=vzesLXiYHN0
KickinAezz
Posts: 328
Joined: Sun Jun 03, 2007 10:05 pm

Post by KickinAezz »

jube wrote:hi guys, her is another 2 vids showing app have done, will post the code in a bit, BUT DONT FLAME ME !!!!!, am just starting on psp code and the code is shit!!!!! not exactly text-book c!!! ( coming from a microcontroller background where even function calls are a no-no when they eat up your stack!! )




http://ru.youtube.com/watch?v=eXNpe7NWaZw

http://ru.youtube.com/watch?v=vzesLXiYHN0
Great progress!

Be sure to post 2 versions of the code

1: The code you consider shit. (i.e. the as-is version)
2: Cleaned up.

Just curious of programming style of a programmer for microcontrollers. :)
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

thats the source to the osk that video'ed, posting it to let developers know how the serial data stream looks like, its all very simple, and a little derivative but hey just starting!
this bit uses jeans sio prx but its just as good using the sdk call ( at 14400 obviously ! )

Code: Select all

#include <pspkernel.h>
#include <pspdebug.h>
#include <pspdisplay.h>
#include <pspsdk.h>
#include <pspctrl.h>
#include <stdio.h>
#include <string.h>
#include <oslib/oslib.h>

#include "../../commons/callbacks.h"
#include "../../commons/calibrate.h"

PSP_MODULE_INFO&#40;"TS_SAMPLE", 0, 1, 1&#41;;
PSP_MAIN_THREAD_ATTR&#40;THREAD_ATTR_USER | THREAD_ATTR_VFPU&#41;;
PSP_HEAP_SIZE_KB&#40;12*1024&#41;;



char tschar = 0  ;
int  sioReadChar&#40;&#41;;
int xread = 0;
int yread = 0;
int rread = 0;
int backspace = 0;
char screentext&#91;1&#93;;
char redraw = 0;
char newchar = 0;




POINT touched,touchedscaled,touchedfinal;
POINT cal&#91;3&#93;;
POINT tcal&#91;3&#93;;
MATRIX calmatrix;

void sioInit&#40;int,int&#41;;
void sioPutString&#40;const char *, int&#41;;


int initOSLib&#40;&#41;&#123;
    oslInit&#40;0&#41;;
    oslInitGfx&#40;OSL_PF_8888, 1&#41;;
    oslInitAudio&#40;&#41;;
    oslSetQuitOnLoadFailure&#40;1&#41;;
    oslSetKeyAutorepeatInit&#40;40&#41;;
    oslSetKeyAutorepeatInterval&#40;10&#41;;
    return 0;
&#125;



int byte2word &#40; int bytehigh, int bytelow &#41;
&#123;
	int tally = 0;

	tally = bytehigh ;
	tally = tally << 8 ;
	tally = tally | bytelow ;
	return tally ;
&#125;


char getTSChar &#40;int yaxis,int xaxis&#41;
&#123;
	char retchar = 0;
					if &#40;&#40;yaxis > 60&#41; && &#40;yaxis < 100&#41;&#41;
				&#123;
					if &#40;&#40;xaxis > 0&#41; && &#40;xaxis < 43&#41;&#41;
						retchar = 0x31;
					if &#40;&#40;xaxis > 43&#41; && &#40;xaxis < 86&#41;&#41;
						retchar = 0x32;
					if &#40;&#40;xaxis > 86&#41; && &#40;xaxis < 131&#41;&#41;
						retchar = 0x33;
					if &#40;&#40;xaxis > 131&#41; && &#40;xaxis < 175&#41;&#41;
						retchar = 0x34;
					if &#40;&#40;xaxis > 175&#41; && &#40;xaxis < 218&#41;&#41;
						retchar = 0x35;
					if &#40;&#40;xaxis > 218&#41; && &#40;xaxis < 262&#41;&#41;
						retchar = 0x36;
					if &#40;&#40;xaxis > 262&#41; && &#40;xaxis < 306&#41;&#41;
						retchar = 0x37;
					if &#40;&#40;xaxis > 306&#41; && &#40;xaxis < 350&#41;&#41;
						retchar = 0x38;
					if &#40;&#40;xaxis > 350&#41; && &#40;xaxis < 393&#41;&#41;
						retchar = 0x39;
					if &#40;&#40;xaxis > 393&#41; && &#40;xaxis < 435&#41;&#41;
						retchar = 0x30;
					if &#40;&#40;xaxis > 435&#41; && &#40;xaxis <480&#41;&#41;
						retchar = 0x3F;
					return&#40;retchar&#41;;
				&#125;

				if &#40;&#40;yaxis > 100&#41; && &#40;yaxis < 141&#41;&#41;
				&#123;
					if &#40;&#40;xaxis > 0&#41; && &#40;xaxis < 43&#41;&#41;
						retchar = 51;
					if &#40;&#40;xaxis > 43&#41; && &#40;xaxis < 86&#41;&#41;
						retchar = 0x57;
					if &#40;&#40;xaxis > 86&#41; && &#40;xaxis < 131&#41;&#41;
						retchar = 0x45;
					if &#40;&#40;xaxis > 131&#41; && &#40;xaxis < 175&#41;&#41;
						retchar = 0x52;
					if &#40;&#40;xaxis > 175&#41; && &#40;xaxis < 218&#41;&#41;
						retchar = 0x54;
					if &#40;&#40;xaxis > 218&#41; && &#40;xaxis < 262&#41;&#41;
						retchar = 0x59;
					if &#40;&#40;xaxis > 262&#41; && &#40;xaxis < 306&#41;&#41;
						retchar = 0x55;
					if &#40;&#40;xaxis > 306&#41; && &#40;xaxis < 350&#41;&#41;
						retchar = 0x49;
					if &#40;&#40;xaxis > 350&#41; && &#40;xaxis < 393&#41;&#41;
						retchar = 0x4f;
					if &#40;&#40;xaxis > 393&#41; && &#40;xaxis < 435&#41;&#41;
						retchar = 0x50;
					if &#40;&#40;xaxis > 435&#41; && &#40;xaxis <480&#41;&#41;
						retchar = 0x3f;
					return&#40;retchar&#41;;
				&#125;

				if &#40;&#40;yaxis > 141&#41; && &#40;yaxis < 180&#41;&#41;
				&#123;
					if &#40;&#40;xaxis > 0&#41; && &#40;xaxis < 43&#41;&#41;
						retchar = 0x41;
					if &#40;&#40;xaxis > 43&#41; && &#40;xaxis < 86&#41;&#41;
						retchar = 53;
					if &#40;&#40;xaxis > 86&#41; && &#40;xaxis < 131&#41;&#41;
						retchar = 0x44;
					if &#40;&#40;xaxis > 131&#41; && &#40;xaxis < 175&#41;&#41;
						retchar = 0x46;
					if &#40;&#40;xaxis > 175&#41; && &#40;xaxis < 218&#41;&#41;
						retchar = 0x47;
					if &#40;&#40;xaxis > 218&#41; && &#40;xaxis < 262&#41;&#41;
						retchar = 0x48;
					if &#40;&#40;xaxis > 262&#41; && &#40;xaxis < 306&#41;&#41;
						retchar = 0x4A;
					if &#40;&#40;xaxis > 306&#41; && &#40;xaxis < 350&#41;&#41;
						retchar = 0x4B;
					if &#40;&#40;xaxis > 350&#41; && &#40;xaxis < 393&#41;&#41;
						retchar = 0x4c;
					if &#40;&#40;xaxis > 393&#41; && &#40;xaxis < 435&#41;&#41;
						retchar = 0x3A;
					if &#40;&#40;xaxis > 435&#41; && &#40;xaxis <480&#41;&#41;
						retchar = 0x3b;
					return&#40;retchar&#41;;
				&#125;

				if &#40;&#40;yaxis > 180&#41; && &#40;yaxis < 220&#41;&#41;
				&#123;
					if &#40;&#40;xaxis > 0&#41; && &#40;xaxis < 43&#41;&#41;
						retchar = 0x5A;
					if &#40;&#40;xaxis > 43&#41; && &#40;xaxis < 86&#41;&#41;
						retchar = 0x58;
					if &#40;&#40;xaxis > 86&#41; && &#40;xaxis < 131&#41;&#41;
						retchar = 0x43;
					if &#40;&#40;xaxis > 131&#41; && &#40;xaxis < 175&#41;&#41;
						retchar = 0x56;
					if &#40;&#40;xaxis > 175&#41; && &#40;xaxis < 218&#41;&#41;
						retchar = 0x42;
					if &#40;&#40;xaxis > 218&#41; && &#40;xaxis < 262&#41;&#41;
						retchar = 0x4e;
					if &#40;&#40;xaxis > 262&#41; && &#40;xaxis < 306&#41;&#41;
						retchar = 0x4d;
					if &#40;&#40;xaxis > 306&#41; && &#40;xaxis < 350&#41;&#41;
						retchar = 0x2c;
					if &#40;&#40;xaxis > 350&#41; && &#40;xaxis < 393&#41;&#41;
						retchar = 0x2e;
					if &#40;&#40;xaxis > 393&#41; && &#40;xaxis < 435&#41;&#41;
						retchar = 0x40;
					if &#40;&#40;xaxis > 435&#41; && &#40;xaxis <480&#41;&#41;
						retchar = 0x3f;
					return&#40;retchar&#41;;
				&#125;

				if &#40;&#40;yaxis > 100&#41; && &#40;yaxis < 141&#41;&#41;
				&#123;
					if &#40;&#40;xaxis > 0&#41; && &#40;xaxis < 43&#41;&#41;
						backspace = 1;
					if &#40;&#40;xaxis > 43&#41; && &#40;xaxis < 86&#41;&#41;
						retchar = 0x20;
					if &#40;&#40;xaxis > 86&#41; && &#40;xaxis < 131&#41;&#41;
						retchar = 0x0d;
					return&#40;retchar&#41;;
				&#125;
				return&#40;0&#41;;
&#125;

int pollThread &#40;SceSize args ,void * argp&#41;
&#123;
	int ch = -1;
	int readhigh = 0;
	int readlow = 0;
	float xf,yf ;
	char oldchar = 0;
	int keyrepeat = 0;


	while&#40;running&#40;&#41;&#41;
	&#123; 

	


		ch = sioReadChar&#40;&#41;;
		if&#40;ch == 255&#41;
		&#123;	

				ch = sioReadChar&#40;&#41;;
				if&#40;ch == 255&#41;

				&#123;
				readhigh = sioReadChar&#40;&#41;;
				readlow = sioReadChar&#40;&#41;;
				xf = &#40;&#40;byte2word &#40; readhigh,readlow &#41;&#41; - 45 &#41; / 1.77708 ;
				xread = &#40;int&#41;xf;
				if &#40;xread > 480&#41;
					xread = 480;
				if &#40;xread < 0&#41;
					xread = 0;
				xread = 480 - xread;
				
				
				readhigh = sioReadChar&#40;&#41;;
				readlow = sioReadChar&#40;&#41;;
				yf = &#40;&#40;byte2word &#40; readhigh,readlow &#41;&#41; - 107 &#41; / 2.59191 ;
				yread = &#40;int&#41;yf;
				if &#40;yread > 272&#41;
					yread = 272;
				if &#40;yread < 0&#41;
					yread = 0;
				yread = 272 - yread;

				readhigh = sioReadChar&#40;&#41;;
				readlow = sioReadChar&#40;&#41;;
				rread = byte2word &#40; readhigh,readlow &#41; ;

				oldchar = newchar;
				newchar = getTSChar&#40;yread,xread&#41;;


				if &#40;&#40;!&#40;oldchar == newchar&#41;&#41; || &#40;keyrepeat > 12&#41; &#41;
				&#123;
					screentext&#91;0&#93; = newchar;
					keyrepeat = 0;
					redraw = 1;
					
				&#125;
				else
				&#123;
					keyrepeat++;
				&#125;
			
				
			&#125;
		&#125;
	&#125;
&#125;
					 


void createPollThread&#40;&#41;&#123;
	SceUID thid;
	thid = sceKernelCreateThread&#40;"sio polling thread", pollThread, 20, 16384, 0, NULL&#41;;
	sceKernelStartThread&#40;thid, 0, NULL&#41;;
&#125;

int main&#40;void&#41;
&#123;
		int baud=9600;
		initOSLib&#40;&#41;;
		oslIntraFontInit&#40;INTRAFONT_CACHE_MED&#41;;
		pspDebugScreenInit&#40;&#41;;
	  //Load image&#58;
		OSL_IMAGE *bkg = oslLoadImageFilePNG&#40;"tskbd.png", OSL_IN_RAM | OSL_SWIZZLED, OSL_PF_8888&#41;;
		pspDebugScreenPrintf&#40;"immage loaded\n"&#41;;

	   //Load font&#58;
		OSL_FONT *pgfFont = oslLoadFontFile&#40;"flash0&#58;/font/ltn0.pgf"&#41;;
		oslIntraFontSetStyle&#40;pgfFont, 1.0, RGBA&#40;255,255,255,255&#41;, RGBA&#40;0,0,0,0&#41;, INTRAFONT_ALIGN_CENTER&#41;;
		oslSetFont&#40;pgfFont&#41;;
		pspDebugScreenPrintf&#40;"font set\n"&#41;;
		oslStartDrawing&#40;&#41;;
		oslDrawImageXY&#40;bkg, 0, 0&#41;;
		oslEndDrawing&#40;&#41;;

  		setupCallbacks&#40;&#41;; // &#91;home&#93; handler
        
		sceDisplayWaitVblankStart&#40;&#41;;
        sceCtrlSetSamplingCycle&#40;0&#41;;
        sceCtrlSetSamplingMode&#40;PSP_CTRL_MODE_ANALOG&#41;;

		// load siodriver
        SceUID mod = pspSdkLoadStartModule&#40;"sioDriver.prx", PSP_MEMORY_PARTITION_KERNEL&#41;;
		if &#40;mod < 0&#41;
		&#123;
			sceKernelDelayThread&#40;3000000&#41;;
			sceKernelExitGame&#40;&#41;;
		&#125;
        sceKernelDelayThread&#40;1000000&#41;;
        
		sioInit&#40;baud,0&#41;;
        sceKernelDelayThread&#40;1000000&#41;;

		createPollThread&#40;&#41;;


        while&#40;running&#40;&#41;&#41;
        &#123;

			if &#40;redraw&#41;
			&#123;
				
				oslStartDrawing&#40;&#41;;
				oslDrawImageXY&#40;bkg, 0, 0&#41;;
				oslDrawString&#40;100, 25, screentext&#41;;
				oslEndDrawing&#40;&#41;;
				redraw = 0;
        pspDebugScreenPrintf&#40;screentext&#41;;
			&#125;

        &#125;

        sceKernelExitGame&#40;&#41;;
        return 0;
&#125; 
Last edited by jube on Sun Aug 10, 2008 3:42 pm, edited 1 time in total.
hlide
Posts: 739
Joined: Sun Sep 10, 2006 2:31 am

Post by hlide »

Please, Jube, always use tag code "

Code: Select all

[code/]
" to put a code source.

example :

Code: Select all

int main&#40;char **argv, int argc&#41;
&#123;
   if &#40;argc < 2&#41;
   &#123;
      ...
   &#125;
   return 0;
&#125;
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

hlide.......... edited it, thanks, looks much better :)
User avatar
jean
Posts: 489
Joined: Sat Jan 05, 2008 2:44 am

Post by jean »

why OSLib??? no big deal having a whole graph library if you only have to do a pair of blits per cycle...moreover, the last time i checked OSLib, it was closed-source.
Some (very)small guidelines/advices:
in byte2word, no need for an in-memoy temp variable, let the compiler hold midvalues as registers that's way faster if you use it frequently.
so:

Code: Select all

int byte2word &#40; char h, char l&#41;
&#123;
   return &#40;h<<8&#41;|l;
&#125; 
but you could even put an "inline" before declaration or (better) do it as a macro (through "define" directive)

in "char getTSChar (int yaxis,int xaxis) ", you don't need to perform all the checks once you find the pressed key, so in the big "if" list, you can write a lot of "else", or (better) you can simply return instead of setting a temp:

Code: Select all

if &#40;&#40;yaxis > 60&#41; && &#40;yaxis < 100&#41;&#41;
            &#123;
               if &#40;&#40;xaxis > 0&#41; && &#40;xaxis < 43&#41;&#41;
                  return 0x31;
               if &#40;&#40;xaxis > 43&#41; && &#40;xaxis < 86&#41;&#41;
                  return 0x32;
               if &#40;&#40;xaxis > 86&#41; && &#40;xaxis < 131&#41;&#41;
                  return 0x33; 
             .
             .
             .
             &#125;
turn all divide for constant into multiply for constant...

Code: Select all

xf = &#40;&#40;byte2word &#40; readhigh,readlow &#41;&#41; - 45 &#41; / 1.77708 ; 
will become

Code: Select all

xf = &#40;&#40;byte2word &#40; readhigh,readlow &#41;&#41; - 45 &#41; * 0,563 ; 
...don't know if compiler holds such an optimization all alone, but usually a multiply is 4x faster than division.

Oh, and put a sleep somewhere in that poll thread main-loop.

You are one of the few among new "devs" that really deserve help in my opinion. And i want to see your project working well, so when you need help, feel free to ask.
hlide
Posts: 739
Joined: Sun Sep 10, 2006 2:31 am

Post by hlide »

jean wrote:turn all divide for constant into multiply for constant...

Code: Select all

xf = &#40;&#40;byte2word &#40; readhigh,readlow &#41;&#41; - 45 &#41; / 1.77708 ; 
will become

Code: Select all

xf = &#40;&#40;byte2word &#40; readhigh,readlow &#41;&#41; - 45 &#41; * 0,563 ; 
...don't know if compiler holds such an optimization all alone, but usually a multiply is 4x faster than division.
i'm not totally sure but -ffast-math option should allow compiler to do such such optimization.
Phantom8
Posts: 30
Joined: Fri Jun 17, 2005 10:17 am

Post by Phantom8 »

jube, great job! This looks very promising. You have added 1 of the most important features that Sony missed out. I think many of us will like to know how will the final product fit into the PSP Slim. Does the mod fit insides our PSP, or stick out like the one you've in the youtube video? If it fits inside the PSP, does your product come with a replacement faceplate?
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

jean........ hlide...thank you VERY much for your kind words and advice, its good stuff!!! will maker those changes when i get out of the hardware world!

phantom...unit will come in 2 flavours, a clip-on add-on, and an internal modification, the internal mod will include a custom molded top casing which accomidates the extra 1.7 to 0.9 mm touch screen. The clip-on should come in at a reasonable $60-80 ( break-even price ), but the internal mod will be horrably expensive!!

You cant see much cos of the camera, but the second videos are of the internal mod ( dev unit ) BTW. video is with my dev screen which by now is knackered! so response not that good!!
kralyk
Posts: 114
Joined: Sun Apr 06, 2008 8:18 pm
Location: Czech Republic, central EU

Post by kralyk »

great work jube!

(just to say, in future releasing some sort of lib for the touchscreen ad-on for others to integrate it into their homebrew would be nice, just saying, you probably plan to do it anyway dont you...)

btw. how much the you estimate the touch ad-on to cost?
Phantom8
Posts: 30
Joined: Fri Jun 17, 2005 10:17 am

Post by Phantom8 »

jube, it's good to hear there will be 2 versions. I'm more interested in the internal mod, but this of course will depend on the final pricing. I understand making custom mold would be extremely expensive. You may even lose money if you don't sell a lot of units. To me, determine the pricing would be difficult. If the price is too high, you may not be able to sell many. If it's too low, you will need to sell a lot to even break even. Have you considered to sell you design or partner with other companies, such as neoflash or divineo? This could lower your risk.
Phantom8
Posts: 30
Joined: Fri Jun 17, 2005 10:17 am

Post by Phantom8 »

kralyk wrote: btw. how much the you estimate the touch ad-on to cost?
jube said the price would be around $60-$80. It's in the post above yours.
mypspdev
Posts: 178
Joined: Wed Jul 11, 2007 10:30 pm

Post by mypspdev »

To set up a Sparkfun 4wire resistive touchscreen controller transmitting via SIO RS232 to PSP:

3 chip circuit
<<3—3 chips are all you need for this circuit. The ADS7845 handles the analog functions and the
PIC performs the sequencing, scaling, and messaging formatting. The MAX232 handles the RS-232 level
shifting.>>
http://www.circuitcellar.com/library/pr ... 114/f3.htm

Pic circuit
<<6—Four of the PIC’s
digital lines are used to provide x
and y voltage gradients. A single
analog input is used to determine
the contact point by measuring
the pick-off voltage in both the x
and the y planes.>>

http://www.circuitcellar.com/library/pr ... 114/f4.htm

or

3 Volt one chip controller
<<The processor as interface is the Tritec
TR88L811, a dedicated 4-wire touchscreen interface device. It handles
all of the touchscreen scanning, touch detection, and message
formatting chores. The 3-VOLT device was originally developed for
the PDA industry.>>

as explained in
http://www.circuitcellar.com/library/pr ... lin114.pdf


or something ready to work with 5 Volt like
<<4-Wire Resistive TouchScreen RS232 Controller (SLT-TP05-RS232).>>
with software for all OS and PCs, included Linux and DOS.
http://shop-on-line.tvielectronics.com/ ... ontrollers


Any comment about setting up a Touchscreen controller for special applications for PSP?
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

yep all of the above sound good, for a phat that is :)
User avatar
jean
Posts: 489
Joined: Sat Jan 05, 2008 2:44 am

Post by jean »

To set up a Sparkfun 4wire resistive touchscreen controller transmitting via SIO RS232 to PSP:
....
PSP sio cannot provide million amperes, so i racomend using the fewest (already power-saving) components possible. The only way to go for phat and slim in my perspective (as the pic16f883 teached us in openKeyboard's story) is to use a single pic of the new family going 2v, capable of internal timing (no external quartz), chosen between those providing at least a 2 ways ADC. Single component, small (SMD version is VERY smal), no additional compoments but a capacitor, ease of mount and use, single firmware that can customize anything, ICSP. Wonderful. There is definitely no sense in using a max**** to adapt voltage level between two low-voltage devices. If i correctly understand, the meaning of jube's project is to spread the software support, too; remember this when you do your customized version of this project, if you do.
If someone is in need of hints about a firmware, feel free to ask, i'm a low-level man atm ;)
jube
Posts: 115
Joined: Tue Oct 23, 2007 2:26 am

Post by jube »

jean has about summed it all up, have very little to add, except the sparkfun screen is too big, by 1.2 mm, catches the dpads on both sides :)
User avatar
jean
Posts: 489
Joined: Sat Jan 05, 2008 2:44 am

Post by jean »

uhm...sorry if you already told me and i don't remember, but.... what touch-film are you using? can you provide a link?
Post Reply