Aller au contenu


Submitter

File Information

  • Submitted: juil. 08 2009 14:42
  • Last Updated: juil. 08 2009 14:42
  • File Size: 1,57 Mo
  • Views: 20
  • Downloads: 1

Download GPSP v2

- - - - -




  *** GPSP V2 - GPS Front End Project For Sony Playstation Portable ***

  © Art 2005

________________________________________________________________________________
DISCLAIMER:
This Software/Hardware design package is provided as is, without any warranty.
It has been tested, works for me, and has not fried any of my equipment,
but if you don't enjoy the same results, don't cry to me about it.

License:
This hardware and software is provided free for private, and non-profit use.
It is not permitted to use for commercial purposes.
________________________________________________________________________________




Hi Guys,
This program is for the Sony Playstation Portable (PSP) handheld console.
It will provide a practical GPS Graphic User Interface (GUI).
The GPSP software for Sony PSP runs under LUAplayer 0.11 or later

LUAplayer is free. If you haven't downloaded it, you will need to get it running
on your (*)1.50 firmware PSP in order to try this out for yourself.
________________________________________________________________________________
(*) This project has been personaly tested with 1.50 version PSP firmware,
and LUAplayer 0.11, but I suspect that it will work on earlier versions of PSP
firmware, and possibly later versions of LUAplayer.
________________________________________________________________________________



  *** Why Does this project require the pic circuit? ***

This project came about when I noticed that LUAplayer's biult in serial terminal
is slow when it comes to recieving serial data. This is probably mainly due to the
time it takes LUAplayer to check for linefeeds, print characters to the screen, etc.
All of this activity must occur in between every byte it recieves.

This works fine in the given example where the PSP is connected via the standard PSP
homebrew interface to a PC running terminal software because there is sufficient
time between keypresses by a Human for the data to be interpreted by LUA and printed
to the screen. The LUA PSP terminal is then ready to recieve the next byte well
before it is sent by the PC.

But what if we want to connect the PSP to something that doesn't wait until LUA is
ready? Well, the answer is: any byte that is sent to the LUA serial terminal
without sufficient time seperating it from the last (or next) byte is not interpreted
by LUA, and that byte of data is lost. Depending how fast the external device is pumping
out data, (%)more than one consecutive byte can be lost between bytes that are
interpreted properly at the PSP end of the serial cable.
_________________________________________________________________________________
(%) I have found that a character pacing of approximately 15ms is required for reliable
serial transmission at 2400 baud using a slightly modified version of the LUAplayer
serial terminal program.
_________________________________________________________________________________



  *** What Can This Pic Circuit Do For The PSP Running GPSP under LUAplayer Then? ***

Well, as it exists at the moment, it will allow you to view data from a (&)GPS Mouse
on the screen of your PSP running the GPSP program. This occurs in real time, however
there is a delay from when the data is received by the microcontroller circuit, and
retransmitted at the slower rate to the PSP. The pic circuit is also filtering
information from the NMEA sentences transmitted by the GPS mouse, and discarding
any information that GPSP doesn't use so that minimal bytes are retransmitted by the
pic circuit to achieve ( or try) the fastest transmission that GPSP will interpret.
_________________________________________________________________________________
(&) I have tested this project with the pictured Garmin GPS18PC GPS Mouse style unit.
The Garmin GPS18 is configured to transmit NMEA data at 4800 baud.
_________________________________________________________________________________



  **************   IMPORTANT!!! **************

Certain NMEA/Garmin data output sentences must be enabled on the GPS mouse in order to
be compatible with this software. The following are the sentences that must be supported
by the GPS device, AND enabled:

$GPRMC (Recommended Minimum Specific GPS/TRANSMIT Data)
$GPVTG (Track Made Good and Ground Speed)
$GPGSA (GPS Fix Data Sentence)

The data for indicating status of GPS position fix is extracted from a different NMEA
sentence from the first version. This was to make the project with other types of GPS mouse.
It would be preferable to disable all other output sentences than those required for this
program.

I have tested this with a Garmin GPS18 PC mouse style reciever, and a Garmin eTrex Legend.
The Garmin eTrex Legend is working with GPSP-V2, but the compass misbehaves in all
screen that it appears in, the correct time is displayed, but only updated every 2 seconds,
and entire operation with the eTrex Legend is unreliable at the moment.

The Garmin GPS18 GPS mouse used must be configured with it's PC software to output 'GPRMC',
'GPGSA', and 'GPVTG' data sentences.
As I understand, these are all standard NMEA data sentences that should be universal
to all GPS mouse brands. I did not find a way to configure the output sentences on the
Garmin eTrex Legend, and it probably isn't capable of sending updates any faster than it does.
__________________________________________________________________________________



The interface circuit effectively slows the speed of data by both halving the baud rate that
it receives data, filtering out data that is not used by the GPSP program, and introducing
chatacter pacing of approximately 14ms between all bytes transmitted to the PSP.
The software for the pic circuit also does some simple pre-proccessing of the data
such as converting from ASCII, and determining if the GPS mouse has a valid position.

In the future, this circuit may become more, or less usefull.
I have not tested how fast serial data can be read in at the PSP end if real time
printing to the screen is not required by the program (ie. data is read straight into
a buffer prior to being processed and results printed to screen).

Although it is possible that this device may not be required to do anything usefull
with a GPS mouse in future, I doubt that any GPS program running on a PSP will be fast
enough under LUAplayer to ever be usefull without some pre-processing of serial data by
a microcontroller... but like I said , I could be very wrong.
It appears that the PSP serial UART only buffers single bytes. It would be possible to get
things done much faster if data could be buffered directly into an array of variables
prior to any drawing onto the PSP screen.

Since some circuit is required to interface the PSP serial port with a PC (or most other
serial devices), I can't see this circuit going to waste since it could run another
program on the pic that simply eliminates the need for any MAX232 type level converter
by outputting the exact same data that it receives.

Other possible applications for similar microcontroller circuits like this include a
temperature sensor, or numeric keypad for the PSP.
___________________________________________________________________________________

  *** How Do I Use The GPSP Software? ***

Copy the provided GPSTIME, and GPSTIME% folders to the PSP/GAME folder on your PSP.
Plug in the headphone/serial connector, and power the pic circuit and GPS mouse.
The first data screen will appear when GPSP gets valid data from the GPs mouse via
the pic circuit.
This happens well before the GPS gets a position fix because the correct time is
maintained by a system clock internal to the GPS mouse. You can expect to wait a maximum
of two seconds before seeing the first data screen appear on the PSP.

From the first data screen, you can press 'X' to toggle between the 'data' and 'world map'
screens. The world map screen provides a small map of the world with a crosshair that
indicates your global position. The world map does not span the entire globe, as you can
see, most of the polar ice caps are missing (sorry Santa Claus).
A screenshot of this is provided with this package.

While in the data screen you can press the circle button to cycle three viewing modes.
the viewing options are:
1. The first screen you see the time feild as the main feild in display.
there are smaller feilds at the bottom of the screen that indicate lat&longitudinal
coordinates, directional heading compass, and speed in km/hr.
A screenshot of this is included with this package.
2. The second monochrome screen has the speed in Km/hr as the main feild, and
the small directional heading compass is displayed at the bottom of the screen.
3. The third screen provides a large directional heading compass in the middle of the
screen, and no other feilds on the display.

You can press select to save a snapshot, but this does not work properly with all
screens since parts of the screen are drawn at different times.
Pressing start will exit the GPSP application, and restart.

___________________________________________________________________________________

  *** A Note Reguarding the PSP Serial Port ***

I have found that if 'auto sleep' is enabled in the power saving menu, and the PSP unit
goes to sleep, it does not reactivate the serial port when it wakes up from sleep,
and LUAplayer needs to be restarted with the 'Home' button.
The same occurs if you manualy put the PSP unit to sleep.
This shouldn't be a problem if the sleep setting is not used. The auto backlight
settings do not interfere with the program's operation.

Cheers, Art.
___________________________________________________________________________________



~~~To Do List (or at least the start of it!)~~~:

1. Achieve full hardware handshaking with some level of software support for this,
  and checksumming of data sent to the PSP.
2. Log LARGE track, plot, and waypoint data files directly into formats supported by
  popular GPS and mapping programs for the PC
  (I say LARGE because that's something a commercial GPS can't do).
3. Learn how to update the system clock time through LUA if this is possible.
  Implement automatic offset function for local time based on global position.
4. include a function for the pic circuit to reconfigure the GPS mouse without the
  need for a PC in the event that the GPS mouse loses it's configuration profile.
  The GPS mouse can lose it's configuration profile if it is run from batteries
  that are allowed to become fully drained.
5. Implement error checking to tell if the GPS mouse has been disconnected, lost power,
  the pic circuit isn't working, etc.
6. Sound. Hasn't been too important yet because I need to modify the headphone chord
  further to get sound out of it. The headphone chord must be plugged into the PSP
  for the project to operate, so the PSP speakers are disabled. However, a pair of
  small PCB mount piezo speakers (salvaged from old PC motherboards and card modems)
  could probably reproduce an audible voice.
  I am looking for a sexy female voice to fill the role.
7. Either get everything working properly with the Garmin eTrex Legend, or forget
  about using the eTrex Legend with this program.

~~~ Version History (newly released versions will increment by integer)

  Beta/ Test Version (unreleased) - basic serial terminal experiment, and clock.

  GPSP V1 - Three data screens, and a map screen.

  GPGP V2 - All screens update on the second, as opposed to every two seconds like
  some screens in the first version.
  Bug fix for the leading digit of clock on the clock screen.
  Lead zero blanking for the tens digit on the clock screen.
  Two tone background for compass screen.
  The pic circuit Hardware and Software have been updated.












Other files you may be interested in ..