Skip to content
Snippets Groups Projects
  1. Dec 22, 2020
  2. Dec 19, 2020
  3. Dec 14, 2020
  4. Nov 06, 2020
  5. Oct 05, 2020
  6. Sep 19, 2020
  7. Sep 07, 2020
  8. Jun 15, 2020
  9. Jun 13, 2020
    • 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
  10. Jun 04, 2020
  11. May 21, 2020
  12. May 10, 2020
  13. Apr 08, 2020
  14. Mar 02, 2020
  15. Dec 29, 2019
  16. Dec 09, 2019
  17. Nov 22, 2019
  18. Nov 13, 2019
    • 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: default avatarRahix <rahix@rahix.de>
      Verified
      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
  19. Nov 12, 2019
  20. Nov 09, 2019
  21. Nov 03, 2019
    • 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: default avatarRahix <rahix@rahix.de>
      Verified
      9a5a46cd
  22. Oct 22, 2019
  23. Oct 19, 2019
  24. Oct 05, 2019
    • 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
  25. Oct 04, 2019
  26. Sep 22, 2019
Loading