Ok, finally got to testing!
I had to get up to speed a bit and tried a lot of different things. Here’s the rundown:
Weirdness.
Basically I started out swapping it over to Serial2 just so I could output to Serial1 while it was on the bench. Initially it worked but gave incorrect values (2050 exactly) so at first I assumed maybe the sensor was bad.
Then I decided to move it back to all defaults and check to see if things would be better or worse or the same (to confirm sensor deadness). At that point when I uploaded it to the core it just kept flashing red immediately after the firmware updated (single blink followed by, I think, 9 or 10 very quick blinks). So I messed around on that route for like 2 or 3 hours, to no avail, pretty much dead core if I tried to use Serial1…
Or so I thought. Towards the end of the night I decided to try a few last things, one thing it turns out that I was doing wrong was isolating the ground from the power that runs the sensor (even though I thought I read their datasheet and it was supposed to be able to use 3.3v it only seems to light up on 5v). Fixed that issue and magic happened, I started getting readings that changed when I blew on the sensor! Yay!
At that point I called it a night.
Walk in today to have a look at it, everything is still running great (really good sign) but I realized that I am using Serial1 (explicitly) but the sensor itself is actually plugged into the Serial2 pins D0 and D1!!! What. the. hell?
So at this point, I am confused, but still happy. It works, and I don’t know WHY it works, but it totally does and it’s weird. I haven’t even enabled Serial2 in the firmware which is even weirder. The only change to the code seems to be that instead of:
Serial.begin(9600);
In the ino, I explicitly use:
Serial1.begin(9600);
That is the difference between dead core and alive core with working sensor. Very, very much weird. That being said, it is usable, so I am making that donation now! Thank you so much!