Skip to content
Snippets Groups Projects
  1. Oct 05, 2019
    • rahix's avatar
      chore(epicardium): Switch from MXC_ASSERT to assert · 070867f8
      rahix authored
      
      Newlib assert uses __assert_func and thus our panic() function while
      MXC_ASSERT uses a custom assertion logic.  Newlib assert is also more
      portable as it works in expression position while MXC_ASSERT only works
      as a statement.
      
      Signed-off-by: default avatarRahix <rahix@rahix.de>
      070867f8
    • rahix's avatar
      feat(epicardium): Use panic() for assertion failures · 9d44017b
      rahix authored
      
      Define `__assert_func()` so a failing `assert()` will trigger a panic.
      
      Signed-off-by: default avatarRahix <rahix@rahix.de>
      9d44017b
    • rahix's avatar
      feat(epicardium): Add a panic() function · 1536da34
      rahix authored
      
      In unrecoverable situations we should provide a common way to output the
      cause of the error and then reset the CPU.  The panic() function is
      mean to be exactly that.  It outputs the error-cause, stack-trace, and
      firmware revision, accompanied by a link to the issue-tracker to
      encourage people to report the error.  After a timeout of ~1.5s it
      resets the CPU and reboots.
      
      Future Work:
      
       - Right now, the stack-trace only has a depth of one which is the
         return address from where panic() was called.  In the future it might
         make sense to provide a deeper stack-trace if a robust implementation
         is possible.
       - Integration of @msgctl's faultscreen (!79) so users who don't have
         the serial console open at all times can also see what happened.
      
      Signed-off-by: default avatarRahix <rahix@rahix.de>
      1536da34
    • rahix's avatar
      feat(serial): Add function to switch serial to synchronous · 5e25bc89
      rahix authored
      
      In severe error conditions, asynchronous prints will never work.  For
      such cases we need a way to make prints happen synchronously again, the
      same way it works during early boot.  Add a serial_return_to_synchronous()
      function which unconditionally switches the serial driver code to
      synchronous mode.
      
      Only use this function in unrecoverable error conditions!
      
      Signed-off-by: default avatarRahix <rahix@rahix.de>
      5e25bc89
    • rahix's avatar
      fix(libcard10): Mark card10_reset() as noreturn · 8ac93244
      rahix authored
      
      card10_reset() won't ever return to where it was called from.  Telling
      the compiler this can help with program-flow analysis.
      
      Signed-off-by: default avatarRahix <rahix@rahix.de>
      8ac93244
    • rahix's avatar
      Merge 'Draw offscreen lines' · a9e1b238
      rahix authored
      See merge request card10/firmware!332
      a9e1b238
    • 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
  2. Oct 04, 2019
  3. Oct 03, 2019
  4. Oct 01, 2019
  5. Sep 25, 2019
  6. Sep 24, 2019
  7. Sep 22, 2019
    • rahix's avatar
      Merge 'ECG App update' · ee45bbd8
      rahix authored
      See merge request card10/firmware!296
      ee45bbd8
    • Daniel Hoffend's avatar
      feat(ecg-app): Refactor ECG App · d7edf7e5
      Daniel Hoffend authored and rahix's avatar rahix committed
      New Button-Layout
      =================
      
                /-----------------------\
                |   xxxxxxxxxxxxxxxxx   |
                |                       |
                |                      <> * Pause screen
                |         card10        |
       +------- <>                     <> * During pause: Scroll right.
       |        |                       | * Short press: Toggle between Finger
       |        \-----------------------/    and USB.
      * During pause: Scroll left.        * Long press: Toggle bias on/off.
      * Short press: Toggle LED mode.
      * Long press: Start/stop logging.
      
      Other Changes
      =============
      - Split the bar into negativ [10:5] and positive [5:0] scale and update
        them seperate to have a better visualization.
      - Blink red with backside LEDs on detected pulse.
      - Allow toggling the LED modes on and off (see new button layout).
      - Lock mode & bias during logging.
      d7edf7e5
    • rahix's avatar
      docs(utime): Document monotonic clock API · d3935ffd
      rahix authored
      
      Signed-off-by: default avatarRahix <rahix@rahix.de>
      d3935ffd
    • rahix's avatar
      chore: Update CHANGELOG and docs · db0ff2f6
      rahix authored
      db0ff2f6
    • rahix's avatar
      Merge 'Refactor BHI160 App' · 50839184
      rahix authored
      See merge request card10/firmware!316
      50839184
    • rahix's avatar
      refactor(preload/bhi): Make app more pythonic · 003aa2a0
      rahix authored
      
      This patch makes the BHI160 app more pythonic and fixes a few
      bugs/issues:
      
      - An exception (including KeyboardInterrupt) will trigger the sensor to
        be closed again.  Otherwise you'd get strange behavior trying to
        reopen then afterwards.
      - Use simple_menu.button_events() instead of home-cooked solution.  This
        should hopefully make the code more future-proof.
      - Fix overlapping text caused by the font-rendering changes.
      
      Signed-off-by: default avatarRahix <rahix@rahix.de>
      003aa2a0
Loading