Giter Club home page Giter Club logo

pijuice's Introduction

PiJuice Logo

PiJuice

Resources for the PiJuice range (complete with our revolutionary PiAnywhere technology – the best way to take your Pi off the grid!). Originally funded on Kickstarter.

Where to buy a PiJuice?

Below you can find a list of our PiJuice range of products:

We also have a variety of resellers and distributors that stock our PiJuice range. You can often find them by just typing in the product SKU (shown on each product page above the title with format PIS-0000) or product title into Google in your country, however we also have a list of distributors on our website for your reference. If you are struggling to find stock of any particular products, feel free to send us an email to [email protected] and we will do our best to help you find what you need.

Board overview

PiJuice is a fully uninterruptable / uninterupted power supply that will always keep your Raspberry Pi powered! It has a real time clock (RTC) for time tracking and scheduled tasks when the Pi is offline (as well as remote on/off of your Pi). It also has an integrated microcontroller (MCU) chip which will manage soft shut down functionality, a true low power deep sleep state and intelligent start up.

The tri-coloured RGB LEDs will allow you to keep track of the battery charge levels and other info (they are programmable). There are also three programmable buttons which will allow you to trigger events or customisable scripts aside from their predefined functions. PiJuice only uses five of the Pi's GPIO pins (just power and I2C), the rest are free and made available via the stacking header which allows for other boards to be used along side PiJuice. The board can be powered directly from the grid with the standard Raspberry Pi PSU, via an on board battery, via external batteries, solar panels, wind turbines and other renewable sources.

The board has a Raspberry Pi HAT or pHAT compatible layout, with onboard EEPROM (you can disable the EEPROM if you want also). It has been designed for the Raspberry Pi A+, B+, 2B, 3A+, 3B and 3B+. It is also compatible with the Raspberry Pi Zero v1.3 and Zero W v1.1 or any other Pi with a 40 way GPIO header.

PiJuice is a fully CE and FCC tested design and battery safety tests have also been carried out for peace of mind when using in educational or industrial settings.

Installing the software

PiJuice will actually work straight out of the box, with no software, to power the Pi and for some other basic functionality. However to get the most out of PiJuice you really need to install the software packages. For PiJuice we have created a Raspbian / Debian Package to make it extra simple to obtain and install the necessary software. At the command line simply type:

sudo apt-get install pijuice-gui

After a restart a new icon "PiJuice Settings" will appear under Menu>Preferences.

pijuice

If you wish to install just the light version of PiJuice with no GUI:

sudo apt-get install pijuice-base

This is particularly indicated for Raspbian Lite or an headless installation.

Please refer to our software section to find out more.

Basic functionality

Important note: If your PiJuice was supplied with a battery fitted, you will need to remove the little plastic battery isolation tab. If you don't remove that plastic tab, your PiJuice will not charge up, and will report 0% battery level.

Once the battery is slotted into place (make sure you remove the little plastic battery isolation tab too!) LED1 will start blinking in green. This doesn't mean your Raspberry Pi is yet receiving power it is just telling you that the PiJuice MCU is receiving power and is in standby.

Power On and Off the Pi

Buttons_LEDs

If you wish to start your Raspberry Pi using the PiJuice SW1 you'll have to connect the micro USB to the PiJuice directly.

To power on the Raspberry Pi single press SW1 briefly as you would for a click of a mouse. If the micro USB is directly connected to the Raspberry Pi then it will power up immediately without you needing to press the SW1. To power off press and keep pressed SW1 for about 10 seconds. A "halt" command will be received by the OS and the Raspberry Pi will shut down in the proper manner. To remove power to the Pi press and keep pressed SW1 for at least 20 seconds. This will remove power from the Raspberry Pi without issuing a "power off" command to the OS. This approach should only be used in case nothing else works or if the OS is mounted in read only mode otherwise data on SD card may be corrupted.

Providing power to the board

