I happen to do some manual pin assignments for MCUs lately and came across a rather unpleasant behavior of KiCAD.
Please check out the pin numbers after the names for pins in the rows starting with ‘X’ for this example… after the row with pin 10 comes pin 20, not pin 11.
Even if I manually order everything and save it, loading the lib with KiCAD reorders it into this chaos…
#
# ATMEGA168_MU
#
DEF ATMEGA168_MU U 0 20 Y Y 1 F N
F0 "U" 1075 -1250 50 H V C CNN
F1 "ATMEGA168_MU" 0 -1250 50 H V C CNN
F2 "" -1145 -2030 60 H V C CNN
F3 "" -1145 -2030 60 H V C CNN
DRAW
S -1200 1200 1200 -1200 0 0 10 N
X PD3_(PCINT19/OC2B/INT1) 1 -1300 1125 100 R 50 50 1 1 I
X PD4_(PCINT20/XCK/T0) 2 -1300 975 100 R 50 50 1 1 I
X GND 3 -1300 825 100 R 50 50 1 1 I
X VCC 4 -1300 675 100 R 50 50 1 1 I
X GND 5 -1300 525 100 R 50 50 1 1 I
X VCC 6 -1300 375 100 R 50 50 1 1 I
X PB6_(PCINT6/XTAL1/TOSC1) 7 -1300 225 100 R 50 50 1 1 I
X PB7_(PCINT7/XTAL2/TOSC2) 8 -1300 75 100 R 50 50 1 1 I
X PD5_(PCINT21/OC0B/T1) 9 -1300 -75 100 R 50 50 1 1 I
X PD6_(PCINT22/OC0A/AIN0) 10 -1300 -225 100 R 50 50 1 1 I
X AREF 20 1300 -675 100 L 50 50 1 1 I
X PD0_(RXD/PCINT16) 30 1300 825 100 L 50 50 1 1 I
X PD7_(PCINT23/AIN1) 11 -1300 -375 100 R 50 50 1 1 I
X GND 21 1300 -525 100 L 50 50 1 1 I
X PD1_(TXD/PCINT17) 31 1300 975 100 L 50 50 1 1 I
X PB0_(PCINT0/CLKO/ICP1) 12 -1300 -525 100 R 50 50 1 1 I
X ADC7 22 1300 -375 100 L 50 50 1 1 I
X PD2_(INT0/PCINT18) 32 1300 1125 100 L 50 50 1 1 I
X PB1_(PCINT1/OC1A) 13 -1300 -675 100 R 50 50 1 1 I
X PC0_(ADC0/PCINT8) 23 1300 -225 100 L 50 50 1 1 I
X PB2_(PCINT2/SS#/OC1B) 14 -1300 -825 100 R 50 50 1 1 I
X PC1_(ADC1/PCINT9) 24 1300 -75 100 L 50 50 1 1 I
X PB3_(PCINT3/OC2A/MOSI) 15 -1300 -975 100 R 50 50 1 1 I
X PC2_(ADC2/PCINT10) 25 1300 75 100 L 50 50 1 1 I
X PB4_(PCINT4/MISO) 16 -1300 -1125 100 R 50 50 1 1 I
X PC3_(ADC3/PCINT11) 26 1300 225 100 L 50 50 1 1 I
X PB5_(SCK/PCINT5) 17 1300 -1125 100 L 50 50 1 1 I
X PC4_(ADC4/SDA/PCINT12) 27 1300 375 100 L 50 50 1 1 I
X AVCC 18 1300 -975 100 L 50 50 1 1 I
X PC5_(ADC5/SCL/PCINT13) 28 1300 525 100 L 50 50 1 1 I
X ADC6 19 1300 -825 100 L 50 50 1 1 I
X PC6_(RESET#/PCINT14) 29 1300 675 100 L 50 50 1 1 I
ENDDRAW
ENDDEF