PDA

View Full Version : [Question(s)] Half PDA/Half Desktop PC



DanTheMan
01-07-2009, 10:56 AM
Hi,

Not a frequent poster on this forum but I have been here before and got a really helpful response so I thought I'd drop another question.

I am now about to begin a project basically simulating a PDA. By this I mean all of the processing power, memory storage, everything other than user input and display will be from the computer - but I want the unit that is held to simulate that of a PDA/touch screen phone. I don't think I've explained this very well but basically I will need a small touchscreen lcd with a little keypad and some way of bringing them together in one hand held unit (obviously not a portable one) connected to the computer from which the software will be ran.

This is for a university project. However, the degree I am studying is software engineering and doesn't touch upon and hardware issues or electrical engineering really so by getting help on this side of things I'm not really cheating.

The reason I am restricting myself to only purchasing the keypad, vdu (whatever it may be) and casing is because of money (mainly, the lack of it!). I assume that buying the full typical kit of what a pda would have would cost a lot of money and I'm not familiar with programming these.

Thanks a lot in advance!!

Dan ;)

lnxfergy
01-07-2009, 11:28 AM
A few more specs would probably be good to drive our recommendations, for instance: do you require a color screen (which would probably double the price), what do you mean by keypad - a full keyboard? I think it might be tough to find a PDA-like keyboard unless it is surplus from an actual PDA. The hard part of all of this is "interface to the computer", since your PC at best has a parallel port and a serial or two (plus some USBs).

