GPS Toy / On board computer

TOP meneame.net
Update: This hardware was made from parts at adafruit, sparkfun and dealextreme. See the new, custom design with more power efficiency, better GPS and temperature sensor here.

This is something I’ve been working about a month now. It’s a little handheld GPS / on board computer that shows altitude, current course, synced satellites, speed, time and date, distance between saved point and current point (and its course and corrdinates) and total trip distance.

Cube GPS Toy

Cube GPS Toy

At first I wanted a speed-o-meter for my bike but you know, coding it’s free and could stop adding functions.

I managed to get some cheap serial GPS receptor, a tiny OLED display and an Arduino Mini Pro and started to code. First I knew I would need some big font and so I made my own using paint, each character 24×32 (96bytes). This is the complete parts list:

  • Ebay I2C SSD1306 based OLED display, 128×64, 0.96″ and 5V.
  • Ebay Arduino Mini Pro (ATMEGA328p), 5V 16Mhz
  • Sparkfun DC-DC step-up voltage converter (5V).
  • Adafruit MPC73833 LiPo battery charger.
  • Savaged iPod Nano 1st gen battery.
  • Dealextreme EM-411 GPS 5V receiver.
  • Savaged momentary buttons, resistors and wires.

I had to code some method to print own big fonts in the display and the moment I managed to control all the display functions as I wanted I started to code the methods to print GPS gathered data in the display. This is an earlier slowed display test that didn’t worked well:

The first prototype had just speed mode, was assembled with double tape and had no battery charger. It’s purpose was to see how speed meter worked testing it in my car.

First handheld GPS prototype

First handheld GPS prototype

Then I dismantled firts prototype and assembled second prototype, this time no double tape, just boards soldered togheter. This is the schematic:

Tiny GPS schematic

Tiny GPS schematic

And so I began building:

OLED Display up, GPS Conector (glued to DC-DC) down.

OLED Display up, GPS Conector (glued to DC-DC) down.

Second prototype assembling. Arduino Up, DC-DC down.

Second prototype assembling. Arduino Up, DC-DC down.

The actual prototype looks like a tiny packed devices cube with front display and momentary switches (best view on 720p). Here is a video with functions explanation:

I’m not a coder so code is pretty much ugly. Sketch it’s downloable from here. It uses TinyGPS library from Mikal Hart, custom new software serial to disable interrupts in pin ports and PinChangeInt, an Arduino library to handle buttons interrupts.

If you would like to contribute with functions or code fixes please feel free to contact me either in the comments or in my email address (at the bottom of the page).

<< Volver

