Type sizes: char : 1 short : 2 int : 2 long : 4 long long : 8 bool : 1 void* : 2 Operation timings: Note: timings for some operations are very data dependent nop 0.07 usec/call cli/sei 0.14 usec/call micros() 3.17 usec/call millis() 1.47 usec/call fadd 9.18 usec/call fsub 9.25 usec/call fmul 7.96 usec/call fdiv 7.96 usec/call dadd 9.18 usec/call dsub 9.25 usec/call dmul 6.14 usec/call ddiv 6.07 usec/call sin() 112.35 usec/call cos() 113.11 usec/call tan() 154.92 usec/call acos() 167.69 usec/call asin() 82.16 usec/call atan2() 193.34 usec/call sqrt() 31.67 usec/call iadd8 0.48 usec/call isub8 0.48 usec/call imul8 0.67 usec/call idiv8 5.57 usec/call iadd16 0.92 usec/call isub16 0.92 usec/call imul16 1.42 usec/call idiv16 13.31 usec/call iadd32 1.80 usec/call isub32 1.80 usec/call imul32 4.69 usec/call idiv32 37.89 usec/call iadd64 7.96 usec/call isub64 8.53 usec/call imul64 45.82 usec/call idiv64 230.95 usec/call memcpy128 56.76 usec/call memset128 49.84 usec/call delay(1) 1007.65 usec/call Additional notes: eeprom_read_byte: 2 usec/call eeprom_write_byte: first call costs 5 usec, each subsequent byte costs 3480 usec as it waits for the EEPROM to be ready from the previous byte pgm_read_byte: 0.5 usec per byte dataflash write: 50 usec per byte, same on APM1 and APM2 if we change API to do block writes, will be 8 usec per byte