CrystalFontz (www.crystalfontz.com (http://www.crystalfontz.com)) sells quite a few USB and serial LCDs, but I don't think any of them will be big enough for you, and none have touchscreens so you would have to add that. No color LCDs, and the bigger graphical ones don't have USB/Serial.

Spark Fun (www.sparkfun.com (http://www.sparkfun.com)) sells lots of LCDs, quite a few with large graphical screens, and quite a few with Touchpad, but I don't think any of the touchpad versions have serial/USB - which means you would need a micro or some sort of glue logic.

I'm sure someone more knowledgable than me (hmmmm, lynn...) will be along shortly to point out some really awesome component I don't know about...

-Fergs

jes1510
01-07-2009, 11:33 AM
I ran across this touchscreen shield for the Arduino a while back.
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1207495415/8

It looks like this combined with an Xbee module may meet your requirements.

Adrenalynn
01-07-2009, 04:41 PM
>> I'm sure someone more knowledgable than me (hmmmm, lynn...)

Between you two (and the other usual suspects) - I can go on vacation. :)

jes1510
01-08-2009, 09:31 AM
One other option would be to set up your computer as a web server, sign up for a DNS service, and control it via the web. If you write your page to be cell phone friendly then you can just use your cell phone/PDA.

Edit: I just realized you are at a University. This may hamper you from setting up the necessary port forwards required from the gateway to the web server. You'd have to check with your IT crew.

DanTheMan
01-09-2009, 04:29 AM
Firstly can I say thanks a lot for all this feedback. Without soundin too over the top - it's your help on this forum that can help turn my little idea for a project into a working model! Really appreciate it!

I left the original post as a bit vague so I'll try and be more specific.

How this all came about is my research into tcp socket programming. Basically sending and recieving byte streams via tcp between two computers. This can be used to simulate a text message service, calls (by converting captured audio to bytes, streaming, and then converting again for playback on the recipients computer) and other interactive services. As stated by my lecturer, it doesn't have to be something that will prove necessarily useful to an industry in the future, and it certainly doesn't need to compete with existing technologies (such as SMS and the usual way of phone calls - as doing this over a tcp will obviously be slower anyway), it just needs to demonstrate a good knowledge of programming in my chosen language while taking efficiency, encapsulation and other programming disciplines into account aswell as documentation. So that is the background of the project.

What I would like at the end of the project is an impressive way of presenting these services to my lecturer come demonstration day. I thought that it would be good to actually have a hand-held, what looked like, a PDA or touch screen-iphone type thing. I could of course just design the interface to look like that of a phone but I think the idea of being able to hand him some hardwrae that will closely simulate will be best. I thought that it may be possible to basically create a unit that looked exactly like a phone but instead of using my pc monitor and keyboard, using a small touch screen lcd and a little keypad (not a full keyboard - but just a few selected buttons that you may find on the typical phone).

To summarise, it's a project that is open to ideas from yourselves as you know a LOT more than me with regards to what is possible with engineering such a unit. I'm just in the process of doing a little rough sketch to post you now (it's only a quick MS paint job so don't expect much).

Thanks again,

Dan

DanTheMan
01-09-2009, 04:45 AM
http://i39.tinypic.com/2jfyw43.jpg

DanTheMan
01-09-2009, 04:47 AM
As you can see, as crazy as this sounds, despite the fact PDA's are usually portable - it doesn't really matter if the device is attached to the computer with a few leads - in fact - this is preferable in order to save money and further research through learning how to program a whole new type of system.

Thanks in advance!!

EDIT: By touchscreen lcd I mean a colour one that will be able to handle the resolution similar to 320 x 480 (in other words a screen with the spec of an iphone screen would be ideal).

Adrenalynn
01-09-2009, 12:10 PM
320x240 full system touchscreen: http://www.sparkfun.com/commerce/product_info.php?products_id=8853

320x240 touchscreen: http://www.sparkfun.com/commerce/product_info.php?products_id=8624

Various high-res touchscreen modules: http://www.densitron.com/displays/touch_screen_displays.aspx maybe you can sample one?

With the exception of the first, you'll need to use a microcontroller to interface it to the PC.

DanTheMan
01-09-2009, 06:06 PM
Thanks a lot Adrenalynn.
They all look like exactly what I'm after to be honest. Not that they're anything to go by, but I seen the odd pic on that last link of what looks like a fully moulded pda casing for the screens to go in so maybe they can provide that. Anyway, the microcontroller comment confused me quite a bit. Have you got any links to a microcontroller that would be typical of the one I'll be looking for? I'll google it now, but if you have a link for the exact type you mean that would also be helpful.
Thanks again!! ;)

DanTheMan
01-09-2009, 06:25 PM
Something extremely similar to what I'm after:

YouTube - PIC18F Simple touch screen GUI

If I had that - I could get casing from somewhere no problem.

Adrenalynn
01-09-2009, 07:20 PM
Yup! In this case, they're using a PIC18F microcontroller to drive the touchscreens. Probably digital data lines...

The mid-sized PICs, the mid-sized AVRs, pretty much any of the ARMs - do you already code under any of the common microcontrollers? If you do - pick one of those. ;)

I like the AVRs myself, but I've never been fond of the PICs, really - but that's just a personal preference thing.

This unit: http://www.sparkfun.com/commerce/product_info.php?products_id=8853 is ready to go. Nicely encased, all the I/O taken care of, processor and RAM onboard. And you could do some radically spiffy stuff with its extras, like the MP3 decoder and the 3axis/11bit accelerometer. You could press the touch screen to click your PC's mouse button, and rotate the hand-held unit causing it to move the mouse around on the PC screen just from rotation and draw on the PC screen, echo'd to the touchscreen. Kinda like a super-wiimote.

http://www.sparkfun.com/commerce/images/products/08853-03-L.jpg

As far as I can see, this unit meets all your requirements and then destroys them with extras. You could even make it wireless to the PC by plugging in a wifi router or hooking-up an XBee

DanTheMan
01-10-2009, 10:21 AM
Hi Adrenalynn, can't thank you enough for your help so far!
It's looking like that is the ideal unit. I'd be using that for future projects also with the sort of extras it comes with - looks cool.
The idea of wifi has just made it a LOT better also! Great idea.
However, I'm not going to come on here claiming to be an amazing c# programmer, as you know I'm in uni. Network programming is about as complicated as I've got so far in my programming 'career' so I have no experience at all with coding for any type of microcontroller. That's why I was originally going to link it up to the computer - because coding a c# solution in my usual Visual Studio IDE would not be a problem, and neither would displaying it. With this however, it sounds like a whole new type of programming discipline is to be learnt - which I don't mind, but I would really prefer to stick to my usual way of coding for this particular type as I will also have to run flash files (.swf) for a nice interface and then code some sort of interfacing with an sql database.
I went off on one there, but what I suppose I'm trying to ask is whether programming on this would just be like the way I code on visual studio on windows xp, but a rather more mini version? Like I mentioned, I will need to develop a flash movie for this as well as c#. All of which can be developed on my main pc and then transferred over if that's an option?
But yer, that meets all of my requirements and some!
Thanks again ;)
Dan

