In the documentation, to communicate with Serial1
to external device I’ll have to hook up their Tx’s and Rx’s with the device’s ground to the core’s ground. However, my device is running on 5V, which exceeds the 3.3V limit of the pins. Will I damage the core’s pins doing so without a voltage divider?
I have checked the datasheet and both the TX and RX pins are not 5V tolerant.
You will not be so concerned about the TX pin since it’s always sending and not receiving.
The RX pin on the core is the one that is going to blow up when receiving.
However, i would still recommend level shifting both TX and RX just to be sure.
There’s some cool articles about level shifting like: https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide
There are some threads on this topic
Just to name some:
https://community.spark.io/t/spark-and-arduino-serial-communications/3511
http://community.spark.io/t/spark-3-3v-to-arduino-5v-serial-communication/3548
https://community.spark.io/t/anyone-know-if-this-5v-device-will-work-with-spark-core/554
What about D0, D1 with Serial2? These two pins are 5V-tolerant?
It might be good for you to poke the documentation more often. The answer is here: http://docs.spark.io/hardware/#spark-core-datasheet-pins-and-i-o
Another example for search before post - Please!
http://community.spark.io/t/serial-communication-with-arduino-3-3-vs-5v-ttl/6712
That actually solved my problem! Thanks for pointing out. @ScruffR