# Adafruit ATWINC1500 WiFi Breakout

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/029/919/medium800/adafruit_products_2999_iso_ORIG.jpg?1453327693)

Connect your Arduino to the Internet with this fine new FCC-certified WiFi module from Atmel. This 802.11bgn-capable WiFi module is the best new thing for networking your devices, with SSL support and rock solid performance - running our adafruit.io MQTT demo for a full weekend straight with no hiccups (it would have run longer but we had to go to work, so we unplugged it). We like these so much, they've completely replaced the CC3000 module on all our projects.

![](https://cdn-learn.adafruit.com/assets/assets/000/029/922/medium800/adafruit_products_2999_top_demo_ORIG.jpg?1453328201)

The ATWINC1500 uses SPI to communicate, so with about 5 or 6 wires, you can get your wired up and ready to go. Right now the Atmel-supplied library works great with Arduino M0 & M4, but won't work with 328P, or 32u4 and may not work on other Arduinos. You can clock it as fast as 12MHz for speedy, reliable packet streaming. Communication is done through the standard Client & Server interface so all your Ethernet & older WiFi code is easy to adapt. Scanning/connecting to networks is very fast, a few seconds.

![](https://cdn-learn.adafruit.com/assets/assets/000/029/921/medium800/adafruit_products_2999_quarter_ORIG.jpg?1453328175)

This module works with 802.11b, g, or n networks & supports WEP, WPA and WPA2 encryption. The datasheet says it can do Soft-AP mode but we don't have any code to actually use that.

Since this is our new favoritest SPI-protocol WiFi module we've decided to make a little breakout for it. The breakout comes with level shifting on all the input pins so you can use it with 3V or 5V logic. A 3.3V voltage regulator that can handle the 300mA spikes lets you power from 3-5.5VDC. There's also 3 LEDs that you can control over the SPI interface (part of the library code) or you can have controlled by the Arduino library. They'll light up when connected to an SSID, or transmitting data.

![](https://cdn-learn.adafruit.com/assets/assets/000/029/920/medium800/adafruit_products_2999_kit_ORIG.jpg?1453328161)

Comes with a stick of header you can solder on, to plug into a breadboard and a set of tutorials & code so you can follow along!

# Adafruit ATWINC1500 WiFi Breakout

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/029/918/medium800/adafruit_products_2999_top_ORIG.jpg?1453326927)

The ATWINC1500 module does have a bunch of pins, but they're pretty easy to understand. Lets check it out!

# Power Pins

- **Vin** - this is the power-in pin. Connect to 3.3 - 5.5VDC  
The wifi module can draw up to 300mA during transmit (for small blips of time) So make sure that your power supply can supply it.
- **GND** - ground for signal and power

# SPI Pins

This is how you send and receive data from the module

- **SCK&nbsp;** - SPI clock input, 3V or 5V compliant
- **MISO** - SPI data out from module, 3.3V line level
- **MOSI** - SPI data into module, 3V or 5V compliant
- **CS** - SPI chip select, pull down when transmitting to/from the ATWINC. By default this is pulled to Vin with a 100K resistor

## Other SPI Interface Pins

- **EN** - Enables the entire module, by default tied low with a 100K resistor. Tie to 3-5V to keep the module on all the time, connect to a ground signal to disable the module
- **IRQ** - Interrupts from the module, connect to your microcontroller's INT input line. 3.3V logic level
- **RST** - Module reset, by default tied low with a 100K resistor. Pull high to bring out of reset.
- **Wake** - wake input signal, used to wake up the module (not used in existing code, but available if you can figure it out!) 3-5V logic in
- **CFG** - allows you to select between SPI (default) or UART data transport. Since we don't have any UART code, keep disconnected
- **RXD/TXD** - UART data transport pins. Since we don't have any UART code, keep disconnected

# Adafruit ATWINC1500 WiFi Breakout

## Assembly

![](https://cdn-learn.adafruit.com/assets/assets/000/030/959/medium800/adafruit_products_2999-01.jpg?1457543903)

## Prepare the header strip:

Cut the strip to length if necessary. It will be easier to solder if you insert it into a breadboard - **long pins down**

![adafruit_products_header.jpg](https://cdn-learn.adafruit.com/assets/assets/000/030/952/medium640/adafruit_products_header.jpg?1457543679)

## Add the breakout board:

Place the breakout board over the pins so that the short pins poke through the breakout pads

![adafruit_products_place.jpg](https://cdn-learn.adafruit.com/assets/assets/000/030/953/medium640/adafruit_products_place.jpg?1457543701)

## And Solder!

Be sure to solder all pins for reliable electrical contact.  
  
_(For tips on soldering, be sure to check out our_ [_Guide to Excellent Soldering_](http://learn.adafruit.com/adafruit-guide-excellent-soldering)_)._

![adafruit_products_solder1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/030/954/medium640/adafruit_products_solder1.jpg?1457543713)

![adafruit_products_solder2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/030/955/medium640/adafruit_products_solder2.jpg?1457543717)

![adafruit_products_solder3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/030/956/medium640/adafruit_products_solder3.jpg?1457543720)

![adafruit_products_solder4.jpg](https://cdn-learn.adafruit.com/assets/assets/000/030/957/medium640/adafruit_products_solder4.jpg?1457543723)

You're done! Check your solder joints visually and continue onto the next steps

![adafruit_products_done.jpg](https://cdn-learn.adafruit.com/assets/assets/000/030/958/medium640/adafruit_products_done.jpg?1457543738)

# Adafruit ATWINC1500 WiFi Breakout

## Wiring & Test

![](https://cdn-learn.adafruit.com/assets/assets/000/029/926/medium800/adafruit_products_2999_top_demo_ORIG.jpg?1453329131)

For this initial demo we'll be using an Arduino UNO to connect. You can also use an Arduino Zero, but you'll have to use the ICSP 6-pin header not pins 11,12,13

- **Vin** - connect this to 3.3V or 5V, whichever is the logic voltage of the microcontroller you're using. For UNO this will be 5V, for Zero its 3.3V
- **GND** - connect to common ground
- **SCK** - Connect to SPI clock. On UNO this is pin # **13** on Zero its on the [6-pin ISP header](https://www.arduino.cc/en/Reference/SPI)
- **MISO** - Connect to SPI MISO. On UNO this is pin # **12** on Zero its on the [6-pin ISP header](https://www.arduino.cc/en/Reference/SPI)
- **MOSI** - Connect to SPI MOSI. On UNO this is pin # **11** on Zero its on the [6-pin ISP header](https://www.arduino.cc/en/Reference/SPI)

For the remaining pins, you can be a little flexible:

- **CS** - Connect to any digital I/O pin, we use # **8** by default
- **EN** - connect this to 3.3V or 5V, whichever is the logic voltage of the microcontroller you're using. For UNO this will be 5V, for Zero its 3.3V; later on if you want to enable/disable the module, connect it to a digial I/O pin
- **IRQ** - Connect to any digital I/O pin, preferrably one with an interrupt capability. We use # **7** by default
- **RST** - Connect to any digital I/O pin. We use # **4** by default

You can change these pins later but for now use them, so you can verify your setup!

# Install the Library

We will start by installing the&nbsp;[official Arduino WiFi101 library](https://github.com/arduino-libraries/WiFi101).

We want the latest version so visit the Library Manager

![](https://cdn-learn.adafruit.com/assets/assets/000/035/900/medium800/adafruit_products_feather_librarymanager.png?1474569976)

Type in wifi101 and when the library comes up, click **Install** or **Update** to make sure its the most recent one!

If you're not familiar with installing Arduino libraries, please visit our tutorial: [All About Arduino Libraries](http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use "Link: http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use")!

Restart the Arduino IDE.

Warning: 

# Check Connections & Version

&nbsp;Before we start, its important to verify you have the right setup & firmware version.

Load up the&nbsp; **WiFi101**** -\>CheckWifi101Firmware** sketch

![](https://cdn-learn.adafruit.com/assets/assets/000/035/901/medium800/adafruit_products_feather_checkvers.png?1474570004)

Danger: 

```
//Configure pins for Adafruit ATWINC1500 Breakout
WiFi.setPins(8,7,4);
```

Like so:

![](https://cdn-learn.adafruit.com/assets/assets/000/035/902/medium800/adafruit_products_winc.png?1474570177)

Upload to your Arduino and open up the Serial Console at 9600 baud:

![](https://cdn-learn.adafruit.com/assets/assets/000/029/929/medium800/adafruit_products_righfirm.png?1453331126)

You should see the firmware version. If your version has not **PASSED** [follow this page to update your firmware!](../../../../adafruit-atwinc1500-wifi-module-breakout/updating-firmware)

If you have version 19.3 or less, the firmware is too old

If you get not response, the firmware is either waaay to old, or something is amiss with your wiring!

If you get a warning that says

`WiFi101 shield: DETECTED`  
`Firmware version installed: 19.5.2`  
`Latest firmware version available : 19.5.4`

Specifically with **19.5.4** and **19.5.2** , you can continue without updating

![](https://cdn-learn.adafruit.com/assets/assets/000/029/928/medium800/adafruit_products_firmvers.png?1453330659)

# Scanning WiFi

Now that you have the right firmware version, lets scan for network!

Run the&nbsp; **WiFi101**** -\>ScanNetworks** example to see a list of available visible networks

Warning: 

![](https://cdn-learn.adafruit.com/assets/assets/000/029/930/medium800/adafruit_products_scan.png?1453331258)

# Connect & Read Webpage

OK finally you get to connect and read some data!

Open up the **&nbsp;WiFi101-\>WiFi101WebClient** example, then edit the **ssid** and **pass** variables to contain your network and password

![](https://cdn-learn.adafruit.com/assets/assets/000/029/932/medium800/adafruit_products_editssid.png?1453331584)

Add the following lines at the top of setup()

`  //Configure pins for Adafruit ATWINC1500 Feather`  
`  WiFi.setPins(8,7,4);`

It will connect to the website in **server** and read the **webpage** manually:

![](https://cdn-learn.adafruit.com/assets/assets/000/035/903/medium800/adafruit_products_feather_webclient.png?1474570259)

That's it! pretty easy, huh? There's other examples you can try such as server mode, UDP data transmission & SSL

# Adafruit ATWINC1500 WiFi Breakout

## Updating Firmware

As new versions of the WiFi101 library come out, you may end up getting a complaint that the library and WINC1500 firmware are out of sync:

![](https://cdn-learn.adafruit.com/assets/assets/000/040/490/medium800/feather_1needsupdate.png?1490891868)

No problem - you can update the firmware through your Arduino/compatible! **You must use a 1.8.x version of Arduino IDE.** See the orange box below. Start by loading up the **FirmwareUpdater** sketch

Warning: 

![](https://cdn-learn.adafruit.com/assets/assets/000/040/491/medium800/feather_2update.png?1490891904)

Danger: 

If you are using a WiFi101 or WINC1500 shield, you do not have to add `setPins()` code

![](https://cdn-learn.adafruit.com/assets/assets/000/048/383/medium800/wireless_feather_setpins.png?1511279894)

Upload it to your board. Make sure the Serial console is not open before or after uploading.

Then select the Updater tool built into the IDE

![](https://cdn-learn.adafruit.com/assets/assets/000/040/493/medium800/feather_updater.png?1490892027)

Select the right COM port, and click Test Connection

![](https://cdn-learn.adafruit.com/assets/assets/000/040/494/medium800/feather_test.png?1490892046)

If all is good you'll get a confirmation

![](https://cdn-learn.adafruit.com/assets/assets/000/040/495/medium800/feather_works.png?1490892064)

Next, select the firmware - we of course recommend the latest version!

Warning: 

![](https://cdn-learn.adafruit.com/assets/assets/000/040/496/medium800/feather_version.png?1490892414)

Once you feel ready - make sure the USB cable is connected solidly! Click **Update Firmware**

![](https://cdn-learn.adafruit.com/assets/assets/000/040/497/medium800/feather_updating.png?1490892466)

And a minute or two later...

![](https://cdn-learn.adafruit.com/assets/assets/000/040/510/medium800/feather_done.png?1490917725)

Now you're ready to rock! Reload the Firmware Check sketch from before, this time you will see:

![](https://cdn-learn.adafruit.com/assets/assets/000/040/499/medium800/feather_passed.png?1490892578)

# Adafruit ATWINC1500 WiFi Breakout

## Updating SSL Certificates

If you're trying to connect to a computer or service via SSL and the connection is failing, you may need to update the certificates built into the WINC1500. By default it comes with many of the most popular SSL certificates but you may bump into a site that requires one that isnt included.

Its quite easy to update the certificates, you'll need to upload some code and run the uploaders but it only has to happen once

Start out by uploading the **FirmwareUpdater** sketch from **WiFi101**

![](https://cdn-learn.adafruit.com/assets/assets/000/040/500/medium800/feather_2update.png?1490892629)

 **If you are using a Feather M0 or WINC1500 breakout** , don't forget to update the pins as necessary with **setPins** ()!

If you are using a WiFi101 or WINC1500 shield, skip this step

![](https://cdn-learn.adafruit.com/assets/assets/000/048/385/medium800/wireless_feather_setpins.png?1511279976)

and upload it!

After uploading be sure to note what is the name of the COM or Serial port for the Arduino Zero or Feather...You'll need this for the next step

![](https://cdn-learn.adafruit.com/assets/assets/000/030/425/medium800/feather_whichport.png?1454962707)

Upload it to your Feather. Make sure the Serial console is not open before or after uploading.

Then select the Updater tool built into the IDE

![](https://cdn-learn.adafruit.com/assets/assets/000/040/502/medium800/feather_updater.png?1490892926)

Select the right COM port, and click Test Connection

![](https://cdn-learn.adafruit.com/assets/assets/000/040/503/medium800/feather_test.png?1490892939)

If all is good you'll get a confirmation

![](https://cdn-learn.adafruit.com/assets/assets/000/040/504/medium800/feather_works.png?1490892957)

Now at the bottom of the page, click **Add Domain** and type in the URL of the site you want to access:

![](https://cdn-learn.adafruit.com/assets/assets/000/040/505/medium800/feather_adddomain.png?1490893055)

Then click **Upload Certificates**

![](https://cdn-learn.adafruit.com/assets/assets/000/040/506/medium800/feather_upload.png?1490893128)

A few moments later...success!

![](https://cdn-learn.adafruit.com/assets/assets/000/040/507/medium800/feather_certed.png?1490893151)

### 

Officially Atmel lists TLS 1.0 & 1.1, however we have noticed that the firmwares shipping on boards today seem to also support TLS 1.2 (verified by checking the results of [www.howsmyssl.com](http://www.howsmyssl.com)).

The supported ciphers are:

- 
```
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
```
- 
```
TLS_RSA_WITH_AES_128_GCM_SHA256
```
- 
```
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
```
- 
```
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
```
- 
```
TLS_RSA_WITH_AES_128_CBC_SHA256
```
- 
```
TLS_RSA_WITH_AES_128_CBC_SHA
```

# Adafruit ATWINC1500 WiFi Breakout

## Downloads

# Datasheets & Files

- [All the details you could ever want are over at the Atmel website](http://www.atmel.com/devices/ATWINC1500.aspx)
- [EagleCAD PCB files on GitHub](https://github.com/adafruit/Adafruit-ATWINC1500-WiFi-Breakout-PCB)
- [Fritzing objects in the Adafrut Fritzing library](https://github.com/adafruit/Fritzing-Library)

# Schematic

Click to embiggen. Please note we ship with the 'PB rev module, not 'PA!

![](https://cdn-learn.adafruit.com/assets/assets/000/029/923/medium800/adafruit_products_schem.png?1453328578)

# Fabrication Print

Dimensions in inches

![](https://cdn-learn.adafruit.com/assets/assets/000/029/925/medium800/adafruit_products_fabprint.png?1453329042)


## Featured Products

### Adafruit ATWINC1500 WiFi Breakout

[Adafruit ATWINC1500 WiFi Breakout](https://www.adafruit.com/product/2999)
Connect your Arduino to the Internet with this fine new FCC-certified WiFi module from Atmel. This 802.11bgn-capable WiFi module is the best new thing for networking your devices, with SSL support and rock solid performance - running our adafruit.io MQTT demo for a full weekend straight with...

In Stock
[Buy Now](https://www.adafruit.com/product/2999)
[Related Guides to the Product](https://learn.adafruit.com/products/2999/guides)
### Adafruit ATWINC1500 WiFi Breakout with uFL Connector

[Adafruit ATWINC1500 WiFi Breakout with uFL Connector](https://www.adafruit.com/product/3060)
Connect your Arduino to the Internet with this fine new FCC-certified WiFi module from Atmel. This 802.11bgn-capable WiFi module is the best new thing for networking your devices, with SSL support and rock solid performance - running our adafruit.io MQTT demo for a full weekend straight with...

In Stock
[Buy Now](https://www.adafruit.com/product/3060)
[Related Guides to the Product](https://learn.adafruit.com/products/3060/guides)

## Related Guides

- [All the Internet of Things - Episode Two: Protocols](https://learn.adafruit.com/alltheiot-protocols.md)
- [Automatic Twitch On-Air Sign](https://learn.adafruit.com/automatic-twitch-on-air-sign.md)
- [Arcada Animated GIF Display](https://learn.adafruit.com/pyportal-animated-gif-display.md)
- [Adafruit Mini GPS PA1010D Module](https://learn.adafruit.com/adafruit-mini-gps-pa1010d-module.md)
- [Adafruit STEMMA Non-Latching Mini Relay](https://learn.adafruit.com/adafruit-stemma-non-latching-mini-relay.md)
- [Adafruit MCP3421 18-Bit ADC](https://learn.adafruit.com/adafruit-mcp3421-18-bit-adc.md)
- [Adafruit Feather M0 Adalogger](https://learn.adafruit.com/adafruit-feather-m0-adalogger.md)
- [Adafruit 3.5" 480x320 TFT FeatherWing](https://learn.adafruit.com/adafruit-3-5-tft-featherwing.md)
- [Adafruit BNO055 + BMP280 BFF](https://learn.adafruit.com/adafruit-bno055-bmp280-bff.md)
- [EMC2101 Fan Controller and Temperature sensor](https://learn.adafruit.com/emc2101-fan-controller-and-temperature-sensor.md)
- [Adafruit MacroPad RP2040](https://learn.adafruit.com/adafruit-macropad-rp2040.md)
- [Adafruit ESP32-S2 Reverse TFT Feather](https://learn.adafruit.com/esp32-s2-reverse-tft-feather.md)
- [Dancing Inflatables: Make your Holiday Display Move](https://learn.adafruit.com/dancing-inflatables-make-your-holiday-display-move.md)
- [MCP3008 - 8-Channel 10-Bit ADC With SPI Interface](https://learn.adafruit.com/mcp3008-spi-adc.md)
- [Adafruit I2S Audio Bonnet for Raspberry Pi ](https://learn.adafruit.com/adafruit-i2s-audio-bonnet-for-raspberry-pi.md)