Adrenalynn
01-10-2009, 01:11 PM
I'm thinking I *really* "need" one of those. That's so pretty and so reasonably priced...

Anywho - you would be writing probably in C. Your development environment would be probably in GNU gcc toolchain and crosscompiling to the ARM on there.

Honestly, microcontroller coding can be anything from super simple to rather complex. You can whack out something super fast and easy - and then you want it to run smoother and you spend six months fighting timing interrupts. :)

I prototype algorithms on microcontrollers because the environment is so much lighter and tighter than any of the bloated PC development environments these days.

DanTheMan
01-10-2009, 05:16 PM
Hi Adrenalynn,

The last thing I want to do is come accross as lazy, but it would be a lot easier if I were to be able to code it in my usual development environment and in c#. I'm also going to be needing to include a macromedia flash movie so where would I be designing that? Would it be possible to somehow compile a c# project (including the flash file) on my pc ready for use on the unit?
Sorry if I'm missing important points, it would be fair to say I'm pretty clueless towards programming for microcontrollers. If this isn't possible, is it not possible to use this unit for the display and touchscreen input (as well as tilt input etc.) only. I know this defeats the object of the whole unit, as it is designed to handle all processing, memory etc. but it's all I'm after for now.

Thanks ;)

Adrenalynn
01-10-2009, 05:41 PM
Nope, and Nope. And Nope.

Alas, microcontrollers are not PCs. They don't run winders. They don't run C#.

Now, I suppose for a LOT more money, you could build yourself a big ARM system and run Linux on it, and then try to port your code over to Mono.

Or maybe get Windows CE running on the Gumstix and run your C# under there. That might be your best bet. Figure a couple hundred dollars for the gumstix, a couple hundred dollars for CE, if you are an Enterprise developer, you have CE tools (probably also have them being in college), so no cost there. A couple hundred dollars more for the touchscreen (NOT the one I linked last, but one of the raw screens). Another hundred in glue hardware, and then you'll need to build your own frame/case, whatever that costs. A few months full-time getting it all to work together, and then you should be ready to start on your project. You're still not going to run flash on it though.

If it were me, I'd just write a handful of lines of C code to make the one I linked talk to the PC, then I'd just send rendering commands from the PC to the microcontroller. ;)

>is it not possible to use this unit for the display and touchscreen input

Absolutely! That's what I'm proposing. Probably a thousand lines of code written in C, cross-compiled with GCC, and uploaded to the microcontroller to make it behave that way...

Adrenalynn
01-10-2009, 05:47 PM
Have you considered just buying a small touchscreen monitor and hooking it up to the PC? All the microcontroller programming will have already been done for you. Just install their drivers and you're good to go.

http://www.xenarc.com/product/700ts.html

$400 here: http://www.xenarcdirect.com/home.php

It's basically just a VGA monitor (800 x 480 native) and the touchscreen runs on the PC's mouse driver.

jes1510
01-10-2009, 09:49 PM
Since it can be a wired peripheral the check out what the folks have been doing for car PC's. Although Adrenalynn's suggestions are solid ones.