PiJuice can recharge its on board battery in several ways and via different power sources. The most common approach is to use the standard Raspberry Pi PSU or a micro USB PSU with similar characteristics but solar panels, wind mills, and other renewable power sources can be used too. When the PiJuice is installed over the Raspberry Pi you can power both the Pi and PiJuice via either the Pi's micro USB or the PiJuice's one. That's because the power lines on the GPIO header are shared by both boards and this allows to effectively be able to charge the battery independently from which micro USB connector you use. Other ways of providing power to the PiJuice is directly via the GPIO pin headers or one of the other connectors on board. See the hardware section for more information.

Buttons and LEDs

SW1 and LED1 have predefined default functions associated.

  • SW1 - Power button:

    • Single brief press to power on.
    • Long press of at least 10 seconds to halt (soft shutdown).
    • Long press of at least 20 seconds to cut power (hard shutdown).
  • LED1 - Charge status:

    • with Pi off
      • #0000FF Blue steady: Battery fully charged
      • #00FF00 Green blinking: Charge over 50%
      • #0000FF Blue blinking: Charging
      • #FF0000 Red blinking: Low battery
    • with Pi on
      • #00FF00 Green blinking: Power on - Battery over 50%
      • #0000FF Blue blinking: Charging
      • #FFA500 Orange blinking: Low battery - level < 50%
      • #FF0000 Red blinking: Low battery - level < 15% or battery absent

On board the PiJuice HAT there are three buttons and two multicolour LEDs and on the PiJuice Zero pHAT, 1 button and two multicolour LEDs; please refer to the hardware and the software sections to find out more.

Power management

The PiJuice provides an onboard intelligent on/off switch allowing you to have control on when the Raspberry Pi will be switched on or off without having to plug or unplug the PSU as you would normally have to do.

Note: Turning on the Raspberry Pi via the onboard intelligent switch only works when the power is provided to the micro USB on the PiJuice.

When the Raspberry Pi is off, for example due to a scheduled power off via the onboard RTC, the PiJuice will enter a low power deep-sleep state which guarantees only a minute fraction of the battery charge will be required to keep the circuitry on ensuring long periods of inactivity between recharges.

This is for example ideal when dealing with recyclable energy sources like solar panels. At all times the PiJuice will still be able to trigger a wake-up call to the Raspberry Pi via interrupt or calendar event.

The PiJuice has been designed so that it can accept power sources of different nature. It accepts power sources providing between 4.2V and 10V which can be applied on different onboard connectors.

You can find out more in the hardware section.

UPS and remote functionality

One of the main functionalities provided by PiJuice is to ensure that the Raspberry Pi always remains on when it needs to and shuts down safely when low on power. It provides a hardware watchdog timer to keep your Raspberry Pi up and running for mission-critical remote applications and works as a full uninterrupted / uninterruptible power supply solution.

The PiJuice HAT comes with an onboard 1820 mAh "off the shelf" Lipo / LiIon battery which guarantees ~4/6 hours of up time. PiJuice is compatible with any single cell LiPo or LiIon battery so bigger (or even smaller) batteries can be chosen especially depending on CPU load and connected hardware which may cause significant variations to the overall maximum up time of the Raspberry Pi. That's why we have provided means to support bigger battery sizes like 5000 or 10,000 mAH+ to help your PiJuice last up to 24 hrs +.

