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:
- CRIUS NEO-6 GPS v3.0 + I2C-GPS NAV -combo (Ebay)
- 3.3V USB FTDI cable (for configuring GPS and programming I2C-GPS NAV -board)
- Windows PC with FTDI drivers (http://www.ftdichip.com/FTDrivers.htm) installed
- u-center software (Windows only) for configuring NEO-6 GPS -module http://www.u-blox.com/en/evaluation-tools-a-software/u-center/u-center.html
- Arduino IDE 1.05 (Windows or Linux) for programming I2C-GPS NAV -board
- C64 Userport connector
- some wire
Configuring NEO-6 GPS -module
- Install FTDI drivers in your Windows PC.
- Install u-center in your Windows PC.
- Build an adapter cable so that you can connect you FTDI cable to NEO-6 GPS module.
- This picture seems to have the correct color mapping from FTDI cable colors to GPS module
- 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.
- Connect FTDI cable to USB slot in your PC and the other end into NEO-6 GPS module, start u-center SW
- Make sure you select correct COM port in receiver menu
- Depending on where you bought your NEO-6 GPS module it may be configured on 9600bauds or 38400... or something else.
- 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
- In Tools / GPS configuration -menu select "GPS >> File" to take a backup of your original configuration.
- Save that in case needed for some reason.
- 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
- Install Arduino IDE 1.05 or later (Windows or Linux)
- Open the attached I2C_GPS_NAV_C64 -project (I2C_GPS_NAV_C64.ino)
- In Tools/Board menu - select a board with ATMega328 , for example "Arduino Pro or Pro Mini (5V, 16MHz) W/ATmega328"
- In Tools/Programmer select "Arduino as ISP"
- In Tools/Serial port - select the correct com port for your USB/FTDI cable
- Connect FTDI cable to I2C-GPS NAV board's FTDI header
- Press CTRL+R to compile I2C_GPS_NAV_C64 -project
- Press CTRL+U to upload the binary into I2C-GPS NAV -board
Connecting to C64
- 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.
- Connect I2C-GPS to C64 user port as shown below
See User port pinout, for example, from here:
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: