# No-Code Pool Party Notifier

## Overview

https://youtu.be/mguoqNAtfqU

![](https://cdn-learn.adafruit.com/assets/assets/000/140/851/medium800thumb/lcds___displays_flag-loop.jpg?1762114605 )

Build an internet-connected pool notifier to alert the neighborhood that the pool party is underway!&nbsp;

**In this guide, you'll use Adafruit IO and WipperSnapper firmware to build a pool party notifier that raises a flag and displays a message on an E-Ink screen. This project can be completed without programming or soldering**.

When your pool is ready for guests, press a button on the Adafruit IO dashboard to send the flag up. We've also designed a 3D-printed enclosure to house the project.

**You can print the enclosure or pick one up from the Adafruit shop!**

This project is inspired by [Bert's "SplashFlag - IoT Swimming Notification" project](https://bertwagner.com/posts/splashflag-building-an-iot-swimming-notification-device-from-scratch/). We really liked this project and wanted to make it more approachable. This version of Bert's project was designed for a beginner to complete this project - there is no code, no self-hosted web services and wiring has been simplified as much as possible.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/852/medium800thumb/lcds___displays_phone-loop.jpg?1762124968 )

## Parts
### Adafruit MagTag - 2.9" Grayscale E-Ink WiFi Display

[Adafruit MagTag - 2.9" Grayscale E-Ink WiFi Display](https://www.adafruit.com/product/4800)
The Adafruit MagTag combines the ESP32-S2 wireless module and a 2.9" grayscale E-Ink display to make a low-power IoT display that can show data on its screen even when power is removed! The ESP32-S2 is great because it builds on the years of code and support for the ESP32 and also adds...

In Stock
[Buy Now](https://www.adafruit.com/product/4800)
[Related Guides to the Product](https://learn.adafruit.com/products/4800/guides)
![Angled shot of rectangle-shaped electronic ink display breakout with the text: "MAGTAG 2025 Edition with SSD1680 Chipset"](https://cdn-shop.adafruit.com/640x480/4800-10.jpg)

### Adafruit MagTag Enclosure & Buttons Kit

[Adafruit MagTag Enclosure & Buttons Kit](https://www.adafruit.com/product/6433)
Here is a cool&nbsp;and minimal enclosure for your [MagTag](https://www.adafruit.com/product/4800)&nbsp;to keep it safe during use and transport. This case has been custom-designed and 3D printed to accommodate all&nbsp;connection ports of the MagTag. No screws or...

In Stock
[Buy Now](https://www.adafruit.com/product/6433)
[Related Guides to the Product](https://learn.adafruit.com/products/6433/guides)
![Angled Shot of the Adafruit MagTag Enclosure & Buttons Kit with MagTag and Magnetic Standoff Feet.](https://cdn-shop.adafruit.com/640x480/6433-06.jpg)

### Micro Servo with 3-pin JST PH 2mm Cable - TowerPro SG92R

[Micro Servo with 3-pin JST PH 2mm Cable - TowerPro SG92R](https://www.adafruit.com/product/4326)
This tiny little servo can rotate approximately 180 degrees (90 in each direction), and works just like the standard kinds you're used to but&nbsp;_smaller_. You can use any servo code, hardware or library to control these servos. Good for beginners who want to make stuff move...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4326)
[Related Guides to the Product](https://learn.adafruit.com/products/4326/guides)
![Angled shot of a micro servo with a JST cable.](https://cdn-shop.adafruit.com/640x480/4326-00.jpg)

### Magnetic Pin Back

[Magnetic Pin Back](https://www.adafruit.com/product/1170)
These magnetic pin backs have two pieces: a metal bar with adhesive strip and a plastic piece with two strong rare-earth magnets. Affix the metal bar to your FLORA projects-- it's just the right size! Then attach your FLORA project to any garment without poking holes in your clothes. The...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1170)
[Related Guides to the Product](https://learn.adafruit.com/products/1170/guides)
![a metal bar with adhesive strip and a plastic piece.](https://cdn-shop.adafruit.com/640x480/1170-04.jpg)

### Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible

[Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible](https://www.adafruit.com/product/4432)
As technology changes and adapts, so does Adafruit, and speaking of _adapting_, this **_right angle_** &nbsp;_ **adapter** _&nbsp;is USB C socket-to-plug.

USB C is the latest industry-standard connector for transmitting...

In Stock
[Buy Now](https://www.adafruit.com/product/4432)
[Related Guides to the Product](https://learn.adafruit.com/products/4432/guides)
![Angled Shot of the Right Angle USB Type C Adapter - USB 3.1 Gen 4 Compatible.](https://cdn-shop.adafruit.com/640x480/4432-07.jpg)

### Part: USB Type C to USB A
quantity: 1
Blue USB Type C to USB A Cable with 540 Degree Rotating End - 1 meter long
[USB Type C to USB A](https://www.adafruit.com/product/6278)

While this project can be built using our free Adafruit IO service plan, purchasing [a subscription to Adafruit IO+ supports Adafruit _and_ unlocks more data, more storage, and more feeds](https://io.adafruit.com/plus) than our free service.&nbsp;

### Part: Adafruit IO+ Subscription Pass – One Year
quantity: 1
Adafruit IO+ Subscription Pass – One Year
[Adafruit IO+ Subscription Pass – One Year](https://www.adafruit.com/product/3792)

## Hardware

The following hardware fasteners are required to assemble this project. The servo includes the required &nbsp;screws for mount it and the horn to the printed flag.

### Mini Magnet Feet for RGB LED Matrices (Pack of 4)

[Mini Magnet Feet for RGB LED Matrices (Pack of 4)](https://www.adafruit.com/product/4631)
Got a glorious&nbsp;RGB Matrix project you want to mount and display in your workspace or home? If you have one of the matrix panels listed below, you'll need a pack of these **Mini-Magnet Feet.** &nbsp;We got these specifically&nbsp;for our RGB LED Matrices, which no longer...

In Stock
[Buy Now](https://www.adafruit.com/product/4631)
[Related Guides to the Product](https://learn.adafruit.com/products/4631/guides)
![Angled shot of four magnet feet.](https://cdn-shop.adafruit.com/640x480/4631-00.jpg)

# No-Code Pool Party Notifier

## CAD Files

## 3D Printed Parts

STL files for 3D printing will need to be oriented for printing using FDM machines.

Parts were printed with Gold and Blue Translucent PLA filament.

Note the two halves of the hilt are not identical.

Original design source files may be downloaded using the links below.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/853/medium640/lcds___displays_parts-3d.jpg?1762125418)

Primary: You can print your own MagTag case or, as shown on the previous page, buy one from the Adafruit shop.

Info: The dropdown on the Fusion 360 site allows you to pick your preferred 3D file format like STEP, STL, etc.


[Edit Servo Mount Design](https://a360.co/47Z1GCY)
[Download Servo Mount STLs]()
[Edit MagTag Case](https://cdn-learn.adafruit.com/assets/assets/000/140/231/original/CAD.zip?1759763738)
[Download MagTag STLs](https://learn.adafruit.com/magtag-case/cad-files)
### Slice with settings for PLA material

The parts were sliced using CURA, using the slice settings below.

- PLA filament 210c extruder
- 0.2 layer height
- 10% gyroid infill
- 60mm/s print speed
- 60c heated bed
- Tree Support Line Width: .2
- Support Density: 3%

![](https://cdn-learn.adafruit.com/assets/assets/000/140/854/medium640/lcds___displays_slice.jpg?1762125514)

# No-Code Pool Party Notifier

## Wiring

The diagram below provides a visual reference for wiring the project's components.&nbsp;

This project uses&nbsp;[STEMMA QT](https://learn.adafruit.com/introducing-adafruit-stemma-qt) cables and connectors to provide a no-soldering solution for wiring. The breakouts all connect to each other, and to the QT Py board, using STEMMA QT cables.

 **Connect the Micro Servo's JST PH connector** to **MagTag port D10.**

![](https://cdn-learn.adafruit.com/assets/assets/000/140/423/medium640/lcds___displays_magtag-splashflag_bb.png?1762181668)

# No-Code Pool Party Notifier

## Assembly

![](https://cdn-learn.adafruit.com/assets/assets/000/140/855/medium800/lcds___displays_top-bot-join.jpg?1762127043 )

[Full MagTag Case Assembly Guide](https://learn.adafruit.com/magtag-case/assembly)
## Place Servo

Align the servo tabs between the walls on the printed holder. Pass the servo wires to the opposite side of the holder.

## Servo Horn

Attach the included single arm horn with the included smaller screw.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/856/medium640/lcds___displays_servo-insert.jpg?1762127111)

## Servo Screws

Secure the servo with the two longer screws included in the servo kit. Fasten screws to each tab.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/857/medium640/lcds___displays_servo-attach.jpg?1762127441)

## Servo Flag

Align the printed flag to the servo horn. Press-fit the flag channel to servo arm.

Use the smallest horn screw to fasten the flag to the servo.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/858/medium640/lcds___displays_flag-align.jpg?1762127701)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/859/medium640/lcds___displays_flag-attach.jpg?1762127877)

## Mount Servo Holder

Align the assembled servo holder to the left side (opposite of the side buttons) of the MagTag case.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/860/medium640/lcds___displays_servo-case-attach.jpg?1762127929)

## Plug JST connection

Guide the servo wires around the magnetic feet to keep the cable tidy.

The servo JST plug into the D10 port (closest port to the side buttons)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/861/medium640/lcds___displays_servo-jst-attach.jpg?1762128091)

## Mount to case

Magnetic feet can mount to a ferrous surface or on a desk with the built-in stand!

A magnetic Pin Back can adhere to non ferrous surfaces to help the case attach to something like an aluminum pool gate!

![](https://cdn-learn.adafruit.com/assets/assets/000/140/864/medium640/lcds___displays_case-magtic-attch.jpg?1762128490)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/865/medium800thumb/lcds___displays_flag-loop.jpg?1762128760 )

# No-Code Pool Party Notifier

## WipperSnapper Setup

Warning: 

## What is WipperSnapper

WipperSnapper is a firmware designed to turn any WiFi-capable board into an Internet-of-Things device without programming a single line of code. WipperSnapper connects to [Adafruit IO](https://io.adafruit.com/), a web&nbsp;platform designed ([by Adafruit!](https://www.adafruit.com/about)) to&nbsp;_display_,&nbsp;_respond_, and&nbsp;_interact_&nbsp;with your project's data.

Simply load the WipperSnapper firmware onto your board, add credentials, and plug it into power. Your board will automatically register itself with your Adafruit IO account.

From there, you can add&nbsp;_components_&nbsp;to your board such as buttons, switches, potentiometers, sensors, and more! Components are&nbsp;_dynamically&nbsp;_added to hardware, so you can&nbsp;immediately start interacting, logging, and streaming the data your projects produce without writing code.

## Sign up for Adafruit.io

You will need an Adafruit IO account to use WipperSnapper on your board. If you do not already have one, head over to [io.adafruit.com](https://io.adafruit.com/) to create a&nbsp;_free_ account.

## Add a New Device to Adafruit IO

Log into your [Adafruit IO](https://io.adafruit.com/) account. Click the _New Device_ button at the top of the page.

![](https://cdn-learn.adafruit.com/assets/assets/000/112/548/medium800/wippersnapper_setup__board_selector__web__new_device_1.png?1655919766)

After clicking New Device, you should be on the _board selector_ page. This page displays every board that is compatible with the WipperSnapper firmware.

![](https://cdn-learn.adafruit.com/assets/assets/000/112/550/medium800/wippersnapper_setup__board_selector__web__selector_maion.png?1655920178)

In the board selector page's search bar, search for the _MagTag.&nbsp;_Once you've located the board you'd like to install WipperSnapper on,_&nbsp;_click the&nbsp; **Choose Board** &nbsp;button to bring you to the self-guided installation wizard.

![](https://cdn-learn.adafruit.com/assets/assets/000/113/116/medium800/adafruit_products_WS_MT_choose_board.png?1657640581)

Follow the step-by-step instructions on the page to install Wippersnapper on your device and connect it to Adafruit IO.

![](https://cdn-learn.adafruit.com/assets/assets/000/113/117/medium800/adafruit_products_WS_MT_new_device_step_two.png?1657640602)

If the installation was successful, a popover should appear displaying that your board has successfully been detected by Adafruit IO.

Give your board a name and click "Continue to Device Page".

![](https://cdn-learn.adafruit.com/assets/assets/000/113/118/medium800/adafruit_products_WS_MT_New_Device_Detected.png?1657640943)

You should be brought to your board's device page.

![](https://cdn-learn.adafruit.com/assets/assets/000/113/119/medium800/adafruit_products_WS_MT_empty_device_page.png?1657640953)

## Feedback

Adafruit.io WipperSnapper is in **beta** and you can help improve it!

If you have&nbsp; suggestions or general feedback about the installation process - visit [https://io.adafruit.com/support](https://io.adafruit.com/support), click _"Contact Adafruit IO Support"_ and select _"I have feedback or suggestions for the WipperSnapper Beta"._

## Troubleshooting

If you encountered an issue during installation, please try the steps below first.

If you're still unable to resolve the issue, or if your issue is not listed below, get in touch with us directly at [https://io.adafruit.com/support](https://io.adafruit.com/support "https://io.adafruit.com/support"). Make sure to click&nbsp; _"Contact Adafruit IO Support"_ and select "_There is an issue with WipperSnapper. Something is broken!"_

### 

First, make sure that you selected the correct board on the board selector.

Next, please make sure that you entered your WiFi credentials properly, there are no spaces/special characters in either your network name (SSID) or password, and that you are connected to a 2.4GHz wireless network.

If you're still unable to connect your board to WiFi, please [make a new post on the WipperSnapper technical support forum with the error you're experiencing, the LED colors which are blinking, and the board you're using.](https://forums.adafruit.com/viewforum.php?f=66)

### 

Try hard-resetting your board by unplugging it from USB power and plugging it back in.

If the error is still occurring, please&nbsp;[make a new post on the WipperSnapper technical support forum with information about what you're experiencing, the LED colors which are blinking (if applicable), and the board you're using.](https://forums.adafruit.com/viewforum.php?f=66)

## "Uninstalling" WipperSnapper&nbsp;

WipperSnapper firmware is an application that is loaded onto your board. There is nothing to "uninstall". However, you may want to "move" your board from running WipperSnapper to running Arduino or CircuitPython. You also may need to restore your board to the state it was shipped to you from the Adafruit factory.&nbsp;

### Moving from WipperSnapper to CircuitPython

Follow the steps on the [Installing CircuitPython page](https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython) to install CircuitPython on your board running WipperSnapper.

- If you are unable to double-tap the RST button to enter the UF2 bootloader, follow the _"Factory Resetting a WipperSnapper Board"_ instructions below.

Uploading this sketch will overwrite WipperSnapper. If you want to re-install WipperSnapper, follow the instructions at the top of this page.

### Moving from WipperSnapper to Arduino

If you want to use your board with Arduino, you will use the Arduino IDE to load&nbsp;_any_ sketch onto your board.

First, follow the page below to set up your Arduino IDE environment for use with your board.

[Setup Arduino IDE](https://learn.adafruit.com/adafruit-magtag/arduino-ide-setup-2)
Then, follow the page below to upload the "Arduino Blink" sketch to your board.

[Upload Arduino Blink Sketch](https://learn.adafruit.com/adafruit-magtag/arduino-basics)
Uploading this sketch will overwrite WipperSnapper. If you want to re-install WipperSnapper, follow the instructions at the top of this page.

### Factory Resetting a WipperSnapper Board

Sometimes, hardware gets into a state that requires it to be "restored" to the original state it shipped in. If you'd like to get your board back to its original factory state, follow the guide below.

This board does not have a Factory Reset firmware. You can [re-install the UF2 bootloader](https://learn.adafruit.com/adafruit-magtag/install-uf2-bootloader) and then install CircuitPython/Arduino by following the instructions above.

# No-Code Pool Party Notifier

## Set up an Adafruit IO Device

Before setting up an Action to control the project, you need to configure the components attached to the MagTag.

Navigate to the Devices page ([https://io.adafruit.com/devices)](https://io.adafruit.com/devices))&nbsp;and click the MagTag we just set up.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/525/medium800/lcds___displays_SCR-20251017-jtgq.png?1760712190)

You will be redirected to the Device Page. From here, you will connect parts to the MagTag.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/526/medium800/lcds___displays_SCR-20251017-jucm.png?1760712200)

## Add Display to MagTag

To add the E-Ink display **&nbsp;** to the MagTag, click the **&nbsp;"+"&nbsp;** symbol on the Device Page&nbsp;to bring up the component picker.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/527/medium800/lcds___displays_SCR-20251017-jvmz.png?1760712479)

On the Component Picker, **Search** for the **MagTag Display** and **click**  **it**.

**Change** the text size to 32px. **Click** &nbsp;Create Component.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/528/medium640/lcds___displays_SCR-20251017-jxni.png?1760712921)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/529/medium640/lcds___displays_SCR-20251017-jxxc.png?1760712939)

The MagTag Display component should appear on the device page.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/140/532/medium800/lcds___displays_SCR-20251017-jykc.png?1760713070)

## Add Servo to MagTag

A servo is used to raise and lower the flag. To add the servo **&nbsp;** to the MagTag, click the **&nbsp;"+"&nbsp;** symbol on the Device Page&nbsp;to bring up the component picker.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/533/medium800/lcds___displays_SCR-20251017-kaaz.png?1760713450)

On the Component Picker,&nbsp; **Search** &nbsp;for the&nbsp; **Generic Servo,** &nbsp; **click** &nbsp; **it**.

**Change** &nbsp;the Servo Pin to pin D10. **Click** &nbsp;Create Component.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/534/medium640/lcds___displays_SCR-20251017-kajg.png?1760713469)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/535/medium640/lcds___displays_SCR-20251017-kbcz.png?1760713488)

The servo should appear on the device page.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/140/536/medium800/lcds___displays_SCR-20251017-kbio.png?1760713519)

That's it! With the MagTag hardware configured, you can move onto adding Actions to control the MagTag.

# No-Code Pool Party Notifier

## Create Adafruit IO Actions

 **In Adafruit IO, an Action is&nbsp;**** a way to add triggered, automated logic to your IoT projects without writing code**. This project will require two Actions: one to control the MagTag, and one to wait an hour before resetting the flag's position.

## Create Swimming Feed

Before you can track the swimming activity, you'll need to set up a feed in Adafruit IO to store this data. A feed in Adafruit IO acts as storage for data. In this case, create a feed that stores a boolean value indicating whether you're currently swimming or not.

[Navigate to your feed page](https://io.adafruit.com/feeds), click New Feed, and name it _swimming_.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/543/medium800/lcds___displays_SCR-20251017-kstk.png?1760716682)

## Create Swimming Action

Next, create an action to control the MagTag. If swimming, the Action will tell the servo to raise the flag and write a message to the MagTag e-ink display. If no longer swimming, the Action will tell the servo to lower the flag and write a message to the display.

**Navigate** to the [Adafruit IO Actions](https://io.adafruit.com/actions/) page and **click** &nbsp;New Action **.**

![](https://cdn-learn.adafruit.com/assets/assets/000/140/537/medium800/lcds___displays_SCR-20251017-kens.png?1760714062)

Name the action and optionally give it a description.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/538/medium800/lcds___displays_SCR-20251017-ketq.png?1760714067)

You'll be brought to the editor page for the action.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/539/medium800/lcds___displays_SCR-20251017-kfhb.png?1760714075)

From the editor, click the _Triggers_ label on the toolbox.

Select [the Any Data Block](https://io.adafruit.com/actions-docs/blocks/triggers/when_data.html). This block runs your Action every single time ANY new data arrives at a feed, regardless of what the value is.

Drag and drop this block into the _Triggers_ section of your root block.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/544/medium640/lcds___displays_SCR-20251017-kvca.png?1760721256)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/546/medium640/lcds___displays_SCR-20251017-kvys.png?1760721277)

Configure the Any Data Block to run the Action when the _swimming_ feed gets new data by selecting the swimming feed from the dropdown.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/557/medium640/lcds___displays_SCR-20251017-kvfv.png?1760725337)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/558/medium640/lcds___displays_SCR-20251017-kvys.png?1760725361)

Next, add a [conditional block](https://io.adafruit.com/actions-docs/blocks/logic/if.html) - this block helps you create smart decision-making logic for your Actions using if/then/else statements.

From the toolbox, select _Logic_ . Under logic, select the conditional block

Drag and drop the conditional block to your root block, placing it underneath _Actions._

![](https://cdn-learn.adafruit.com/assets/assets/000/140/559/medium640/lcds___displays_SCR-20251017-kwcx.png?1760725428)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/560/medium640/lcds___displays_SCR-20251017-kwhz.png?1760725447)

Now to configure the conditional block to read the value of the _swimming_ feed and perform an action based on its decision.

From the toolbox, select&nbsp;_Math._ Select the [Compare Numbers block](https://io.adafruit.com/actions-docs/blocks/math/compare.html).

Drag and drop the Compare Numbers block to the conditional block's&nbsp;_if_ connector.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/561/medium640/lcds___displays_SCR-20251017-kwoa.png?1760725651)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/562/medium640/lcds___displays_SCR-20251017-kwqi.png?1760725711)

From the toolbox, select the Get Feeds block.

Drag and drop the block into the compare numbers block's left slot.

Using the Get Feeds block's dropdown, change the feed to _swimming._

Change the value on the right-hand side of the compare numbers block to _1_.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/565/medium640/lcds___displays_SCR-20251017-kwjx.png?1760969473)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/566/medium640/lcds___displays_SCR-20251017-kwun.png?1760969494)

Now to create a step to write text to the MagTag display.

From the toolbox, select&nbsp;[Set Feed Value](https://io.adafruit.com/actions-docs/blocks/feeds/set_value.html). Drag this block to the diagram

Change the Feed to: _Adafruit MagTag 2.9" E-Ink Display.&nbsp;_

From the toolbox, select the [Multiline Text Block](https://io.adafruit.com/actions-docs/blocks/text/text_multiline.html#block-multiline-text).

Connect this block to the Set Feed Value block

Change the text in the block to something like: "We are swimming. Come join us!".&nbsp;

Tip: The multiline text block allows you to hit Enter to create a new line. New lines will automatically show up on the MagTag display.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/567/medium640/lcds___displays_SCR-20251017-kwwz.png?1760970245)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/568/medium640/lcds___displays_SCR-20251017-kxed.png?1760970271)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/569/medium640/lcds___displays_SCR-20251017-kxhq.png?1760970299)

Create a step to write the servo's angle to 90 degrees (or 2500uS) to raise the flag.

From the toolbox, select the Set Feed Value block

Drag this block to the diagram

From the toolbox, select the Math blocks, select the [Number Block](https://io.adafruit.com/actions-docs/blocks/math/number.html)

Drag this block to the right-hand-side of the Set Feed Value block on the diagram

Set the number to 2500, representing the maximum angle the servo can raise the flag to.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/570/medium640/lcds___displays_SCR-20251017-kwwz.png?1760970537)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/571/medium640/lcds___displays_SCR-20251017-kxlx.png?1760970554)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/572/medium640/lcds___displays_SCR-20251017-kxog.png?1760970567)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/573/medium640/lcds___displays_SCR-20251017-kxro.png?1760970586)

Next, the conditional block needs to be expanded for the else step (when the swimming feed is not equal to 1).&nbsp;

To do this:, click the "+" symbol next to the _else_ step. The _else_ step should expand and display a slot underneath it.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/574/medium640/lcds___displays_SCR-20251017-laao.png?1760971656)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/575/medium640/lcds___displays_SCR-20251017-ladv.png?1760971690)

Instead of configuring the next two steps from scratch, duplicate the two existing blocks, since the functionality is similar.&nbsp;

Duplicate the Set Feed block so you only need to change the text:

Click the Set MagTag E-Ink display block, selecting it. Copy this block and paste it, creating a duplicate block.

Drag the duplicate block underneath the else step. Change the text on the right-hand-side of the block to reflect the pool is closed.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/576/medium640/lcds___displays_SCR-20251017-laie.png?1760972028)

Next replicate the step above, but for the Set Servo step. Make sure to change the servo's value from 2500 to 500.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/577/medium640/lcds___displays_SCR-20251017-laly.png?1760972124)

The action should look like the following diagram:

![](https://cdn-learn.adafruit.com/assets/assets/000/140/578/medium800/lcds___displays_SCR-20251017-laoo.png?1760972180)

Save and enable the action.

Above the diagram, click the _Save and Run_ button.

On the pop-up, click _Enable, Save and Run._ The action will run.

Verify that the output shows a string indicating the pool status as well as the servo value (in microseconds).

![](https://cdn-learn.adafruit.com/assets/assets/000/140/579/medium640/lcds___displays_SCR-20251017-larc.png?1760972312)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/582/medium640/lcds___displays_SCR-20251017-lasz.png?1760972389)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/583/medium640/lcds___displays_SCR-20251017-lavz.png?1760972404)

## Create Timer Action

Next, crate a&nbsp;_tiny action_ to reset the swimming feed, to indicating that you are no longer swimming.&nbsp;

 **Navigate** &nbsp;to the&nbsp;[Adafruit IO Actions](https://io.adafruit.com/actions/)&nbsp;page and&nbsp; **click** &nbsp;New Action **.**

Name the new feed and click Create.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/584/medium640/lcds___displays_SCR-20251017-lfed.png?1760972890)

Configure the workflow to wait one hour after swimming before running this action to reset the feed's value. This prevents scheduling another swim session too quickly.

Click the ⚙️ cog on the diagram's root block. This brings up the [root block's delay settings](https://io.adafruit.com/actions-docs/blocks/uncategorized/delay_settings.html).

Change the delay to 1 hour by selecting the _1 hours_ block and dragging it to the Delay's input slot.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/585/medium640/lcds___displays_SCR-20251017-lflb.png?1760972939)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/586/medium640/lcds___displays_SCR-20251017-lfph.png?1760973035)

From the toolbox, select _Triggers_.

Select the [Data Matching Block](https://io.adafruit.com/actions-docs/blocks/triggers/when_data_matching.html) and drag it into the diagram's _Triggers_ slot.

Change the data matching block's feed to the _swimming_ feed

Change the value on the right-hand side of the data matching block to _1_

At this point, the action will execute every hour to check if the data on the feed is _1_.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/589/medium640/lcds___displays_SCR-20251017-lfsi.png?1760973246)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/590/medium640/lcds___displays_SCR-20251017-lfxh.png?1760973279)

Open the _feeds_ section of the toolbox.

Select, drag, and drop the&nbsp;[Set Feed Value block](https://io.adafruit.com/actions-docs/blocks/feeds/set_value.html) underneath the _Actions_ slot.

Open the _math_ section of the toolbox. Select, drag, and drop the [Number block](https://io.adafruit.com/actions-docs/blocks/math/number.html) underneath the _Actions_ slot. Set the number to 0.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/591/medium640/lcds___displays_SCR-20251017-lgba.png?1760974806)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/592/medium640/lcds___displays_SCR-20251017-lgml.png?1760974840)

Double-check that the workflow looks like the following screenshot, then click Save and Run.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/593/medium800/lcds___displays_SCR-20251017-lgqu.png?1760975028)

The action should run immediately, and set the swimming feed to 0.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/594/medium800/lcds___displays_SCR-20251017-lgsy.png?1760975073)

Finally, validate that both actions are enabled before proceeding.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/140/595/medium800/lcds___displays_SCR-20251017-lgxf.png?1760975105)

# No-Code Pool Party Notifier

## Build an Adafruit IO Dashboard

Adafruit IO Dashboards start out as a blank webpage. From this page, you can add blocks, to create an interactive webpage to interact with (or view) your electronics project.

You'll create a new Adafruit IO dashboard and use a toggle block to set whether or not you're currently swimming. Then, is to add a text block, mirroring the text on the MagTag display.

Navigate to [the Adafruit IO dashboard page](http://io.adafruit.com/dashboards).

Click new Dashboard. Name your dashboard: give it a description and click Create.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/675/medium640/lcds___displays_pool1.png?1760988967)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/674/medium640/lcds___displays_IO_-_Dashboards.png?1760988933)

First, to add a Toggle button block. A toggle button is useful if you have an ON or OFF type of state. You can configure what values are sent on press and release.

From the dashboard, click New Block. Select the Toggle Button.

From the feed list, connect the Toggle Button to the swimming feed.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/676/medium640/lcds___displays_pool3.png?1760988999)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/677/medium640/lcds___displays_pool4.png?1760989035)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/678/medium640/lcds___displays_pool5.png?1760989045)

Next, configure the block:

Set the block title to Pool Status.

Change the _Button On Text_ to Open.&nbsp;Set the Button On Value to 1.

Change the _Button Off Text_ to Closed.&nbsp;Set the Button Off Value to 0.

Click Create block.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/679/medium640/lcds___displays_pool6.png?1760989072)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/680/medium640/lcds___displays_pool7.png?1760989109)

The dashboard should look like the screenshot below. Next, let's add a second block to the dashboard - a text box.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/681/medium800/lcds___displays_pool8.png?1760989152)

[The Text Box block](https://learn.adafruit.com/adafruit-io-basics-dashboards/adding-blocks#step-2231730) can be used to send data as well as view data. In this project, we will use it to view the string of text printed to the MagTag display.

From the dashboard, click New Block.

Select the Text Box block.

From the feed list, Select the MagTag. Then, select the MagTag - 2.9" E-Ink Display.

Optionally set the font size.

Click Create Block.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/682/medium640/lcds___displays_pool9.png?1760989182)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/683/medium640/lcds___displays_pool10.png?1760989223)

![](https://cdn-learn.adafruit.com/assets/assets/000/140/684/medium640/lcds___displays_pool11.png?1760989377)

The dashboard should look like the following screenshot. To make the dashboard more visually appealing, you can [re-arrange the blocks on the dashboard](https://learn.adafruit.com/adafruit-io-basics-dashboards/editing-a-dashboard#rearrange-blocks-on-a-dashboard-3155934).

![](https://cdn-learn.adafruit.com/assets/assets/000/140/685/medium800/lcds___displays_pool13.png?1760989396)

# No-Code Pool Party Notifier

## Usage

## Using the Pool Notifier

Click the On button to raise the flag, change the MagTag's display and set the pool timer.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/862/medium800thumb/lcds___displays_phone-loop.jpg?1762128360 )

After an hour has passed, the flag will go back down and the MagTag's display will change to reflect that the pool is closed.

## Sharing the Pool Dashboard

**By default, dashboards on Adafruit IO are set to&nbsp;private**. This makes the dashboard visible to only you. You'll be the&nbsp; **only** &nbsp;person able to view, edit, and modify both the dashboard and the values of the feeds.&nbsp;

To share the dashboard with someone else - [follow along with this guide page's instructions](https://learn.adafruit.com/adafruit-io-basics-dashboards/sharing-a-dashboard).

## Text Size

Increase text size (component settings on IO) and use whitespace to format things (newlines and spaces in the multi-line text block will be heeded on the display).

With some trial/error, the text could be more centered.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/863/medium800/lcds___displays_hero-blocks.jpg?1762128390 )

## Change the Delay Time

You can change the delay by modifying the Action's [delay settings](https://io.adafruit.com/actions-docs/blocks/uncategorized/delay_settings.html). We can increase or decrease the delay using a different block.

![](https://cdn-learn.adafruit.com/assets/assets/000/140/866/medium800/lcds___displays_delay.jpg?1762129071 )


## Featured Products

### Adafruit MagTag - 2.9" Grayscale E-Ink WiFi Display

[Adafruit MagTag - 2.9" Grayscale E-Ink WiFi Display](https://www.adafruit.com/product/4800)
The Adafruit MagTag combines the ESP32-S2 wireless module and a 2.9" grayscale E-Ink display to make a low-power IoT display that can show data on its screen even when power is removed! The ESP32-S2 is great because it builds on the years of code and support for the ESP32 and also adds...

In Stock
[Buy Now](https://www.adafruit.com/product/4800)
[Related Guides to the Product](https://learn.adafruit.com/products/4800/guides)
### Micro Servo with 3-pin JST PH 2mm Cable - TowerPro SG92R

[Micro Servo with 3-pin JST PH 2mm Cable - TowerPro SG92R](https://www.adafruit.com/product/4326)
This tiny little servo can rotate approximately 180 degrees (90 in each direction), and works just like the standard kinds you're used to but&nbsp;_smaller_. You can use any servo code, hardware or library to control these servos. Good for beginners who want to make stuff move...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4326)
[Related Guides to the Product](https://learn.adafruit.com/products/4326/guides)
### Blue USB Type C to USB A Cable with 540 Degree Rotating End

[Blue USB Type C to USB A Cable with 540 Degree Rotating End](https://www.adafruit.com/product/6278)
Some days we're feeling extra fancy here at the 'fruit warehouse, and we have a big soft spot for colorful&nbsp;cables that make our projects look like Transformers. Like, peep [this fully reversible pink/purple Blinka-inspired cable](https://www.adafruit.com/product/4111)....

Out of Stock
[Buy Now](https://www.adafruit.com/product/6278)
[Related Guides to the Product](https://learn.adafruit.com/products/6278/guides)
### Adafruit IO+ Subscription Pass – One Year

[Adafruit IO+ Subscription Pass – One Year](https://www.adafruit.com/product/3792)
The all-in-one Internet of Things service from Adafruit you know and love is now _even better_ with IO+. The 'plus' stands for MORE STUFF! More feeds, dashboards, storage, speed. Power up your [Adafruit IO](https://io.adafruit.com/) with the $99 pass for 1 year of the...

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

## Related Guides

- [Adafruit MagTag](https://learn.adafruit.com/adafruit-magtag.md)
- [No-Code Battery Monitoring with WipperSnapper](https://learn.adafruit.com/no-code-battery-monitoring-with-wippersnapper.md)
- [Adafruit IO Basics: Dashboards](https://learn.adafruit.com/adafruit-io-basics-dashboards.md)
- [Memento Photo Capture with itsaSNAP](https://learn.adafruit.com/memento-photo-capture-with-itsasnap.md)
- [Creating MagTag Projects with CircuitPython](https://learn.adafruit.com/creating-magtag-projects-with-circuitpython.md)
- [No-Code Rain Sensing Smart Desktop Umbrella Stand](https://learn.adafruit.com/no-code-rain-sensing-smart-desktop-umbrella-stand.md)
- [MagTag Showerthoughts and Quotes](https://learn.adafruit.com/magtag-showerthoughts.md)
- [How to use Blockly for Actions on Adafruit IO](https://learn.adafruit.com/how-to-use-blockly-for-actions-on-adafruit-io.md)
- [Cheerlights Holiday Wreath with Animations](https://learn.adafruit.com/cheerlights-led-animations.md)
- [ Memory-saving tips for CircuitPython](https://learn.adafruit.com/memory-saving-tips-for-circuitpython.md)
- [MagTag Covid Tracking Project IoT Display](https://learn.adafruit.com/magtag-covid-tracking-project-iot-display.md)
- [MagTag 3D Printed Stand Case](https://learn.adafruit.com/magtag-3d-printed-stand-case.md)
- [Language Flashcards on the MagTag](https://learn.adafruit.com/magtag-flashcards.md)
- [Using Piezo Buzzers with WipperSnapper](https://learn.adafruit.com/using-piezo-buzzers-with-wippersnapper.md)
- [Ikea Vindriktning Hack with QT Py ESP32-S3 and Adafruit IO](https://learn.adafruit.com/ikea-vindriktning-hack-with-qt-py-esp32-s3-and-adafruit-io.md)
- [MagTag Tides Viewer](https://learn.adafruit.com/magtag-tides-viewer.md)
