🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    8encoder bug on cores3

    UiFlow 2.0
    cores3 8encoder
    1
    1
    1.5k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      ps.oz
      last edited by ps.oz

      There is a bug in 8encoder.
      The method get_counter_value at line 68 throws an error when the encoder is left > 30 secs and a rotary encoder is turned
      (0_1688749491229_8encoderbug.PNG image url)
      not sure if it just happens with debugger attached
      works fine when restarted until its next left a while then rotated

      Here is my code

      import os, sys, io
      import M5
      from M5 import *
      from hardware import *
      from unit import *

      label1 = None
      title0 = None
      label2 = None
      label3 = None
      label4 = None
      label5 = None
      label6 = None
      label7 = None
      label8 = None
      label9 = None
      label11 = None
      label12 = None
      label13 = None
      label10 = None
      label14 = None
      label15 = None
      label16 = None
      label17 = None
      label18 = None
      label19 = None
      label20 = None
      label21 = None
      label22 = None
      label23 = None
      label24 = None
      label25 = None
      label26 = None
      label27 = None
      label28 = None
      i2c0 = None
      encoder8_0 = None

      btnNo = None
      btn = None
      val = None

      Describe this function...

      def dosomething(btnNo):
      global btn, val, label1, title0, label2, label3, label4, label5, label6, label7, label8, label9, label11, label12, label13, label10, label14, label15, label16, label17, label18, label19, label20, label21, label22, label23, label24, label25, label26, label27, label28, i2c0, encoder8_0
      if btnNo == 1:
      btn = encoder8_0.get_button_status(btnNo)
      val = encoder8_0.get_counter_value(btnNo)
      label11.setText(str((str(btn))))
      label21.setText(str((str(val))))
      if btnNo == 2:
      btn = encoder8_0.get_button_status(btnNo)
      val = encoder8_0.get_counter_value(btnNo)
      label12.setText(str((str(btn))))
      label22.setText(str((str(val))))
      if btnNo == 3:
      btn = encoder8_0.get_button_status(btnNo)
      val = encoder8_0.get_counter_value(btnNo)
      label13.setText(str((str(btn))))
      label23.setText(str((str(val))))
      if btnNo == 4:
      btn = encoder8_0.get_button_status(btnNo)
      val = encoder8_0.get_counter_value(btnNo)
      label14.setText(str((str(btn))))
      label24.setText(str((str(val))))
      if btnNo == 5:
      btn = encoder8_0.get_button_status(btnNo)
      val = encoder8_0.get_counter_value(btnNo)
      label15.setText(str((str(btn))))
      label25.setText(str((str(val))))
      if btnNo == 6:
      btn = encoder8_0.get_button_status(btnNo)
      val = encoder8_0.get_counter_value(btnNo)
      label16.setText(str((str(btn))))
      label26.setText(str((str(val))))
      if btnNo == 7:
      btn = encoder8_0.get_button_status(btnNo)
      val = encoder8_0.get_counter_value(btnNo)
      label17.setText(str((str(btn))))
      label27.setText(str((str(val))))
      if btnNo == 8:
      btn = encoder8_0.get_button_status(btnNo)
      val = encoder8_0.get_counter_value(btnNo)
      label18.setText(str((str(btn))))
      label28.setText(str((str(val))))

      def setup():
      global label1, title0, label2, label3, label4, label5, label6, label7, label8, label9, label11, label12, label13, label10, label14, label15, label16, label17, label18, label19, label20, label21, label22, label23, label24, label25, label26, label27, label28, i2c0, encoder8_0, btn, btnNo, val

      i2c0 = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000)
      encoder8_0 = ENCODER8(i2c0, 0x41)
      M5.begin()
      Widgets.fillScreen(0xffe834)
      label1 = Widgets.Label("#1", 25, 50, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      title0 = Widgets.Title("Encoder Test", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18)
      label2 = Widgets.Label("#2", 25, 69, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label3 = Widgets.Label("#3", 25, 92, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label4 = Widgets.Label("#4", 25, 116, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label5 = Widgets.Label("#5", 25, 141, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label6 = Widgets.Label("#6", 25, 166, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label7 = Widgets.Label("#7", 25, 189, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label8 = Widgets.Label("#8", 25, 215, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label9 = Widgets.Label("Btn", 24, 34, 1.0, 0x000008, 0xf1e68d, Widgets.FONTS.DejaVu12)
      label11 = Widgets.Label("Text", 108, 50, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label12 = Widgets.Label("Text", 108, 68, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label13 = Widgets.Label("Text", 108, 95, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label10 = Widgets.Label("v1.0", 277, 1, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu18)
      label14 = Widgets.Label("Text", 108, 120, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label15 = Widgets.Label("Text", 108, 143, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label16 = Widgets.Label("Text", 108, 166, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label17 = Widgets.Label("Text", 108, 189, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label18 = Widgets.Label("Text", 108, 215, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label19 = Widgets.Label("Text", 365, -164, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu18)
      label20 = Widgets.Label("Text", 328, -105, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu18)
      label21 = Widgets.Label("Text", 181, 52, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label22 = Widgets.Label("Text", 181, 70, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label23 = Widgets.Label("Text", 181, 95, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label24 = Widgets.Label("Text", 181, 120, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label25 = Widgets.Label("Text", 180, 145, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label26 = Widgets.Label("Text", 180, 166, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label27 = Widgets.Label("Text", 180, 189, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)
      label28 = Widgets.Label("Text", 180, 215, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu12)

      def loop():
      global label1, title0, label2, label3, label4, label5, label6, label7, label8, label9, label11, label12, label13, label10, label14, label15, label16, label17, label18, label19, label20, label21, label22, label23, label24, label25, label26, label27, label28, i2c0, encoder8_0, btn, btnNo, val
      M5.update()
      dosomething(1)
      dosomething(2)
      dosomething(3)
      dosomething(4)
      dosomething(5)
      dosomething(6)
      dosomething(7)
      dosomething(8)

      if name == 'main':
      try:
      setup()
      while True:
      loop()
      except (Exception, KeyboardInterrupt) as e:
      try:
      from utility import print_error_msg
      print_error_msg(e)
      except ImportError:
      print("please update to latest firmware")

      Im using uiflow 2.0 alpha 19 with cores3

      1 Reply Last reply Reply Quote 0
      • First post
        Last post