Serial1(RX,TX) don't work correctly on Shield Shield

I am building Photon + GPS(Adafruit GPS) System.

It is working on breadboard(GPS connect to Photon directory),
but don’t work correctly on Shield Shield.

Photon and GPS connect by Serial1(RX, TX).
When I move to Shield Shield, I connect RX -> 0 TX -> 1 (I refer SHIELD SHIELD - PIN MAPPING).
So, char type data is garbling.

I upload data(publish to Particle Dashboard).

correct(direct)

incorrect(on Shield Shield)

Please tell me if you know the cause.

I can partly confirm that :weary:

I’ve tested this too, and found that when I have only one of the shield pins RX (0) or TX (1) wired and the respective other communication line directly connected to the Photon the communication works, but if I use both shield pins, it doesn’t.

@BDub, any idea what’s up there.


I used a Nextion Serial display (accepts 3.3V & 5V on serial) for the communication test.

@ScruffR @yoshihiko_n is this the new Shield Shield or the older White one?

In my case it’s the black v3.0.1

Thank you for your replay.

My one is black too.(I got at February.)

@ScruffR @yoshihiko_n @ Ok so here's an easy test I just did. Run Serial1 in loopback mode (just jumper TX and RX on the v3.0.1 Shield Shield together with a jumper wire and run this code:

You can reprogram by putting your Photon in Safe Mode (hold SETUP, tap RESET and let go of SETUP after you see a magenta LED) to reconnect to the Cloud.

// test a passthru between USB and hardware serial
SYSTEM_MODE(MANUAL);

void setup() {
  while (!Serial.available());
  Serial.begin(9600);
  Serial1.begin(9600);
}

     
void loop() {
  if (Serial.available()) {
    char c = Serial.read();
    Serial1.write(c);
  }
  if (Serial1.available()) {
    char c = Serial1.read();
    Serial.write(c);
  }
}

This works great as a test if you use a short wire.

However if you use a long one (mine is 2-3 feet long to exaggerate it) it will tend to oscillate. The reason for this is the 3.3V to 5V level shifters on board are bi-directional and will automatically translate a signal. If you start to have any ringing in on these lines they will start to oscillate between INPUT and OUTPUT modes very rapidly which would put noise into your serial communications. You can also get this to happen just be attaching a oscilloscope probe on 1x mode because there is too much capacitance present. 10x mode seems to work fine.

Some guidance with these shields and this TI level shifting driver, do not use long wires, do not add capacitance to the digital lines and do not load down the outputs. If you have to jumper over to a breadboard you should use the shortest jumper wires you have.

1 Like