1. 07 Sep, 2020 1 commit
  2. 15 Jun, 2020 1 commit
  3. 13 Jun, 2020 1 commit
    • schneider's avatar
      feat(ble): write HCI layer log file · 17c7c61e
      schneider authored
      Adds an option to write a btsnoop compatible log file containing BLE
      traffic. A new file is created after each boot if BLE is activated and
      the `ble_log_enable` option is set in `card10.cfg`. The last 10 logs are
      kept via log rotation.
      17c7c61e
  4. 04 Jun, 2020 1 commit
  5. 21 May, 2020 4 commits
  6. 10 May, 2020 1 commit
  7. 08 Apr, 2020 4 commits
  8. 02 Mar, 2020 1 commit
  9. 29 Dec, 2019 1 commit
  10. 09 Dec, 2019 2 commits
  11. 22 Nov, 2019 1 commit
  12. 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
  13. 12 Nov, 2019 1 commit
  14. 09 Nov, 2019 3 commits
  15. 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
  16. 22 Oct, 2019 1 commit
  17. 19 Oct, 2019 1 commit
  18. 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
  19. 04 Oct, 2019 1 commit
  20. 22 Sep, 2019 2 commits
  21. 21 Sep, 2019 2 commits
  22. 16 Sep, 2019 5 commits