Max current per I/O pin

I'm a little confused about the max I/O current. The datasheet says that the current should be 15 mA, but my nano ble sense only delivers round about 7.5 mA. Tested with an multimeterand: pin against GND and pin --> 100R --> GND both ~ 7.5 mA.

const int pinA3 = A3;
const int pinA4 = A4;

void setup() {
  pinMode(pinA3, OUTPUT);
  digitalWrite(pinA3, HIGH);
  pinMode(pinA4, OUTPUT);


void loop() {
  digitalWrite(pinA4, HIGH);
  // put your main code here, to run repeatedly:


Is there anything I'm making wrong? Drive strength seems to be high, otherwise current would be even lower I think.

Two things, in the past there was an issue when writing to the I/O very fast. The I/O was initialized again and again lowering the average voltage on that pin. Maybe this is fixed, but worth checking.

Second, how to you read/interpret the datasheet? I am not certain how to read the data. It states for


  • Min 6mA
  • Typ 9mA
  • Max 14mA

Why is there a minimum current, unless that is the guaranteed current you can get out of any I/O pin under the conditions across all devices still sold as being compliant with the datasheet?

The typical is usually the value that most device will provide and maximum is the limit at which the I/O might get damaged.

  1. As you can see in my previously posted sketch:
    Pin A3 is set to high in the setup and pin A4 in the main loop. So I wanted to check if too fast writing is the problem here.
    (edit: but I've just checked it with my oscilloscope and voltage is constantly 3.3 V.)

  2. That‘s the point... I don‘t know how to read the datasheet either. But the table with the specifications at the arduino store says only „Max DC current per I/O: 15 mA“

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.