Dynamically get the model of Arduino

@Aeternalus
Probably your right, an alternative is to define a string yourself, drawback is that you might need to change it if your code is uploaded to a slightly different platform.

#define _TYPE_ "ATMega328P MHZ16 ANA6 DIG13 PWM4 HWS1 I2C1 SPI1"   

char * getType()
{
  return _TYPE_;
}
void setup()
{
  Serial.begin(115200);
  Serial.println(getType());
}
void loop() {}

Or even more work

struct ArduinoType
{ 
  char name[20];
  uint8_t analogPins;
  uint8_t digitalPins;
  uint8_t pwmPins;
  uint8_t voltage;      // whole part only
  uint16_t RAM;         // KB
  uint16_t EEPROM;   // KB
  uint8_t SerialPorts;
  uint8_t clockSpeed;
 // ..
} myArduino = { _AVR_CPU_NAME_, 6, 13, 4, 5, ... }