http://www.mp3car.com/

Adrenalynn
01-10-2009, 09:52 PM
That monitor I linked is the be-all-end-all for car-pc's - the 9" version's in mine. I originally found it on mp3car. :)

Alex
01-12-2009, 09:08 AM
Alas, microcontrollers are not PCs. They don't run winders. They don't run C#.

true, but can't you run the .NET micro framework on some microcontrollers?

http://www.microsoft.com/netmf/default.mspx

http://msdn.microsoft.com/en-us/embedded/bb267253.aspx

I don't have any direct experience with .NET MF, but as far as I'm aware it doesn't require an OS of any sort. I've seen MF running on ridiculously small (dimension-wise) chips out at Maker Faire, which I thought were microcontrollers, but I could be wrong. Either way though, what I saw was quite amazing for a MS product.

Adrenalynn
01-12-2009, 12:35 PM
Yup. That's why I mentioned the big ARM chips like the Gumstix. They will run CE which will run SOME dotNet. dotNet isn't an operating system, so you have to run one first - CE in this case. As that page you linked notes - there's a minimum 64k of RAM required above and beyond the OS. The micros most of us think and link here on the forum top out at that or far below.

Alex
01-12-2009, 04:48 PM
I think we're talking about two things here Adrenalynn.

Windows CE is Microsoft's version of a compact operating system. When you program Windows CE applications, you use the .NET Compact Framework. Windows CE has been around for a while now.

However, the .NET Micro Framework is relatively new and can run directly on the ARM chip itself (and other microcontrollers) without any Operating System.

Adrenalynn
01-12-2009, 04:50 PM
I'm sorry - I'll read it more closely. I wasn't aware of that.

Minimum memory requirements are still a little steep, but good for an ARM9. I'll study it more closely and chime back in! Thanks for explaining it!

Adrenalynn
01-12-2009, 04:56 PM
Ok - I stand corrected - thanks again!

Minimum 400KB of on-device storage. Minimum 64KB of RAM. (That's just for the framework with the bare-minimum installed)

Arm7 or 9 meeting those requirements (Blackfin appears to be recently announced)

Must use Standard or Pro Visual Studio - not the free version (from the FAQ)

C# is the only development language supported right now (from the FAQ)

So ~$200 to $3000 for the tools, and it takes a pretty steep development board. The Gumstix would be a good choice still.

Thanks for explaining it to me, Alex! Worth having in the arsenal. Doesn't get us to running a Flash interpreter on it, but at least it makes coding to C# in some instances a reality.

DanTheMan
01-13-2009, 05:19 AM
I don't mean to come accross ungrateful of all your feedback and advice but this seems to have got a lot more complex that what I had anticipated.

Let's completely forget about the keypad for starters. I can recieve input from the user solely by touchscreen. What I am after now is very simple. Just a full-colour, touchscreen LCD/OLED (not sure), with a decent resolution that I can literally just plug a vga lead into or maybe usb. But basically what I want to do is design my software so that it is the right size to fit on to the screen (so I'm expecting to be working on a smaller sized form in visual studio etc. before plugging in the touchscreen) which will fill the touchscreen display.

To sum things up, I'm after one of these...

http://www.enablemart.com/Catalog/Touch-Screens/Magic-Flat-Panel-Touch-Monitor-LCD;jsessionid=0a010c461f43c23e287bb722435d920b9e9 eeff0440a.e3eSc3qPbN0Te34Pa38Ta38Nb3n0

...but about 3.5" instead.

Thanks a lot so far, I've learnt a lot in this thread already but for now I'm just after a really simple, small touchscreen solution.

Thanks again,

Dan ;)

DanTheMan
01-13-2009, 05:56 AM
just to give you a good idea of what i'm after:

http://www.visiontouch.com/3_5_vga_lcd/3_5_inch_vga_lcd.htm

that's exactly it, that might even be the one I get

