Go Down

Topic: Mini SAMD21G18 development board 15x15mm (Arduino compatible) (Read 2440 times) previous topic - next topic

avandalen

See the whole article here, and how to buy:
http://www.avdweb.nl/arduino/samd21/sam-15x15.html

See the video here:
http://www.youtube.com/watch?v=kdwHaNBbSx8

Introduction
The SAM 15x15 is an Arduino development board of just 15 x 15mm, with the same powerful controller as the Arduino Zero: the SAMD21G18. Despite the small size, it has more I/O pins than the Arduino Zero: 34 instead of 20. Due to the very small dimensions it will fit easily into all embedded electronic projects.


SAM 15x15 features
  • Controller: Atmel ATSAMD21G18, 32-bit, 48MHz, ARM Cortex-M0+
  • Digital I/O pins: 34
  • PWM outputs: 24 (PWM DAC)
  • Analog inputs (ADC): 14
  • ADC resolution: 12-bit
  • One 10-bit DAC
  • Flash memory: 256 kbyte
  • SRAM: 32 kbyte
  • EEPROM: 32 kbyte (emulated in Flash)
  • Preprogrammed customized bootloader
  • Programming and debugging through the integrated USB port

The SAM 15x15 board contains also:
  • One free LED
  • Combined RX/TX LED
  • Voltage regulator 3.3V for the USB powering
  • Power supply reverse polarity protection
  • High voltage protection for the USB


SAMD21G18 with pins
For hobbyists, the drawback of the SAMD21 is that it is only available in SMD. When blown up, it is pretty tough to replace it because no IC socket can be used. This can be solved with the SAM 15x15 board, which transforms the SAMD21G into a pin version


SAM 15x15 miniaturization
There are as much as possible functions crammed into the small area:


SavvaM

Hello,

I have a problem related to SAM 15x15 board that I hoped you could help me resolve.

I'm trying to configure pins d[14] to d[21] as INPUTs and read pulses that oscillate between 0V and 3.3V, but it doesn't work. I have the SAM15x15 package, as well as the version 1.6.8  of "Arduino SAMD Boards (32-bits ARM Cortex-M0+)" package installed on my laptop.

I attached the code as well as the output that I'm reading to this post. How can I solve this?
(interestingly, I didn't have this issue configuring pins d[2]-d[11] is INPUTs, or d[10]-d[13] and d[22]-d[25] as OUTPUTs)

Thank you kindly.

westfw

Code: [Select]
#include <Streaming.h>
int one[8];
void setup() {
  pinMode(d[21], INPUT);
  pinMode(d[20], INPUT);
  pinMode(d[19], INPUT);
  pinMode(d[18], INPUT);
  pinMode(d[17], INPUT);
  pinMode(d[16], INPUT);
  pinMode(d[15], INPUT);
  pinMode(d[14], INPUT);
}

void loop() {
  for (int i = 21; i > 13; i--) {
    SerialUSB.print(analogRead(d[i]));
    SerialUSB.print(" ");
  }
  SerialUSB.println();
}

Eww.  I don't care for that d[] syntax, but it seems to be permitted (d[] is defined in variants.h and maps 15x15 pin numbers to "arduino zero" pin numbers)...
Quote
SerialUSB.print(analogRead(d));
However, analogRead() is not supported on all of the pins.  (Only on d[1] - d[11] and d[32], d[33]
You may be able to use digitalRead(), depending on what your waveform looks like and what you want to do.

avandalen

Code: [Select]
#include <Streaming.h>
int one[8];
void setup() {
  pinMode(d[21], INPUT);
  pinMode(d[20], INPUT);
  pinMode(d[19], INPUT);
  pinMode(d[18], INPUT);
  pinMode(d[17], INPUT);
  pinMode(d[16], INPUT);
  pinMode(d[15], INPUT);
  pinMode(d[14], INPUT);
}

void loop() {
  for (int i = 21; i > 13; i--) {
    SerialUSB.print(analogRead(d[i]));
    SerialUSB.print(" ");
  }
  SerialUSB.println();
}

Eww.  I don't care for that d[] syntax, but it seems to be permitted (d[] is defined in variants.h and maps 15x15 pin numbers to "arduino zero" pin numbers)...
However, analogRead() is not supported on all of the pins.  (Only on d[1] - d[11] and d[32], d[33]
You may be able to use digitalRead(), depending on what your waveform looks like and what you want to do.

d[19] is the same as 13 for the Arduino Zero and has no analog input, see here:

jogco

Hi!

I just got the two SAM15x15 "little gems" and "extras" I ordered. Very nice indeed. And fast delivery to North of Sweden. :)

Looking at the schematic of on your site, I see a LD2980CM33 is specified as U2.
Some googling for this LDO gave me a 2.5V to 16V range for voltage input and 50 mA output current, is this correct?

I was thinking of driving it from a LiPo cell through the USB connector, would that work?

Anyway, if you think my questions/ideas are strange it might be because I'm relatively new to the microcontroller world.

Best wishes for the holidays and keep up the good work!

Go Up