diff -ruN arduino-1.8.3.orig/hardware/arduino/avr/cores/arduino/wiring_analog.c arduino-1.8.3/hardware/arduino/avr/cores/arduino/wiring_analog.c --- arduino-1.8.3.orig/hardware/arduino/avr/cores/arduino/wiring_analog.c 2017-05-31 18:58:40.000000000 +0200 +++ arduino-1.8.3/hardware/arduino/avr/cores/arduino/wiring_analog.c 2017-08-21 13:47:27.118658770 +0200 @@ -69,6 +69,9 @@ #else ADMUX = (analog_reference << 6) | (pin & 0x07); #endif +#elif defined(ADMUXA) + ADMUXA = (pin & 0x07); + ADMUXB = (analog_reference << 5); #endif // without a delay, we seem to read from the wrong channel