# MASLOW: an Open WiFi Detector with Adafruit Pro Trinket and CC3000

## Overview

 **This guide is marked as DISCONTINUED — the CC3000 breakout boards are no longer produced by Adafruit, and the project is of questionable utility today. Code will not be updated and guide feedback will not be reviewed. The information remains online because:**

- **Parts of the code might be insightful for anyone who still has this hardware.**

- **As a “time capsule” of the way things once were. When the guide was published, smartphones and multi-gigabyte data plans were not ubiquitous. It’s an interesting look back at the lengths we used to go to for internet access.**

https://www.youtube.com/watch?v=gjfj8Xdo3lk

Traveling or on the road, sometimes finding an open network to get online and finish a job is more important than lunch or a nap. MASLOW (_Mini Adafruit System Locates Open Wireless_) is a tiny battery-powered WiFi detector with a 3D-printed enclosure…assemble one&nbsp;yourself and clip it&nbsp;to your laptop bag.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/532/medium800/components_hierarchy.png?1413824648)

## How does it work?

In&nbsp;this project, we’re making a portableWiFi&nbsp;hotspot finder using the Adafruit CC3000 and Pro Trinket micro-controller.&nbsp;The CC3000 is a WiFi&nbsp;breakout board that adds connectivity to your micro-controller projects.

5 total modes indicate the status. When the LED starts flickering fast, it’s scanning for WiFi&nbsp;networks. A slow blink indicates an open network is in range. 1 second blips mean closed networks only, and 4 second blips means no WiFi&nbsp;networks.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/752/medium800thumb/components_hero-loop1.jpg?1448313438)

## Prerequisite Guides

We recommend walking-through the following tutorials below before starting this project. These guides will help you get familiar with the components and get setup and configured with the Arduino IDE and libraries.

- [Introducing&nbsp;Pro Trinket](../../../introducing-pro-trinket)
- [Adafruit Pro Trinket LiPoly/LiIon Backpack](../../../adafruit-pro-trinket-lipoly-slash-liion-backpack)
- [Adafruit&nbsp;CC3000 WiFi](../../../../adafruit-cc3000-wifi)

