def battery(vUsb, vBatt, charging):
    vMin = badge.nvs_get_u16('batt', 'vmin', 3500)  # mV
    vMax = badge.nvs_get_u16('batt', 'vmax', 4100)  # mV
    if charging and vUsb > 4000:
        try:
            badge.eink_png(0, 0, '/lib/resources/chrg.png')
        except:
            ugfx.string(0, 0, "CHRG", 'Roboto_Regular12', ugfx.BLACK)
    elif vUsb > 4000:
        try:
            badge.eink_png(0, 0, '/lib/resources/usb.png')
        except:
            ugfx.string(0, 0, "USB", 'Roboto_Regular12', ugfx.BLACK)
    else:
        width = round((vBatt - vMin) / (vMax - vMin) * 44)
        if width < 0:
            width = 0
        elif width > 38:
            width = 38
        ugfx.box(2, 2, 46, 18, ugfx.BLACK)
        ugfx.box(48, 7, 2, 8, ugfx.BLACK)
        ugfx.area(3, 3, width, 16, ugfx.BLACK)
Beispiel #2
0
def getDefault():
    return ugfx.orientation(
        badge.nvs_get_u16('badge', 'orientation', version.default_orientation))
Beispiel #3
0
def default():
    ugfx.orientation(
        badge.nvs_get_u16('badge', 'orientation', version.default_orientation))
Beispiel #4
0
import badge, easydraw, woezel, wifi

lvl = badge.nvs_get_u8('ota', 'fixlvl', 0)
if lvl < 3:
    if not badge.nvs_get_u16("modaudio", "mixer_ctl_0"):
        badge.nvs_set_u16("modaudio", "mixer_ctl_0",
                          (0 << 15) + (0 << 8) + (1 << 7) + (32 << 0))
        badge.nvs_set_u16("modaudio", "mixer_ctl_1",
                          (0 << 15) + (32 << 8) + (0 << 7) + (32 << 0))
    badge.nvs_set_u8('ota', 'fixlvl', 3)

if lvl < 5:
    wifi.connect()
    if wifi.wait(30, True):
        for bloatware in [
                'event_schedule', 'de_rode_hack', 'hacker_gallery',
                'angry_nerds_podcast'
        ]:
            # This is ugly, but if 1 app is already up to date we just try to fill the device with the rest
            try:
                easydraw.messageCentered("Updating...\n" + bloatware, True,
                                         '/media/flag.png')
                woezel.install(bloatware)
            except:
                pass
        badge.nvs_set_u8('ota', 'fixlvl', 5)
Beispiel #5
0
# File: powermanagement.py
# Version: 2
# Description: Power management task, puts the badge to sleep when idle
# License: MIT
# Authors: Renze Nicolai <*****@*****.**>

import virtualtimers, deepsleep, badge, sys

requestedStandbyTime = 0
onSleepCallback = None

userResponseTime = badge.nvs_get_u16('splash', 'urt', 5000)


def usb_attached():
    return badge.usb_volt_sense() > 4500


def pm_task():
    ''' The power management task [internal function] '''
    global requestedStandbyTime

    idleTime = virtualtimers.idle_time()
    #print("[Power management] Next task wants to run in "+str(idleTime)+" ms.")

    if idleTime > 30000 and not badge.safe_mode() and not (
            usb_attached()
            and badge.nvs_get_u8('badge', 'usb_stay_awake', 0) != 0):
        global onSleepCallback
        if not onSleepCallback == None:
            print("[Power management] Running onSleepCallback...")
Beispiel #6
0
def onSleep(idleTime):
    draw(False, True)
    services.force_draw(True)
    draw(True, True)


### PROGRAM

# Calibrate battery voltage drop
if badge.battery_charge_status() == False and pm.usb_attached(
) and badge.battery_volt_sense() > 2500:
    badge.nvs_set_u16('splash', 'bat.volt.drop',
                      5200 - badge.battery_volt_sense())  # mV
    print('Set vDrop to: ' + str(4200 - badge.battery_volt_sense()))
vDrop = badge.nvs_get_u16('splash', 'bat.volt.drop', 1000) - 1000  # mV

splash_input_init()

# post ota script
import post_ota

setupState = badge.nvs_get_u8('badge', 'setup.state', 0)
if setupState == 0:  #First boot
    print("[SPLASH] First boot (start setup)...")
    appglue.start_app("setup")
#elif setupState == 1: # Second boot: Show sponsors
#	print("[SPLASH] Second boot (show sponsors)...")
#	badge.nvs_set_u8('badge', 'setup.state', 2)
#	spoc.show(True)
#elif setupState == 2: # Third boot: force OTA check
import virtualtimers, deepsleep, badge, sys

requestedStandbyTime = 0
onSleepCallback = None

timeout = badge.nvs_get_u16('badge', 'sleep', 10000)  #Default to 10 seconds

disabled = False
enabled = False


def disable():
    global disabled, enabled
    disabled = True
    enabled = False
    kill()


def enable():
    global disabled, enabled, timeout
    if timeout < 1:  #Disabled by setting
        return
    disabled = False
    enabled = True
    feed()


def resume():
    global disabled, enabled
    if disabled and enabled:
        enable()