GPS View

Updated 7.3.2014: Version 0.2 now supports a very basic navigation

You just can't live without a GPS in your C64 - can you :)

I've always found Global Positioning System with its satellite armada very intriguing - so

I decided to dig into it using the trusty old Commodore.

I'm using CRIUS NEO-6 GPS v3.0 attached to a I2C-GPS NAV -board. This same GPS setup is being used in some quadcopter projects that are able to fly pre-defined routes and return home when needed. I2C-GPS NAV - a board which equals a small stamp in size - acts as a buffer for GPS data and provides a I2C interface to the GPS data.

Some snapshots of the software ( compiled with CC65) below:

In case some adventurous C64 user cares to try this also I've put some instructions and code available below.

List of things you need:

Configuring NEO-6 GPS -module

  1. Install FTDI drivers in your Windows PC.
    1. Install u-center in your Windows PC.
    2. Build an adapter cable so that you can connect you FTDI cable to NEO-6 GPS module.
    3. This picture seems to have the correct color mapping from FTDI cable colors to GPS module
    4. pins (pins are labeled on the module). Also, at least my module combo came with extra connector cable that fits into NEO-6 GPS module connector.
    5. Connect FTDI cable to USB slot in your PC and the other end into NEO-6 GPS module, start u-center SW
    6. Make sure you select correct COM port in receiver menu
    7. Depending on where you bought your NEO-6 GPS module it may be configured on 9600bauds or 38400... or something else.
    8. In u-center select "autobaud" from receiver -menu. As shown in https://code.google.com/p/ardupirates/wiki/UbloxGPSTutorial you should see green icons in the bottom of u-center
    9. In Tools / GPS configuration -menu select "GPS >> File" to take a backup of your original configuration.
    10. Save that in case needed for some reason.
    11. In Tools / GPS configuration -menu browse the attached u-blox-config.c64.txt configuration file, check the "Store configuration" box and click on "File >>> GPS". This stores the proper configuration permanently to NEO-6 GPS module EEPROM.

Updating I2C-GPS NAV -board

  1. Install Arduino IDE 1.05 or later (Windows or Linux)
    1. Open the attached I2C_GPS_NAV_C64 -project (I2C_GPS_NAV_C64.ino)
    2. In Tools/Board menu - select a board with ATMega328 , for example "Arduino Pro or Pro Mini (5V, 16MHz) W/ATmega328"
    3. In Tools/Programmer select "Arduino as ISP"
    4. In Tools/Serial port - select the correct com port for your USB/FTDI cable
    5. Connect FTDI cable to I2C-GPS NAV board's FTDI header
    6. Press CTRL+R to compile I2C_GPS_NAV_C64 -project
    7. Press CTRL+U to upload the binary into I2C-GPS NAV -board

Connecting to C64

  1. Using the cables that came with the combo set - connect the NEO-6 GPS module to I2C-GPS NAV board connector which has "GPS" label on it.
  2. Connect I2C-GPS to C64 user port as shown below

See User port pinout, for example, from here:

Commodore 64 User port pinout

Note 1: I measured about 80mA current consumption when plugging I2C-GPS nav + NEO-6 GPS -combo.

C64 userport is said to provide 100mA, so in theory it should be enough. However, if you have some other HW additions already eating the +5V then user port may not be able to provide enough current.

So, i recommend getting the +5V somewhere else to be safe ...covering my back here in case something gets fried :)

I'm currently powering my C64 tower from ATX power and I'm using +5V straight from the PSU, so getting enough juice is not a problem.

Downloads: