Adafruit Pro Trinket Softwareserial Problem

Hallo

Ich habe mir letztens einen Adafruit Pro Trinkte zugelegn und wollte an dem das Ultimate GPS Modul betreiben… Aber es scheint dass da irgendwo bytes nicht übertragen werden… Hier jedenfalls die Ausgabe vom Pro Trinket

$GPRMC,000336.800,V,,,,,0.00,0.00,060180,,,N*4C
                                               PG.00,,,0N.00,N2$GPGGA,000337.800                                                                                  ,,,,,0,00,,,M,,M,,*77
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$V,00,T,00,.00,30,V,,,,,0.00,0.00,060180,,,N*4D
                $GPGGA,000338.800,,,,,0,00,,,M,,M,,*78
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPGGA,000339.800,,,,,0,00,,,M,,M,,*79$V,0.0,,00,0.0K*
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT000,TM.,0.00,3$GPGGA,000340.800,,,,,0,00,,,M,,M,,*77
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$V,00,T,00,.00,30,V,,,,,0.00,0.00,060180,,,N*4D
                $GPGGA,000341.800,,,,,0,00,,,M,,M,,*76
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$V,00,T,.,0.00,30,V,,,,,0.00,0.00,060180,,,N*4C
                $GPGGA,000342.800,,,,,0,00,,,M,,M,,*75
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT000,TM.,0.00,30,V,,,,,0.00,0.00,060180,,,N*4F
                $GPGGA,000343.800,,,,,0,00,,,M,,M,,*74
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000343.800,V,,,,,0.00,0068,,,NE$V,0.00,,0,0.0,N2$GPGGA,000344.800,,,,,0,00,,,M,,M,,*73
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000344.800,V,,,,,0.00,0.00,060180,,,N*49
                                               PG.00,,,0N.00,N2$GPGGA,000345.800,,,,,0,00,,,M,,M,,*72
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT000,TM.,0.0,N2$GPGGA,000346.800,,,,,0,00,,,M,,M,,*71
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$T000,T,000.00,30,V,,,,,0.00,0.00,060180,,,N*4B
                $GPGGA,000347.800,,,,,0,00,,,M,,M,,*70
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
PG.00,TM.N.00,N2$GPGGA,000348.800,,,,,0,00,,,M,,M,,*7F
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
GT0.00TM.,,0.0,30,V,,,,,0.00,.,00,,,*
                $GPGGA,000349.800,,,,,0,00,,,M,,M,,*7E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GG.00,TM.,0.0,N2$GPGGA,000350.800,,,,,0,00,,,M,,M,,*76
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000350.800,V,,,,,0.00,0.00,060180,,,N*4C
                                               PG.00,TM.N.00,N2$GPGGA,000351.800,,,,,0,00,,,M,,M,,*77
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$V,00,T,00,.00K*0,V,,,,,0.00,0.00,060180,,,N*4D
                $GPGGA,000352.800,,,,,0,00,,,M,,M,,*74
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
PG.00,,,0N.00,N2$GPGGA,000353.800,,,,,0,00,,,M,,M,,*75
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPGGA,000354.800,,,,,0,00,,,M,,M,,*72
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$T000,T,00,.00,30,V,,,,,0.00,0.00,060180,,,N*48
                $GPGGA,000355.800,,,,,0,00,,,M,,M,,*73
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$V000,T,00,.00,30,V,,,,,0.00,0.00,060180,,,N*49
                $GPGGA,000356.800,,,,,0,00,,,M,,M,,*70
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT000,T,.,0.00,30,V,,,,,0.00,0.00,060180,,,N*4A
                $GPGGA,000357.800,,,,,0,00,,,M,,M,,*71
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT.00,TM.,0.0,N2$GPGGA,000358.800,,,,,0,00,,,M,,M,,*7E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000358.800,V,,,,,0.00,0001,,,N4
                                      PG0.00,,0N,0.,N2$GPGGA,000359.800,,,,,0,00,,,M,,M,,*7F
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000359.800,V,,,,,0.00,0.00,060180,,,N*45
                                               PG.00,,,0N.00,N2$GPGGA,000400.800,,,,,0,00,,,M,,M,,*74
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
PG.00,,,0N.00,N2$GPGGA,000401.800,,,,,0,00,,,M,,M,,*75
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000401.800,V,,,,,0.00,0.00,060180,,,N*4F
                                               PG.00,,,0N.00,N2$GPGGA,000402.800,,,,,0,00,,,M,,M,,*76
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT000,TM.,0.00,30,V,,,,,0.00,0.00,060180,,,N*4C
                $GPGGA,000403.800,,,,,0,00,,,M,,M,,*77
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000403.800,V,,,,,0.00,0001,,,N4
                                      PG0.00,,0N,0.,N2$GPGGA,000404.800,,,,,0,00,,,M,,M,,*70
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000404.800,V,,,,,0.00,0.00,060180,,,N*4A
                                               PG.00,T,0N.00,N2$GPGGA,000405.800,,,,,0,00,,,M,,M,,*71
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$T000,T,00,.00,30,V,,,,,0.00,0.00,060180,,,N*4B
                $GPGGA,000406.800,,,,,0,00,,,M,,M,,*72
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT.00,TM.,0.00,3$GPGGA,000407.800,,,,,0,00,,,M,,M,,*73
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT000,TM.,0.0,N2$GPGGA,000408.800,,,,,0,00,,,M,,M,,*7C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPGGA,000409.800,,,,,0,00,,,M,,M,,*7D$V0.00,,00,0.0K*
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$V,00,T,00,.00K30,V,,,,,0.00,0.00,060180,,,N*47
                $GPGGA,000410.800,,,,,0,00,,,M,,M,,*75
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT000,TM.,0.00,30,V,,,,,0.00,0.00,060180,,,N*4F
                $GPGGA,000411.800,,,,,0,00,,,M,,M,,*74
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000411.800,V,,,,,0.00,0.00,060180,,,N*4E
$GPGGA,000412.800,,,,,0,00,,,M,,M,,*77         PG00,T,,0N.00,N
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$T000,TM.,0.00,30,V,,,,,0.00,0.00,060180,,,N*4D
                $GPGGA,000413.800,,,,,0,00,,,M,,M,,*76
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000413.800,V,,,,,0.00,0001,,,N4
                                      PG0.00,,0N,0.,N2$GPGGA,000414.800,,,,,0,00,,,M,,M,,*71
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
GT000,TM.,0.00,30,V,,,,,0.00,0.00,060180,,,N*4B