76 comments to “GPS Toy / On board computer”

  1. Comment by Building a DIY GPS cube - Hack a Day:

    [...] for his bike. Feature creep makes fools of us all, so after a month of work [Karman] had a  GPS-enabled cube that tells him his current latitude and longitude, current time, course, direction and [...]

  2. Comment by Building a DIY GPS cube » Geko Geek:

    [...] for his bike. Feature creep makes fools of us all, so after a month of work [Karman] had aGPS-enabled cube that tells him his current latitude and longitude, current time, course, direction and [...]

  3. Comment by Brendan Gill:

    where can i find the OLED display for delivery to the uk?

  4. Comment by Kyle Brown:

    Great build! What’s the battery life like for this device?

  5. Zen Comment by KaR]V[aN:

    @ Brendan: this is the one I bought: http://www.ebay.es/itm/I2C-0-96-OLED-display-module-compatible-Arduino-/130566448551?pt=LH_DefaultDomain_0&hash=item1e665de5a7

    Photo is old, but screen module is newer and blue instead red.

    @Kyle: 1 hour 45 min. Battery is really old, but used that one because it’s perfect fitting size.

  6. Comment by Luke:

    Nice work! Great workmanship, love the schematic, very nicely laid out.

  7. Comment by Ethan:

    what are the pin names/numbers that connect the arduino and the oled display? I can’t tell exactly from the schematic

  8. Zen Comment by KaR]V[aN:

    @Luke: Thanks! The schematic was made using paint and pasted photos.

    @Ethan: Analogs 4 and 5, the usual ones for I2C bus. You can check it at the arduino mini pro layout.

  9. Comment by Building a DIY GPS cube « Hackaday « Cool Internet Projects:

    [...] for his bike. Feature creep makes fools of us all, so after a month of work [Karman] had a  GPS-enabled cube that tells him his current latitude and longitude, current time, course, direction and [...]

  10. Comment by GPS Cube | YWD - blog:

    [...] szczegółów znajdziecie tutaj : LINK Powiązane wpisy:MicroFly – projekt Quadrocopter`aElektroniczny klucz CW w 5 [...]

  11. Comment by Mike:

    Excellent project. It’s beautifully done to get it into a nice tight cube. You should have a custom pcb made so it can be even smaller.

  12. Comment by Tibo:

    is it possible to switch the mini for a nano ?

  13. Comment by Mr. Cruz:

    Nice build.

    There was something I was wondering. It’s usually recommended to have the GPS pointed up, towards the sky. Have you run into any performance issues because the GPS is pointed down?

  14. Zen Comment by KaR]V[aN:

    @Tibo: works exactly but is bigger.

    @Mr. Cruz: maybe in first fix but not usually.

  15. Comment by Maak zelf een GPS-fietscomputer - Mancave:

    [...] toe. Vergeet ook niet het OLED-display van 128×64 en een ATMEGA 328p microcontroller. Om alle specifieke onderdelen bij elkaar te vinden, zul je een beroep moeten doen op je [...]

  16. Comment by mike:

    I just got in the display from ebay and tried to compile the code using Arduino 1.0.1 but get these errors. Can you help? I’m using the Mini Pro..
    GPS_Toy:12: error: variable or field ‘updateScreen’ declared void
    GPS_Toy:12: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:12: error: ‘gps’ was not declared in this scope
    GPS_Toy:13: error: variable or field ’saveActualLoc’ declared void
    GPS_Toy:13: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:13: error: ‘gps’ was not declared in this scope
    GPS_Toy:15: error: variable or field ‘udpateTrip’ declared void
    GPS_Toy:15: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:15: error: ‘gps’ was not declared in this scope
    GPS_Toy:16: error: variable or field ‘printCourse’ declared void
    GPS_Toy:16: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:16: error: ‘gps’ was not declared in this scope
    GPS_Toy:17: error: variable or field ’sendDistanceBetwen’ declared void
    GPS_Toy:17: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:17: error: ‘gps’ was not declared in this scope
    GPS_Toy:23: error: variable or field ‘print_date’ declared void
    GPS_Toy:23: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:23: error: ‘gps’ was not declared in this scope
    GPS_Toy:41: error: ‘TinyGPS’ does not name a type
    GPS_Toy.cpp: In function ‘void setup()’:
    GPS_Toy:111: error: ‘PCintPort’ has not been declared
    GPS_Toy:112: error: ‘PCintPort’ has not been declared
    GPS_Toy.cpp: In function ‘void loop()’:
    GPS_Toy:212: error: ‘gps’ was not declared in this scope
    GPS_Toy:212: error: ’saveActualLoc’ was not declared in this scope
    GPS_Toy:243: error: ‘gps’ was not declared in this scope
    GPS_Toy:330: error: ‘gps’ was not declared in this scope
    GPS_Toy:330: error: ‘updateScreen’ was not declared in this scope
    GPS_Toy:333: error: ‘gps’ was not declared in this scope
    GPS_Toy:333: error: ‘udpateTrip’ was not declared in this scope
    GPS_Toy.cpp: In function ‘void interrupt_button()’:
    GPS_Toy:339: error: ‘PCintPort’ has not been declared
    GPS_Toy:341: error: ‘PCintPort’ has not been declared
    GPS_Toy.cpp: In function ‘void reset_display()’:
    GPS_Toy:376: error: ‘gps’ was not declared in this scope
    GPS_Toy:376: error: ‘updateScreen’ was not declared in this scope
    GPS_Toy.cpp: At global scope:
    GPS_Toy:382: error: variable or field ‘updateScreen’ declared void
    GPS_Toy:382: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:382: error: ‘gps’ was not declared in this scope

  17. Zen Comment by KaR]V[aN:

    I have no clue about ‘declared void’. In the other hand the gps errors comes from not having the TinyGPS library.

  18. Comment by Wilver:

    can you please send me a copy of the code? i’m unable to open the file from the link you provide me……..gracias

    me podrias enviar una copia del code? no puedo abrir el file que tienes para hacerlo bajar de la internet….gracias

  19. Zen Comment by KaR]V[aN:

    Please use Winrar, it should open tgz files.

  20. Comment by Lukas:

    Hey guys,

    thanks a lot for the project idea. I build the same thing with a other SSD1306 display (http://bit.ly/LwP6Jq).
    With the display you can use the libraries of adafruit (http://bit.ly/N84qhZ) and don’t need any self construction ;)

    I will post on my blog (zauberstuhl.de) in the next days more information and the code :)

    Thanks and hf,
    Lukas

  21. Comment by Gustav Rossner:

    Nice work!

    But I get these errors, what I do wrong?

    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:28: multiple definition of `TinyGPS::TinyGPS()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:28: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:28: multiple definition of `TinyGPS::TinyGPS()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:28: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::stats(unsigned long*, unsigned short*, unsigned short*)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:102: multiple definition of `TinyGPS::stats(unsigned long*, unsigned short*, unsigned short*)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:102: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::from_hex(char)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:113: multiple definition of `TinyGPS::from_hex(char)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:113: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::parse_decimal()’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:123: multiple definition of `TinyGPS::parse_decimal()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:123: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::parse_degrees()’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:142: multiple definition of `TinyGPS::parse_degrees()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:142: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::gpsatol(char const*)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:278: multiple definition of `TinyGPS::gpsatol(char const*)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:278: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::gpsstrcmp(char const*, char const*)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:286: multiple definition of `TinyGPS::gpsstrcmp(char const*, char const*)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:286: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::cardinal(float)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:339: multiple definition of `TinyGPS::cardinal(float)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:339: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::f_altitude()’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:393: multiple definition of `TinyGPS::f_altitude()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:393: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::f_course()’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:398: multiple definition of `TinyGPS::f_course()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:398: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::f_speed_knots()’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:403: multiple definition of `TinyGPS::f_speed_knots()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:403: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::f_speed_mph()’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:406: multiple definition of `TinyGPS::f_speed_mph()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:406: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::f_speed_mps()’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:412: multiple definition of `TinyGPS::f_speed_mps()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:412: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::f_speed_kmph()’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:418: multiple definition of `TinyGPS::f_speed_kmph()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:418: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::get_datetime(unsigned long*, unsigned long*, unsigned long*)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:357: multiple definition of `TinyGPS::get_datetime(unsigned long*, unsigned long*, unsigned long*)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:357: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::crack_datetime(int*, unsigned char*, unsigned char*, unsigned char*, unsigned char*, unsigned char*, unsigned char*, unsigned long*)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:374: multiple definition of `TinyGPS::crack_datetime(int*, unsigned char*, unsigned char*, unsigned char*, unsigned char*, unsigned char*, unsigned char*, unsigned long*)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:374: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::get_position(long*, long*, unsigned long*)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:348: multiple definition of `TinyGPS::get_position(long*, long*, unsigned long*)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:348: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::f_get_position(float*, float*, unsigned long*)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:365: multiple definition of `TinyGPS::f_get_position(float*, float*, unsigned long*)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:365: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::course_to(float, float, float, float)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:319: multiple definition of `TinyGPS::course_to(float, float, float, float)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:319: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::distance_between(float, float, float, float)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:294: multiple definition of `TinyGPS::distance_between(float, float, float, float)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:294: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::term_complete()’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:164: multiple definition of `TinyGPS::term_complete()’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:164: first defined here
    TinyGPS\TinyGPS.cpp.o: In function `TinyGPS::encode(char)’:
    C:\Documents and Settings\Gebruiker\Mijn documenten\Arduino\libraries\TinyGPS/TinyGPS.cpp:59: multiple definition of `TinyGPS::encode(char)’
    TinyGPS.cpp.o:C:\DOCUME~1\GEBRUI~1\LOCALS~1\Temp\build5425500241782305192.tmp/TinyGPS.cpp:59: first defined here
    TinyGPS\TinyGPS.cpp.o:(.rodata._ZN7TinyGPS19GPS_INVALID_F_ANGLEE+0×0): multiple definition of `TinyGPS::GPS_INVALID_F_ANGLE’
    TinyGPS.cpp.o:(.rodata._ZN7TinyGPS19GPS_INVALID_F_ANGLEE+0×0): first defined here
    TinyGPS\TinyGPS.cpp.o:(.rodata._ZN7TinyGPS22GPS_INVALID_F_ALTITUDEE+0×0): multiple definition of `TinyGPS::GPS_INVALID_F_ALTITUDE’
    TinyGPS.cpp.o:(.rodata._ZN7TinyGPS22GPS_INVALID_F_ALTITUDEE+0×0): first defined here
    TinyGPS\TinyGPS.cpp.o:(.rodata._ZN7TinyGPS19GPS_INVALID_F_SPEEDE+0×0): multiple definition of `TinyGPS::GPS_INVALID_F_SPEED’
    TinyGPS.cpp.o:(.rodata._ZN7TinyGPS19GPS_INVALID_F_SPEEDE+0×0): first defined here

  22. Comment by Mike:

    Is it possible to run this on an 8 Mhz mini at 5 volts? In the mySoftwareSerial.cpp library I see the line: #if F_CPU == 16000000

  23. Zen Comment by KaR]V[aN:

    @Gustav: seems you included twice the TinyGPS lib.

    @Mike: I think there should be no problems as the most important part is the mySoftwareSerial, and it supports 8Mhz (I think). In the same file there is a #elif F_CPU == 8000000, so it should run nice :D

  24. Comment by Mike:

    What software did you use to create the logo that generated hex code? I would like to create my own.

  25. Zen Comment by KaR]V[aN:

    @Mike: from the OLED seller on ebay I got his example programs: http://www.wide.hk/download/i2c_OLED.rar

    That rar contains i2c oled simple example and LCDAssistant.exe. It takes a bmp file as input and drops the hex array as output. Make sure to use a monochrome bmp sized to your display.

  26. Comment by Brendan Gill:

    Hiya i am reciving this error. can you help me.

    GPS_Toy.cpp: In function ‘void setup()’:
    GPS_Toy:111: error: ‘PCintPort’ has not been declared
    GPS_Toy:112: error: ‘PCintPort’ has not been declared
    GPS_Toy.cpp: In function ‘void interrupt_button()’:
    GPS_Toy:339: error: ‘PCintPort’ has not been declared
    GPS_Toy:341: error: ‘PCintPort’ has not been declared

    Regards
    Brendan

  27. Comment by Brendan Gill:

    ignore my last comment i worked it out
    Thanks it works great
    :D

  28. Comment by Walter Schwanzar:

    Great build! But I have big problems with the software. I use Adruino 1.0 and get a lot of errors. Has anyone solved the problems and can help me? The best way will be to send me the complete packing list

  29. Zen Comment by KaR]V[aN:

    You probably are missing some library. Check you have all needed libraries (TinyGPS and PinChangeInt)

  30. Comment by Walter Schwanzar:

    With the help of Lukas I solved my problems. Put the GPS-Toy file into the files of the Skathbook . All the others (TinyGPS and PinChangeInt) into the libraries of arduino. I am running a 8MHz board. Wokes fine. Thank you.

  31. Comment by brunialti:

    Hi. Nice project! what are the pin names/numbers that connect the arduino and the gps module? It seems only vin, GND and the grey one to arduino pin 4. Is’nt it a serial module?

  32. Zen Comment by KaR]V[aN:

    Hello brunialti,

    Indeed is a serial port but GPS doesn’t need to be initialited or configured so is not needed to conect tx from arduino to GPS rx.

  33. Comment by petter:

    Hello! What a great project!! JUST LOOOOOVE IT!!! And thank you for putting out the code! I am playing with it but don’t know how to code a Skylab SKM53 GPS on it… It irritates me! Any one has a clue? Please help!

  34. Comment by José:

    Hi, I was looking for a tracking device for my bike… do you think we could add a gsm port something to send the position to another phone or server? Then we could hide it into some part of the bike…

    The solution avaiable out there are too expensive…

    Didn’t u think about it?

  35. Comment by Petter:

    What kind of changes did you make on mysoftware serial? I cannot get any readings from the Skylab skn53 GPS module! :(

  36. Zen Comment by KaR]V[aN:

    My modifications are just to disable interrupts on unsued port. Should work if you’re attaching your TX-RX GPS on same pins.

  37. Comment by Kevin:

    How quickly does it give you your speed and how accurate is the speed it is giving you? is it only based on GPS or do you have another way to measure that you are moving?

  38. Zen Comment by KaR]V[aN:

    The ultimate prototype has 0.5 km/h acuracy, acording to GPS manufacturer. About the speed, I think is about 0.5s for display refresh.

    This speed is given because atmega is busy reading the serial port. It can be speed up by connecting the GPS to the built in serial port instead of using softwareserial.

  39. Comment by zapad:

    hello
    I am very interested in your project .
    My intention is to choose one of 6 points( lat-long) that would be stored
    in the box ( how?) then the gps give the direction to that point
    ie: heading, distance, and time according to the speed .
    My problem is how to store and retrieve the point
    many thanks
    michel

  40. Comment by Jay:

    This is what I need but only speed and maybe clock. I want it for my motor cycle helmet so I’d need the gps mounted on outside of helmet and all other pieces next to each other to hide behind foam except screen. This would be an awesome thing to post on Instructables.com if you’d write up for speedometer only I know lots of motorcycle guys who would love this.

  41. Comment by 189886:

    Hello, i have a question about this GPS.
    Is it possible to have a 5Hz or 10Hz refresh rate ?
    I need to measure max speed of some RC Offshore, 1Hz is not very accurate.
    Thank you.

  42. Zen Comment by KaR]V[aN:

    Hello 189886,

    The GPS Module allows up to 10Hz but unfortunally the arduino Serial Library doesn’t work very well with speeds over 4800 in 328p 8MHz, so it’s not possible at the moment :(

  43. Comment by 189886:

    Thank you for this information, one day perhaps.

  44. Comment by Maciej:

    Hello, confratulations, great project I also want to make swatch for runners with gps to improve skills in my football team;) so i have question if you can sent me your schamatics, and C – code if it is not problem for you. Best regards, Maciej!

  45. Zen Comment by KaR]V[aN:

    Everything is in the post :D

  46. Comment by Chris:

    I too and receiving this error when trying to compile.

    GPS_Toy:48: error: variable or field ‘updateScreen’ declared void
    GPS_Toy:48: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:48: error: ‘gps’ was not declared in this scope
    GPS_Toy:49: error: variable or field ’saveActualLoc’ declared void
    GPS_Toy:49: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:49: error: ‘gps’ was not declared in this scope
    GPS_Toy:51: error: variable or field ‘udpateTrip’ declared void
    GPS_Toy:51: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:51: error: ‘gps’ was not declared in this scope
    GPS_Toy:52: error: variable or field ‘printCourse’ declared void
    GPS_Toy:52: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:52: error: ‘gps’ was not declared in this scope
    GPS_Toy:53: error: variable or field ’sendDistanceBetwen’ declared void
    GPS_Toy:53: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:53: error: ‘gps’ was not declared in this scope
    GPS_Toy:59: error: variable or field ‘print_date’ declared void
    GPS_Toy:59: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:59: error: ‘gps’ was not declared in this scope
    GPS_Toy:42: error: ‘TinyGPS’ does not name a type
    GPS_Toy.ino: In function ‘void setup()’:
    GPS_Toy:113: error: ‘PCintPort’ has not been declared
    GPS_Toy:114: error: ‘PCintPort’ has not been declared
    GPS_Toy.ino: In function ‘void loop()’:
    GPS_Toy:214: error: ‘gps’ was not declared in this scope
    GPS_Toy:214: error: ’saveActualLoc’ was not declared in this scope
    GPS_Toy:245: error: ‘gps’ was not declared in this scope
    GPS_Toy:332: error: ‘gps’ was not declared in this scope
    GPS_Toy:332: error: ‘updateScreen’ was not declared in this scope
    GPS_Toy:335: error: ‘gps’ was not declared in this scope
    GPS_Toy:335: error: ‘udpateTrip’ was not declared in this scope
    GPS_Toy.ino: In function ‘void interrupt_button()’:
    GPS_Toy:341: error: ‘PCintPort’ has not been declared
    GPS_Toy:343: error: ‘PCintPort’ has not been declared
    GPS_Toy.ino: In function ‘void reset_display()’:
    GPS_Toy:378: error: ‘gps’ was not declared in this scope
    GPS_Toy:378: error: ‘updateScreen’ was not declared in this scope
    GPS_Toy.ino: At global scope:
    GPS_Toy:384: error: variable or field ‘updateScreen’ declared void
    GPS_Toy:384: error: ‘TinyGPS’ was not declared in this scope
    GPS_Toy:384: error: ‘gps’ was not declared in this scope

  47. Zen Comment by KaR]V[aN:

    Hey Chris,

    You just need to download and install the tinygps library.

  48. Comment by Chris:

    Yes, I have it, I included the files into the arduino folder, do I have to enable or uncomment something in the code?

    Thank you for your time!

  49. Zen Comment by KaR]V[aN:

    Please, ensure that the library is properly installed by opening any included sample sketches and trying to compile them.

  50. Comment by 1:

    Hello,
    Great GPS! I want to make a same for an HUD glasses for skiing!
    I have buy all components! Please can you send me your program for arduino?

    Thanks and best regards

    Alexandre Mavilia

  51. Zen Comment by KaR]V[aN:

    http://karman.cc/blog/descargas/gps_code.tgz

  52. Comment by Ray:

    All i get trying to compile is:

    mySoftwareSerial.cpp.o: In function `__vector_10′:
    C:\Users\bb\AppData\Local\Temp\build4583508255884247603.tmp/mySoftwareSerial.cpp:310: multiple definition of `__vector_10′
    GPS_Toy.cpp.o:C:\Master\arduino-1.0-GPS\libraries\PinChangeInt/PinChangeInt.h:596: first defined here

  53. Comment by sexual enhancement:

    sexual enhancement…

    Res Publica Non Dominetur – カルマン » Blog Archive » GPS Toy / On board computer…

  54. Comment by quotes:

    Great post. I was checking continuously this blog and I’m impressed!
    Very useful information specially the last part :
    ) I care for such info a lot. I was looking for this particular information for a very long time.
    Thank you and good luck.

    Look into my blog post :: quotes

  55. Comment by cycle shop:

    I was recommended this blog by my cousin. I’m
    not sure whether this post is written by him as nobody else know such detailed about my difficulty.
    You’re wonderful! Thanks!

  56. Comment by web site:

    web site…

    Res Publica Non Dominetur – カルマン » Blog Archive » GPS Toy / On board computer…

  57. Comment by Get the job done from home work Opportunities available:

    content, programming, script languages, web site,
    marketing related issues or data entry). Most of these jobs will
    require you to have a dedicated hardwired
    phone line (one you only use for work, no personal use), maybe a phone headset
    (if you do phone work). You can also ask questions and interact with other forum members to learn about any job you want
    to, which will make it much easier to find a real work at home job because you can talk to people
    that have had experience with a particular job.

  58. Comment by best Pennsylvania roofing contractors:

    best Pennsylvania roofing contractors…

    Res Publica Non Dominetur – カルマン » Blog Archive » GPS Toy / On board computer…

  59. Comment by glu credit hack:

    Highly descriptive blog, I liked that bit. Will there be a part 2?

    My website glu credit hack

  60. Comment by Refugia:

    I’m gone to inform my little brother, that he should also visit this web site on regular basis to obtain updated from newest news update.

    Feel free to visit my web page; comprar coche (Refugia)

  61. Comment by คาสิโน:

    If you want to take a great deal from this article then you have to
    apply such strategies to your won web site.

  62. Comment by top Denver DUI awyers:

    top Denver DUI awyers…

    Res Publica Non Dominetur – カルマン » Blog Archive » GPS Toy / On board computer…

  63. Comment by software:

    Pretty section of content. I just stumbled upon your blog and in accession capital
    to assert that I get actually enjoyed account your blog posts.
    Any way I’ll be subscribing to your feeds and even I achievement you access consistently fast.

  64. Comment by Maxime:

    Hello,

    Do you have more Shema, I do not see indications including the OLED display as pins are scrambled because the Shema is not clear.
    Thanks,
    Kind regards,
    Maxime

  65. Comment by iphone apps development:

    iphone apps development…

    Res Publica Non Dominetur – カルマン » Blog Archive » GPS Toy / On board computer…

  66. Comment by http://www.youtube.com/watch?v=cXAEW5XzSZU:

    So, on your blog, the URL to your post is . Our Goal is to help you fully utilize the power of your market for traditional and non-traditional marketing techniques that work. Every claim we make about the software whether here in the website, in our videos or in the documentation that comes with the You – Tube Marketing Suite is without exageration, fake promises or bs.

  67. Comment by Replacement window prices:

    Hi there all, here every one is sharing such know-how, therefore it’s good to read this weblog, and I
    used to visit this blog daily.

  68. Comment by ผลบอล:

    Hurrah, that’s what I was searching for, what a stuff!
    existing here at this website, thanks admin of this web site.

    หน้าแรกผลบอล

  69. Comment by click:

    click…

    Res Publica Non Dominetur – カルマン » Blog Archive » GPS Toy / On board computer…

  70. Comment by wedding brides:

    It’s an amazing post in favor of all the online viewers; they will obtain advantage from it I am sure.

  71. Comment by luxury portrait photographer:

    Every weekend i used to pay a quick visit this web page, for the reason that i
    want enjoyment, as this this web site conations
    genuinely pleasant funny material too.

  72. Comment by omega 3 6 9 capsules benefits:

    omega 3 6 9 capsules benefits…

    Res Publica Non Dominetur – カルマン » Blog Archive » GPS Toy / On board computer…

  73. Comment by best stepper exercise Equipment:

    best stepper exercise Equipment…

    Res Publica Non Dominetur – カルマン » Blog Archive » GPS Toy / On board computer…

  74. Comment by Trucos y guias minecraft:

    Trucos y guias minecraft…

    Res Publica Non Dominetur – カルマン » Blog Archive » GPS Toy / On board computer…

  75. Comment by http://awmaonlinebuyersguide.com:

    I used to be able to find good advice from you articles.

  76. Comment by gta san andreas xbox 360 gamestop:

    Que pasada!! Unos muy validos puntos de opinion! Verdaderamente
    estaria bueno que tu postearas mas post ademas casi todos los comentarios de
    la pagina es muy valioso.

    Mira loo siguiente y puedes visitya mi site… gta san andreas xbox 360 gamestop

Comentalo

*
Contador