GBA GPS

I own Magellan meridian GPS, many efforts were done to create custom maps for the receiver (see Links to my Magellan GPS page). But most of the mapping receivers (Magellan, Garmin) use vector graphics, this is very good for scaling, search, and huge amount of data. But sometimes much more convenient to have raster map with the current position on the map. I developed this GBA based mapping receiver to use scanned maps with GPS the way I like. This was done for fun, but I found this device very useful. I am using this device as a car navigator in the city. All programs here are freeware, they come with absolutely no warranty, use them at your own risk.

Mikhail Sharonov

Modifications:

04/04/05 Based on your comments new features are implemented in v.2: a) speed b) heading c) auto saving the settings and the last position on the map.
Please see picture below (Fig. 1b) for the screenshot. New menu items are added to the GBA program and new default settings are added to the ROM maker program to turn on and off the heading marker and to select units for the speed (MPH, Km/H). Screens (GPS fix - (GPS fix+speed) - (speed only) - nothing) are switchable in turn with the "R" button. Auto saving works with flash card with the RAM. If no RAM exists or the RAM is not as expected, the map will be loaded with the default settings (not tested, I do not have flash card without RAM). When signal disapears 0 satelites are shown (bug of previous version). I still keep the old version in case ver. 2 has bugs.

03/29/05 Pat Crowe have connected Trimble LassenSQ module to GBA . Please see Appendix C for details.

03/18/05 Several bugs were fixed in GBA GPS ROM maker

03/14/05 Tested with Garmin Etrex. Works fine.

02/24/05 I attached GPS sensor from the Microsoft Street and Trips 2005 bundle (see Appendix B for details). It has slightly different NMEA output format, I did support of NMEA more flexible, now my program reads both Meridian GPS and Microsoft GPS fine. Minor bugs fixed in GBA GPS ROM maker.

02/17/05. 1200 and 4800 baud rates are added. Algorithm of movement is improved (more smooth scrolling). Menu "settings" is added to GBA maker program to change default settings.

 

What is needed:

  • GBA console
  • GBA flash cartridge
  • Any GPS sensor / receiver with NMEA 0183 output (serial (RS232) at 1200, 4800, 9600, 38400, 57600 or 115200 bps)

(there are many different sensors available, from inexpensive stamp size modules with the price less than $40, GPSR/sensor from Garmin or Magellan and others. Almost all sensors/receivers have NMEA output, but some of them operate only at 4800 bps, this baud rate is currently unsupported. This limitation is due to limitations of GBA UART mode; I am going to overcome this problem soon by custom low-level routines for serial input). I did all tests with Magellan Meridian GPS)

Update: I added 1200 and 4800 baud rates by creation of custom reading algorithm. Similar to other rates both normal and inverse modes are supported.

 

Main features:

  • Up to 20 maps (raster images (scanned maps, satellite images, whatever)) of any size
  • Automatic (searches appropriate map when position is out of the current map) or manual switch between maps
  • Always holds current position on the map at the screen center by fast (but in dependence on the speed) and precise scrolling of the map
  • Browse mode allows to view maps (pretty similar to GPS picture viewer)
  • GPS fix can be shown/hidden (Time, Number of satellites, Latitude, Longitude and Altitude)
  • Adjustable parameters of serial port
  • Shows NMEA messages for debug
  • zoom out to 2x, 4x, 8x
  • Gamma correction of the images

Fig. 1a Fig. 1b.

Fig. 1 a) GBA screen in GPS mode with GPS Fix window on and marker indicating valid fixes. The same for version 2 (in addition the heading is shown (by red dot) and the current speed is shown (at the right-bottom corner), speed units can be selected as MPH or Km/H from the SCR_settings menu. Heading and speed are extracted from the $GPRMC NMEA message.

All-in-one Windows program to calibrate maps and create ROM:

Fig. 2 GBA maker/calibration program. New versions have more control.

Step by step guide

Connect receiver to GBA

All you need is connect 2 wires from GPS receiver to GBA link port:

 

Fig 3 a)

 

Fig 3 b)

 

TTL and CMOS levels are OK (tested), voltage level from zero (logical 0) to 2.4V-4.4 V (logical 1). If you are not sure about voltages (especially taking into account that some RS232 standards declare -12 - +12 V, simple protection circuit can be built (Fig. 3b, tested). This circuit limits voltages to -0.6 V- +2.4 V, this is safe for GBA.:

For all receivers described here (Magellan Meridian, Garmin Etrex, Pharos-360, Lassen-SQ) protection circuit is not needed.

Test connection. GPSR produces some NMEA messages even if there is no valid GPS fix, so we can test port settings and connection even if there is no satellite signal.

To use menus etc we need some (even crappy) map inside, because font shares palette with the image. So we need to create ROM with some image. Just import any picture to GBA ROM creator, set 2 any calibration points (with any coordinates (but not zero); at this stage valid calibration is not needed). Create and load ROM to the cartridge.

Go to"COM settings" menu (see menu chart in Appendix A), set desired settings. Note: GBA link port inverts signals, so if GPSR port is normal use Inverse setting (default). Select "Show NMEA" menu. If communication is OK you will see NMEA messages on the screen, they starts with '$", then Name of the message and some parameters: like this: $GPGSV,3,2,12,14,40,153,,19,03.... If communication is not OK, you will see some crappy text, or no text et all, to fix this check COM settings of your GPSR and GBA. Main indication of good communication are $ signs at the first raw position.

Create ROM

1) Import images (BMP, JPG or GIF format, scanned, satellite images or whatever) to the provided Windows program. You will see imported images with the names truncated to 10 chars, size of the image and projected ROM size at the grid to the top-right side. Names can be changed by double clicking the name.

2) Calibrate images. Put from 2 to 5 points by double click on the image. Enter coordinates. Currently WGS84 Lat/Long is supported. If the image is in different coordinate system convert it with some program (many of such programs are available on the Internet, see also "How-To- Convert projections" on this site). Press calibrate button. At any stage map (or map set) can be saved as a *.gmap file. This file contains reference to the image, calibration points and calibration parameters (if map is calibrated). All maps in the list must be calibrated prior to ROM creation. If several maps are created to cover some region, good practice to make them slightly overlapped to cover all area. GBA GPS automatically will search for the appropriate map and switch between them. With "Overview map" menu all calibrated maps (bounding rectangles) will be seen on the screen at the same scale.

Move map (drag mode) with Left Button pressed

3) Change Time Zone. GPSR returns time in UTC, enter difference at your location to see correct time. Example: for New York this is -5.

Update: In new version Time Zone and Port Settings are in the Settings menu. You can still change parameters of COM port from within GBA; with the settings dialog DEFAULT parameters are changed, so now is not necessary to adjust COM parameters every time when GBA is powered on (if different from default). For version 2, two new settings are added: heading marker and speed units (also can be changed from within GBA).

4). Press Create ROM menu. Done. Load ROM to the cartridge.

GBA program

There are 2 main modes "GPS mode" and "Scroll mode". At "GPS mode" current fix will automatically adjust center of the screen at the fix position. The scrolling speed is proportional to the speed of the movement to make jumpless scrolling. At "Scroll mode" maps can be viewed using arrows, GPS fix will not try to adjust screen center at the fix position. Once B button is pressed "Scroll mode" jumps to "GPS mode". If any arrow is pressed while in "GPS mode", program enters to "Scroll mode".

If fixes are coming from the GPSR marker looks like a "target" (see image above), when signal is lost in about 4 seconds markers becomes "sand clock" indicating lost of fixes. After reappearing the fixes marker changes back to normal "target" immediately.

See appendix A for details on Menu and mode flow. In ver 2 new menu item "SCR_settings" is added to the main menu (to select weather the heading marker will be shown and to select speed units). In version 2 the (GPS FIX) - (GPS FIX+ SPEED) - (SPEED alone) - (nothing) screens are switchable in turn with the "R" button.

 

Appendix A. Menu chart

Appendix B Microsoft GPS sensor (Microsoft Streets and Trips 2005)

MS Streets&Trips 2005 package has Microsoft branded GPS sensor; actually this sensor is Pharos GPS-360 sensor. It has USB connection, but sensor itself has standard RS232 4800 8N1 output, the USB is done by virtual COM ports and a converter (black box at the middle of the cable). So this sensor is good for GBA. Sensor is SIRFII powered, up to date the SIRF chipset is one of the most sensitive sensors available. At the backside of the sensor one can read rating:3.5-5.5 V, nevertheless it works just fine at 3.3 V and can be powered from GBA directly (pin 1 of the GBA Link port). Below are wiring diagram and a view of the sensor with GBA.

GPS-360 sensor pads.GPS-360 and GBA.

GBA settings for this sensor is 4800, No inverse, N, 8. I connected this sensor with a separate GBA cable (made a hole in the box) to have standard connector via USB cable ready for using with PC.

Appendix C Trimble Lassen SQ sensor

Trimble (www.trimble.com) manufacrures stamp-size GPS OEM modules. Lassen OEM modules support TSIP (Trimble Standard Interface Protocol) and NMEA 0183 protocols.


Lassen SQ by Trimble
  • 100 mW @ 3.3V
  • 26 mm x 26 mm x 6 mm
  • TSIP and NMEA
  • 0183 protocols
  • Flash memory
  • Small companion
  • antenna: 20.1 mm x
  • 20 mm x 8 mm
  • Antenna short-circuit detection and protection

Pat Crowe sent a detailed description how to program LassenSQ module (to change the protocol to NMEA) and how to connect the module to GBA. Please contact him directly (email: pc@bookreader.co.uk) in case you have some questions. Please use the following link to see these materials.

LassenSQ module and GBA