AT90CAN Support for Arduino
C++ C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


AT90CAN Support for Arduino
Maintainer: Sam C. Lin <>

This is a continuation of SuperCow's work on adapting Arduino to work with AT90CANxx MCU's at,8446.0.html

Compile Arduino sketches on Atmel AT90CANxx MCU's.
Supports USBtinyISP and JTAG ICE mk1

For Arduino <= 0023: copy the 0023/at90can folder to <arduino>/hardware/at90can
For Arduino >= 1.0: copy the 1.0/at90can folder to <arduino>/hardware/at90can

From the Arduino IDE's Tools->Board menu, select either



[JTAG ICE mk1]AT90CAN128

Set your fuses with avrdude:
avrdude -c usbtiny -p at90can128  -U lfuse:w:0xFF:m
avrdude -c usbtiny -p at90can128  -U hfuse:w:0x19:m
avrdude -c usbtiny -p at90can128  -U efuse:w:0xFF:m

To install bootloader for programming over serial, you must set in hfuse BOOTSZ=10 and BOOTRST=0. Use the following fuse settings:
avrdude -c usbtiny -p at90can128  -U lfuse:w:0xFF:m
avrdude -c usbtiny -p at90can128  -U hfuse:w:0x1C:m
avrdude -c usbtiny -p at90can128  -U efuse:w:0xFF:m
You will also need to set up the automatic reset circuit to use DTR to toggle the RESET pin:  DTR---|100nF|--<RESET>--|1n4148>|--VCC
Select [bootloader]AT90CAN128 board type in Arduino IDE and burn the bootloader.
Thereafter, you can burn sketches without a hardware programmer via USART0 (RXD0/TXD0) by selecting board type [bootloader]AT90CAN128.

For Arduino pin mappings, see AT90CAN_Pinmap.txt

For more information, see

20130421 SCL
- restore missing usbtinyisp to 1.0 boards.txt

20130104 SCL
- get bootloader working. Thanks to a4x4kiwi for help
- changed lock bits when locked from CF to 0F because even though AT90CAN128
  datasheet shows top 2 bits fixed = 1, avrdude always reads back 0's.