Go Down

Topic: Is anyone working on the hardware folder for the SAMD10? (Read 367 times) previous topic - next topic


I've been curious about the touch sensors in the SAM line of ATMEL chips, and I picked up a SAMD10-MiniXplained kit to hack with them. But I cannot find any hardware pointers about the SAM platform searching Google, Bing, etc., for adding into the Arduino IDE. Is anyone already working on this?

I'm fonder of working on my Mac, but at the moment, it looks like my only options for the SAM is to go to a PC to use the Studio6 application... lots of features, but fraught with a complex learning curve, and I'm trying to decide which way to go at this point.

   I look forward to hearing that someone is already hacking on this effort. :-)



Not that I know of.  It still might be easier to add it to Arduino (the ARM compiler is already there, for Due/etc, but it doesn't look like there samd10 include files are included yet.)
Also, SAMD10 is pretty small by the standards of Arduino (and ARM in general.)  People haven't been paying much attention to code size, because "ARMs have lots of memory."  And then when something like the d10 comes along (with 16k or less, it's like "oops."


The new Arduino Zero runs a SAMD21. This is the same line of Cortex M0+ chips as the SAMD10, but with some extras (USB, and some others - Atmel's website will have a better comparison).

If you're interested, then you can use the SAMD21G18, and bootload it with the Arduino Zero bootloader (you will need either a programmer or an Arduino Zero for this).

Given that the D10, D11, D20, and D21 are all the same line of chips, just with some extra hardware as they increase, you may - MAY - find it possible to bootload the D10 with Arduino's modified version of the SAM-BA bootloader with some very minor adjustments to it. The source code for this is available - downloading the board files for the Zero in the 1.6.5 IDE (from Arduino LLC's Arduino.cc).

If you can adjust the bootloader for the D10/D11 (D11 has USB), then you may be able to dig into the settings a little more to get Arduino to compile your code for a D10/D11/D20/D21, perhaps even by just creating the necessary board files?

Of course, if you're burning a bootloader then I would assume you've got the programmer anyway, at which point you may find the bootloader a little pointless, and you'd rather save the space for your code.

I've also got a Mac - I have a bootcamp partition that runs Studio 6, and Parallels does a great job of VM'ing that bootcamp partition so I can use Studio 6 when coding for my D21 Xplained Pro. Totally agree with the learning curve for Studio 6, EVERYTHING is #define'd, and I spend my entire time sifting through the ASF application notes.

TL;DR - a SAMD21G18 is very similar to the D10 series, with slightly more features, and integrated via the Arduino Zero. Because of the Zero, it may be very easy to create your own 'board' settings based on the settings for the Zero, and slightly change the compiler settings for your board to target the correct uC!
Hackaday Member Page: hackaday.io/tom


 a SAMD21G18 is very similar to the D10 series, with slightly more features
and MUCH more memory.  The largest D10 has 16KB Flash and 4KB SRAM, while the smallest d21 has 32KB Flash and 4KB RAM (and they go up to 256k/32k)

This is especially worrisome on arduino, where the minimal ARM sketch is about 12k.


Visit my RC aircraft website at http://www.electricrcaircraftguy.com


any progress anyone?
I don't think anyone even admitted to being interested in working on it...  :-)

I have my SAMD10 Xplained Mini running under Atmel Studio now (in a WXP VM on a Mac.)  Their "Blink" example is "only" about 2k, which is a lot better than the 11k of the Arduino Zero Blink...  There is lots of room for improvement; ASF isn't any more minimal than Arduino, all things considered.

I already found one "misfeature" of the AS default settings, too...



Visit my RC aircraft website at http://www.electricrcaircraftguy.com


So I've continued to play.   Things are "interesting."
A fully optimized (constant arguments) digitalWrite(13, 0) on CM0+ takes 4 instructions (compared to 1 instruction on most AVRs.)
But the obvious implementation of digitalWrite() (all arguments variable, like the code in Arduino) only takes about 12 instructions (compared to about 50 in Arduino!)

Go Up