Pip-Watch (Personal Information Panel) is an open-source smart watch with an ePaper display, a bluetooth modem, and a Li-Ion accumulator.

Similar projects worth following
Pip-Watch uses a small ePaper/eInk electrophoretic display (EPD). Electrophoretic displays have high contrast even in sun light, and very low power consumption, making them suitable for always-on battery-powered embedded devices. Low power consumption comes from the fact that the EPD draws no power when just displaying still image; it needs energy only when redrawing the screen.

Communication with a mobile phone (or any internet-connected device) is via a Bluetooth modem module. As the modem implements the standard Bluetooth Serial Port Profile (SPP), Pip-Watch can be controlled over any terminal application even by hand. A smartphone app will transmit notifications to Pip-watch when an SMS arrives, a calendar event pops out, or an incoming call is being received.

Pip-Watch is powered by a small Li-Ion accumulator that is recharged via a standard Micro USB connector. When connected, the USB can be also used to communicate with the device.

Hardware Block Schema

Hardware is built around the STM32F103 microcontroller. CPU timing is derived from an 8MHz crystal; it provides a clock stable enough for an on-chip USB interface to function correctly. An auxiliary low-speed precision 32.768kHz crystal is used for real-time clock (RTC), which is also included in the microcontroller.

Bluetooth modem is implemented by a pre-built commercial module. The first prototype uses OEMSPA310 from connectBlue, later the BTM431 from Laird will be used. The BTM431 has the advantage of lower power consumption and smaller size. These modules implement complete Bluetooth stack beginning with built-in ceramic antenna, and ending with a UART interface. Both modules are controlled via AT-style modem commands (albeit different between the types).

All power is normally delivered from Li-On battery, type Nokia BL-4C. The battery is charged form a Micro-USB connector via a charging controller MCP73831. The whole device runs at 3.3V, which is generated by a low-drop regulator LD59015C33R from a battery voltage. Current battery voltage is monitored by an A/D converter in the microcontroller, so the remaining battery charge can be computed and displayed on screen.

The display is implemented by GDE021A1, a small 3” electrophoretic display with the resolution 172x72 pixels. Communication with the display is via simple SPI-like interface. The display requires a charge pump with a coil and MOSFET.

Besides the display, the rest of human interface comprises of at least three buttons, three LEDs, and a vibrating motor(s) to give tactile notifications.

Software Block Schema

Software is organized in three layers. At the bottom there is a hardware access library from STM. The middle layer is composed mainly of the FreeRTOS operating system and a graphics drawing library u8g, both open-source. FreeRTOS is a simple multi-tasking operating system with pre-emptive scheduling, and with support for simple inter-task communication primitives such as queues and semaphores. The u8g is a drawing library: it is used to draw text and graphics such as lines and circles into a frame-buffer. The frame-buffer is then transmitted to the display.

The top software layer are tasks. The main tasks include a “Bluetooth Modem” task which communicates with a smartphone via Bluetooth, a “Battery” task that monitors battery charge using A/D converter, and a “Display Drawing” task that refreshes the display. Other tasks may be added as needed.

  • 1 × GDE021A1 EPD display 3"
  • 1 × STM32F103 Microprocessors, Microcontrollers, DSPs / Microcontrollers (MCUs)
  • 1 × Laird BTM431 / or connecBlue OEMSPA310 Bluetooth modem
  • 1 × Nokia BL-4C Li-On Battery
  • 1 × MCP73831 Power Management ICs / Power Supply Support

