This post is solely concerned with the task of flashing a binary on the Arduino Due. While the Arduino software is great, I like having more control over low-level details.
The board itself has two programming ports. One of them is called the “native” port and is connected directly to the Atmel SAM3X chip. This has a few implications; if a program is already running, the USB port might not be in bootloader mode.
Connect the Arduino Due via the native port. Push the **ERASE** button.
The chip will now default to a programming mode.
You should have bossac installed on your system. Let’s probe the chip.
~% sudo bossac -i
Device found on cuaU0
Atmel SMART device 0x285e0a60 found
Device : ATSAM3X8
Chip ID : 285e0a60
Version : v1.1 Dec 15 2010 19:25:04
Address : 524288
Pages : 2048
Page Size : 256 bytes
Total Size : 512KB
Planes : 2
Lock Regions : 32
Locked : none
Security : false
Boot Flash : false
The internal flash is 512KB. Let’s try writing a file.
sudo bossac -e -w -b=1 512k_file_input
Read back the chip, comparing the files, it should be the same.
sudo bossac -r 512k_file_output
Run the basic check.
[sinetek@SEATK0] ~% sha256 512k_file_input 512k_file_output
SHA256 (512k_file_input) = 3d338d950950054ec0d83191ce5e00ed067190af67c2a6eb41547a4bcf3ef1e0
SHA256 (512k_file_output) = 3d338d950950054ec0d83191ce5e00ed067190af67c2a6eb41547a4bcf3ef1e0
That is it for today. In the next installment we’ll make a little blinkylight demo, which will be more exciting!