arduino12 / rdm6300

A simple library to interface with RDM6300 RFID reader.
GNU General Public License v3.0
92 stars 32 forks source link

Add support to AltSoftSerial #6

Closed gutierrezps closed 5 years ago

gutierrezps commented 5 years ago

Hi again. After facing issue #5 on ESP8266, my workaround was to move the RDM6300 to an Arduino Nano (that I'm already using for other functions) that communicates with the ESP through I2C. And to my surprise, while a tag was being read, the Arduino returned garbage on the I2C, and sometimes even locked the bus by keeping the SDA line low.

So I plugged a logic analyzer and there it was: the I2C transaction was becoming corrupt if data was being sent by the RFID reader.

Here's a proper I2C transaction between the Arduino and the ESP:

Proper I2C transaction

And here's the I2C transaction being corrupted while the RFID is sending the tag data.

Corrupted I2C transaction

Notice that the I2C transaction is fragmented, and also the bus is locked up after that. After searching about problems with SoftwareSerial, I came across PaulStoffregen/AltSoftSerial library, replaced it on RDM6300 library, and the I2C problems vanished. The downside was that only pin 8 could be used for Serial RX, but it wasn't a problem for me.

That said, what do you think about adding support to AltSoftSerial library on ATmega328 based Arduinos (Uno, Nano, Pro Mini, etc)?

arduino12 commented 5 years ago

Hi,

Amazing work! PulseView is the best! I didn't see you send a PR for this issue, so I'll try to add AltSoftSerial support in the next week...

Hope plerup/espsoftwareserial#100 fix will be available soon, Arad

gutierrezps commented 5 years ago

Thanks! I've opened the PR #7 right now, take a look and see if it's okay.