General questions about MKRZero

Hi, I have a project which requires the following:

  • Small and portable form factor
  • Battery driven board
  • Collect data from ADC and write it to a USB/SD card
  • Control a few peripherals using SPI
  • Able to construct my own Arduino board (after prototyping is finished)

I am planning to use Arduino MKR Zero for my project as it seems to support most of the requirements. However, I have a few questions:

  • Is there a Datasheet for Arduino MKR Zero board? The information provided on the Arduino website is very limited.
  • I can see that Arduino MKR Zero has an SD slot. Is it a Full-Sized SD slot or a MicroSD card slot?
  • Does Arduino MKR Zero support both Read and Write operations or only Read operation from the SD Card? If it supports write operations, what will be the maximum write speed for the SD card?
  • In the Arduino MKR Zero information on the Arduino website, I can see that it uses a dedicated SPI interface for communication with the SD card, and the tech specs also mention that this board has an SPI controller. Does it mean it has two SPI controller (one dedicated for SD card and one for general use) or it has only one SPI controller (same SPI controller used for SD card and general use)?
  • In tech specs for Arduino MKR Zero it is mentioned ‘Analog Input Pins: 7(ADC 8/10/12 bit)’ what does it mean? How can I know which pin supports 12-bit ADC? Or, can all 7 pins be set at any of the 8/10/12 bit values? Especially, because the datasheet for the microcontroller used in Arduino MKR zero (ATMEL SAMD21) mentions that it has ‘One 12-bit, 350ksps Analog-to-Digital Converter (ADC) with up to 20 channels’.

It would be very helpful for me if you can answer any or all of the above questions, thank you in advance :slight_smile:

Hi chaitanya_,

I am planning to use Arduino MKR Zero for my project as it seems to support most of the requirements. However, I have a few questions:

  • The MKR Zero uses the Atmel/Microchip SAMD21G18A microcontroller, whose datasheet can be found here: https://ww1.microchip.com/downloads/en/DeviceDoc/SAM_D21_DA1_Family_DataSheet_DS40001882F.pdf. This can be used in conjuction with the board's schematic diagram: https://content.arduino.cc/assets/MKRZero_V5.0_sch.pdf.
  • It takes a micro SD card.
  • The speed will depend on the type of micro SD card used. Check with the manufacturer's micro SD card data.
  • The SAMD21 communicates with the micro SD card using its own dedicated SPI port. There is a second SPI port for general use. Furthermore, the SAMD21 has a couple of spare Serial Communication (SERCOM) modules that can be configured as additional hardware Serial, SPI and I2C ports, for more information: Overview | Using ATSAMD21 SERCOM for more SPI, I2C and Serial ports | Adafruit Learning System.
  • The SAMD21 has a single 12-bit ADC peripheral with multiplexed inputs (or channels). The ADC can be configured for either, 12-bit, 10-bit or 8-bit operation, depending on your requirements. When the analogRead() function is called, the microcontroller will get the ADC to read the analog voltage on the specified pin. The only time when the multiplexing becomes an issue, is at at very high sampling rates. If go beyond the Arduino functions and start using register maniplulation, then in theory it's possible to have up 20 ADC channels. In practice however, this is only possible on the larger 64-pin SAMD21J variant and often many of these pins are used for other functions instead.

Hi MartinL, Thank you so much for the information, it is very helpful. I have posted one more question regarding Arduino MKR Zero under the Project Guidance forum, but no one has answered my question there. If possible can you please also those questions, the link to my question on Project Guidance. For convenience, I am pasting the text from my other question below:

I am working in a company and currently, I am in the prototype stage of making a small product out of Arduino MKR Zero. For the final version of the product, the plan is to make an Arduino MKR Zero clone board by our own self so that we can include some extra electronics required and keep the package as small as possible. Of course, we will use the same materials (e.g. Microcontroller, Resistors, etc.) as the original Arduino MKR Zero on our own board. However, this raises two questions for me:

First, would I be able to program the Arduino MKR Zero clone that I make by myself using Arduino IDE without any expert modifications? Or will there be extra steps required such as installing a Bootrom on the microcontroller so that it works just like the original Arduino MKR Zero?

Second and more important, what are the licensing issues? Can I sell the product to my customers without any license from Arduino's side? If not, then what is the procedure to be able to sell it to my customers?

This will be really very helpful for me as, thank you so much :slight_smile:

Hi chaitanya_,

First, would I be able to program the Arduino MKR Zero clone that I make by myself using Arduino IDE without any expert modifications? Or will there be extra steps required such as installing a Bootrom on the microcontroller so that it works just like the original Arduino MKR Zero?

Yes, it's possible to create a custom board based on the MKR Zero. However, the bootloader needs to be flashed on to the SAMD21 using a programmer over the microcontroller's SWD port. The programmer will require: +3.3V, GND, RESET, SWCLK and SWDIO power and signal lines to be broken out, usually using a standard 2x5 way, 1.27mm pitch connector like the one shown here: https://uk.farnell.com/harwin/m50-3600542/connector-header-smt-1-27mm-10p/dp/1022310?ost=1022310. (A through hole version is also available).

The bootloader can be uploaded to the microcontroller using the Arduino IDE. Once the bootloader has been flashed, it's possible to remove the programmer and upload sketches over the native USB port instead.

It's also necessary include a reset button on your custom board, just in case there's a problem with the sketch that causes the auto upload process to fail, which can happen occasionally. Double tapping on the reset button will put the microcontroller into bootloader mode and allow the board to recover.

Second and more important, what are the licensing issues? Can I sell the product to my customers without any license from Arduino's side? If not, then what is the procedure to be able to sell it to my customers?

Here's a link to some information from Arduino themselves: https://support.arduino.cc/hc/en-us/sections/360004749260-Compatible-Products.

Hi MartinL, thank you so much, this is a great help :slight_smile:

Hi chaitanya_,

By the way, if you're creating your own custom board, it's also definitely worth reading the SAMD21's Schematic Checklist at the back of the datasheet. It gives information about layout, crystal selection, bypass capacitors, SWD port, etc...

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.