NOTE THE SCRIPTS ARE SETUP ASSUMING A PI 3, the UART port will need to be adjusted for other Pis, will clean this up a bit for release for firmware update, untar file in /home/pi/, kill mopower-ups.py and mopower-ups-wrapper.sh cd to mopower-firmware directory (sould be /home/pi/mopower-firmware) change TTY_DEVICE in mopower-ups-firmware-update.py if running older Pi 1/2/zero backup your settings if needed and run sudo ./mopower-ups-firmware-update.py mopower-ups-firmware-v0.93-BETA-build-11-22-2016-001411.bin This will update your firmware reboot non-beta 0.92 is there as well in case you want to fall back ============= the client sofware install.. untar in /home/pi you will have a mopower directory. There is an INSTALL-Raspbian-Jessie.sh you can use for installing on Jessie on a Pi 3 otherwise a manual install is needed like before If you had a prior version of the client software installed, you should not need to run the install =============== new mopower-command.sh and Morse Code example Instead of killing and running minicom to talk to the UPS for settings, etc.. there is now a command that runs along with the mopower-ups.py... example.. ./mopower-command.sh MORSE=HELLO ./mopower-command.sh show all two other variables for morse.. MORSE_SPEED=2 MORSE_PWROFF=0 MORSE_SPEED IS THE LENGTH OF DOT in 1/16 sec MORSE_PWROFF controls if the morse 'blink' is send when the Pi is powered off, 0 for No (default), 1 for yes ============== Idle current is now down to about 0.6 to 1ma, depending on Vin levels ============= The input and timer controls are naturally in 'OR' fashion.. what was missing was an AND function to tie them together.. this has been done as follows I've programmed an 'AND' control into the INPUT and TIMER. I attempted to keep it simple, while not sacrificing flexibility. I will give an example, tell me what you think. INPUT_CONTROL[0]=1,30,1,13.20,1,1,0,0,0 TIMER_CONTROL[0]=0,1,130,24 The input control is just like any other, when 13.20v on the input is exceeded for more then 1 second it executes the COMMAND, except the COMMAND, which in this case is 30 doesn't actually execute a power on or power off.. it refers to TIMER_CONTROL[0].. example.. 30 = TIMER_CONTROL[0] 31 = TIMER_CONTROL[1] 32 = TIMER_CONTROL[2] .... .... NOTE ALSO YOU HAVE COMMANDS TO RUN ANOTHER INPUT CONTROL AS WELL. 20 = INPUT_CONTROL[0] 21 = INPUT_CONTROL[1] 22 = INPUT_CONTROL[2] .... When it matches, then TIMER_CONTROL[0] runs. That timer control then runs every 30 minutes and turns on the Pi. You can keep 'AND'ing any number or combination of INPUT or TIMER controls. You will notice that the PRIORITY variable on the TIMER_CONTROL is "0", this prevents it from running normally. ==============