DanTheMan
01-13-2009, 07:53 AM
actually i won't, no touchscreen capabilities

if noone knows of a small vga touchscreen then what about the typical 3.5" touchscreen lcds that aren't vga - are there any easy ways of connecting them via vga? like a converter or something similar??

tar,

Dan!

Alex
01-13-2009, 08:50 AM
I'm sorry - I'll read it more closely. I wasn't aware of that.

Minimum memory requirements are still a little steep, but good for an ARM9. I'll study it more closely and chime back in! Thanks for explaining it!

Sorry? No reason to be sorry:p I didn't know if I was reading it right. Been too swamped on backend website work lately to read anything in detail :(

Adrenalynn
01-13-2009, 10:13 AM
Whatcha want there is a touchscreen overlay with a serial adapter.

In fact, crystal also makes serial adapters. Basically, they've done the microcontroller programming for you. http://www.crystalvisions.com/serial_lcd.htm is their site.

Sure - you can convert VGA to NTSC/PAL for TV style monitors! Do a Google search for:
vga scan converter ntsc

Give ya the search terms 'cause there's a trillion of them - they're a consumer item.

I still think you should just write the MC code to control it one of the MC driven ones like I first linked. I'll bet you'd have the MC side sending/receiving data from a pc in a week.

DanTheMan
01-13-2009, 10:28 AM
Adrenalynn, before I go on to ask you more about that crystal set-up (because I'm a bit confused with parts of it), can I ask why isn't it just as simple as going to a shop, buying the typical monitor (even if it is touchscreen) and plugging it into the vga. The fact that the screen I am after is smaller seems to lead me into a world of microcontrollers, c programming and different adapters. If you could help clear things up that would be great, I appreciate all of your help so far.

Dan

DanTheMan
01-13-2009, 10:29 AM
I didn't mention how interested I was by the crystal solution though, I am on that link now and if I knew how to work my head around it it looks like the solution for me.

I should also mention that as long as there isn't a LOT of C code to learn, it would be fine to do some small amounts of programming for hte microcontroller as long as I knew which direction I was heading. It's only going to add to my marks for this particular university assignment isn't it?

Thanks again

Adrenalynn
01-13-2009, 10:33 AM
'Cause no consumer wants a 3.5" VGA touchscreen monitor on their desktop. :) When you go buy one in the shop, the microcontroller work is already done for you. Like the 7" one I linked. If you could survive with a 7", you'd be done already. :)

Adrenalynn
01-13-2009, 10:34 AM
I'm sure there's one out there already done someplace...

Adrenalynn
01-13-2009, 10:36 AM
Now that I write that... You are one lucky guy!

http://www.aeicomp.com/Detail.asp?Product_ID=090.004_LCD35VGANTS

3.5", 640x480, touch screen, NTSC (use a scan converter), $300

Take it back again - Scan converter is included. Jump on that

DanTheMan
01-14-2009, 04:01 AM
Brilliant!! Well spotted. Looks like they ship to the UK too. I really appreciate all that Adrenalynn! I'll definately upload some pics of it when I'm done! ;) If I'd rep on this forum I would.

A bit off topic - but does anyone know what happens if you put in an order for a different currency using ur bank?? I'm wanting to place the order (which is displayed in dollars) using a card I have where the currency is obviously GBP.

Thanks again!

Dan

DanTheMan
01-14-2009, 07:44 AM
Maybe this should be for another thread - but I also have another question regarding this project.

What would the majority of you do if you were needing a plastic casing to make this at least look like a pda (without a keypad) and you didn't have the sort of stuff to mould it. Are there companies that specialise in this?

DanTheMan
01-14-2009, 08:01 AM
I'm gonna be a big pain in the arse here Adrenalynn but I have one more question for you regarding the screen haha
How is the user-input (touch) sent to my pc from the touchscreen? I didn't think VGA could be used for that kind of thing