View all 8 components

  • Bluetooth Power Modes

    Jara09/29/2014 at 18:41 0 comments

    In previous post we discussed CPU power consumption in PIP-Watch. Today we look into Bluetooth power consumption because it is significant as much as the CPU power.

    Bluetooth Radio States

    Practically the only significant part that consumes a lot of power in Bluetooth modems is their radio transceiver. If the radio is switched off the module draws only small quiescent current (less than 2mA in BTM431). Radio is activated by modem to perform one of the following three actions:

    • to do a page scan,
    • to do an inquiry scan,
    • to transfer data to a connected device.

    Continue reading here...

  • Processor Low-power Optimizations in PIP-Watch

    Jara09/28/2014 at 13:22 0 comments

    The PIP-Watch is a battery-powered device that will be continuously on, hence the average power consumption is one of the most important engineering aspects.

    In this post I will go through two simple steps of optimizing CPU power – sleep modes and lowering the clock frequency. In a next separate post we will look into Bluetooth module power.

    Continue reading here...

  • PIP-Watch Boards & Assembly

    Jara09/17/2014 at 20:57 0 comments

    The printed circuit boards for PIP-Watch Zero came from Pragoboard fab on Friday 12 Sept. I ordered three pieces because the cost is practically identical as for two or one.

    PIP-Watch Zero: Pristine PCBs from fab

    On Saturday I assembled one board, and on Sunday I tested it and started working on firmware. I had some problems with PLL in the microcontroller - the CPU hard-resetted the instant the PLL was enabled. Eventually I found a bad solder joint on one of the CPU's power supply pins.

      PIP-Watch Zero: Assembled board from the bottom

    PIP-Watch Zero: Top PCB side, unfolded.

    So far I tested the CPU & JTAG, the eInk EPD display, Bluetooth modem access (but not the BT communication itself), and LEDs. I had issues with bad solder joints (both shorts and cold joints) because the PCB footprint for the CPU (the LQFP64 package) was apparently designed for the reflow process, and it is not suitable for hand soldering. Silly KiCAD libraries!

    PIP-Watch Zero: Assembly

    Measuring crystal frequencies:


  • PIP-Watch “Zero” – Schematic, BOM, and Layout

    Jara09/07/2014 at 18:39 0 comments

    Schematic [PDF], BOM, and PCB layout for my PIP-Watch “Zero” was completed during this week. Layout data was sent to a local PCB fab – The board should be ready and shipped during the next week.

    The PCB is is 80mm*35mm. The top side is dedicated to the EPD display, battery (underneath the display), 3 push-buttons and 4 LEDs. The bottom side carries all the main electronics – processor, bluetooth modem, display driver, and power source.

    All design files are in the project repository.

    Layout Top side:

    Layout bottom side:

  • Schematic & BOM

    Jara08/24/2014 at 20:28 0 comments

    I finished a schematic of PIP-Watch Zero, the schematic PDF is on github. I also prepared BOM, which is a basis for a footprint library, and started the PCB layout. The board will be about 80x35mm. The top side will be almost empty, it will only hold buttons and LEDs. Most of the components will be on the bottom side. Battery will be on the top side just under the display.

  • Functional Prototype [Video]

    Jara08/13/2014 at 20:32 0 comments

    Video: PIP-Watch - A Functional Prototype

    Breadboard Photo:

  • FreeRTOS tasks and queues

    Jara07/27/2014 at 22:01 0 comments

    In my previous homebrew projects I did not use any operating system in the embedded processors. Software was programmed on a bare-metal hardware. In my Talking Clock project I created a simple cooperative event-processing abstraction layer, but it was very limited.

    In PIP-Watch there are multiple independent tasks that should execute concurrently and exchange information at specific points. These are: Bluetooth modem task, Display drawing task, and Battery monitoring task.

    Continue reading...

  • Framebuffer Drawing with u8glib [VIDEO]

    Jara07/02/2014 at 21:36 0 comments

    GDE021A1 is a graphics display with a resolution 172x72 pixels, each pixel is 2 bits deep (4 shades of grey). The display has an internal controller SSD1606 with a framebuffer. The framebuffer size is 172*72*2/8=3096 Bytes. When the display is powered up, the system processor sends initialization sequence that first sets up controller's internal registers (the controller SSD1606 is fairly generic) and then sends new framebuffer content. The display controller then autonomously pushes the framebuffer contents to the physical screen.

    The display controller can be configured to orient the framebuffer almost any way. I configured it into a landscape mode, with the X-axis going right and the Y-axis down, as shown on the photo.

    Continue reading...

  • EPD Display Working!

    Jara06/18/2014 at 21:37 0 comments

    Today I have managed to get the GDE021A1 ePaper display (EPD) working! I used my minimal EPD-Driver board, which implements a flat-flex cable connector and a booster circuit for the display. The booster generates high voltages needed for display operation (around +-25V). The display is driven by STM32F101 Cortex-M3 CPU, mounted on a universal PCB. The picture below depicts my workbench setup:

    Continue reading ->

  • Li-On Battery Charging (and Discharging)

    Jara06/11/2014 at 20:18 0 comments

    In my PIP-Watch project I will use a Li-On battery to provide power. Li-On batteries are easy to use in hobby projects: they are light, small, with high capacity, and they come in variety of sizes. Most (not all) Li-On batteries have nominal voltage 3.7V, hence you can directly power your standard 3.3V digital logic directly, using only a simple low-drop linear regulator (e.g. LD59015).

    For my first experiments I chose Nokia BL-4C Li-On battery. It’s nominal voltage is 3.7V, charging (maximal) voltage is 4.2V, the capacity is 860mAh.

    Continue reading...

View all 14 project logs

Enjoy this project?



fabian wrote 07/21/2018 at 07:47 point

Is possible to add LoraWAN to this device? For example mesh communication emergency?

(like or other)

  Are you sure? yes | no

Mohsen Abbasi wrote 01/21/2015 at 07:55 point

Hi, I can make a package fot it. Tell me when you need (

  Are you sure? yes | no

Adam Fabio wrote 06/18/2014 at 02:10 point
Great Project - thanks for entering PIP-Watch in The Hackaday Prize! Less power to the display means more mAh available for other stuff - like radios to connect! Try to get a few images uploaded when you can - every little bit helps you on the road to winning!

  Are you sure? yes | no

Jara wrote 05/23/2014 at 21:27 point
Search for GDE021A1 on I got mine in April for $14, however, currently they sell it for $45, which is plain ridiculous :-( Or try contacting the manufacturer:

  Are you sure? yes | no

jaromir.sukuba wrote 05/23/2014 at 09:37 point
Interesting project.
Just curious, where did you get that display from? Seems like common component distributors doesn't sell it.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates