# Glitter Positioning System

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/062/638/medium800/gps_IMG_8390.jpg?1538107839)

I'm a regular attendee at festivals that involve setting up a camp and then wandering around a large area with friends.&nbsp; I also have friends who are prone to wandering off from the group in the middle of the night and getting confused about their own whereabouts.

It seemed natural to address this somewhat ridiculous problem with a somewhat ridiculous technological solution.&nbsp; Enter the Glitter Positioning System:&nbsp; A collection of boxes which uses NeoPixels to point in the rough direction of the other boxes.

Each box contains a Feather M4 Express, GPS, a LoRa radio for transmitting and receiving coordinates, a magnetometer, and a 16-NeoPixel ring for display purposes.&nbsp; This is a simple proof of concept, but with the Feather M4's processing power and ample room for CircuitPython code, it makes for a capable and flexible platform for experimenting with navigation and simple radio communication.

# Parts List

**For each person** (at least 2 required!) you'll need:

### Part: Adafruit Feather M4 Express
quantity: 1
This feather is powered by our new favorite chip, the ATSAMD51J19 -  with its 120MHz Cortex M4 with floating point support and 512KB Flash and 192KB RAM. Your code will zig and zag and zoom, and with a bunch of extra peripherals for support, this will for sure be your favorite new chipset.
[Adafruit Feather M4 Express](https://www.adafruit.com/product/3857)

### Part: Adafruit LoRa Radio FeatherWing - RFM95W 900 MHz
quantity: 1
Add short-hop wireless to your Feather with these RadioFruit Featherwings.
[Adafruit LoRa Radio FeatherWing - RFM95W 900 MHz](https://www.adafruit.com/product/3231)

### Part: Adafruit Ultimate GPS FeatherWing
quantity: 1
Give your Feather a sense of place, with an Ultimate GPS FeatherWing.
[Adafruit Ultimate GPS FeatherWing](https://www.adafruit.com/product/3133)

### Part: FeatherWing Tripler Mini Kit - Prototyping Add-on for Feathers
quantity: 1
This is the FeatherWing Tripler - a prototyping add-on and more for all Feather boards. Connect your Feather to two other Feather Wings without needing any stacking headers!
[FeatherWing Tripler Mini Kit - Prototyping Add-on for Feathers](https://www.adafruit.com/product/3417)

### Part: Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS1
quantity: 1
Add motion, direction and orientation sensing to your project with this all-in-one 9-DOF sensor.
[Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS1](https://www.adafruit.com/product/3387)

### Part: Neopixel Ringer - 16 x 5050 RGB LED with Integrated Drivers
quantity: 1
Round and round and round they go! 16 ultra bright smart LED NeoPixels are arranged in a circle with 1.75" (44.5mm) outer diameter.
[Neopixel Ringer - 16 x 5050 RGB LED with Integrated Drivers](https://www.adafruit.com/product/1463)

### Part: Lithium Ion Battery - 3.7v 2000mAh
quantity: 1
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 2000mAh.
[Lithium Ion Battery - 3.7v 2000mAh](https://www.adafruit.com/product/2011)

## Wiring & Enclosure
You'll also need hookup wire, and an enclosure for each unit.&nbsp; I used silicone-cover stranded-core wire, because it's flexible, tough, and easy to fit into tight enclosure spaces. A waterproof plastic enclosure with a clear top keeps the electronics free of moisture and dust, and allows the NeoPixel ring display to be seen easily.

### Part: Silicone Cover Stranded-Core Wire - 2m 26AWG Red
quantity: 1
Silicone-sheathing wire is super-flexible and soft, and its also strong!
[Silicone Cover Stranded-Core Wire - 2m 26AWG Red](https://www.adafruit.com/product/1877)

### Part: Silicone Cover Stranded-Core Wire - 2m 26AWG Black
quantity: 1
Silicone-sheathing wire is super-flexible and soft, and its also strong!
[Silicone Cover Stranded-Core Wire - 2m 26AWG Black](https://www.adafruit.com/product/1881)

### Part: Silicone Cover Stranded-Core Wire - 2m 26AWG Blue
quantity: 1
Silicone-sheathing wire is super-flexible and soft, and its also strong!
[Silicone Cover Stranded-Core Wire - 2m 26AWG Blue](https://www.adafruit.com/product/1878)

### Part: Silicone Cover Stranded-Core Wire - 2m 26AWG Green
quantity: 1
Silicone-sheathing wire is super-flexible and soft, and its also strong!
[Silicone Cover Stranded-Core Wire - 2m 26AWG Green](https://www.adafruit.com/product/1880)

### Part: Small Plastic Project Enclosure - Weatherproof with Clear Top
quantity: 2
Store your project safe and sound in this nice weatherproof box with a clear top.
[Small Plastic Project Enclosure - Weatherproof with Clear Top](https://www.adafruit.com/product/903)

Within the enclosure, I also used:

- A small piece of acrylic to shield the battery
- Self-adhesive Velcro strips to hold components in place
- Electrical tape

You'll also want a Phillips-head screwdriver on hand for opening and closing the enclosure.

Note that this part list contains the components to build one GlitterPOS box, but&nbsp; **two is the minimum** you'll need to do anything with! Of course, the more the merrier!

# Glitter Positioning System

## Assembly

![](https://cdn-learn.adafruit.com/assets/assets/000/062/379/medium800/gps_IMG_8716.jpg?1537566394)

You'll need two (or more) boxes for the Glitter Positioning System to work.&nbsp; This section of the guide describes the build for a single box.

# FeatherWing Tripler
Since the FeatherWing Tripler forms the base of the entire project, it makes sense to start there.&nbsp; Solder female headers onto the _top_ of the Tripler, as seen here:

![](https://cdn-learn.adafruit.com/assets/assets/000/061/500/medium800/gps_featherwing_tripler_headers.jpg?1536702144)

# Feather M4 Express
Solder plain male headers onto the Feather M4 Express:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/633/medium800/gps_IMG_8325.jpg?1538098358)

# Ultimate GPS FeatherWing
Solder plain male headers onto the Ultimate GPS FeatherWing, and install a CR1220 battery:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/634/medium800/gps_IMG_8327.jpg?1538098413)

# LoRa Radio FeatherWing
Solder plain male headers onto the LoRa Radio Featherwing.&nbsp; Because each Feather uses a different processor, there's also some light wiring that needs to be done on the FeatherWing to configure the radio pins. Additionally, you'll need to attach an antenna.

![](https://cdn-learn.adafruit.com/assets/assets/000/062/635/medium800/gps_IMG_8326.jpg?1538098478)

You will want to solder three short wires for **CS, RST** and **IRQ** , as follows:

- **A** to **RST**
- **B** to **CS**
- **D** to **IRQ**

![gps_glitterpos_radio_wiring_bb.png](https://cdn-learn.adafruit.com/assets/assets/000/062/506/medium640/gps_glitterpos_radio_wiring_bb.png?1537825609)

When plugged into the FeatherWing Tripler, **A** maps to pin 11 on the Feather M4, **B** to pin 10, and **D** to pin 6.

Next, attach an antenna.&nbsp; There are [detailed instructions here](https://learn.adafruit.com/radio-featherwing/assembly).&nbsp; For this project, a 3-inch length of wire works well - remember you'll need to adjust the length if you're using a module other than the 900 MHz RFM95W LoRa Radio FeatherWing.&nbsp; You can also use an external antenna, but you'll need to consider mounting it on your enclosure.

As you can see in the photos, for my build, I soldered a single pin in place and used it to connect a length of jumper wire.&nbsp; This worked well for testing, but you're probably better off just soldering the wire directly to the board.

# NeoPixel Ring & LSM9DS1 9-DOF
The NeoPixel ring and the LSM9DS1 breakout need to be connected to the FeatherWing Tripler underneath the Feather M4 Express. It's helpful to have the Feather ready but not yet seated on the Tripler, so you can double-check which pins you're soldering to.

When finished with this section, your build should look like this:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/632/medium800/gps_IMG_8303.jpg?1538098248)

![](https://cdn-learn.adafruit.com/assets/assets/000/062/499/medium800/gps_glitterpos_display_compass_bb.png?1537825081)

## LSM9DS1
Start by cutting four pieces of hookup wire for the LSM9DS1.&nbsp; You'll want enough length to tuck the breakout board into a corner of the enclosure, next to the battery.&nbsp; I used roughly 8cm pieces. Solder these as follows:

- **Tripler power rail** to **LSM9DS1 VIN**
- **Tripler ground rail** to **LSM9DS1 GND**
- **Tripler / Feather SCL** to **LSM9DS1 SCL**
- **Tripler / Feather SDA** to **LSM9DS1 SDA**

![gps_glitterpos_compass_bb.png](https://cdn-learn.adafruit.com/assets/assets/000/062/509/medium640/gps_glitterpos_compass_bb.png?1537827282)

![gps_IMG_8305_cropped.jpg](https://cdn-learn.adafruit.com/assets/assets/000/062/630/medium640/gps_IMG_8305_cropped.jpg?1538098013)

## NeoPixel Ring
Next, cut three pieces of hookup wire for the NeoPixels.&nbsp; You'll want enough length to position the NeoPixel within the enclosure without creating too much of a tangle.&nbsp; I used roughly 15cm pieces of the silicone-cover wire.&nbsp; Solder these as follows:

&nbsp;

- **Tripler ground rail** to **NeoPixel Ground**

&nbsp;

- **Tripler power rail** &nbsp; to **NeoPixel Power 5V DC**

&nbsp;

- **Tripler / Feather A1** to **NeoPixel Data Input**

&nbsp;

![gps_glitterpos_display_bb.png](https://cdn-learn.adafruit.com/assets/assets/000/062/508/medium640/gps_glitterpos_display_bb.png?1537827059)

![gps_IMG_8308.jpg](https://cdn-learn.adafruit.com/assets/assets/000/062/631/medium640/gps_IMG_8308.jpg?1538098114)

# Final Assembly & Enclosure
Plug the Feather M4 Express, Ultimate GPS FeatherWing, and Radio FeatherWing into the FeatherWing Tripler.&nbsp; The Feather M4 Express should be seated on the section of the FeatherWing Tripler where you connected the NeoPixel ring and LSM9DS1.

![](https://cdn-learn.adafruit.com/assets/assets/000/062/500/medium800/gps_glitterpos_bb.png?1537825127)

![](https://cdn-learn.adafruit.com/assets/assets/000/062/594/medium800/gps_IMG_8363.jpg?1537997127)

Next, prepare the enclosure.&nbsp; I used a small sheet of acrylic to shield the battery and the compass, self-adhesive Velcro fasteners to hold things in place, and some strips of felt to line the bottom of the enclosure.&nbsp; The felt turned out to be more trouble than it was worth, but the Velcro is a good way to keep things in place without permanently fastening them.

![](https://cdn-learn.adafruit.com/assets/assets/000/062/592/medium800/gps_IMG_8355.jpg?1537995620)

Danger: 

Install the compass and battery:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/593/medium800/gps_IMG_8360.jpg?1537995674)

Warning: 

The LSM9DS1 should be installed in the corner of the enclosure with the X and Y axis labels pointed outwards, at the same end as the Feather M4 Express, like so:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/629/medium800/gps_IMG_8374.jpg?1538097503)

![](https://cdn-learn.adafruit.com/assets/assets/000/062/591/medium800/gps_IMG_8369.jpg?1537995460)

Now fit the rest of the electronics on top of the battery, LSM9DS1, and acrylic divider:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/595/medium800/gps_IMG_8368.jpg?1537999078)

With everything else in place, mount the NeoPixel ring on the lid of the enclosure.&nbsp; I used a handful of pieces of electrical tape to make later adjustments easy.&nbsp; Again, orientation matters.&nbsp; Locate the first LED on the ring, just counter-clockwise from the **Data Out** / **out** pin:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/636/medium800/gps_IMG_8371.jpg?1538098611)

It can be helpful to mark the edge of this LED with a permanent marker for quick identification.&nbsp; Once you've got it located, orient it _directly opposite_ the solid arrow on the Y axis marker of the LSM9DS1:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/598/medium800/gps_IMG_8375.jpg?1538000362)

Finally, connect the battery to the JST connector on the Feather M4 Express.

You should now be ready to move on to programming the unit and calibrating the compass.

# Glitter Positioning System

## CircuitPython Code

![](https://cdn-learn.adafruit.com/assets/assets/000/062/628/medium800/gps_Screenshot-2018-09-27-19_13_54.png?1538097250)

If you're new to using CircuitPython, there's a [full getting started guide here](https://learn.adafruit.com/welcome-to-circuitpython).

If you don't already have a preferred editor, Adafruit suggests using the Mu editor to edit your code and use the interactive REPL in CircuitPython.&nbsp;[You can learn about Mu and installation in this tutorial](https://learn.adafruit.com/welcome-to-circuitpython/installing-mu-editor "Mu tutorial").

# Get the Code
Download the CircuitPython code from [the GitHub repository](https://github.com/adafruit/glitterpos).&nbsp; You can use [this download link](https://github.com/adafruit/glitterpos/archive/master.zip) to get a zip file, or, if you're familiar with Git, you can clone the repository with the following command:

```auto
git clone https://github.com/adafruit/glitterpos.git
```

Connect a USB cable to the Feather M4 Express, and use your computer to copy the contents of the **glitterpos** file folder to the **CIRCUITPY** drive that appears when you plug the Feather in. If you don't have a **CIRCUITPY** drive but do have a **FEATHERBOOT** drive, you will need to [first load CircuitPython onto the Feather](https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51?view=all#set-up-circuitpython-quick-start-7-1) then [load the libraries for talking to the sensors and radio](https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51?view=all#circuitpython-libraries).

Once the code is copied and the Feather has had a chance to reboot, you should see a test pattern appear on the NeoPixel ring:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/622/medium800/gps_IMG_8378.jpg?1538081775)

At this point, the GlitterPOS box will wait until it has a GPS fix and then begin broadcasting and listening for coordinates.&nbsp; There are a few more steps, however, before it's ready to use.

# Configuration
On each box, you'll need to edit a configuration file called `glitterpos_cfg.py`:

https://github.com/adafruit/glitterpos/blob/master/glitterpos_cfg.py

`MY_ID` should be a unique integer.&nbsp; For the first box, you should leave it set to `0`.&nbsp; On the second box, use `1`, on the third use `2`, etc. This number will be transmitted when the box sends coordinates over LoRa, and used by the other boxes to keep track of its position and choose a display color.

## Compass Calibration
`MAG_MIN` and `MAG_MAX` are compass calibration values. They specify the minimum and maximum magnetometer values from the LSM9DS1. In order to get a reliable compass heading from your device, you'll need to set these for each box.

This process can be a bit finicky, so we've written code to simplify the task.&nbsp; Begin by [connecting to the serial console](https://learn.adafruit.com/welcome-to-circuitpython/kattni-connecting-to-the-serial-console) on the Feather M4 Express.

You should now see a stream of debugging information, including GPS fix quality, headings, and data packets sent:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/623/medium800/gps_Screenshot-2018-09-27-15_02_10.png?1538082248)

Press **Ctrl-C** to interrupt the running code, and hit any other key to enter the CircuitPython REPL:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/620/medium800/gps_Screenshot-2018-09-27-14_31_09.png?1538080502)

You'll be presented with a prompt.&nbsp; Now, type `import calibrate`:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/619/medium800/gps_Screenshot-2018-09-27-14_34_31.png?1538080484)

This will load and run a function that records minimum and maximum values for the magnetometer.&nbsp; Now, move the box in a figure eight and rotate it around the x, y, and z axes multiple times until the `MAG_MIN` and `MAG_MAX` values don't appear to be changing.&nbsp; Copy those values into your `glitterpos_cfg.py`.

Mike Tuupola has a [good writeup on magnetometer calibration](https://appelsiini.net/2018/calibrate-magnetometer/) which goes into more detail.

## Magnetic North
Because magnetic north varies from true north by different amounts depending on where you're at on the surface of the earth, you'll need to find the correct&nbsp;[magnetic declination](https://en.wikipedia.org/wiki/Magnetic_declination) and set `DECLINATION_RAD` for your general location.

Start by finding your local declination. You can get this value from a few different places:

- [magnetic-declination.com](http://www.magnetic-declination.com/) - offers a clickable map.
- [The NCEI Magnetic Field Calculators](https://www.ngdc.noaa.gov/geomag-web/#declination) - requires that you know either your coordinates, a local United States zip code, or a country and city.

Here's an example for Boulder, CO using the NCEI site:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/624/medium800/gps_Screenshot-2018-09-27-15_59_02.png?1538085625)

And here's one using magnetic-north.com:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/626/medium800/gps_Screenshot-2018-09-27-16_01_56.png?1538085741)

Both give positive 8 degrees, 19 minutes.&nbsp; In order to use this, you'll need to convert it to radians.&nbsp; In decimal degrees, that's 8\*60 + 19 / 60 = 8.3166°.&nbsp; To find radians, multiply by π/180:

8.3166 \* (π/180) = 0.1451

So you can set `DECLINATION_RAD = 0.1451` and be reasonably comfortable with the result.

Wolfram Alpha also provides a quick answer here:

![](https://cdn-learn.adafruit.com/assets/assets/000/062/627/medium800/gps_Screenshot-2018-09-27-16_19_30.png?1538086781)

With those values set on each GlitterPOS box, you should be ready to strike out and track your friends' whereabouts very imprecisely.

# Glitter Positioning System

## Usage, Customization, and Next Steps

Danger: 

It's good to keep some basic constraints in mind before setting out:

- The code doesn't presently handle tilt compensation, so you'll need to keep the box fairly flat to get good compass readings.
- The code doesn't currently special-case the situation where a NeoPixel needs to point at more than one box, so at present a box can be hidden "behind" another box if it's on the same compass bearing.
- Within 2-5 meters, GPS readings are unlikely to be accurate enough to provide a useful bearing to the other units.
- The GPS will work best with a clear view of the sky, and under adverse conditions it may take many minutes to get a fix.
- Radio range will vary depending on terrain and atmospheric conditions.&nbsp; You'll do best in a relatively flat landscape with few buildings or other obstructions, but with a simple wire antenna you should be able to transmit upwards of half a kilometer in many environments.

It is best to test everything at home prior to any event you plan to attend with your boxes, just to make sure everything appears to work as you believe it should.

# Display Customization
LED colors for the first eight box IDs are RGB tuples in a dictionary constant called `COLOR_LOOKUP`, defined in `glitterpos.py`:

```auto
# Color presets for each glitterpos_id:
COLOR_LOOKUP = {
    0: GREEN,
    1: BLUE,
    2: PURPLE,
    3: YELLOW,
    4: CYAN,
    5: (100, 0, 255),
    6: (0, 100, 200),
    7: (100, 50, 100),
    # BOULDER_ID: RED
}
```

You can extend or modify this dictionary to your liking. (Note that the file also contains some handy pre-defined color constants.)

Lots of interesting variations on the display code are possible.&nbsp; Another easy tweak is to display headings for fixed points of interest, such as your camp or a high-visibility landmark.&nbsp; As an example, `glitterpos.py` contains commented-out coordinates for downtown Boulder, CO.&nbsp; Open that file and uncomment all the lines containing the string `BOULDER_ID`, starting around line 35.

Practically speaking, you can add as many fixed points as you want, but remember that you only have 16 NeoPixels to work with, so the display can get cluttered fast.

# Potential Hardware Improvements
Both the Ultimate GPS FeatherWing and the Radio FeatherWing can be equipped with an external antenna for greatly improved performance.&nbsp;

See the Radio FeatherWing guide for details on [mounting a uFL or SMA antenna](https://learn.adafruit.com/radio-featherwing/assembly).

See the [Ultimate GPS FeatherWing guide](https://learn.adafruit.com/adafruit-ultimate-gps-featherwing/antenna-options) for details on mounting an [external active GPS antenna](https://www.adafruit.com/product/960).&nbsp; In the case of the Adafruit GPS antenna, keep in mind that the antenna base contains a strong magnet, so you'll need to mount it at some distance from the body of the GlitterPOS box or it'll interfere with the compass.

The current build lacks an on/off switch, which would make for a considerable improvement in usability!

# Acknowledgments & Further Reading
While the end goal is somewhat different, [this Burning Man LoRa + GPS tracker project](http://doorinthewall.co.za/blog/lora-gps-trackers/) by Melissa Loudon and Drew Griscom Roos was a source of inspiration for the Glitter Positioning System, and good evidence that the radios would work well in that environment.

The compass-bearing code in `glitterpos_util.py` is from [this Gist by Jérôme Renard](https://gist.github.com/jeromer/2005586).

Ozzmaker's [Create a Digital Compass with the Raspberry Pi](http://ozzmaker.com/compass1/) series is an excellent resource for many of the techniques used here.

Thanks to Ladyada for working out the finicky details of compass calibration!


## Featured Products

### Adafruit Feather M4 Express - Featuring ATSAMD51

[Adafruit Feather M4 Express - Featuring ATSAMD51](https://www.adafruit.com/product/3857)
It's what you've been waiting for, the Feather M4 Express featuring ATSAMD51. This Feather is fast like a swift, smart like an owl, strong like a ox-bird (it's half ox, half bird, OK?) This feather is powered by our new favorite chip, the **ATSAMD51J19** -&nbsp; with...

In Stock
[Buy Now](https://www.adafruit.com/product/3857)
[Related Guides to the Product](https://learn.adafruit.com/products/3857/guides)
### FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers

[FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers](https://www.adafruit.com/product/3417)
This is the **FeatherWing Tripler** - a prototyping add-on and more for all Feather boards. This is similar to our [FeatherWing Proto](https://www.adafruit.com/products/2884) except there are three! The magic of the Tripler comes when you want to connect your Feather to...

In Stock
[Buy Now](https://www.adafruit.com/product/3417)
[Related Guides to the Product](https://learn.adafruit.com/products/3417/guides)
### Adafruit LoRa Radio FeatherWing - RFM95W 900 MHz

[Adafruit LoRa Radio FeatherWing - RFM95W 900 MHz](https://www.adafruit.com/product/3231)
Add short-hop wireless to your Feather with these RadioFruit Featherwings. These add-ons for any Feather board will let you integrate packetized radio (with the RFM69 radio) or LoRa radio (with the RFM9x's). These radios are good options for kilometer-range radio, and paired with one of...

In Stock
[Buy Now](https://www.adafruit.com/product/3231)
[Related Guides to the Product](https://learn.adafruit.com/products/3231/guides)
### Adafruit Ultimate GPS FeatherWing

[Adafruit Ultimate GPS FeatherWing](https://www.adafruit.com/product/3133)
Give your Feather a sense of place, with an Ultimate GPS FeatherWing. <!--EndFragment-->In 2013 we designed the [Ultimate GPS module](https://www.adafruit.com/products/746) to satisfy all your GPS desires - and now we have brought its power and versatility plus more to our...

In Stock
[Buy Now](https://www.adafruit.com/product/3133)
[Related Guides to the Product](https://learn.adafruit.com/products/3133/guides)
### Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS1

[Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS1](https://www.adafruit.com/product/3387)
Add motion, direction and orientation sensing to your Arduino project with this all-in-one 9-DOF sensor. Inside the chip are three sensors, one is a classic 3-axis accelerometer, which can tell you which direction is down towards the Earth (by measuring gravity) or how fast the board is...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3387)
[Related Guides to the Product](https://learn.adafruit.com/products/3387/guides)
### NeoPixel Ring - 16 x 5050 RGB LED with Integrated Drivers

[NeoPixel Ring - 16 x 5050 RGB LED with Integrated Drivers](https://www.adafruit.com/product/1463)
Round and round and round they go! 16 ultra bright smart LED NeoPixels are arranged in a circle with 1.75" (44.5mm) outer diameter. The rings are 'chainable' - connect the output pin of one to the input pin of another. Use only one microcontroller pin to control as many as you can...

In Stock
[Buy Now](https://www.adafruit.com/product/1463)
[Related Guides to the Product](https://learn.adafruit.com/products/1463/guides)
### Small Plastic Project Enclosure - Weatherproof with Clear Top

[Small Plastic Project Enclosure - Weatherproof with Clear Top](https://www.adafruit.com/product/903)
Store your project safe and sound in this nice weatherproof box with a clear top. We picked up this box because we like the machinable ABS plastic body and tough clear polycarbonate cover, the built in weatherproof gasket seal, and the easy-open screws that can be taken apart as many times as...

In Stock
[Buy Now](https://www.adafruit.com/product/903)
[Related Guides to the Product](https://learn.adafruit.com/products/903/guides)
### Silicone Cover Stranded-Core Wire - 2m 26AWG Red

[Silicone Cover Stranded-Core Wire - 2m 26AWG Red](https://www.adafruit.com/product/1877)
Silicone-sheathing wire is super-flexible and soft, and its also strong! Able to handle up to 200°C and up to 600V, it will do when PVC covered wire wimps out. We like this wire for being extremely supple and flexible, so it is great for wearables or projects where the wire-harness has to...

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

## Related Guides

- [Adafruit Feather M4 Express](https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51.md)
- [Introducing Adafruit Feather](https://learn.adafruit.com/adafruit-feather.md)
- [CircuitPython 101: Working with Lists, Iterators and Generators](https://learn.adafruit.com/circuitpython-101-list-and-things-iterators-generators.md)
- [Trinket Sound-Reactive LED Color Organ](https://learn.adafruit.com/trinket-sound-reactive-led-color-organ.md)
- [Using LoraWAN and The Things Network with CircuitPython](https://learn.adafruit.com/using-lorawan-and-the-things-network-with-circuitpython.md)
- [Adafruit VCNL4040 Proximity Sensor](https://learn.adafruit.com/adafruit-vcnl4040-proximity-sensor.md)
- [Adafruit NeoPXL8 FeatherWing and Library](https://learn.adafruit.com/adafruit-neopxl8-featherwing-and-library.md)
- [Controlling Objects in Unity with a 9 DoF Sensor and Arduino](https://learn.adafruit.com/controlling-objects-in-unity-with-arduino.md)
- [IoT Air Quality Sensor with Adafruit IO](https://learn.adafruit.com/diy-air-quality-monitor.md)
- [Deco Two-Key Feather Macro Pad](https://learn.adafruit.com/deco-two-key-keypad-macropad-circuitpython-feather.md)
- [Feather Waveform Generator in CircuitPython](https://learn.adafruit.com/waveform-generator.md)
- [MakeCode Arcade with SAMD51 M4](https://learn.adafruit.com/makecode-arcade-with-samd51-m4.md)
- [Adafruit LSM9DS1 Accelerometer + Gyro + Magnetometer 9-DOF Breakout](https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-magnetometer-9-dof-breakout.md)
- [NeoPixel Ring Lamp](https://learn.adafruit.com/neopixel-ring-lamp.md)
- [Multi-tasking with CircuitPython](https://learn.adafruit.com/multi-tasking-with-circuitpython.md)
- [STEAM-Punk Goggles](https://learn.adafruit.com/steam-punk-goggles.md)