Und hier direkt mit dem Kabel…

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,235958.800,,,,,0,00,,,M,,M,,*70
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,235958.800,V,,,,,0.00,0.00,050180,,,N*49
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,235959.800,,,,,0,00,,,M,,M,,*71
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,235959.800,V,,,,,0.00,0.00,050180,,,N*48
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000000.800,,,,,0,00,,,M,,M,,*70
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000000.800,V,,,,,0.00,0.00,060180,,,N*4A
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000001.800,,,,,0,00,,,M,,M,,*71
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000001.800,V,,,,,0.00,0.00,060180,,,N*4B
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000002.800,,,,,0,00,,,M,,M,,*72
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000002.800,V,,,,,0.00,0.00,060180,,,N*48
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000003.800,,,,,0,00,,,M,,M,,*73
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000003.800,V,,,,,0.00,0.00,060180,,,N*49
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000004.800,,,,,0,00,,,M,,M,,*74
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000004.800,V,,,,,0.00,0.00,060180,,,N*4E
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000005.800,,,,,0,00,,,M,,M,,*75
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000005.800,V,,,,,0.00,0.00,060180,,,N*4F
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000006.800,,,,,0,00,,,M,,M,,*76
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000006.800,V,,,,,0.00,0.00,060180,,,N*4C
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000007.800,,,,,0,00,,,M,,M,,*77
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000007.800,V,,,,,0.00,0.00,060180,,,N*4D
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

