wasp: pinetime: Enable filesystem support
This commit is contained in:
parent
3bc59b1c71
commit
b2c5b482d5
4 changed files with 51 additions and 25 deletions
|
@ -1,3 +1,4 @@
|
|||
freeze('.', 'watch.py', opt=3)
|
||||
freeze('../..',
|
||||
(
|
||||
'boot.py',
|
||||
|
@ -10,11 +11,15 @@ freeze('../..',
|
|||
'drivers/vibrator.py',
|
||||
'fonts.py',
|
||||
'icons.py',
|
||||
'main.py',
|
||||
'manager.py',
|
||||
'logo.py',
|
||||
'widgets.py',
|
||||
),
|
||||
opt=3
|
||||
)
|
||||
freeze('.', 'watch.py', opt=3)
|
||||
freeze('../../drivers/flash',
|
||||
(
|
||||
'bdevice.py',
|
||||
'flash/flash_spi.py'
|
||||
), opt=3
|
||||
)
|
||||
|
|
|
@ -1,26 +1,21 @@
|
|||
from machine import Pin
|
||||
# Start measuring time (and feeding the watchdog) before *anything* else
|
||||
from machine import RTCounter
|
||||
from drivers.nrf_rtc import RTC
|
||||
rtc = RTC(RTCounter(1, mode=RTCounter.PERIODIC))
|
||||
rtc.counter.start()
|
||||
|
||||
import os
|
||||
import time
|
||||
|
||||
from machine import Pin
|
||||
#from machine import Signal
|
||||
from machine import SPI
|
||||
|
||||
from drivers.battery import Battery
|
||||
from drivers.nrf_rtc import RTC
|
||||
from drivers.signal import Signal
|
||||
from drivers.st7789 import ST7789_SPI
|
||||
from drivers.vibrator import Vibrator
|
||||
|
||||
class Display(ST7789_SPI):
|
||||
def __init__(self):
|
||||
spi = SPI(0)
|
||||
# Mode 3, maximum clock speed!
|
||||
spi.init(polarity=1, phase=1, baudrate=8000000)
|
||||
|
||||
# Configure the display
|
||||
cs = Pin("DISP_CS", Pin.OUT)
|
||||
dc = Pin("DISP_DC", Pin.OUT)
|
||||
rst = Pin("DISP_RST", Pin.OUT)
|
||||
|
||||
super().__init__(240, 240, spi, cs=cs, dc=dc, res=rst)
|
||||
from flash.flash_spi import FLASH
|
||||
|
||||
class Backlight(object):
|
||||
lo = Pin("BL_LO", Pin.OUT, value=0)
|
||||
|
@ -46,17 +41,43 @@ class Backlight(object):
|
|||
self.mid(mid)
|
||||
self.lo(lo)
|
||||
|
||||
# Setup the display (and manage the backlight)
|
||||
backlight = Backlight(0)
|
||||
display = Display()
|
||||
backlight.set(1)
|
||||
|
||||
# Start measuring time (and feeding the watchdog)
|
||||
rtc = RTC(RTCounter(1, mode=RTCounter.PERIODIC))
|
||||
rtc.counter.start()
|
||||
spi = SPI(0)
|
||||
spi.init(polarity=1, phase=1, baudrate=8000000)
|
||||
display = ST7789_SPI(240, 240, spi,
|
||||
cs=Pin("DISP_CS", Pin.OUT),
|
||||
dc=Pin("DISP_DC", Pin.OUT),
|
||||
res=Pin("DISP_RST", Pin.OUT))
|
||||
|
||||
# Setup the last few bits and pieces
|
||||
battery = Battery(
|
||||
Pin('BATTERY', Pin.IN),
|
||||
Signal(Pin('CHARGING', Pin.IN), invert=True),
|
||||
Signal(Pin('USB_PWR', Pin.IN), invert=True))
|
||||
vibrator = Vibrator(Pin('MOTOR', Pin.OUT, value=0), active_low=True)
|
||||
button = Pin('BUTTON', Pin.IN)
|
||||
|
||||
# Mount the filesystem
|
||||
flash = FLASH(spi, (Pin('NOR_CS', Pin.OUT, value=1),))
|
||||
try:
|
||||
os.mount(flash, '/flash')
|
||||
except AttributeError:
|
||||
# Format the filesystem (and provide a default version of main.py)
|
||||
os.VfsLfs2.mkfs(flash)
|
||||
os.mount(flash,'/flash')
|
||||
with open('/flash/main.py', 'w') as f:
|
||||
f.write('''\
|
||||
import manager
|
||||
wasp = manager.Manager(watch)
|
||||
wasp.run()
|
||||
''')
|
||||
|
||||
# Only change directory if the button is not pressed (this will
|
||||
# allow us access to fix any problems with main.py)!
|
||||
if not button.value():
|
||||
os.chdir('/flash')
|
||||
backlight.set(1)
|
||||
else:
|
||||
display.poweroff()
|
||||
|
||||
|
|
|
@ -1,3 +1 @@
|
|||
import manager
|
||||
import watch
|
||||
wasp = manager.Manager(watch)
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
import manager, watch
|
||||
wasp = manager.Manager(watch)
|
||||
wasp.run()
|
||||
|
|
Loading…
Reference in a new issue