Arduino Due getting warm when powered on

Hi guys,

I’m sorry if there already is a post about this and I am really new to Arduino so I hope this isn’t a really dumb question.

I have just received a new Arduino Due in the mail and I am really exited about it.
I have only ran two programs on it so far which were Blink and DigitalReadSerial.
I definitely made sure I didn’t connect the button in DigitalReadSerial to the 5v pin (3.3v instead).

Everything is working perfectly but the main chip does get a little warm (but not hot)
even when no program is running on it. I think it’s completely normal but I thought
I would just check with you guys to make sure.

Thanks for your time!
Nikolai.

The Sam3x uc embeddes a temperature sensor, not super accurate but sufficient to trigger an alarm if internal temperature jumps above a threshold.

An example sketch to read internal uc temperature:

/******************************************************************************/
/*         Read temperature on the die - which does warm up.                  */
/******************************************************************************/

float trans = 3.3 / 4096;
float offset = 0.73;    // To be adjusted for each uc (at start up (cold),
//result should be close to ambiant temp
float factor = 0.00265;

void setup() {
  Serial.begin(250000);
  PMC->PMC_PCER1 |= PMC_PCER1_PID37;
}

void loop() {
  static uint32_t Counter;
  float treal;
  uint32_t __treal;

  if (Counter++ == 100000) {
    treal = (( trans * temperatur() ) - offset ) / factor;
    __treal = (uint32_t) treal;
    printf("%d\xB0" "C\n", __treal );
    Counter = 0;
  }
}

uint32_t temperatur() {
  uint32_t ulValue;

  ADC->ADC_CHER |= 1 << ADC_TEMPERATURE_SENSOR;
  ADC->ADC_ACR |= ADC_ACR_TSON;              // Temp sensor is ADC channel 15
  ADC->ADC_CR = ADC_CR_START;

  while (!(ADC->ADC_ISR & ADC_ISR_EOC15));

  ulValue = ADC->ADC_CDR[15];

  ADC->ADC_CHDR |= 1 << ADC_TEMPERATURE_SENSOR;
  return ulValue;
}

Ok, I have tried the script you have given me but in the serial port it is giving lots of weird strings like this:

5⸮5⸮5⸮5⸮5⸮5⸮=⸮5⸮5⸮5⸮=⸮5⸮5⸮=⸮=⸮5⸮5⸮

I think I may be doing something wrong with the serial communication settings. However everything is working fine so maybe it isn't a problem anyway.

Madbus:
even when no program is running on it.

Unless you are using sleep modes, microcontrollers basically run all the time. There is no "no program" running on it. The flash memory is continuously read, and the bit pattern will be decoded into an instruction. Usually when the flash memory is "empty" it’s all set to 1. In most microcontroller architectures this will be decoded as some simple instruction like ADD. So, the processor will just add something forever.

The same is in principle true for all digital computers, but the operating system is the continuously executed program when no user program is running. And modern operating systems are handling power modes, frequency scaling, sleep modes and so on.