Okay a quick scan of the pins_arduino.c file indicates to me that at a minimum I would need to modify
These three list
digital_pin_to_port_PGM
digital_pin_to_bit_mask_PGM
digital_pin_to_timer_PGM
So the last one is easy, add 16 NOT_ON_TIMER entries.
I am not understanding the format of the digital_to_bitmask_PGM I am guessing it is the bit in the port
register associated with the pin. I am guessing that the register is defined in digital_pin_to_port data structure. If that is the case this is any easy extension if someone can tell me the 16 correct port registers for the 16 unmapped signals. Then I can add the P*, to the first, the correct bits for the second, and declare no timers in the third. Is this all there is to it, or am I missing something. Also can someone more schooled in the Arduino doctrine suggest which term I should ifdef this on and which file I need to declare the existence of this new option in I would appreciate it. Then I will push at the Arduino folks to consider adding it.
If I am missing something please tell me what it is, but it seem like it ought to be very straight forward.
From my limited reading of the board file it would appear that I need to add
PH,
PH,
PJ,
PJ,
PJ,
PJ,
PJ,
PJ,
PD,
PD,
PD,
PG,
PG,
PE,
PE,
PE
and for the bit values
_BV(2),
_BV(7),
_BV(2),
_BV(3),
_BV(4),
_BV(5),
_BV(6),
_BV(7),
_BV(4),
_BV(5),
_BV(6),
_BV(4),
_BV(3),
_BV(7),
_BV(6),
_BV(2)
Albert, or some one else who is more of a hardware type than me, is this correct? Should I be adding a timer to some of these pins for pwm? Any other things to consider?