ATtiny414/814/817 series

Well, the biggest problem with Atmel's defines is that PA3 = 3, and PB3 =3; they do not uniquely identify a pin.

PIN_A3 should give you the arduino pin number corresponding to pin 3 in port A (ie, PA3)

A3 should give you the analog pin A3 (ie, the pin with ADC channel 3 on it)

Don't even get me started about the arduino convention of "analog pins".

The PA/PB numbers work great for direct port writes - which I've been using for both speed and smaller program space. The names of the register is a bit confusing at times.

Indeed have to keep track of which register they are but PBx is used little: PB0 and PB1 in use by the external crystal oscillator; PB3 is RESET, leaving just PB2.

Thanks for the great work; I put it aside myself for now as I'm still having problems reliably detecting interrupts (in my case: discharging a capacitor, need to know when exactly it reaches the point the pin goes from HIGH to LOW).

wvmarle:
The PA/PB numbers work great for direct port writes...

They are also a mistake. The correct identifiers are DDRA3, PINA3, PORTA3, DDRB3, PINB3, and PORTB3. The short versions were accidentally included for some processors leaving Atmel with no choice but to leave them.