Hier der Sketch den ich verwende

#include <SoftwareSerial.h>
#define rx 6
#define tx 5

SoftwareSerial mySerial(rx, tx); // RX, TX

void setup() {      
  pinMode(rx, INPUT);
  pinMode(tx, OUTPUT);
  //  Serial1.begin(9600);
  Serial.begin(9600);
  mySerial.begin(9600);
  pinMode(13,OUTPUT);
}

void loop() {
  if (mySerial.available()) {
    Serial.write(mySerial.read());
    digitalWrite(13,HIGH);
  }
  if (Serial.available()){
    mySerial.write(Serial.read());
    digitalWrite(13,HIGH);
  }
  digitalWrite(13,LOW);
}

Interesanterweise hats mit dem Seeeduino perfekt funktioniert… Hab dann auch noch einen externen Spannungsregler zugeschaltet um einen ev. Spannungsabfall vorzubeugen aber immer das gleiche… Kanns sein dass der Chip das nicht kann oder ist der Pro Trinket defekt?
mfg

Der chip sollte ein ATmega328 sein weshalb SoftwareSerial doch funktionieren sollte oder?

Ja, es ist ein Atmega328 aber er hat einen Bootloader der immer aktiv ist und die USB-Schnittstelle bereitstellt. Darum fehlen die Pins 2 und 7. Der Adafruit Pro Trinktet ist also nicht 100% Arduino-kompatibel. Der Hersteller nennt ihn 99% kompatibel. Jetzt weiß ich nicht was nicht kompatibel ist aber schreib doch mal Adafruit an oder bemühe ihr Forum.

http://www.adafruit.com/product/2000 https://learn.adafruit.com/introducing-pro-trinket

http://forums.adafruit.com/viewforum.php?f=52 trinket -Forum http://forums.adafruit.com/viewtopic.php?f=52&t=67424 Da die USB-Schnittstelle vom Kontroller verwaltet wird ist die seriele Schnittstelle auf pins 0 und 1 nicht verwendet. Hast Du versucht das GPS Modul an diesen anzuschließen?

Grüße Uwe

Hallo

habs jetzt andersrumm probiert, also den GPS empfänger an 0/1 gehängt und den TTL Kabel an den Softwareserial 11/12 und siehe da funktioniert... Also liegts wohl beim lesen am Softwareserial, schreiben kann er anscheinend.. Habs auch schon an fast allen Pins probiert ausser den Analogen.. Das Problem ist nur dass ich den 0/1 schon für was anderes vorgesehen habe... Weshalb ich den Softwareserial zwingend benötige..

Hat jemand infos?

Versuche die AltSoftSerial und nicht SoftwareSerial. Alternativ drossel die Baudrate.

Mit whlie() funktionierts… Wiso??

#define rx 10
#define tx 11
#define led 13
#define Seri_1 softser
#define Seri_2 Serial
#define Baud 9600

#include <SoftwareSerial.h>
SoftwareSerial softser(rx, tx);

void setup() {     
pinMode(rx, INPUT);
pinMode(tx, OUTPUT);
  pinMode(led,OUTPUT);
  Seri_2.begin(Baud);
  Seri_1.begin(Baud);
}

void loop() {
  while (Seri_1.available()) {
    char c = Seri_1.read();
    Seri_2.print(c);
    // Seri_2.write(Seri_1.read());
    digitalWrite(led,HIGH);
  }
  while (Seri_2.available()) {
    char c = Seri_2.read();
    Seri_1.print(c);
    // Seri_1.write(Seri_2.read());
    digitalWrite(led,HIGH);
  }
  digitalWrite(led,HIGH);
}