Yes, I do have explanations for some of the things you see
The odd PC behaviour must have been while the Core got trapped in the tight OTA loop, permanently printing out the serial message - that’s why I replaced it with an LED blink.
Some more info can be found in this forum - one of the topics
Issues using serial debugging (Mouse moving)
The reason for the Core sometimes going to sleep and other times not at all has to do with the OTA loop and the use od D0 as OTA trigger as well.
If the sender has sent a HIGH bit in the very moment the if
pin was read to enter the loop the Core got trapped and never would go to sleep, otherwise the Core would just jump that part and carry on as usual.
To pull D6
high you don’t use code but hardware. Attach a button between D6
and 3V3
. When you close the switch the Core will get trapped for OTA, if it’s open, the pull-down will ensure normal code flow.
For the other questions I’d need more insight in your actual hardware setup (non USB power source, common ground, behaviour of your sender, …)