Show Posts
Pages: 1 2 [3]
31  Forum 2005-2010 (read only) / Interfacing / Re: tx pin changer IC? on: January 14, 2011, 10:19:18 am
Lefty, does that mean the grounds for the two must be connected to he same power?
32  Forum 2005-2010 (read only) / Interfacing / Re: tx pin changer IC? on: January 14, 2011, 09:52:55 am
Ok that's what I mean Rob, thanks... that think looks like a !@$% to solder! :O
33  Forum 2005-2010 (read only) / Interfacing / Re: tx pin changer IC? on: January 14, 2011, 08:51:31 am
Or perhaps, I can just use one 7491: 8-bit Shift Register, Serial In, Serial Out, Gated Input
34  Forum 2005-2010 (read only) / Interfacing / Re: tx pin changer IC? on: January 14, 2011, 08:46:46 am
So I looked around based on your answer... am I correct in thinking that I will need two chips?

CD4021B - (4021 chip) Input Shifting
74HC595 - (595,596 chip)  Output Shifting

I would probably have to synchronize the out & in shifting to have multi RX/TX lines from one Arduino TX and RX line?
35  Forum 2005-2010 (read only) / Interfacing / Re: tx pin changer IC? on: January 14, 2011, 08:34:46 am
I am looking for something where I can switch from a GPS device to say a GSM modem.  I don't care if they signal, I want to switch devices by programming logic (get 10 gps inputs from rx0 tx0, then connect to rx1 tx1 to send data, etc)
36  Forum 2005-2010 (read only) / Interfacing / tx pin changer IC? on: January 14, 2011, 07:56:13 am
I am looking for an IC that will take:

and many rx and tx io's that I can cycle through so I can make a single rx/tx on my Arduino expandable on my breadboard.

sorry about grammar... iPhone in a meeting lol
37  Forum 2005-2010 (read only) / Interfacing / Re: Getting power from ODB II - No voltage? on: January 13, 2011, 08:09:06 pm
Ok... I was thinking for some reason it was AC voltage, but it is DC... (good thing I am a noob).  My chrysler van is showing 12-14v DC and my yaris is not showing any voltage... so it's 50% working.
38  Forum 2005-2010 (read only) / Interfacing / Re: Getting power from ODB II - No voltage? on: January 12, 2011, 09:38:49 pm

I've tried twisting the two grounds together- no luck as of yet.

Not working on 3 vehicles (no power from 16 & [4+5] )
39  Forum 2005-2010 (read only) / Interfacing / Getting power from ODB II - No voltage? on: January 10, 2011, 08:47:22 pm
I am trying to get my voltmeter to register the power coming from the pins (5 & 16 )

I am using the info from this page: and this page

It says ground is PIN-5 and AC+12V is PIN-16 - I am not currently trying anything than looking for the voltage to register on my voltmeter.

I see no voltage, when the car is on or off when plugging my plug into the ODB.

My pin layout is simple-

PIN 5 = ground
PIN 16 = Power


UPDATE: My fuses are fine, I also tried PIN-4 as the ground - no luck
40  Forum 2005-2010 (read only) / Interfacing / Re: GPS EM-406 example on: January 12, 2011, 08:14:55 pm
had garbled output like everyone else... but now...

Acquired Data
Lat/Long(10^-5 deg): 4312611, -8029204 Fix age: 298ms.
Lat/Long(float): 43.12611, -80.29204 Fix age: 415ms.
Date(ddmmyy): 130111 Time(hhmmsscc): 1090400 Fix age: 544ms.
Date: 1/13/2011  Time: 1:9:4.0  Fix age: 648ms.
Alt(cm): 22040 Course(10^-2 deg): 27382 Speed(10^-2 knots): 37
Alt(float): 220.40 Course(float): 273.82
Speed(knots): 0.37 (mph): 0.43 (mps): 0.19 (kmph): 0.69
Stats: characters: 5699 sentences: 41 failed checksum: 4

Problem was that data was INVERTED...

do this:
NewSoftSerial nss(2, 3, true);

Here is my modified code:

#include <NewSoftSerial.h>
#include <TinyGPS.h>

