1. 13 Nov, 2019 2 commits
    • Rahix's avatar
      feat(utime): Implement ticks_ms() and ticks_us() · 8926fd02
      Rahix authored
      
      
      Implement the hal functions necessary for utime.ticks_ms() and
      utime.ticks_us().  This enables much more accurate measurements of time
      taken in Pycardium (useful for profiling).
      
      Please note that the tick counter will reset whenever a new app is
      loaded.
      
      Signed-off-by: Rahix's avatarRahix <rahix@rahix.de>
      8926fd02
    • fgross's avatar
      feat(pycardium): Enable framebuf module · c27f3fcc
      fgross authored and Rahix's avatar Rahix committed
      The framebuf module provides a framebuffer implementation running purely
      in MicroPython which will increase drawing performance by a lot.  A
      follow-up change will be necessary to connect this framebuffer
      implementation to the display API.
      
      This commit is implements a part of MR !211.
      c27f3fcc
  2. 12 Nov, 2019 1 commit
  3. 09 Nov, 2019 1 commit
  4. 03 Nov, 2019 1 commit
    • Rahix's avatar
      feat(epicardium): Add a proper mutex implementation · 9a5a46cd
      Rahix authored
      
      
      In the current firmware, different locking mechanisms a littered around
      the code-base.  Among them are bare FreeRTOS mutexes and the hw-locks.
      The callers for these often specify timeouts but don't make much effort
      in A) picking robust values for the timeout and B) recovering gracefully
      from a timeout happening.  Most of the time, we return -EBUSY to _Python
      code_.  This is really really bad API design.  The firmware needs to
      have enough integrity to ensure these situations can't ever occur.
      
      To combat this, add a new locking primitive: The `struct mutex`.  The
      intention is to replace all other locking and synchronization APIs with
      this one.  This will provide one central place to debug any sort of
      locking issues.
      
      The `struct mutex` API is based on a few assumptions about locking.
      Those are detailed in `Documentation/epicardium/mutex.rst`, which is
      part of this commit.  The most important one is:
      
          Locking can **never** fail.
      
      By requiring this to be true, we eliminate the need for drivers to
      contain (often incorrect) logic for dealing with locking fails.  This
      should drastically improve the stability of the firmware in regards to
      lock-related bugs.
      
      This commit does not introduce any functional changes yet.
      
      Signed-off-by: Rahix's avatarRahix <rahix@rahix.de>
      9a5a46cd
  5. 22 Oct, 2019 1 commit
  6. 19 Oct, 2019 1 commit
  7. 05 Oct, 2019 3 commits
    • Maximilian Wagenbach's avatar
    • Foaly's avatar
      docs: Improve documentation for the BHI160 · e804de47
      Foaly authored and Rahix's avatar Rahix committed
      e804de47
    • Philip Stewart's avatar
      fix(gfx/display): Draw partially clipped primitives · 14d5abcc
      Philip Stewart authored and Rahix's avatar Rahix committed
      Fix two bugs in the display/gfx module:
      
      1. The animation of the simple_menu used in the main menu had the issue
         that there is a black line visible at the top.  This is due the
         gfx_puts method ignoring lines, where the top pixel of the string is
         above the top of the screen.  As gfx_puts uses gfx_setpixel which in
         turn ignores pixels outside of the screen, remove the check in
         gfx_puts.
      2. X and Y coordinates were cast to unsigned-ints before being given to
         the gfx-library which means calls like circ(0, -10, 30) would be draw
         at coordinates like [0,65526].  Fix this by changing the data-type of
         all coordinates to signed-integers.
      
      Also remove the x and y ranges from the documentation of the individual
      python functions and instead add a general documentation about the
      screen and it's size/coordinate system.
      14d5abcc
  8. 04 Oct, 2019 1 commit
  9. 22 Sep, 2019 2 commits
  10. 21 Sep, 2019 2 commits
  11. 16 Sep, 2019 5 commits
  12. 10 Sep, 2019 1 commit
  13. 05 Sep, 2019 1 commit
  14. 03 Sep, 2019 2 commits
    • Rahix's avatar
      docs(bme680): Document new sensor interface · 275c99cc
      Rahix authored
      
      
      Signed-off-by: Rahix's avatarRahix <rahix@rahix.de>
      275c99cc
    • Techy's avatar
      fix(openocd-scripts): Always use SWD · 3f4677f8
      Techy authored and Rahix's avatar Rahix committed
      OpenOCD tried
      
          Info : auto-selecting first available session transport "jtag".
                 To override use 'transport select <transport>'.
      
      using a JLink debugger.  Overriding it with SWD is what I did. With the
      CMSIS debugger OpenOCD you get lucky:
      
          Info : auto-selecting first available session transport "swd".
      
      Hope forcing it always to SWD will make it easier for others using
      different debuggers.
      3f4677f8
  15. 31 Aug, 2019 2 commits
  16. 30 Aug, 2019 1 commit
  17. 28 Aug, 2019 3 commits
  18. 27 Aug, 2019 1 commit
  19. 26 Aug, 2019 1 commit
  20. 24 Aug, 2019 3 commits
  21. 23 Aug, 2019 5 commits