picoCore
picoCore copied to clipboard
size-optimized Arduino/Wiring core for tiny AVR MCUs
picoCore
Small Arduino/Wiring core for 8-pin tiny AVRs: ATtiny13 and ATtiny85 series, and preliminary support for the ATtiny84. Arduino Blink sketch compiled for the ATtiny85 is 64 bytes and for the ATtiny13 is 54 bytes.
I am writing this core from scratch, with code size and efficiency as the main goal. I am making use of AVR assembler code when the code size and efficiency goals cannot be readily attained with C/C++. Unlike the official AVR core, picoCore has compile-time checking of many arguments. Calling digitalWrite(42) will cause a compile error with the message, "pin out of range".
This core is not 100% compatible with the official Arduino AVR Core, and 100% compatibility would be impossible given the differences between the tiny AVR MCU supported by picoCore and the ATmega MCU supported by the official core. If maximum compatibility is more important than minimal code size, then ATTinyCore may be a better choice.
Development Status
v0.3.0 includes debugSerial, for basic serial output supporting the most common Serial.print() data types.
Plans for v0.4.0 include serial bootloader support using picoboot-lib.
Supported Functions
- analogRead()
- analogReference()
- analogWrite()
- delay() Maximum delay is 65535ms
- delayMicroseconds()
- digitalRead()
- digitalWrite()
- millis() Watchdog timer based. Will increase with steps of 16
- pinMode()
- shiftIn()
- shiftOut()