/* This sample code demonstrates the normal use of a TinyGPS object.
   It requires the use of NewSoftSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 2(rx) and 3(tx).

TinyGPS gps;
NewSoftSerial nss(2, 3, true); // my gps data is inverted!!

void gpsdump(TinyGPS &gps);
bool feedgps();
void printFloat(double f, int digits = 2);

void setup()
  Serial.print("Testing TinyGPS library v. "); Serial.println(TinyGPS::library_version());
  Serial.println("by Mikal Hart");
  Serial.print("Sizeof(gpsobject) = "); Serial.println(sizeof(TinyGPS));

void loop()
  bool newdata = false;
  unsigned long start = millis();

  // Every 5 seconds we print an update
  while (millis() - start < 5000)
    if (feedgps())
      newdata = true;
  if (newdata)
    Serial.println("Acquired Data");

void printFloat(double number, int digits)
  // Handle negative numbers
  if (number < 0.0)
     number = -number;

  // Round correctly so that print(1.999, 2) prints as "2.00"
  double rounding = 0.5;
  for (uint8_t i=0; i<digits; ++i)
    rounding /= 10.0;
  number += rounding;

  // Extract the integer part of the number and print it
  unsigned long int_part = (unsigned long)number;
  double remainder = number - (double)int_part;

  // Print the decimal point, but only if there are digits beyond
  if (digits > 0)

  // Extract digits from the remainder one at a time
  while (digits-- > 0)
    remainder *= 10.0;
    int toPrint = int(remainder);
    remainder -= toPrint;

void gpsdump(TinyGPS &gps)
  long lat, lon;
  float flat, flon;
  unsigned long age, date, time, chars;
  int year;
  byte month, day, hour, minute, second, hundredths;
  unsigned short sentences, failed;

  gps.get_position(&lat, &lon, &age);
  Serial.print("Lat/Long(10^-5 deg): "); Serial.print(lat); Serial.print(", "); Serial.print(lon);
  Serial.print(" Fix age: "); Serial.print(age); Serial.println("ms.");
  feedgps(); // If we don't feed the gps during this long routine, we may drop characters and get checksum errors

  gps.f_get_position(&flat, &flon, &age);
  Serial.print("Lat/Long(float): "); printFloat(flat, 5); Serial.print(", "); printFloat(flon, 5);
  Serial.print(" Fix age: "); Serial.print(age); Serial.println("ms.");


  gps.get_datetime(&date, &time, &age);
  Serial.print("Date(ddmmyy): "); Serial.print(date); Serial.print(" Time(hhmmsscc): "); Serial.print(time);
  Serial.print(" Fix age: "); Serial.print(age); Serial.println("ms.");


  gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);
  Serial.print("Date: "); Serial.print(static_cast<int>(month)); Serial.print("/"); Serial.print(static_cast<int>(day)); Serial.print("/"); Serial.print(year);
  Serial.print("  Time: "); Serial.print(static_cast<int>(hour)); Serial.print(":"); Serial.print(static_cast<int>(minute)); Serial.print(":"); Serial.print(static_cast<int>(second)); Serial.print("."); Serial.print(static_cast<int>(hundredths));
  Serial.print("  Fix age: ");  Serial.print(age); Serial.println("ms.");

  Serial.print("Alt(cm): "); Serial.print(gps.altitude()); Serial.print(" Course(10^-2 deg): "); Serial.print(gps.course()); Serial.print(" Speed(10^-2 knots): "); Serial.println(gps.speed());
  Serial.print("Alt(float): "); printFloat(gps.f_altitude()); Serial.print(" Course(float): "); printFloat(gps.f_course()); Serial.println();
  Serial.print("Speed(knots): "); printFloat(gps.f_speed_knots()); Serial.print(" (mph): ");  printFloat(gps.f_speed_mph());
  Serial.print(" (mps): "); printFloat(gps.f_speed_mps()); Serial.print(" (kmph): "); printFloat(gps.f_speed_kmph()); Serial.println();


  gps.stats(&chars, &sentences, &failed);
  Serial.print("Stats: characters: "); Serial.print(chars); Serial.print(" sentences: "); Serial.print(sentences); Serial.print(" failed checksum: "); Serial.println(failed);
bool feedgps()
  while (nss.available())
    if (gps.encode(
      return true;
  return false;
41  Forum 2005-2010 (read only) / Bar Sport / Hello arduino! on: January 10, 2011, 08:46:41 pm
Just got mine, and looking forward to working with it!
Pages: 1 2 [3]