The batteries can be replaced without downtime as long as an alternative power source is provided in the meantime. You could for example even use a battery bank whilst replacing either the onboard battery or one connected to the screw terminal (you shouldn't connect a battery on board and to screw terminal at same time though or you will fry your PiJuice). Using a standard PSU will of course work too and that configuration is in fact ideal for a UPS setup.

The PiJuice Zero pHAT comes with a 3-pin JST battery connector for directly connecting any single cell LiPo or LiIon. In the Pi-Supply store we stock a large range of various capacity of LiPo batteries that have been tested and are compatible with the PiJuice boards - available batteries

Graphic and Terminal based user interface

A graphical user interface (GUI) is available via the pijuice-gui Raspbian package and provides a full power management API for the Raspbian desktop that allows auto shutdown capability when running low on batteries.

It also provides a means to attach customisable scripts to power events and reporting of the battery status. You can find out more in the software section.

For a headless installation the pijuice-base Raspbian package provides a terminal based equivalent (pijuice_cli) with the same capabilities as the GUI one.

Technical specs summary

  • The EEPROM can be disabled and its I2C address changed for increased compatibility with other boards
  • BP7X battery - original battery from Motorola Droid 2 (A955) - 1820mAh battery
  • Microcontroller is an ST Micro STM32F030CCT6 ARM CortexM0,48MHz,F256KB,R32KB,I2C,SPI,USART,2.4-3.6V
  • Charge IC - BQ24160RGET Charger IC Lithium-Ion/Polymer, 2.5A, 4.2-10V
  • Fuel gauge IC - LC709203FQH-01TWG Battery Fuel Gauge, 1-Cell Li-ion, 2.8%
  • EEPROM - CAT24C32WI-GT3 EEPROM, I2C, 32KBIT, 400KHZ, 1V7-5V5
  • Optional spring pin - Mil-Max 0929-7-15-20-77-14-11-0 or 0929-7-15-20-75-14-11-0
  • Compatible with any 4 pin battery on board that can be used with 00-9155-004-742-006 battery contacts from AVX including the BP7X, BP6X, and any compatible batteries including the 1600mAh and 2300mAh ones from CameronSino (CS-MOA853SL and CS-MOA855XL)
  • There is an on board 4 pin screw terminal block for larger off board batteries. Any single cell LiPo / LiIon is compatible. However, you use your own sourced battery at your own risk. We HIGHLY RECOMMEND using a battery with an internal protection circuit and a NTC (temp sensor)
  • Optional header for offboard button - connected to same output as SW1
  • 6 pin breakout header - with two GPIO from the ARM Cortex-M0, Vsys, 5v0, 3v3, GND connections
  • Header for optional off board solar panel / wind turbine etc.
  • Optional RF Shield attachment - Harwin S02-20150300 (can also double as an inexpensive heatsink)
  • Input voltage range - 4.2V – 10V
  • Output voltage - 3.3V and 5V
  • Output amperage - maximum current at 5V GPIO is 2.5A and at VSYS output 2.1A, but also this depends heavily on battery capacity. For BP7X have measured around 1.1A at 5V GPIO and around 1.6A at VSYS output. Obviously this also depends heavily on the current draw demanded by the Raspberry Pi / device itself. To achieve maximum of 2.5A it will need battery over 3500mAh.

Additional content

Apart from the material available on Github we are also preparing guides, tutorials and additional information on various platforms and media. This is a list of current and future resources:

Reviews and links

Here are some links to reviews and articles from around the web:

Third party software libraries and projects

It is safe to say we have an awesome and growing community of people using PiJuice to add battery power to their projects - both from our Kickstarter and beyond. We get a huge amount of contributions of code, some of which we can easily integrate here and others which we can't (we are only a small team). However we want to make sure that any contributions are easy to find, for anyone looking. So here is a list of other software libraries that might be useful to you (if you have one of your own, please visit the "Issues" tab above and let us know!):

pijuice's People

Contributors

christopherrush avatar codejedi365 avatar deniskhrutsky avatar francesco-vannini avatar frizzleb avatar komacke avatar lorcan avatar markuslange avatar rgw16 avatar ryanteck avatar shawaj avatar thesteg avatar tilghman avatar tvoverbeek avatar wikipedia555 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pijuice's Issues

Watchdog misleading information (?)

The watchdog description in the READMEs implies it watches the RPi.
However there is no watchdog reset command sent by the service on the RPi.
The watchdog timer is part of the PiJuice MCU (STM32) and only resets the MCU when it times out (as far as I know).
How was this supposed to work with the RPi?

Created a user script to run once SW2 is pressed

I've created a user script that I wish to run when SW2 is pressed. I've added the path to the script to the user scripts tab and configured HAT to trigger that script when pressed...but zilch.
Also when I close the PiJuice Configuration app it reverts the user script back to a previous script that I was testing.

The file /var/lib/pijuice/pijuice_config.JSON exists.
Permissions for the file
-rw-r--r-- 1 pi pi 77 Jan 5 13:31 pijuice_config.JSON

Contents of pijuice_config.JSON (Which shows the ORIGINAL command I entered in the user func)
{
"user_functions": {
"USER_FUNC1": "idle3"
},
"system_task": {}
}
Thanks!

Low charge and low battery voltage detection do not work

I set up a user_func1 which logs events as described in the Software->Test README.
Put the limit for low charge at 15%.
Started with a full battery and disconnected it from the USB power.
Button events (SW2 triggering USER_FUNC1, and 10 sec press, power-off) worked.
However the charge passed 15% and nothing happened.
Battery ran out and got a forced-power-off (properly logged).
Reconnected the power and the RPi woke up at 60% as specified.

Looking at the condition for triggering low charge in _EvalCharge() a > has to be replaced by >=:

if level == 0 or ((level < th) and ((chargeLevel-level) > 0 and (chargeLevel-level) < 3)):

has to be

if level == 0 or ((level < th) and ((chargeLevel-level) >= 0 and (chargeLevel-level) < 3)):

After this change I got a crash because lowChgEn was not defined inside _EvalCharge()
lowChgEn has to be declared global at the top of main() and inside _EvalCharge().

lowBatVolEn in _EvalBatVoltage() has exactly the same problem.

After these additional changes the low charge detection (finally) worked properly.

Spring pin part number for PiJuice

0929-7-15-20-75-14-11-0 is OK to use instead of 0929-7-15-20-77-14-11-0.

We just tested it. Just recording this here so I don't forget!

Commands for headless Pi.

For those of us who run our Pi's headless, are there any commands that can be run to check battery level etc?

Software/Firmware versioning

We have decided to adopt a two digit group versioning with major version for big group of fixes and minor for each build.
We should adopt the same for both software and firmware.

Additionally we need to provide a change log for SW and FW in a descriptive form listing bugs and improvements

The change log shall be one file only with two sections:

  • Header Section explaining how to check the versions from command line or GUI, other info
  • Version x.y
  • Software
    Improvements
    Fixes
  • Firmware
    Improvements
    Fixes
    -Append of the previous Versions

Next software release will be 1.1 and so will it be for firmware I reckon.

@DenisKhrutsky @mmilann @tvoverbeek @shawaj any thoughts on this are welcome.

Stacking PiJuice

@klint-k asked this...

I can not remember if the PiJuice can stack on an other PiJuice. If a person got three Pijuice would it be 12 hours working time on the RaspberryPi?

The answer is as follows:

It might be possible if disable 5V GPIO input so one board will not charge another, than only way to charge is through USB Micro input. But it is not efficient to do that way, much better to just use bigger battery. And I2C address should be changed but also rpi software does not support multiple pijuices(yet)

Additional information for firmware

The following items need to be documented.

Wakeup on charge updated to be activated only if power source is present.
Futher this enables wakeup after plugged if this parameter is set to 0.

Button wakeup functions power off and power off can be now assigned to arbitrary button events.
Removed constrain to be assigned only to long_press2 for power off, and single_press for power on.

Added reset function that can be assigned to some of buttons and button events.

Added no battery turn on configuration.
Now it can be set whether or not user wants to turn on 5V rail as
soon as power input is connected and there is no battery.

Added configuration for 2 IO ports.
They can be set to analog input, digital input, digital output and pwm output.

Remove debug prints

There are debug prints in pijice_sys.py that could be unnecessary execution overhead in system task loop. Suggest to remove all of them.

Add pijuice-lite deb, or similar

Basically - a gui-less version of the software.

Either have a pijuice-lite installer, or alternatively, split the debs into pijuice and pijuice-gui or something similar...

Power on-off presets

I think 10 seconds for LONG_PRESS1 associated to SYS_FUNC_HALT and 20 seconds for LONG_PRESS2 associated to HARD_FUNC_POWER_OFF are far too long.
I'd propose to preset LONG_PRESS1 to 5 seconds and LONG_PRESS2 to 10 seconds. This is mostly to do with the fact that once you power off the Pi the PiJuice won't automatically remove power to the Pi and people will have to use SW1 to do so.

@Reviewers something to test please

Hello

@reviewers - could you check out this code:

#!/usr/bin/python
from __future__ import print_function
from pijuice import PiJuice
pijuice = PiJuice(1,0x14)

for K in range(61):
        pijuice.status.SetLedBlink('D2', 1,(244, 66, 104), 0.3, (0, 0, 52), 0.1)
        pijuice.status.SetLedBlink('D2', 1,(255, 33, 52), 0.5, (0, 0, 0), 0.75)

If it works I would call it "Frankenstein" else it should be called "Igor". If it dose not work Igor did not bring the right parts.

Updates to Watchdog timeout, low charge level etc.

All stuff exclusively between pijuice_gui and the system task) does not update immediately when the system task is already enabled (although the JSON is updated immediately on 'Apply'.
Similarly when unchecking the system task enable checkbox the task is not disabled (changing from disabled to enabled does restart the service which will then pick up the configuration).

Pogo???

I do like the info on the README. I am still wondering why there is a pogo in the package? Where is it meant to go?
That is a great start on the more info.

LEDs not behaving as expected

Setting one of the RGB components in the GUI for D1 doesn't change it's colour. Furthermore after applying the new settings the green status light disappears. The blue charging light stays no matter what happens.
It all goes back to normal if resetting the board via "Reset to default configuration".

Also noticed that when messing with the D1 RGB settings in the GUI I get communication errors.
Suppose the update LED command to the STM32 interferes with the STM32 LED commanding.
Probably also what happens when the green disappears.
Something to fix in the firmware?

@mmilann this is related to what I was telling you about lately. What do you think?
@tvoverbeek could you post the errors you were talking about?

JSON file examples and more software documentation

We need to show thorough documentation about the JSON file, how to use it, how it ties in with the GUI/software and all of the features that can be enabled.

Here is an example of a JSON with some features enabled:

{
  "system_events": {
    "low_battery_voltage": {
      "enabled": false
    },
    "forced_power_off": {
      "enabled": false
    },
    "forced_sys_power_off": {
      "enabled": false
    },
    "low_charge": {
      "function": "SYS_FUNC_HALT",
      "enabled": false
    }
  },
  "system_task": {
    "enabled": true,
    "wakeup_on_charge": {
      "enabled": true
    },
    "min_charge": {
      "enabled": true
    }
  }
}

GetFirmwareVersion() returns wrong(?) result

PiJuice.config.GetFirmvareVersion() now returns version='10', variant='0'.
With the agreed versioning I would expect version='1', variant='0'.
For the upcoming release version='1', variant='1'
Also note the current spelling of GetFirmvareVersion (v instead of w).
Intentional? Or just a typo?

Cooperation between the service (pyjuice_sys.py) and the gui (pi_juice_gui.py) missing

The service only reads the configuration when it starts.
When initially the system_task is disabled the service exits after the initial checks.
If the system_task is active any changes in the gui for the service are not seen by pijuice_sys.py.
Also when enabling the system_task in the gui the service is not (re)started.

This could be confusing for new users, unless you document clearly that a restart is required
after changing settings in the gui.

Picture of switches and LEDs in main README is wrong

In the main README -> Basic Functionality -> Power On and Off the Pi the picture shows the LEDs and switches in the order SW2 - LED2 - SW3 - SW1 - LED1.
The LED1 and LED2 labels have to be exchanged.
The picture in the hardware section is correct.
Also I had trouble orienting myself with the picture in the main README, since it is not
clear where the edge of the board is located (bottom of the picture) especially since
LED1 and LED2 labels are in the wrong place.

Enable/Disable charging, How?? Any command to force reset/restart of the firmware?

In the changelog for the 2017-10-23 firmware it says:

Added command to configure charging, enable/disable
Added command to configure inputs, disable/enable 5V io input to charger, set usb micro in current limit, set usb micro in DPM voltage

Are these new commands already supported in pijuice.py?

Anyway I managed to get my PiJuice in a state where it was not charging the battery, with the power connected to the 5V PiJuice USB.
Power went to the Pi, but the battery remained at constant charge level (no blue blinking LED1).
Got it back to charging by shutting down the Pi, removing external power, removing the battery and reinsert the battery, reconnect power to PiJuice USB.

Test script pijuice.sh does not work.

The pijuice.sh bash script in Software/Test does not work at all (wrong commands).
Below a modified version which works.
Should be checked by somebody knowing the firmware.

#!/bin/bash
#
# This script assumes the pijuice service is not running.
# Otherwise the long press on SW1 will shut down the Pi.
#

BUS=1
ID=0x14

GET_BUT_EVT_CMD="BUT_EVT=\$(i2cget -y $BUS $ID \0x45  b |sed -e "s/^0x//" |tr "a-z" "A-Z")"
GET_RSOC_CMD="RSOC=\$(i2cget -y $BUS $ID \0x41  b |sed -e "s/^0x//" |tr "a-z" "A-Z")"
GET_VER_CMD="VER=\$(i2cget -y $BUS $ID \0xFD  w |sed -e "s/^0x//" |tr "a-z" "A-Z")"
GET_CUR_LOW_CMD="CUR_LOW=\$(i2cget -y $BUS $ID \0x4f  b |sed -e "s/^0x//" |tr "a-z" "A-Z")"
GET_CUR_HIGH_CMD="CUR_HIGH=\$(i2cget -y $BUS $ID \0x50  b |sed -e "s/^0x//" |tr "a-z" "A-Z")"
GET_TEMP_LOW_CMD="TEMP_LOW=\$(i2cget -y $BUS $ID \0x47  b |sed -e "s/^0x//" |tr "a-z" "A-Z")"
GET_TEMP_HIGH_CMD="TEMP_HIGH=\$(i2cget -y $BUS $ID \0x48  b |sed -e "s/^0x//" |tr "a-z" "A-Z")"
GET_BATVOLT_LOW_CMD="BATVOLT_LOW=\$(i2cget -y $BUS $ID \0x49  b |sed -e "s/^0x//" |tr "a-z" "A-Z")"
GET_BATVOLT_HIGH_CMD="BATVOLT_HIGH=\$(i2cget -y $BUS $ID \0x4A  b |sed -e "s/^0x//" |tr "a-z" "A-Z")"

eval $GET_VER_CMD
echo Firmvare version: V${VER:2:2}.${VER:0:2}

# Clear button 1  events
i2cset -y $BUS $ID 0x45 0xf0 0xff 0xf0 i

while true; do

eval $GET_BUT_EVT_CMD
eval $GET_RSOC_CMD
eval $GET_CUR_LOW_CMD
eval $GET_CUR_HIGH_CMD
eval $GET_TEMP_LOW_CMD
eval $GET_TEMP_HIGH_CMD
eval $GET_BATVOLT_LOW_CMD
eval $GET_BATVOLT_HIGH_CMD

echo CHARGE = $((0x${RSOC}))%, Temp = $((0x${TEMP_HIGH}${TEMP_LOW}))[10K], VBAT = $((0x${BATVOLT_HIGH}${BATVOLT_LOW})) mV, #Current = $((0x${CUR_HIGH}${CUR_LOW})) mA,

if [ $BUT_EVT = "05" ]; then
    # Long press (10sec) on SW1
    break
fi

sleep 1
done 

MSDS BP7X.pdf weight field

The weight specified in the Material Safety Data Sheet is given as 35kg.

One Amazon advertisement gives the weight as 36g, 3 orders of magnitude smaller.

This certificate may need to be re-issued.

System Switch, How does it work? Not settable from HAT tab

I have no idea what the System Switch referenced in the HAT tab of the GUI does.
Moreover you cannot change it in the HAT tab (unless you are very very fast) because _RefreshStatus() overwrites the values every second.

OK. This is the last one for today

Documentation.

Have had a look at the user guide but it seems very short of info. Like I assume that I plug my power supply into the Pi-Juice rather than my Pi, but cannot see where it tells me what to do. I assume I don't have to do anything to get the system to switch to the pi-juice if there is a power failure but again I could not find this in the docs. I give the basic documentation one star as it seems to be missing the basics and jumping into projects

Debian packages issues on development branch

For version 1.1 the package has changed name from pijuice to python-pijuice.
Since the pijuice package is already in the raspbian archives, this might cause problems.
For instance the prerm script should now also remove existing installs of pijuice.
control should indicate this replaces the pijuice package.

Both the -light (still on 1.0) and the python-pijuice package contain old firmware file PiJuice.elf.binary with size 64600

The GUI settings aren't saved

The JSON file that stores the settings from the GUI is found here

/var/lib/pijuice/pijuice_config.JSON

If it doesn't exist create an empty one with the following contents

{
  "system_task": {}
}

Use of LEDs

The RGB LEDs also don't seem to provide too much of a different light when displaying orange or red, I would assume this is true for many of the colour combinations you could achieve. Maybe worth rethinking what can these LEDs can/should actually do or be used for by possibly providing only combinations that will make sense and not the full spectrum of RGB combinations. When running down the battery it turns on the red LED when < 50% (looks more like orange). No change when charge level drops below 15%. I suppose you cannot differentiate between orange and red with this 3-color LED.
Description of red (level < 15%) in the hardware README to be deleted?

Duplicate files and obsolete

pijuicetest:

under Software/Source/doc there are two readme files which could be incorporated under the main READMEs instead. Are those for the Debian package structure?

Same for PiJuice\Software\man\pijuice.1

Same for PiJuice\Software\Source\README.md

Same for PiJuice\Software\Install\README.md

Same for PiJuice\tree\master\Software\Test\README.md

Could we not have these information incorporated in the main READMEs? If we need these to be there can we not still have all info in the main READMEs and only copy specific paragraphs of these into the files for Debian?
Having too many files like that around will be confusing and difficult to maintain.

Tool tip information?

Just had a quick thought. Not sure how feasible it is but it might be cool to have a "tool tip" type functionality where hovering over some setting gives a definition of what it does and/or how to use it

Firmware updates via GUI

From @mmilann:
"I do not recommend having browse button. Without authenticity check user
can load and file this will make non responding to any command and also
activating bootloader to re-update, so user must initiate bootloader
manually. Other reason is that new firmware will usually bring new features
that requires software update, so no sense to update only firmware without
software.

What can be good is to have all previous firmware in
same /usr/share/pijuice/data/firmware/ directory, and maybe having option
to revert to previous version."

Use of IO pins on P3

Nice that you can configure the IO pins in the GUI.
These are 2 unused GPIOs on the STM32.
It is not documented how to get input and output from these STM32 GPIOS.

PiJuice update

Hello,
This should be a simple question, I hope. I have a RPi2 that hase been wating for the PiJuice, it has pijuce software installed on it.
Will the software update with apt-get? (How would we know?)

Klint-K

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.