TinyZero Setup Tutorial
This tutorial will cover the basic setup of the TinyZero, the most cost-effective processor TinyCircuits has to offer.
TinyZero is TinyCircuits' second generation processor board, adding performance upgrades and additional features to the original TinyDuino. TinyZero is based on the Atmel SAMD21 32-bit ARM Cortex M0+ processor (the same one used in the Arduino Zero) and provides a USB connectivity port, power management, and battery charger in a single 20x20mm board. This processor board also has an optional accelerometer version, which adds the low power Bosch BMA250 3-axis accelerometer to the same board without increasing the size. We've kept our standard TinyShield expansion port, allowing for use of all of our current shields, and all 20 IO pins are available for use.
The TinyZero Processor Board is available in two variations:
- Without accelerometer- TinyZero with all the features mentioned above, except the 3-axis accelerometer.
- With accelerometer - TinyZero with a built in Bosch BMA250 3-axis accelerometer
- Atmel SAMD21 processor (same as is used on the Arduino Zero)
- More memory compared to TinyDuino (both Flash and RAM)
- TinyShield expansion connector, built in micro USB connection
- Power switch, regulator, lithium battery management on board
- Precision clock crystal and Real Time Clock hardware built in, low power standby
- Optional 3-axis accelerometer
- Up to 10 ADC inputs, up to 10 PWM outputs, up to 16 external interrupts
Learn more about the TinyDuino Platform
- Atmel ATSAMD21G18A 32 bit ARM processor at 48MHz, Arduino Zero compatible
- 32.728KHz clock crystal, RTC hardware built in with standby mode down to 0.2mA
- Expandable with our full lineup of stackable TinyShield boards
- Ultra compact size and weight (smaller than a US Quarter!)
- 20mm x 20mm (.787 inches x .787 inches)
- Max Height: 2.9mm (0.12 inches)
- Ultra-thin 0.61mm (0.024 inches) PCB
- Weight: 1.40 grams (0.049 ounces)
- Atmel 32-bit ATSAMD21G18A ARM Microcontroller
- ARM Cortex M0
- 256KB Flash, 32KB SRAM
- 12-bit ADC, 10-bit DAC
- Default Clock speed: 48MHz
- Bosch BMA250 Accelerometer Specs (optional)
- 3-axis (X, Y, & Z)
- Digital resolution: 10bit
- Measurement ranges: +-2g, +-4g, +-8g, +-16g
- Bandwidths: 1000Hz to 8Hz
- Low Power: 130uA @1kHz data rate
- 2.7V – 5.5V operating voltage with built in 3.3V regulator
- 20 IO pins available- up to 10 ADC inputs or up to 10 PWM outputs
- Arduino compatible bootloader with CDC Serial port, plug and play on OSX and Windows 10
- To send text to the Arduino IDE Serial Monitor, use the SerialUSB object instead of Serial
- If you were able to upload a sketch to the TinyZero and now it does not respond, you may need to force this into bootloader mode. To do this, power off the TinyZero using the slide switch. Plug the USB cable into the TinyZero and your computer. Then press and hold the button on the bottom on the TinyZero while sliding the switch to the ON position. Then try uploading your program to the TinyZero and it should work. You may need to try this several times if it does not work the first time.
- The hardware between the TinyZero and TinyScreen+ share some similarities, so you may see some things labeled 'TinyScreen' which are actually for the TinyZero.
- (Steps for download are mentioned later in the tutorial)
- Arduino IDE
- A Boards package for TinyCircuits Boards
- Arduino SAMD Boards (32-bits ARM Cortex-M0+) by Arduino
- TinyCircuits SAMD Boards by TinyCircuits
These are the steps this tutorial will cover to help you start using the TinyZero:
- Step 1. Configuring the Arduino IDE, so you have somewhere to write software that understands how to interface with your hardware
- Step 2. Connecting to the TinyZero board. This should just be a simple connection with a USB cable, and a few selections made in the Arduino IDE to ensure you are programming the correct board-type through the correct port of your computer.
- Step 3. Uploading your first program to the TinyZero. How exciting!
- Troubleshooting/Bootloader mode: Reference this at any point throughout the tutorial if you are having issues. If this doesn't resolve your problems, you can look through past Forum posts, create your own, or email us for help at firstname.lastname@example.org
Step 1: Configure Arduino Software IDE
- Download and install the latest Arduino Software (IDE) from the Arduino website. (On Windows click Yes/Install when it asks 'Do you want to install this device driver/software?' You can also select the checkbox 'Always trust Arduino')
- Open Arduino IDE and go to File->Preferences (Windows) or Arduino->Preferences (Mac OSX).
- Copy and paste the following URL to the box that says 'Additional Boards Manager URLs': https://files.tinycircuits.com/ArduinoBoards/package_tinycircuits_index.json
- Click 'OK'
- Go to Tools->Board ->Boards Manager...
- Select and 'Install' Arduino SAMD Boards (32-bits ARM Cortex-M0+). This may take a few minutes.
- On the same Board Manager page, scroll down to select and 'Install' TinyCircuits SAMD Boards.
After those two packages are downloaded, you are ready to connect to the TinyZero.
Step 2: TinyZero Board Connection
- Connect the TinyZero to your computer using the microUSB cable. At this point, make sure your TinyZero's power switch is turned to ON.
- Mac and Windows(10 and above) users can skip to the next step. Windows 7/8 users click here for device driver installation instructions before proceeding any further. This driver is necessary for your computer to be able to communicate with and program the TinyZero.
- In the Arduino IDE, go to Tools->Board and scroll down to select TinyZero.
- Go to Tools->Port and select the port labeled TinyScreen+. The naming convention will usually look like:
- Mac: “/dev/cu.usbmodemXXXX (TinyScreen+)”
- Windows: “COMXX (TinyScreen+)”.
- Remember, the TinyScreen+ and TinyZero share hardware similarities, so it makes sense that the port will be labeled 'TinyScreen+'
- Note: Some USB cables are used only for transferring power and not data signals. If your computer is not recognizing that a device is plugged in, you may need to try a different USB cable. If you've purchased a Micro USB Cable from our online store, you won't have to worry about this issue.
- If you are having issues determining which port the TinyZero is connected to, you can unplug the microUSB cable and plug it back in to note which COM## disappears and reappears during this process.
Now you are ready to upload your very first program to the TinyZero!
Step 3: Upload Your First Program
- Open the Arduino IDE and navigate to File -> Examples -> 01. Basics -> Blink
- Selecting this example program will open a new IDE window, so you may have to check the Board and Port selections under Tools are correct. Check back to Step 2 if you're unsure.
- Make sure the TinyZero is plugged into the computer and the power switch is flipped to 'ON'.
- Click the Upload (right-facing arrow) button near the top left of the IDE to download the program to the TinyZero and watch the results!
You should see an LED blinking on your TinyZero with the program uploaded correctly!
Now you can use the TinyZero to control and program your future projects!
Refer to the following if you are unable to connect to the TinyZero from Arduino IDE or if you are getting errors while connecting or uploading.
First: Before proceeding, check your USB cable connection. Make sure it is inserted fully into the TinyZero USB slot.
Unsure on Port connection / Can't find it
Check out this Port Trouble Page for Windows and Mac
Windows 7/8 USB Driver Error:
On Windows 7/8 if you are unable to see a TinyZero Port connection, go to Windows Device Drivers instructions and re-install.
Unresponsive Board / Bootloader Needs:
If you were able to upload a sketch to the TinyZero and now it does not respond, you may need to put the board into Bootloader mode.
- To put the TinyZero into Bootloader mode, make sure the board is powered via the microUSB cable connection to your computer.
- Slide the power switch on the TinyZero to OFF. Then press and hold the bootloader button on the bottom of the board while sliding the switch to the ON position.
- The Bootloader mode should make a new port available. Using the new port, you should now be able to upload a program to the TinyZero. You may need to try this several times if it does not work the first time.
If you have any questions or feedback, feel free to email us or make a post on our forum. Show us what you make by tagging @TinyCircuits on Instagram, Twitter, or Facebook so we can feature it.
Thanks for making with us!