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

    Purchased a m5StickV - Fixed in recent firmware update.

    PRODUCTS
    4
    25
    76.8k
    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.
    • ajb2k3A
      ajb2k3 @FPSychotic
      last edited by

      @fpsychotic I've got the MK1 as the MKII isn't out yet

      UIFlow, so easy an adult can learn it!
      If I don't know it, be patient!
      I've ether not learned it or am too drunk to remember it!
      Author of the WIP UIFlow Handbook!
      M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

      1 Reply Last reply Reply Quote 0
      • X
        Xeon
        last edited by

        i verified it.
        after reaching 70 to 90% full battery the device wont power off.
        it just reboots.
        after going below this threshold it turns off again normally.

        The war of 1 and 0 draws ever closer.
        everyday i work to become a cyborg.

        1 Reply Last reply Reply Quote 0
        • T
          Thrasher
          last edited by

          Hardmode it with dc-dc stepdown to keep battery outcome always below 70% :))

          1 Reply Last reply Reply Quote 0
          • X
            Xeon
            last edited by

            Well my battery is now rotten thanks to this.
            The battery life is fading very fast.

            I want a replacement.
            i bought this device to get a task done.
            it's going to.

            The war of 1 and 0 draws ever closer.
            everyday i work to become a cyborg.

            ajb2k3A 1 Reply Last reply Reply Quote 0
            • ajb2k3A
              ajb2k3 @Xeon
              last edited by

              @xeon have you contacted M5Stack support about this? They should be available now

              UIFlow, so easy an adult can learn it!
              If I don't know it, be patient!
              I've ether not learned it or am too drunk to remember it!
              Author of the WIP UIFlow Handbook!
              M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

              X 1 Reply Last reply Reply Quote 0
              • X
                Xeon @ajb2k3
                last edited by

                @ajb2k3 said in Purchased a m5StickV:

                @xeon have you contacted M5Stack support about this? They should be available now

                They verified the problem and will release a fix soon.

                The war of 1 and 0 draws ever closer.
                everyday i work to become a cyborg.

                ajb2k3A 1 Reply Last reply Reply Quote 1
                • ajb2k3A
                  ajb2k3 @Xeon
                  last edited by

                  @xeon said in Purchased a m5StickV:

                  @ajb2k3 said in Purchased a m5StickV:

                  @xeon have you contacted M5Stack support about this? They should be available now

                  They verified the problem and will release a fix soon.

                  Glad to hear it.

                  UIFlow, so easy an adult can learn it!
                  If I don't know it, be patient!
                  I've ether not learned it or am too drunk to remember it!
                  Author of the WIP UIFlow Handbook!
                  M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

                  X 1 Reply Last reply Reply Quote 0
                  • X
                    Xeon @ajb2k3
                    last edited by

                    @ajb2k3 So far i managed to program a demo with all the source lying around thanks to our great friends here sharing.

                    But there are a few source examples i'm looking for.
                    i'm trying to make a program that tests as many functions and features as possible.

                    import audio
                    import gc
                    import image
                    import lcd
                    import sensor
                    import sys
                    import time
                    import utime
                    import uos
                    import _thread
                    import pmu
                    import KPU as kpu
                    from fpioa_manager import *
                    from machine import I2C
                    from Maix import I2S, GPIO
                    time.sleep(2)

                    Initialize

                    Lcd setup

                    lcd.init()
                    lcd.rotation(2)
                    i2c = I2C(I2C.I2C0, freq=400000, scl=28, sda=29)

                    Speaker setup

                    fm.register(board_info.SPK_SD, fm.fpioa.GPIO0)
                    spk_sd=GPIO(GPIO.GPIO0, GPIO.OUT)
                    spk_sd.value(1) #Enable the SPK output

                    fm.register(board_info.SPK_DIN,fm.fpioa.I2S0_OUT_D1)
                    fm.register(board_info.SPK_BCLK,fm.fpioa.I2S0_SCLK)
                    fm.register(board_info.SPK_LRCLK,fm.fpioa.I2S0_WS)

                    wav_dev = I2S(I2S.DEVICE_0)

                    Init battery monitor axp192

                    axp = pmu.axp192()
                    axp.enableADCs(True)

                    Setup A and B buttons

                    fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1)
                    but_a=GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP) #PULL_UP is required here!

                    fm.register(board_info.BUTTON_B, fm.fpioa.GPIO2)
                    but_b = GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP) #PULL_UP is required here!

                    but_a_pressed = 0
                    but_b_pressed = 0
                    but_stu = 1
                    cnt_f = 0

                    Setup LED's

                    fm.register(board_info.LED_W, fm.fpioa.GPIO3)
                    led_w = GPIO(GPIO.GPIO3, GPIO.OUT) #RGBW "White" LED
                    led_w.value(1) #RGBW "White" LED is Active Low

                    fm.register(board_info.LED_R, fm.fpioa.GPIO4)
                    led_r = GPIO(GPIO.GPIO4, GPIO.OUT) #RGBW "Red" LED
                    led_r.value(1) #RGBW "Red" LED is Active Low

                    fm.register(board_info.LED_G, fm.fpioa.GPIO5)
                    led_g = GPIO(GPIO.GPIO5, GPIO.OUT) #RGBW "Green" LED
                    led_g.value(1) #RGBW "Green" LED is Active Low

                    fm.register(board_info.LED_B, fm.fpioa.GPIO6)
                    led_b = GPIO(GPIO.GPIO6, GPIO.OUT) #RGBW "Blue" LED
                    led_b.value(1) #RGBW #RGBW "Blue" LED is Active Low

                    Define image filters

                    origin = (0,0,0, 0,1,0, 0,0,0)
                    edge = (-1,-1,-1,-1,8,-1,-1,-1,-1)
                    sharp = (-1,-1,-1,-1,9,-1,-1,-1,-1)
                    relievo = (2,0,0,0,-1,0,0,0,-1)

                    Subs

                    def fade_scrn(fspd,dirr): # Use backlight to fade screen dirr = dirrection 0 = in 1 = out
                    for i in range(9):
                    if dirr == 0:
                    set_backlight(i)
                    if dirr == 1:
                    ti = 9 - i
                    set_backlight(ti)
                    time.sleep(fspd)

                    def play_sound(filename,vol):
                    try:
                    player = audio.Audio(path = filename)
                    player.volume(vol)
                    wav_info = player.play_process(wav_dev)
                    wav_dev.channel_config(wav_dev.CHANNEL_1, I2S.TRANSMITTER,resolution = I2S.RESOLUTION_16_BIT, align_mode = I2S.STANDARD_MODE)
                    wav_dev.set_sample_rate(wav_info[1])
                    while True:
                    ret = player.play()
                    if ret == None:
                    break
                    elif ret==0:
                    break
                    player.finish()
                    except:
                    pass

                    def set_backlight(level): # Set backlight brightness ranges from 0 to 8
                    if level > 8:
                    level = 8
                    if level < 0:
                    level = 0
                    val = (level+7) << 4
                    i2c.writeto_mem(0x34, 0x91,int(val))

                    def show_logo():
                    led_r.value(0)
                    img = image.Image("/sd/startup1.jpg")
                    time.sleep(0.15)
                    led_r.value(1)
                    set_backlight(0)
                    lcd.display(img)
                    fade_scrn(0.02,0)
                    led_w.value(0)
                    led_b.value(0)
                    play_sound("/sd/logo.wav",70)
                    led_b.value(1)
                    fade_scrn(0.02,1)
                    img = image.Image("/sd/startup2.jpg")
                    lcd.display(img)
                    fade_scrn(0.02,0)
                    play_sound("/sd/ding1.wav",70)
                    time.sleep(2)
                    led_w.value(1)

                    def init_camera(): #initialize sensor
                    led_b.value(0)
                    led_r.value(0)
                    err_counter = 0
                    while 1:
                    try:
                    sensor.reset() # Reset sensor.
                    break
                    except:
                    err_counter = err_counter + 1
                    if err_counter == 20:
                    led_r.value(0) # Led stays red if sensor failed to initialize.
                    lcd.draw_string(lcd.width()//2-100,lcd.height()//2-4, "Error: Sensor Init Failed", lcd.WHITE, lcd.RED)
                    time.sleep(0.1)
                    continue
                    led_b.value(1)
                    led_r.value(1)
                    led_g.value(0) # Led turns Green meaning all good.
                    play_sound("/sd/ding2.wav",70)
                    sensor.set_pixformat(sensor.RGB565)
                    sensor.set_framesize(sensor.QVGA) #QVGA=320x240
                    sensor.run(1)
                    time.sleep(0.5)
                    led_g.value(1)

                    def show_batt_stats():
                    val = axp.getVbatVoltage()
                    img.draw_string(52, 60, "Bat V:" + str(val), color=(230,0,0))
                    val = axp.getBatteryDischargeCurrent()
                    img.draw_string(52, 72, "Bat I:" + str(val), color=(230,0,0))
                    val = axp.getUSBVoltage()
                    img.draw_string(52, 84, "USB V:" + str(val), color=(230,0,0))
                    val = axp.getUSBInputCurrent()
                    img.draw_string(52, 96, "USB I:" + str(val), color=(230,0,0))
                    val = axp.getBatteryInstantWatts()
                    img.draw_string(52, 108, "I W:" + str(val), color=(230,0,0))
                    val = axp.getTemperature()
                    img.draw_string(52, 120, "Temp*:" + str(val), color=(230,0,0))

                    def apply_filter(cnt_f):
                    if cnt_f==1: #cycle filters 1=edge, 2=sharp, 3=relievo, 4=origin, 0 = skip filter
                    img.conv3(edge)
                    img.draw_string(52,60, "edge",color=(255,0,0))
                    elif cnt_f==2:
                    img.conv3(sharp)
                    img.draw_string(52,60, "sharp",color=(255,0,0))
                    elif cnt_f==3:
                    img.conv3(relievo)
                    img.draw_string(52,60, "relievo",color=(255,0,0))
                    elif cnt_f==4:
                    img.conv3(origin) #reset filter
                    img.draw_string(52,60, "origin",color=(255,0,0))
                    else :
                    cnt_f=0

                    Main

                    show_logo()

                    if but_a.value() == 0: #If dont want to run the demo
                    img = image.Image("/sd/startup3.jpg")
                    lcd.display(img)
                    print('[info]: Exit by user operation')
                    fade_scrn(0.02,1)
                    time.sleep(0.02)
                    set_backlight(0)
                    sys.exit()

                    init_camera()

                    Define list of classes

                    classes = ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor']
                    task = kpu.load("/sd/model/20class.kmodel")
                    task_face = kpu.load(0x300000) # default face detection model on flash memory

                    task_face = kpu.load("/sd/model/facedetect.kmodel") # you can extract the model from default .kfpkg

                    anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025)

                    Anchor data is for bbox, extracted from the training sets.

                    kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)
                    kpu.init_yolo2(task_face, 0.5, 0.3, 5, anchor)

                    print('[info]: Started.')
                    fade_scrn(0.02,1)
                    img = sensor.snapshot()
                    lcd.display(img)
                    fade_scrn(0.02,0)
                    led_g.value(1)
                    green_threshold = (0, 80, -70, -10, -0, 30)

                    try:
                    while(True):

                        img=sensor.snapshot() # Take Snapshot
                    
                        # Press B and A to cycle thru filters
                        if but_b.value() == 0 and but_a.value() == 0 and but_b_pressed == 0:
                            cnt_f=cnt_f+1
                            but_b_pressed=1
                            #play_sound("/sd/ding2.wav",70)
                        if but_b.value() == 1 and but_a.value() == 0 and but_b_pressed == 1:
                            but_b_pressed=0
                            #play_sound("/sd/ding2.wav",70)
                        if cnt_f==5:
                            cnt_f=0
                    
                        apply_filter(cnt_f)
                    
                        gc.collect()
                        code_obj = kpu.run_yolo2(task, img)
                        code_face = kpu.run_yolo2(task_face, img)
                        if code_obj: # object detected
                            max_id = 0
                            max_rect = 0
                            for i in code_obj:
                                img.draw_rectangle(i.rect())
                                text = ' ' + classes[i.classid()] + ' (' + str(int(i.value()*100)) + '%) '
                                for x in range(-1,2):
                                    for y in range(-1,2):
                                        img.draw_string(x+i.x(), y+i.y()+(i.h()>>1), text, color=(255,255,255), scale=1.5,mono_space=False)
                                img.draw_string(i.x(), i.y()+(i.h()>>1), text, color=(255,25,25), scale=1.5,mono_space=False) #display detected object name
                                id = i.classid()
                                rect_size = i.w() * i.h()
                                if rect_size > max_rect:
                                    max_rect = rect_size
                                    max_id = id
                            if but_a.value() == 0 and but_b.value() == 1:
                                led_w.value(0)
                                play_sound("/sd/voice/en/"+str(max_id)+".wav",70)
                                led_w.value(1)
                    
                        if code_face: # face detected
                            max_id = 0
                            max_rect = 0
                            for i in code_face:
                                img.draw_rectangle(i.rect(),color=(230,0,0))
                    
                        if but_b.value() == 0 and but_a.value() == 1: # press B for battery stats overlay
                            show_batt_stats()
                        #gc.collect()
                        #blobs = img.find_blobs([green_threshold])
                        #if blobs:
                            #for b in blobs:
                                #tmp=img.draw_rectangle(b[0:4])
                                #tmp=img.draw_cross(b[5], b[6])
                                #c=img.get_pixel(b[5], b[6])
                        lcd.display(img)
                    

                    except KeyboardInterrupt:
                    kpu.deinit(task)
                    kpu.deinit(task_face)
                    sys.exit()

                    The war of 1 and 0 draws ever closer.
                    everyday i work to become a cyborg.

                    1 Reply Last reply Reply Quote 0
                    • T
                      Thrasher
                      last edited by

                      Xeon, I've noticed pretty same problem on my stick-v today.
                      Whenever I press and hold turn-off button stick reboots instead of turning off.
                      In my case this happens whenever SD card is plugged in. I've removed it and everything works as intended now

                      X 1 Reply Last reply Reply Quote 0
                      • X
                        Xeon @Thrasher
                        last edited by

                        @thrasher
                        latest Firmware fixes this.

                        http://forum.m5stack.com/topic/1403/m5stickv-firmware_1017-upgrade

                        The war of 1 and 0 draws ever closer.
                        everyday i work to become a cyborg.

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