From what I've seen over the past month of investigation, it certainly seems as if issues faced in 2013 have been completely resolved. It really looks as if there is full support available.
Historically (2013), I found:
- F_CPU was either 8MHz or 16MHz, no other options, and this was used for timing calculation for millis(). This is no longer the case, and a much finer grained timing calculation is in place, including specific support for devices with F_CPU over 24MHz (like the Goldilocks Analogue).
- Analogue pins had to be numbered less than 22, unless it was specifically a 2560 MCU. This was addressed in 2013 by forcing the pin numbering to keep the 8 analogue inputs at digital pin 14 to 21, but the issue has now been completely resolved and there are generally no requirements now as to which pin number is assigned.
I'm still to go through all of the Arduino IDE example sketches to find any additional subtle issues, and I expect to have done that within a few weeks.
One irreconcilable difference will be the Timer Inputs and PWM capable outputs, which are on different pins to the 328p MCU. That means that shields that rely on PWM outputs may need to have pins reassigned (hardware hack) to work properly if I/O pins on a 1284p MCU board are assigned "naturally" (i,e. in numerical order).
Specifically to the Goldilocks Analogue 1284p board, a revised
Arduino IDE Variant files for Goldilocks Analogue using the Arduino core are available on Github. There are two different arduino_pins.h files available. The old_arduino_pins.h file has the pin numbering assigned naturally, the only exception is to get the SPI interface onto Uno pin equivalent numbering. The arduino_pins.h file additionally moves the analogue pin assignments to low numbered digital pins to avoid the 2013 pin assignment issue.
For interest, optional libraries to provide support for each of the advanced features of the Goldilocks Analogue are available in the Arduino IDE Library Manager.
Gratuitous Arduino R3 compatible 1284p picture follows.