Here's the scenario: I have a radio that displays information on a 1602A LCD. The 1602A is plugged into a header so I can easily pull it out and instead plug in logic analyzer leads. The logic analyzer decodes the HD44780 protocol and shows me the data that would have gone to the 1602A. The logic analyzer, not surprisingly, doesn't have any noticeable effect on the radio.

Now I want to replace the logic analyzer with a Nano Every. I wired it up so that the signals to be observed are connected to digital input pins on the Every. The Every is powered through USB and doesn't intentionally draw any power from the radio. Everything runs as expected and the Every shuffles readings to the PC via serial. HOWEVER, in this combination, the radio draws at least twice as much current from the power supply and the radio's voltage regulators begin to heat up substantially!

I would have thought that the digital input pins of the Every are high enough impedance that it would have no significant effect on the radio, just like the logic analyzer didn't. I can only assume that "significant" current is flowing from the radio's LCD header into the Nano Self's input pins, since they are the only connection between the radio and the Nano.

So, I guess my question is this: How can I make the Nano Self work more like a logic analyzer? Do I need additional circuitry between the signals being tested and the Self's input pins, perhaps logic buffers? Or might something else be going on here?

  • 1
    you may have one of the pins set as an output ... determine which pin(s) are causing the problem ... please post your code if you can – jsotola Oct 28 at 0:31
  • This is my first time working with the port registers and I had "PORTD.DIRCLR = 11111111; // Set the entire port to INPUT". I think it should have been B00000000 instead, correct? – Bezewy Oct 28 at 2:25
  • 1
    11111111 is a decimal number ... B11111111 is binary .... you could do DDRD = B00000000; to set the D register pins as inputs – jsotola Oct 28 at 3:08
  • Sorry, that was a typo -- the code had the B prefix for the binary literal. I don't think DDRD is even defined for the Arduino Nano Every or other ATMega4809 based Arduinos. It might be if "registrly emulation" is selected under Tools in the IDE, but I decided to use the new port registers instead.. – Bezewy Oct 28 at 17:22

@jsotola was correct and the software defined pin directions incorrectly. Looks like I fried one of the pins in the process (multimeter shows continuity between the pin and ground), but when I rewired to a new pin on Port D and ran the corrected software, everything seems to work as expected!

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.