No Description

Michael Buesch 23905371c5 Bump version 4 years ago
doc 69e29dd35a Add images 4 years ago
firmware 38d736dc87 Move bitops to c file 4 years ago
schematics 99d6560886 Move schematics 4 years ago
COPYING d5fdd08c5a Add a copy of the GPL 4 years ago
README.rst 99d6560886 Move schematics 4 years ago
makerelease.sh ef8d0662a0 Add support for t24/t45 4 years ago
version.txt 23905371c5 Bump version 4 years ago

README.rst

Power bank keep alive device
============================

`https://bues.ch/cgit/pbwake.git/ `_

Pbwake is a small USB stick to prevent power banks from shutting off the outputs and falling into deep sleep mode.

Pbwake uses tiny load pulses to simulate a real load on the power bank outputs. The lengths of the load pulse active (high) and inactive (low) phases are pseudo random within configurable bounds.

Pbwake is in a low power state during the inactive (low) phases. Therefore it doesn't waste too much power and guarantees high battery life of the power bank.


Tested power banks
==================

Power banks this has been tested with are:

* Anker PowerCore 20100 model A1271.
* No-name power bank 2200 mAh / 11 Wh with integrated flashlight LED.


Microcontroller
===============

Pbwake supports the following microcontrollers:

* ATTiny-13
* ATTiny-25
* ATTiny-45
* ATTiny-85
* ATMega-328P


Hardware schematics
===================

Schematics: `schematics/pbwake-attiny/pbwake.pdf `_

The hardware may be built manually on a simple prototype board.

Board front side:

.. image:: doc/pbwake_front.jpg

Board back side:

.. image:: doc/pbwake_back.jpg


Prebuilt firmware images
========================

The release archives of pbwake contain prebuilt `.hex` files for all supported microcontrollers in the `hex` directory. These hex files can be flashed directly to the microcontroller with a any tool of your choice (e.g. Atmel Studio or avrdude).

The corresponding fuse settings can be found in the file `fuses.txt` in the same directory.


Building the firmware
=====================

The firmware build needs the following tool chain:

* Unix-like operating system
* GNU make
* AVR GCC
* AVR Binutils
* avrdude

Run the following commands to build the firmware:

.. code:: sh

cd firmware
make DEV=t85

Please specify the target microcontroller using the DEV variable as shown above.

Valid values are:

=============== ===========
Microcontroller make option
=============== ===========
ATTiny 13 `DEV=t13`
ATTiny 25 `DEV=t25`
ATTiny 45 `DEV=t45`
ATTiny 85 `DEV=t85`
ATMega 328P `DEV=m328p`
=============== ===========

Additional build options that can be passed to `make`:

================ ======= ================================================================
make option default description
================ ======= ================================================================
CONF_HIGH_MIN_MS 4 Minimum length of high-phase (in milliseconds).
CONF_HIGH_MAX_MS 6 Maximum length of high-phase (in milliseconds).
CONF_LOW_MIN_MS 40000 Minimum length of low-phase (in milliseconds).
CONF_LOW_MAX_MS 55000 Maximum length of low-phase (in milliseconds).
================ ======= ================================================================


Flashing the firmware after build
=================================

Run the following commands to flash the firmware to the target microcontroller:

.. code:: sh

cd firmware
make DEV=t85 print_fuses
make DEV=t85 write_fuses
make DEV=t85 write_mem

Or alternatively use any other of the available AVR flashing tools to program the .hex file and fuses.


License
=======

Copyright (c) 2020 Michael Buesch

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.