Skip to content

Version 0.0.6 - Alpha

Compare
Choose a tag to compare
@Gadgetoid Gadgetoid released this 21 Oct 13:13
· 141 commits to main since this release
3209138

What's Changed

This release is the same as v0.0.5 with one small fix- the display buffers have been aligned to avoid a 1-pixel offset in MicroPython. (Previously m_new was guaranteeing uint32_t alignment)

Fixed in v0.0.6

  • SDK: Force memory aligned display buffers. by @Gadgetoid in #33

⚠️ Alignment change also apply to the C++ SDK!

New MicroPython API changes

  • start() - enters a blocking main loop, calls MICROPY_EVENT_POLL_HOOK to keep subsystems running
  • quit() - signals start() to break
  • Add start() to examples in place of while True: tick()
  • Fix launcher crashing when buttons pressed during startup
  • Add "quit" menu item to launcher, to unblock for Thonny
  • Reset "tick" on "quit" so applications launched from the launcher don't start at weird tick offsets

start() enters a blocking main loop that dispatches update/draw calls to the Python functions.

When quit() is called, start() will drop out of the loop, clean up the cached update/draw pointers and reset "tick".

Your scripts should now look like this:

def update(tick):
    pass

def draw(tick):
    pass

start()

# You can put stuff here that runs after you `quit()`

tick() and _reset() are included for posterity, but these may both be deprecated since _reset() happens implicitly when quit() is called.

Stats & GC

  • Fix calculation of "tick" us stats
  • Above also fixes FPS counter
  • Fix tick being double-incremented, and fix launcher to account for this
  • Run the C equivalent of gc.collect() in the main loop
  • Try and sleep the is_flipping() loop a little... my PicoSystem is getting mighty warm!

OC/Buffer

  • Overclock early to avoid an on-init change of clock doing bad things
  • Give the SCREEN buffer back to C exclusively, MPY reduces the gc_heap to accommodate this change
  • see: pimoroni/micropython@f826b9e

Full Changelog 0.0.5: v0.0.4...v0.0.5
Full Changelog 0.0.6: v0.0.5...v0.0.6