# Adafruit S-35710 Low-Power Wake Up Timer Breakout

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/129/898/medium800/adafruit_products_5959-04.jpg?1715181153)

The **Adafruit S-35710 Wake Up Timer** is a low power 'watchdog timer' chip that can be programmed to alert with a digitally-configurable alarm from 1 second up to 194 days, thanks to a 24-bit seconds counter.

It's an interesting alternative to a real time clock or internal sleep timer and might be useful for some ultra-low-power projects that want to have a separate (and possibly separately-powered) chip to handle time-keeping and alarms.&nbsp;[We covered this component on EYE ON NPI and thought it would make for a nice breakout in the shop](https://www.youtube.com/watch?v=htl2uyHUViM).

![](https://cdn-learn.adafruit.com/assets/assets/000/129/899/medium800/adafruit_products_5959-02.jpg?1715181239)

Usage is pretty simple: on I2C write of the timer register, the chip starts counting from 0 seconds up and the OUT pin goes high. When the count matches the timer register, the OUT pin goes low.

Simple, and like we mentioned, it's very low power, drawing only 0.2uA. The output is open-drain, and if you want to have it be inverted, there's a switch that will put the signal through an N-channel FET so the polarity goes the other way.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/900/medium800/adafruit_products_5959-03.jpg?1715181429)

One thing to note is that on power-up the OUT line is default low, which means its not good for a low-power sleep manager, only for watch-dog-like timings. That is to say, you cannot connect this to your microcontroller's reset or enable line to self-depower because it will be disabled/reset when powered up.

Still, maybe a useful chip for some folks who want to signal after a long delay or have a more complex power management scheme.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/901/medium800/adafruit_products_5959-01.jpg?1715181473)

To get you going fast, we spun up a custom-made PCB in the [**STEMMA QT** form factor](https://www.adafruit.com/?q=stemma%20qt%20sensor "STEMMA QT form factor"), making it easy to interface with. The [STEMMA QT connectors](https://learn.adafruit.com/introducing-adafruit-stemma-qt/what-is-stemma-qt) on either side are compatible with the [SparkFun Qwiic](https://www.sparkfun.com/qwiic) I2C connectors. This allows you to make solderless connections between your development board and the S-35710 or to chain it with a wide range of other sensors and accessories using a [**compatible cable**](https://www.adafruit.com/?q=stemma%20qt%20cable).

# Adafruit S-35710 Low-Power Wake Up Timer Breakout

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/129/905/medium800/adafruit_products_double.jpg?1715188016)

The default I2C address is **0x32**.

## Power Pins

- **VIN** - this is the power pin. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V micro like Arduino, use 5V.
- **GND** - common ground for power and logic.

## I2C Logic Pins

- **SCL** - I2C clock pin, connect to your microcontroller's I2C clock line. This pin can use 3-5V logic, and there's a **10K pullup** on this pin.
- **SDA** - I2C data pin, connect to your microcontroller's I2C data line. This pin can use 3-5V logic, and there's a **10K pullup** on this pin.
- **[STEMMA QT](https://learn.adafruit.com/introducing-adafruit-stemma-qt) -** These connectors allow you to connect to to dev boards with **STEMMA QT** (Qwiic) connectors or to other things with [various associated accessories](https://www.adafruit.com/?q=JST%20SH%204).

## Other Pins

- **OUT** - This is the output pin from the S-35710. When the S-35710 is actively counting, the pin is high. When the count matches the timer register, the pin goes low. One thing to note, is that on power-up **OUT** is default low, which means it's not good for a low-power sleep manager, only for watch-dog-like timings.
- **!RST** - This is the reset pin. If this pin is pulled low, it will reset the timer.

## Output Inverter Switch

At the top of the board is a slide switch. This switch determines whether the **OUT** pin is the default open-drain (high when counting, low otherwise) or open-collector (low when counting, high otherwise).

To keep the&nbsp; **OUT** as the default, select&nbsp; **NOR** on the switch for normal. To change the **OUT** to inverted (still open-drain), select **INV** for inverted on the switch.

## I2C Pullup Jumpers

On the back of the board are three connected jumper pads labeled **Pullups** on the board silk. These jumpers connect the 10K pullups to the SDA and SCL lines. Cut these jumpers if you want to disconnect the 10K pullups from the I2C clock and data pins.

## Power LED and LED Jumper
- **Power LED -** In the upper left corner, above the STEMMA connector, on the front of the board, is the power LED, labeled **on**. It is a green LED.
- **LED jumper&nbsp;** - This jumper is located on the back of the board, to the right of the Adafruit logo on the board silk. Cut the trace on this jumper to cut power to the " **on**" LED.

![adafruit_products_onJumper.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/912/medium640/adafruit_products_onJumper.jpg?1715270613)

## Output LED and LED Jumper
- **Output LED -** In the upper right corner, behind the STEMMA connector, on the front of the board, is the output LED, labeled **out**. It is a red LED. This LED will be **on when the OUT pin is low** and **off when the OUT pin is high**.
- **LED jumper&nbsp;** - This jumper is located on the back of the board, to the left of the Adafruit logo on&nbsp;the board silk. Cut the trace on this jumper to cut power to the " **out**" LED.

![adafruit_products_outJumper.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/913/medium640/adafruit_products_outJumper.jpg?1715270623)

# Adafruit S-35710 Low-Power Wake Up Timer Breakout

## CircuitPython & Python

It's easy to use the **S-35710** with Python or CircuitPython, and the [Adafruit\_CircuitPython\_S35710](https://github.com/adafruit/Adafruit_CircuitPython_S35710) module. This module allows you to easily write Python code to set and monitor the timer alarm.

You can use this driver with any CircuitPython microcontroller board or with a computer that has GPIO and Python [thanks to Adafruit\_Blinka, our CircuitPython-for-Python compatibility library](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux).

## CircuitPython Microcontroller Wiring

First wire up the breakout to your board exactly as follows. The following is the breakout wired to a Feather RP2040 using the STEMMA connector:

- **Board STEMMA 3V** to **breakout** **VIN (red wire)**  
- **Board STEMMA GND** to **breakout** &nbsp;**GND (black wire)**  
- **Board STEMMA SCL** to **breakout** &nbsp;**SCL (yellow wire)**  
- **Board STEMMA SDA** to **breakout** &nbsp;**SDA (blue wire)**

![adafruit_products_featherStemma_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/926/medium640/adafruit_products_featherStemma_bb.jpg?1715283304)

The following is the breakout wired to a Feather RP2040 using a solderless breadboard:

- **Board 3V** to **breakout** **VIN (red wire)**  
- **Board GND** to **breakout** &nbsp;**GND (black wire)**  
- **Board SCL** to **breakout** &nbsp;**SCL (yellow wire)**  
- **Board SDA** to **breakout** &nbsp;**SDA (blue wire)**

![adafruit_products_featherBB_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/927/medium640/adafruit_products_featherBB_bb.jpg?1715283346)

## Python Computer Wiring

Since there are _dozens_ of Linux computers/boards you can use, we will show wiring for Raspberry Pi. For other platforms, [please visit the guide for CircuitPython on Linux to see whether your platform is supported](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux).

Here's the Raspberry Pi wired with I2C using the STEMMA connector:

- **Pi 3V** to **breakout** **VIN (red wire)**  
- **Pi GND** to **breakout** &nbsp;**GND (black wire)**  
- **Pi SCL** to **breakout** &nbsp;**SCL (yellow wire)**  
- **Pi SDA** to **breakout** &nbsp;**SDA (blue wire)**

![adafruit_products_piStemma_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/928/medium640/adafruit_products_piStemma_bb.jpg?1715283389)

Here's the Raspberry Pi wired with I2C using a solderless breadboard:

- **Pi 3V** to **breakout** **VIN (red wire)**  
- **Pi GND** to **breakout** &nbsp;**GND (black wire)**  
- **Pi SCL** to **breakout** &nbsp;**SCL (yellow wire)**  
- **Pi SDA** to **breakout** &nbsp;**SDA (blue wire)**

![adafruit_products_piBreadboard_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/929/medium640/adafruit_products_piBreadboard_bb.jpg?1715283435)

## Python Installation of S-35710 Library

You'll need to install the **Adafruit\_Blinka** library that provides the CircuitPython support in Python. This may also require enabling I2C on your platform and verifying you are running Python 3. [Since each platform is a little different, and Linux changes often, please visit the CircuitPython on Linux guide to get your computer ready](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux)!

Once that's done, from your command line run the following command:

- `pip3 install adafruit-circuitpython-s35710`

If your default Python is version 3 you may need to run 'pip' instead. Just make sure you aren't trying to use CircuitPython on Python 2.x, it isn't supported!

## CircuitPython Usage

To use with CircuitPython, you need to first install the **Adafruit\_CircuitPython\_S35710** library, and its dependencies, into the **lib** folder on your **CIRCUITPY** drive. Then you need to update **code.py** with the example script.

Thankfully, we can do this in one go. In the example below, click the **Download Project Bundle** button below to download the necessary libraries and the **code.py** file in a zip file. Extract the contents of the zip file, and copy the **entire**  **lib**  **folder** and the **code.py** file to your **CIRCUITPY** drive.

Your **CIRCUITPY/lib** folder should contain the following folders and file:

- **adafruit\_bus\_device/**
- **adafruit\_s35710.mpy**

![CIRCUITPY](https://adafruit.github.io/Adafruit_CircuitPython_Bundle/s35710_s35710_simpletest.py.png )

## Python Usage

Once you have the library `pip3` installed on your computer, copy or download the following example to your computer, and run the following, replacing **code.py** with whatever you named the file:

`python3 code.py`

## Example Code

**If running CircuitPython:** Once everything is saved to the **CIRCUITPY** drive, [connect to the serial console](https://learn.adafruit.com/welcome-to-circuitpython/kattni-connecting-to-the-serial-console) to see the data printed out!

**If running Python:** The console output will appear wherever you are running Python.

https://github.com/adafruit/Adafruit_CircuitPython_S35710/blob/main/examples/s35710_simpletest.py

First, the timer is instantiated over I2C. The alarm is set for 5 seconds. Then, in the loop, the clock from the timer is printed to the serial monitor, followed by the time remaining until the alarm ends. When the alarm is reached, it is reset to begin again for 5 seconds.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/930/medium800/adafruit_products_cp_serial.png?1715283605)

# Adafruit S-35710 Low-Power Wake Up Timer Breakout

## Python Docs

# Adafruit S-35710 Low-Power Wake Up Timer Breakout

## Arduino

Using the S-35710 breakout with Arduino involves wiring up the breakout to your Arduino-compatible microcontroller, installing the [Adafruit\_S-35710](https://github.com/adafruit/Adafruit_S-35710) library, and running the provided example code.

## Wiring

Wire as shown for a **5V** board like an Uno. If you are using a **3V** board, like an Adafruit Feather, wire the board's 3V pin to the breakout VIN.

Here is an Adafruit Metro wired up to the breakout using the STEMMA QT connector:

- **Board 5V** to **breakout** **VIN (red wire)**  
- **Board GND** to **breakout** &nbsp;**GND (black wire)**  
- **Board SCL** to **breakout** &nbsp;**SCL (yellow wire)**  
- **Board SDA** to **breakout** &nbsp;**SDA (blue wire)**

![adafruit_products_metro_stemma_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/918/medium640/adafruit_products_metro_stemma_bb.jpg?1715275464)

Here is an Adafruit Metro wired up using a solderless breadboard:

- **Board 5V** to **breakout** **VIN (red wire)**  
- **Board GND** to **breakout** &nbsp;**GND (black wire)**  
- **Board SCL** to **breakout** &nbsp;**SCL (yellow wire)**  
- **Board SDA** to **breakout** &nbsp;**SDA (blue wire)**

![adafruit_products_metro_bb_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/919/medium640/adafruit_products_metro_bb_bb.jpg?1715275477)

## Library Installation

You can install the **Adafruit\_S-35710** library for Arduino using the Library Manager in the Arduino IDE.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/914/medium800/adafruit_products_Arduino_Open_Library_Manager.png?1715273851)

Click the **Manage Libraries ...** menu item, search for **Adafruit\_S-35710** , and select the **Adafruit S-35710** &nbsp;library:

![](https://cdn-learn.adafruit.com/assets/assets/000/129/915/medium800/adafruit_products_lib.png?1715273996)

If asked about dependencies, click "Install all".

![](https://cdn-learn.adafruit.com/assets/assets/000/129/916/medium800/adafruit_products_depends.png?1715274012)

If the "Dependencies" window does not come up, then you already have the dependencies installed.

Warning: If the dependencies are already installed, you must make sure you update them through the Arduino Library Manager before loading the example!

## Example Code
https://github.com/adafruit/Adafruit_S-35710/blob/main/examples/s35710_simpletest/s35710_simpletest.ino

Upload the sketch to your board and open up the Serial Monitor ( **Tools -\> Serial Monitor** ) at 115200 baud. You'll see the S-35710 recognized over I2C. Then, an alarm is set for 3 seconds. In the loop, the internal timer is printed out every second along with the alarm. Once the internal timer reaches 3 seconds, the alarm expires.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/917/medium800/adafruit_products_serial_arduino.png?1715274634)

# Adafruit S-35710 Low-Power Wake Up Timer Breakout

## Arduino Docs

# Adafruit S-35710 Low-Power Wake Up Timer Breakout

## Downloads

## Files

- [S-35710 Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/129/902/original/S35710_I_E.pdf?1715181906)
- [EagleCAD PCB Files on GitHub](https://github.com/adafruit/Adafruit-S-35710-Breakout-PCB)
- [Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20S-35710%20Low-Power%20Wake%20Up%20Timer%20Breakout.fzpz)

## Schematic and Fab Print
![](https://cdn-learn.adafruit.com/assets/assets/000/129/903/medium800/adafruit_products_schem.png?1715182270)

![](https://cdn-learn.adafruit.com/assets/assets/000/129/904/medium800/adafruit_products_fab.png?1715182278)


## Primary Products

### Adafruit S-35710 Low-Power Wake Up Timer Breakout

[Adafruit S-35710 Low-Power Wake Up Timer Breakout](https://www.adafruit.com/product/5959)
The **Adafruit S-35710 Wake Up Timer** is a low power 'watchdog timer' chip that can be programmed to alert with a digitally-configurable alarm from 1 second up to 194 days, thanks to a 24-bit second counter. It's an interesting alternative to a real time clock or...

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

## Related Guides

- [Raspberry Pi Video Synth with Blinka and Processing](https://learn.adafruit.com/raspberry-pi-video-synth-with-blinka-and-processing.md)
- [Building CircuitPython](https://learn.adafruit.com/building-circuitpython.md)
- [Deciphering Strange Arduino Code](https://learn.adafruit.com/deciphering-strange-arduino-code.md)
- [Hang out your washing reminder - Adafruit IO + Vibration switch](https://learn.adafruit.com/hang-out-your-washing-reminder-adafruit-io-vibration-switch.md)
- [Adafruit ItsyBitsy RP2040](https://learn.adafruit.com/adafruit-itsybitsy-rp2040.md)
- [Sous-vide controller powered by Arduino - The SousViduino!](https://learn.adafruit.com/sous-vide-powered-by-arduino-the-sous-viduino.md)
- [EZ Make Oven](https://learn.adafruit.com/ez-make-oven.md)
- [CircuitPython Webcam with OV2640](https://learn.adafruit.com/circuitpython-webcam-with-ov2640.md)
- [Adafruit 2.13" 250x122 Quad-Color eInk](https://learn.adafruit.com/adafruit-2-13-250x122-quad-color-eink.md)
- [Qualia S3 iOS Photo Display with itsaSNAP](https://learn.adafruit.com/qualia-s3-ios-photo-display-with-itsasnap.md)
- [QT Py RP2040 USB to Serial MIDI Friends](https://learn.adafruit.com/qt-py-rp2040-usb-to-serial-midi-friends.md)
- [Accessing and Using Adafruit PCB Design Files](https://learn.adafruit.com/accessing-and-using-adafruit-pcb-design-files.md)
- [Adafruit MIDI FeatherWing](https://learn.adafruit.com/adafruit-midi-featherwing.md)
- [Adafruit FunHouse](https://learn.adafruit.com/adafruit-funhouse.md)
- [Introducing ItsyBitsy M0 Express](https://learn.adafruit.com/introducing-itsy-bitsy-m0.md)