jes1510
01-14-2009, 08:48 AM
I don't see it spec'd anywhere but I would guess it's RS232 serial. The board in the illustration on top left looks like the output board and backlight driver.

BTW, if the picture is correct then this touchscreen will support IR as well.

jes1510
01-14-2009, 08:50 AM
Maybe this should be for another thread - but I also have another question regarding this project.

What would the majority of you do if you were needing a plastic casing to make this at least look like a pda (without a keypad) and you didn't have the sort of stuff to mould it. Are there companies that specialise in this?


Draw up what you need and take it to your local highschool and see if you can get the shop class to cut it for you on a mill. Perhaps your university can do the same.

Option 2 is to mill your own molds and pour your own plastics. It think Matt did a tutorial on how to do this in Servo magazine. He got some really nice results but I haven't tried it.

lnxfergy
01-14-2009, 08:55 AM
I'm gonna be a big pain in the arse here Adrenalynn but I have one more question for you regarding the screen haha
How is the user-input (touch) sent to my pc from the touchscreen? I didn't think VGA could be used for that kind of thing

There is gonna be a second connection - probably serial or USB (it is the board most on the left side). You'll get a flow of points that have been hit over that serial connection.

-Fergs

DanTheMan
01-14-2009, 10:21 AM
Thanks a lot for even more replies, I suspected it would be that USB. I'd be able to work it out once I had it anyway.

After allll that discussing and finally arriving at a perfect model, I'm now thinking that might be a tiny bit too small. 5" would be an ideal size hahaha

To be honest I'll probably find myself ordering the 3.5 one as the 7" (next one up) is much too big for a pda size so if anyone knows of any similar systems at around 5" then I'm open to further suggestions

Thanks,

Dan ;)

Adrenalynn
01-14-2009, 02:29 PM
Thanks! The "Rep" button is the check-mark with the X gray button on the upper-right side of any post. :)

Agreed with what was written here. I didn't see the interface spec'd, and I stared hard at the board everyone is mentioning - clearly the interface is that little white plastic connector. No idea the output, but it's going to be some kind of serial. Worst-case is TTL, and if it is, we'll point you to a TTL->RS232 convertor from SparkFun for <$15 or a TTL->USB for a little more. Best case is USB (did I even write that?!?), second best is RS->232.

As Fergs suggested, it will resemble a raw pointing device (unless they include drivers). In a near-perfect world, it will resemble a touch-pad. You'll get something like X,Y or X,Y, Accel or X,Y,Time, or X,Y,Accel, Time ("Time" is nice measured internally because it make it easy to distinguish virtual button-clicks without having to do your own code to consider how long a person kept their finger in nearly the same place)

Make no mistake - this is definitely still a hackers project. You've just moved the hacking off the screen and onto the PC where you seem more comfortable.

As far as case material, you can look at Shapelock plastic. It can be formed just by putting it in hot water, taking it out and shaping it before it cools below its melting point. It's a common prototype tools, and pretty inexpensive.
Plastics done commercially are INCREDIBLY expensive for molding/casting. I always budget between $750,000 and $5,000,000 for my plastics commercially. We spent $1.2M on plastics for a cell-phone/gps embedded tracking device recently. That included a slide-off battery with its plastics. It was a great price from a long-time supplier we had in China. Delivery times from drawing to final prototypes on it was about 9 months, twice as fast as normal...

So me personally? I'd saw out a smoked lexan front plate to fit a project box, then I'd slap the electronics in a project box of appropriate size. You can find a near infinite number of project box size/shapes online. Try to find the retail sellers that don't have an MOQ (Minimum Order Quantity). You should be able to cut-out a smoked acrylic or lexan front plate (bonus points for going colored or even mirrored color acrylic) using hand tools (although a jig saw/saber saw/scroll saw will help immensely, but a good hand coping saw for $10 will do it) in just a few minutes - plan on making several and picking the best. I could build the casing with a couple hours in the lab with just a saber saw and a project box order for ~$25.