Hello, Got a bit of a Noob Question / sometime i am curious about with Operating Voltages.
This not specific to the MKR line but for Arduino/ESP32 in general. I posted here because i typically use Arduino MKR Wifi 101/NB1500, Arduino Giga R1 and the ESP32 boards for the majority of my projects.
Here is what i am wondering, Many of the newer MCU boards such as the MKR line and the giga now operate on a 3.3v operating voltage for their GPIO pins. I am curious how important this factor is or why sensors connected to these pins would still work if they operate on a 5v logic level?
To give some context, i regularly monitor hydroponics. Currently i have 3 separate reservoirs systems that are essentially mirrored but use different boards (Cost/Curiosity).
Setup 1 uses an Arduino Giga R1, Setup 2 uses an Arduino MKR Wifi 1010 and Setup 3 uses an ESP32-Wroom-32D 38 Pin variant.
Atlas Scientific Lab Grade PH pen with an EZO PH Circuit and an Electrically isolated carrier board.
Now all of these sensors are currently powered by the Boards Ground and 5v Pins with the signal line connected directly to the Digital GPOI pins, with the exception of the RS485 to TTL 5V Board as that connects to the RX/TX pin.
This setup has been running for nearly a year continuously recording and transmitting data to a server every 5 minutes on the Giga board and nearly 6 months now on the MKR and ESP boards without any problems.
My understanding is that all of these sensors are 5v Operating voltage yet i have not had any issues or any noticeable damage to any of the boards, if they are only 3.3 volt tolerant then should they not have been damaged by now or is this simply a case of it "Might damage" the board, but also might not?
If the boards are 3.3V and the sensors 5V they will probably report incorrect data. If it's the other way around then maybe some sensor damage could happen.
BUT
Why are you not using level shifters to fix the problem? It is a small board with 5v on one side and 3.3v on the other. That way, everyone is happy. You will need to supply the level shifter with 3.3VDC, 5VDC, and ground that ties all the grounds together.
I do plan to incorporate those. When i initially started making the units i was new to this and had no idea about level shifters.
I was more just curious about what problems would arise considering i have yet to experience any noticeable issues and given that if it was worth the time to implement the shifters.
How are you planning to verify if they are damaged or not? They can be, it doesn't mean immediate magic smoke puff. Abusing something means that manufacturer can't guarantee it's working/ going to work. Think of it like driving a car with wrong engine oil.
Read some datasheets of your sensors to see how the logic levels are limited.
Also, for example Max485 works reliably powered at 3.3V even if it's 5V chip.
Probably DHT22 as well. And so on...
It's a good question. Although the limits are quoted as voltages, it is actually the current flow that damages the component. Flowing current creates heat, at least in normal conditions where everything has some resistance (superconductors may be an exception). If the heat generated can not be dissipated within the chip, the temperature rises to the point where the materials physically disassociate. Features on the chip literally "burn" out.
So what the voltage limit means is that if an IO pin is connected to any voltage source it is guaranteed to continue working. I.e. a 3.3V IO pin will always work when connected directly to a 3.3V power supply.
OTOH, if you connect the 3.3V IO pin to a 5V source, it might fail, depending on how much current the source can supply. An IO pin connecting to another IO pin may be ok, since the current an IO pin can source is limited. However, a power supply pin might provide 1A, which could burn out the pin.
Because the damage is caused by heat, you might not experience any problems within typical ambient operating temperatures. However, if you were to run the chip at it's max rated temperature (typically 70C, or 80C for industrial spec), then the ambient heat plus local excess heat will bring you closer to a failure.
TBH i figured the board would no longer be able to read the data from them on that pin if it was damaged.
The sensor itself i am not concerned with, they are powered from the board 3.3 and 5v out pins of the Arduino's as directed by the sensor spec sheets to the sensors VIN connectors.
Its simply the Digital pins (D1, 2, 3 etx), the RX/TX pins and the I2C pins that i am unsure about.
From what i was reading, there is no issue when it comes to the signal that goes from the MCU digital pin to the sensor itself as they are all capable of reading HIGH signal at anything from 3.3 -5v.
However the reverse part, the signal coming back from the sensor itself to the Digital Pin on the MCU is where i was concerned. I may be completely off on this but from what i gathered, if the sensor is powered with a 5v connection to the VIN pin on the sensor then the signal pin will be sending back 5v when i issue a digitalReady command from the MCU, which is where the level shifter would be needed.
Exactly. So if the sensor doesn't work with 3.3V supply or the sensor doesn't have 3.3V logics, then you need level shifter.
But like I wrote, for example Max485 works reliably powered at 3.3V even if it's 5V chip.
And many sensors have voltage regulator on board, so even if you power them at 5V, the logic level can be 3.3V. You just need to read the datasheet and/or measure the voltages.
Thank you the feedback. This is very helpful. I do believe in my case that many of the sensors i have used do indeed have voltage regulators on board as they say 3.3-5v compatible but there spec sheets are often difficult to try and read for many of these sensors (I am by no means an engineer).
I will have to check everything with a Meter and verify that way.
Although i did find that the Max485 to TTL board i linked from DSD tech, did not work with a 3.3v power connection. Perhaps i did something wrong but when connecting to 3.3v i could not get it to read any register data but it worked fine simply by switching to the 5v line.
I don't trust amazon descriptions too much.... The only one I know from my experience to work reliably at 3.3v is the max485 one without automatic direction control.
Agree completely, i actually have a few of those ones as well that i originally purchased. But they lacked mounting holes and were very cheaply made (10 bucks for 5 of them) plus i needed the additional Pins for the directional control which on the MKR board you really don't have much of to begin with. Which was why i switched to the DSD tech ones.
Is this true in general of absolute voltage ratings for semiconductor components? If so, exceeding absolute voltage ratings should not be damaging if the high voltage is in the form of a spike of short duration. For example, a milliwatt of joule heating power generated over a duration limited to 1 nanosecond would generate only 1 pJ of thermal energy, which would be converted to sensible heat according to the specific heat capacity (which is 0.72 J·K–1·g–1 or 1.7 pJ·K–1·µm–3 for silicon). Thus, generating a pJ of thermal energy in a cubic micron of silicon would raise its temperature by at most 0.6 K.