![](https://cdn-learn.adafruit.com/assets/assets/000/020/710/medium800/components_circuit-parts-sm.jpg?1414543323)

## Parts

We have all the lovely components and tools to build this project. Be sure to check out the featured products on the right sidebar.

- [Pro Trinket](https://www.adafruit.com/products/2000)
- [Trinket LiIon/LiPoly Backpack Add-On](https://www.adafruit.com/product/2124)
- [CC3000 Breakout with external Antenna](https://www.adafruit.com/products/1510) (2 - 5dBi) or [Internal antenna](https://www.adafruit.com/products/1469) (~2dBi)
- [uFL Adapter Cable](https://www.adafruit.com/products/852) (you can also use the version of the CC3000 w/out external antenna and skip this part)
- [Breadboard-friendly SPDT Slide Switch](https://www.adafruit.com/products/805)
- [SMA Antenna](https://www.adafruit.com/product/944) (you can also use the version of the CC3000 w/out external antenna and skip this part)
- LiPoly battery. The standard case&nbsp;fits a [100 mAh battery](https://www.adafruit.com/products/1570), or with minor&nbsp;editing this&nbsp;can hold&nbsp;a larger [500 mAh battery](https://www.adafruit.com/products/1578), making&nbsp;a single charge last all&nbsp;day.

## Tools & Supplies

You'll need a couple of hand tools and accessories to assist you in the build.&nbsp;

- [Solder Iron](https://www.adafruit.com/products/1204 "Link: https://www.adafruit.com/products/1204") + [Solder](https://www.adafruit.com/products/734 "Link: https://www.adafruit.com/products/734")
- [Silicone&nbsp;Wire](https://www.adafruit.com/products/1877 "Silicone Wire")
- [PLA&nbsp;Filament](https://www.adafruit.com/search?q=ninjaflex "Link: https://www.adafruit.com/search?q=ninjaflex")
- [3D Printer](https://www.adafruit.com/search?q=3d+printer "Link: https://www.adafruit.com/search?q=3d+printer")

# MASLOW: an Open WiFi Detector with Adafruit Pro Trinket and CC3000

## 3D Printing

## FDM 3D Printing

These parts are optimized to print with desktop 3D Printers capable of printing in ABS or PLA material with a minium build area of 100mm x 100mm x 90mm.&nbsp;&nbsp;The two&nbsp;parts are&nbsp;designed to print **without** any support material.&nbsp;

## Light Diffusion

The **wifiDif.stl** part should be printed in either transparent or a light colored material. This is the part that will diffuse the LED so that the WiFi&nbsp;logo in the cover illumates.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/020/712/medium800/components_3d-parts-sm.jpg?1414543352)

The standard case design fits a tiny 100 mAh LiPoly battery for maximum portability. With some simple editing of the&nbsp;walls, this can be made to fit a larger 500 mAh battery, so a single charge lasts all day long.

[Edit 3D Files](http://www.123dapp.com/project/Wifi%20Finder/2999483)
[Download STLs](http://www.thingiverse.com/thing:520071)
## Slicing Software

The recommend settings above should work with most slicing software. However, you are encouraged to use your own settings since 3D printers and slicing software will vary from printer to printer.

## PLA or ABS Material

We recommend using PLA material for an easier print with high quality. The tolerance has been tested with PLA filament but should also work with ABS. The parts do not require any support material or a raft.

# MASLOW: an Open WiFi Detector with Adafruit Pro Trinket and CC3000

## Code

Our WiFi-finder&nbsp;sketch depends on the Adafruit\_CC3000 and TimerOne libraries. Library installation&nbsp;is a common sticking point for beginners…our&nbsp;[All About Arduino Libraries](../../../../adafruit-all-about-arduino-libraries-install-use)&nbsp;guide explains how this is done.

[Click to download Adafruit_CC3000 library for Arduino](https://github.com/adafruit/Adafruit_CC3000_Library/archive/master.zip)
[Click to Download TimerOne library for Arduino](https://github.com/PaulStoffregen/TimerOne/archive/master.zip)
After installing the libraries, restart the Arduino IDE.

The code will work on an&nbsp; **Adafruit Pro Trinket** &nbsp;or an&nbsp; **Arduino Uno**. It makes reference to some specific pins and hardware features (sleep, interrupts, etc.) that may not work on other boards without some code changes and deeper understanding of the hardware.

```
/* -------------------------------------------------------------------------
WIFI HOTSPOT DETECTOR for Adafruit Pro Trinket and CC3000 WiFi adapter
(can also work with Arduino Uno, etc.).  Periodically scans for open
networks (those with no password required), LED on pin 9 shows status:

  Steady on    = One-time initialization
  Fast flicker = Scanning for WiFi networks
  Slow blink   = Open networks in range
  1 sec blips  = Closed networks only
  4 sec blips  = No WiFi networks (open OR closed) detected

CC3000 boards with integrated chip antenna are most compact but have
limited sensitivity.  The uFL connector versions improve range, but
require adding an adapter and antenna, making a larger package.
5dBi antenna is more sensitive than most laptops; 2dBi is ideal.

  https://www.adafruit.com/product/2000  Pro Trinket 5V 16 MHz
  https://www.adafruit.com/product/2010  Pro Trinket 3V 12 MHz
  https://www.adafruit.com/product/2124  Pro Trinket LiIon/LiPoly backpack
  https://www.adafruit.com/product/1570  Lithium Polymer 100 mAh battery
  https://www.adafruit.com/product/1578  Lithium Polymer 500 mAh battery
  https://www.adafruit.com/product/1469  CC3000 breakout w/ chip antenna
  https://www.adafruit.com/product/1510  CC3000 breakout w/ uFL connector
  https://www.adafruit.com/product/852   uFL-&gt;RP-SMA adapter
  https://www.adafruit.com/product/944   4" 2dBi gain RP-SMA antenna
  https://www.adafruit.com/product/945   8" 5dBi gain RP-SMA antenna

Requires Adafruit_CC3000 and TimerOne libraries:

  https://github.com/adafruit/Adafruit_CC3000_Library
  https://github.com/PaulStoffregen/TimerOne

Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing products
from Adafruit!

Written by Phil Burgess and Tony DiCola for Adafruit Industries.
BSD license, all text above must be included in any redistribution.
----------------------------------------------------------------------------*/

#include &lt;Adafruit_CC3000.h&gt;
#include &lt;TimerOne.h&gt;
#include &lt;SPI.h&gt;
#include &lt;avr/sleep.h&gt;
#include &lt;avr/power.h&gt;

// Hardware-based PWM is used to drive the status LED.  This means it's tied
// to a specific pin and can't be moved, nor can this pin be used for CC3000
// interfacing or other functions.  The exact pin number may vary from board
// to board -- in low-level AVR pin maps it's identified as OC1A.  This is
// DIGITAL PIN 9 on the Adafruit Pro Trinket, Arduino Uno, Duemilanove,
// Diecimila and Leonardo.  Looks like this is pin 14 on a PJRC Teensy 2.0 or
// pin 11 on Arduino Mega (but this is a tiny sketch and a waste of a Mega).
// This goes to the anode (+) leg of the LED, cathode (-) goes to GND.

// The CC3000 interrupt and control pins are configurable...
#define ADAFRUIT_CC3000_IRQ  3 // MUST be an interrupt pin!
#define ADAFRUIT_CC3000_VBAT 5 // These can be
#define ADAFRUIT_CC3000_CS  10 // any two pins.
// Hardware SPI for remaining pins.  On Pro Trinket, SCK=13, MISO=12, MOSI=11
Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS,
  ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT, SPI_CLOCK_DIVIDER);

// AVR sleep mode is used to conserve power.  Wake is initiated by the
// watchdog timer (WDT), set later in this code for 8-second intervals.
// Because the CC3000 library is still a bit experimental in spots, the WDT
// is also used to detect code lockups...the interrupt handler counts down
// and if it reaches zero the WDT is switched to system reset mode; the
// sketch resets the counter periodically to indicate continued "OK" state.
const uint8_t         // These are the number of 8-second WDT interrupts...
  sleepIntervals = 7, // ...while sleeping, between SSID scans
  runIntervals   = 7; // ...during SSID scan, max # before reset issued.
volatile uint8_t      // 'volatile' because interrupt may change this
  wdtCount       = runIntervals+1; // Init counter to SSID scan max time
// Although the WDT interval is 8 seconds, the first interval may already
// be partly elapsed when the counter is reset...so although the sleep
// time is set for 7 intervals -- 56 sec -- in reality it might be up to
// one full interval shorter -- 48 sec.  The SSID scan typically just needs
// a few seconds to run, but 7 intervals are allotted for good measure.
// If it's finished before then, that's fine and normal sleep commences.
// If it's NOT finished, code is presumed locked up and the system resets.

// ---------------------------------------------------------------------------

void setup(void) {

  // Watchdog timer setup.  Abbreviated here; original from Tony DiCola's
  // excellent Low Power WiFi Datalogger guide:
  // https://learn.adafruit.com/low-power-wifi-datalogging
  noInterrupts();
  MCUSR  &amp;= ~_BV(WDRF);
  WDTCSR  =  _BV(WDCE) | _BV(WDE);              // WDT change enable
  WDTCSR  =  _BV(WDIE) | _BV(WDP3) | _BV(WDP0); // Interrupt enable, 8 sec.
  interrupts();

  // Initial pin 9 LED state is always-on.  If the CC3000 init fails,
  // the LED remains in this state to indicate there's trouble.
  Timer1.initialize();
  Timer1.pwm(TIMER1_A_PIN, 1023); // 1023 = 100%

  // Serial console messages help with debugging, but aren't seen in
  // normal use.  Pro Trinket requires FTDI adapter for Serial I/O.
  Serial.begin(57600);
  Serial.print(F("Initializing CC3000..."));
  if(!cc3000.begin()) {
    Serial.println(F("failed. Check your wiring?"));
    for(;;);
  }
  Serial.println(F("OK."));

  // AVR peripherals that aren't used by this code are disabled to further
  // conserve power, and may take certain Arduino functionality with them.
  // If you adapt this code to other projects, may need to re-enable some.
  power_adc_disable();    // Disable ADC (no analogRead())
  power_twi_disable();    // Disable I2C (no Wire library)
  power_timer2_disable();

  set_sleep_mode(SLEEP_MODE_IDLE);
}

// ---------------------------------------------------------------------------

const uint8_t PROGMEM
   mode0[] = "Open",
   mode1[] = "WEP",
   mode2[] = "WPA",
   mode3[] = "WPA2",
  *modes[] = { mode0, mode1, mode2, mode3 };

void loop(void) {
  uint32_t count;
  uint8_t  rssi, sec;
  char     ssid[33];

  // PWM set to 10 Hz during scan w/ short 'blip' duty cycle.
  // This line can be commented out for a more discreet scan,
  // LED will retain prior blink until new state is known.
  Timer1.pwm(TIMER1_A_PIN, 10, 100000);

  Serial.print(F("Scanning..."));
  if(cc3000.startSSIDscan(&amp;count)) { // Initiate SSID scan
    // Default LED state is 'no networks found' -- a short 'blip'
    // every 4 seconds provides a quiet heartbeat:
    Timer1.pwm(TIMER1_A_PIN, 1, 4000000); // 4 sec, tiny duty cycle
    if(count) { // Networks found!  How many?
      Serial.print(count); Serial.print(F(" network"));
      if(count &gt; 1) Serial.print('s');
      Serial.println(F(" found:"));
      // Networks found, but open/closed state not yet known.
      // Presume closed only, shorten heartbeat to 1 sec.
      Timer1.pwm(TIMER1_A_PIN, 1, 1000000); // 1 sec, tiny duty cycle

      while(count--) { // For each network...
        if(cc3000.getNextSSID(&amp;rssi, &amp;sec, ssid)) { // Valid?
          if(sec &gt; 3) sec = 3;
          // Dump basic info to Serial console for -all- networks
          Serial.print(F("SSID      : ")); Serial.println(ssid);
          Serial.print(F("  RSSI    : ")); Serial.println(rssi);
          Serial.print(F("  Security: "));
          Serial.println((__FlashStringHelper *)pgm_read_word(&amp;modes[sec]));
          if(sec == WLAN_SEC_UNSEC) { // If open network...
            // Switch LED to conspicuous 'open networks' flash immediately
            Timer1.pwm(TIMER1_A_PIN, 511, 1000000); // 1 sec, 50% duty cycle
            // "Open hotspot" is as good as the indicator gets and the scan
            // can stop now, get into power-saving sleep mode ASAP.
            // If you're using the Serial console and want to see all
            // networks displayed, comment out this line:
            break;
          }
        }
      }
    } else Serial.println(F("no networks found."));
  } else   Serial.println(F("failed!"));

  cc3000.stopSSIDscan();

  Serial.print(F("Sleeping..."));
  wlan_stop();

  // Additional AVR peripherals are now shut down, most everything except
  // Timer/Counter 1, used for the status LED.  'Idle' mode is the deepest
  // sleep level that still allows this timer to continue running.
  power_spi_disable();    // Disable SPI (CC3000 comms)
  delay(50);              // Stall for last serial output
  power_timer0_disable(); // Disable millis() etc.
  power_usart0_disable(); // Disable Serial

  // WDT interrupt counts down 8-second intervals from sleepIntervals+1
  // to 1 (NOT 0 -- that's when a lockup-busting system reset is performed).
  for(wdtCount=sleepIntervals+1; wdtCount&gt;1; ) sleep_mode();
  // Done sleeping, set counter to max SSID scan time before sys reset
  wdtCount = runIntervals+1;

  // Restore AVR peripherals used elsewhere in the code
  power_usart0_enable(); // Enable Serial
  power_timer0_enable(); // Enable millis() etc.
  power_spi_enable();    // Enable SPI (for CC3000)
  wlan_start(0);         // Wake up CC3000
  Serial.println(F("done."));
}

ISR(WDT_vect) { // Watchdog interrupt @ 8 sec. interval
  if(!--wdtCount) { // Decrement sleep interval counter...
    // If it reaches zero, WDT switched from interrupt to system reset mode...
    noInterrupts();
    WDTCSR = _BV(WDCE) | _BV(WDE);             // WDT change enable
    WDTCSR = _BV(WDP2) | _BV(WDP1) | _BV(WDE); // System reset enable, 1 sec
    for(;;);                                   // Wait for reset
  }
}
```

# MASLOW: an Open WiFi Detector with Adafruit Pro Trinket and CC3000

## Assembly

This diagram shows the CC3000 WiFi Breakout with [onboard ceramic antenna](https://www.adafruit.com/product/1469), but you can also build it with the [uFL connector version](https://www.adafruit.com/product/1510)&nbsp;to add an [adapter](https://www.adafruit.com/products/852)&nbsp;and [antenna](https://www.adafruit.com/product/944)&nbsp;for extra sensitivity. The wiring is identical, the latter just requires plugging the extra parts into the connector on the CC3000 board. A lithium-polymer battery (100 mAh, or 500 mAh with some editing of the case design) plugs into the LiPoly backpack after assembly.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/534/medium800/components_maslow-wiring.png?1413829378)

The LiPoly backpack sits atop the Pro Trinket on the **BUS** , **G** and **BAT+** pins, and the power jumpers are modified to connect a switch.

An LED (any color) and 220 Ohm resistor in series are connected to Pro Trinket pin 9 and any available **GND** pin (you can use **GND** on the FTDI header if it's easier).

The remaining connections are:

![](https://cdn-learn.adafruit.com/assets/assets/000/020/722/medium800/components_cc3-wire-lenghts.jpg?1414544048)

## Measure wire

Align the Pro Trinket on top of the CC3000 and&nbsp;measure how much lenght&nbsp;each wire needs to reach the through-holes.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/725/medium800/components_slide-switch-trace.jpg?1414544255)

## LiPoly backpack

Cut the trace with an hobby knife&nbsp;that connects the two&nbsp;through-holes for the power switch. This will allow us to use a slide switch to power on and off our circuit.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/726/medium800/components_header-stack.jpg?1414544555)

## LiPoly backpack headers

Solder the included header to the LiPoly backpack, **BAT+** , **G** , and **5V**.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/729/medium800/components_power-wires-pins.jpg?1414544679)

## Share Power cable with headers

Squezze in the power and ground cables that will power the CC3000. **BAT+** to **BAT+** , **G** to **G** and **5V** to **BUS**. &nbsp; Tin and use flat plairs to fit the the two cables&nbsp;with the headers.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/730/medium800/components_wire-position.jpg?1414544785)

## Solder CC3000

Solder and adjust any of wires so they can reach each through-hole without too much slack.&nbsp;Use tweezers to bend the tips to keep them in place while soldering.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/732/medium800/components_resistor-soldered.jpg?1414544913)

## LED and resistor

Follow the circuit diagram to see which pins to insert the LED and resistor. Keep the legs of the terminals long.&nbsp;Bend these leads using pliers and arrange the LED so that it shines through the cover design.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/020/733/medium800/components_ufl-inserted.jpg?1414544955)

## uFL cable

Coil&nbsp;the uFL cable to fit inside the enclosure. Unscrew the included nut and insert into the enclosure. Screw the nut back on to secure the uFL cable to the enclosure.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/734/medium800/components_slide-switch-insert.jpg?1414544989)

## Insert Circuit into Enclosure

Carefuly insert the circuit into the enclosure at an angle with the opposite side of the USB port going in first.&nbsp;Ensure the uFL cable isn't uncoiled (otherwise it won't fit) while inserting the circuit. The micro USB connector should be facing the port opening. This can be a tidious task, you may want to give it multiple attemps to get the fittings just right.

## Slide switch

Insert the slide switch at an angle with&nbsp;twezzers. A bottom platform and side clips will keep the slide switch in place.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/735/medium800/components_circuit-complete-case.jpg?1414545024)

## Battery

This enclosure was designed to fit a&nbsp;110mAh lithiuim polyer battery. Coil the battery cable and fit&nbsp;on either side of the enclosure.

The case design can be edited to accommodate a larger 500 mAh battery for all-day use.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/737/medium800thumb/components_clip-insert.jpg?1448313433)

## Wearable clip

Align the clip&nbsp;corners and apply a small amount of force to attach to the enclosure.

![](https://cdn-learn.adafruit.com/assets/assets/000/020/739/medium800thumb/components_hero-loop1.jpg?1448313434)

## Wear it!

Clip on to a backpack or on your persons&nbsp;to see where open wifi spot are hidding!


## Featured Products

### Adafruit Pro Trinket - 3V 12MHz

[Adafruit Pro Trinket - 3V 12MHz](https://www.adafruit.com/product/2010)
 **Deprecation Warning: The Pro Trinket bit-bang USB technique it uses doesn't work as well as it did in 2014, many modern computers won't work well. So while we still carry the Pro Trinket so that people can maintain some older projets, we no longer recommend it.** Please...

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/2010)
[Related Guides to the Product](https://learn.adafruit.com/products/2010/guides)
### Adafruit LiIon/LiPoly Backpack Add-On for Pro Trinket/ItsyBitsy

[Adafruit LiIon/LiPoly Backpack Add-On for Pro Trinket/ItsyBitsy](https://www.adafruit.com/product/2124)
If you have an ItsyBitsy or Pro Trinket you probably know it's the perfect little size for a portable project. This LiPoly backpack makes it really easy to do! Instead of wiring 2 or 3 boards together to make a charging system, this little PCB sits on top of the PCB and allows a...

In Stock
[Buy Now](https://www.adafruit.com/product/2124)
[Related Guides to the Product](https://learn.adafruit.com/products/2124/guides)
### Adafruit HUZZAH CC3000 WiFi Breakout with Onboard Antenna

[Adafruit HUZZAH CC3000 WiFi Breakout with Onboard Antenna](https://www.adafruit.com/product/1469)
For years we've seen all sorts of microcontroller-friendly WiFi modules but none of them were really Adafruit-worthy. Either they were too slow, or too difficult to use, or required signing an NDA, or had limited functionality, or too expensive, or too large. So we shied away from carrying...

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/1469)
[Related Guides to the Product](https://learn.adafruit.com/products/1469/guides)
### Adafruit CC3000 WiFi Breakout with uFL Connector for Ext Antenna

[Adafruit CC3000 WiFi Breakout with uFL Connector for Ext Antenna](https://www.adafruit.com/product/1510)
For years we've seen all sorts of microcontroller-friendly WiFi modules but none of them were really Adafruit-worthy. Either they were too slow, or too difficult to use, or required signing an NDA, or had limited functionality, or too expensive, or too large. So we shied away from carrying...

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/1510)
[Related Guides to the Product](https://learn.adafruit.com/products/1510/guides)
### RP-SMA to uFL/u.FL/IPX/IPEX RF Adapter Cable

[RP-SMA to uFL/u.FL/IPX/IPEX RF Adapter Cable](https://www.adafruit.com/product/852)
This RF adapter cable is super handy for anyone doing RF work. Often times, small electronics save space by having a pick-and-placeable u.FL connector (also called uFL, IPEX, IPAX, IPX, MHF, and AM). But most antennas have SMA or RP-SMA connectors on them. This little cable will bridge the...

In Stock
[Buy Now](https://www.adafruit.com/product/852)
[Related Guides to the Product](https://learn.adafruit.com/products/852/guides)
### 2.4GHz Dipole Swivel Antenna with RP-SMA - 2dBi

[2.4GHz Dipole Swivel Antenna with RP-SMA - 2dBi](https://www.adafruit.com/product/944)
This 4"/100mm long swivel dipole antenna has 2dBi of gain and 50Ω impedance so it will work fantastically with just about any 2.4-2.5GHz wireless receiver/transmitter such as:

- 2.4GHz Wi-Fi (802.11b/g/n)
- 2.4GHz XBee
- Bluetooth®
- Other 2.4GHz...

In Stock
[Buy Now](https://www.adafruit.com/product/944)
[Related Guides to the Product](https://learn.adafruit.com/products/944/guides)
### 2.4GHz Dipole Swivel Antenna with RP-SMA - 5dBi

[2.4GHz Dipole Swivel Antenna with RP-SMA - 5dBi](https://www.adafruit.com/product/945)
This 8"/200mm long swivel dipole antenna has 5dBi of gain and 50Ω impedance so it will work fantastically with just about any 2.4-2.5GHz wireless receiver/transmitter such as:

- 2.4GHz Wi-Fi (802.11b/g/n)
- 2.4GHz XBee
- Bluetooth®
- Other 2.4GHz...

In Stock
[Buy Now](https://www.adafruit.com/product/945)
[Related Guides to the Product](https://learn.adafruit.com/products/945/guides)
### Lithium Ion Polymer Battery - 3.7v 100mAh

[Lithium Ion Polymer Battery - 3.7v 100mAh](https://www.adafruit.com/product/1570)
Lithium-ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light, and powerful. The output ranges from 4.2V when completely charged to 3.7V. This battery has a capacity of ~100mAh for a total of about 0.4 Wh. If you need a larger battery, <a...></a...>

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

## Related Guides

- [Glowing Viking Rune wayFinder](https://learn.adafruit.com/glowing-viking-rune-artifact.md)
- [NeoPixel Infinity Mirror Coaster](https://learn.adafruit.com/infinity-mirror-coaster.md)
- [CircuitPython Animated Sprite Pendants](https://learn.adafruit.com/circuitpython-sprite-animation-pendant-mario-clouds-flying-toasters.md)
- [NeoPixel LED Necklace Insert with USB Charging](https://learn.adafruit.com/neopixel-led-necklace-insert-with-usb-charging.md)
- [Introducing ItsyBitsy 32u4](https://learn.adafruit.com/introducting-itsy-bitsy-32u4.md)
- [LO-LA59 Droid](https://learn.adafruit.com/lola-droid.md)
- [Trinket “Question Block” Sound Jewelry](https://learn.adafruit.com/trinket-question-block-sound-jewelry.md)
- [Electronic Animated Eyes for ARM Microcontrollers](https://learn.adafruit.com/animated-electronic-eyes.md)
- [DotStar Belly Dance Fans](https://learn.adafruit.com/dotstar-belly-dance-fans.md)
- [Introducing Bluefruit LE Micro](https://learn.adafruit.com/bluefruit-le-micro-atmega32u4-microcontroller-usb-bluetooth-le-in-one.md)
- [Portable Mini Timelapse Camera](https://learn.adafruit.com/portable-mini-timelapse-camera.md)
- [Adafruit Audio FX Sound Board](https://learn.adafruit.com/adafruit-audio-fx-sound-board.md)
- [Adafruit ItsyBitsy nRF52840 Express](https://learn.adafruit.com/adafruit-itsybitsy-nrf52840-express.md)
- [Cup o' Sound](https://learn.adafruit.com/cup-o-sound.md)
- [Rezz-Inspired NeoPixel Glasses](https://learn.adafruit.com/rezz-inspired-neopixel-glasses.md)
