Welcome to the Pycom forum Forum
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • Login

    Explore Pybytes | Official Documentation | Report a Firmware Bug/Issue | GitHub

    power supply (Lopy4+Exp.Board v.3)

    Scheduled Pinned Locked Moved Expansion Board
    expansion boardlopy4power down
    5 Posts 2 Posters 678 Views 2 Watching
    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.
    • G Offline
      Giorgio
      last edited by Giorgio

      Hi, I have this question:
      Which is the minimum current that is possible to have in a sort of power down with a Lopy4 mounted on an expansion board 3? And in which way?(deep sleep -- go to sleep.... -- )?
      I obtained 3,5mA at best. Is it possible to arrive at the order of uA?
      Thanks in advance for your help.
      Giorgio

      1 Reply Last reply Reply Quote 0
      • P Offline
        Paul Thornton
        last edited by

        With everything shut down and sleeping LTE/Wifi/Lora and the expansion board ect you should be seeing way less than 3.5mA

        Ive seen 32uA with a LoPY 3 + an Expansion board v 3.1.

        If you'd like to post the code perhaps we have work out whats going on :)

        G 3 Replies Last reply Reply Quote 0
        • G Offline
          Giorgio @Paul Thornton
          last edited by

          This post is deleted!
          1 Reply Last reply Reply Quote 0
          • G Offline
            Giorgio @Paul Thornton
            last edited by

            @paul-thornton This is the code (below). At the end of main.py I use the machine.deepsleep(10000)...
            ...is machine.deepsleep() sufficient in order to shut down everythings?
            Then I use also a library for HX711 (for load cell) and a config.py file for Lorawan parameters
            thanks.

            print('\n\nVERSION 0x01\n\n')
            
            """importo libreria per LoRa"""
            from network import LoRa
            
            """importo libreria machine per deep sleep"""
            import machine
            """importo libreria machine per RTC"""
            from machine import RTC
            rtc=RTC()
            rtc.ntp_sync("pool.ntp.org")
            #rtc.init((2018,11,30,15,45,0))
            #print(rtc.now())
            import time
            time.sleep(3)
            
            """importo libreria machine per ADC"""
            from machine import ADC
            adc = ADC()
            battread = adc.channel(attn=0,pin='P16')
            batt=battread()
            print("VALORE DI BATTERIA ", batt)
            """importo vari moduli Python utili"""
            import pycom
            import socket
            import ubinascii
            import struct
            
            import config
            
            """importo libreria per HX711"""
            from hx711 import HX711
            
            #---------------------------------------------------------------------------
            """Setup per LoRaWAN """
            # initialize LoRa in LORAWAN mode.
            # Please pick the region that matches where you are using the device:
            # Asia = LoRa.AS923
            # Australia = LoRa.AU915
            # Europe = LoRa.EU868
            # United States = LoRa.US915
            lora = LoRa(mode=LoRa.LORAWAN, region=LoRa.EU868)
            
            # create an OTA authentication params
            dev_eui = ubinascii.unhexlify('0004A30B001BD398')
            app_eui = ubinascii.unhexlify('70B3D57ED00140CB')
            app_key = ubinascii.unhexlify('5C777F91BAFE83DD6C8651CC7873DDA7')
            
            # set the 3 default channels to the same frequency (must be before sending the OTAA join request)
            """HO commentato 3 righe per il set delle frequenze sui canali 0, 1, 2,
            	In questo modo posso usare più canali. NON va bene per il nanogateway che vuole solo un canale"""
            lora.add_channel(0, frequency=config.LORA_FREQUENCY, dr_min=0, dr_max=5)
            #lora.add_channel(1, frequency=config.LORA_FREQUENCY, dr_min=0, dr_max=5)
            #lora.add_channel(2, frequency=config.LORA_FREQUENCY, dr_min=0, dr_max=5)
            
            # join a network using OTAA
            lora.join(activation=LoRa.OTAA, auth=(dev_eui, app_eui, app_key), timeout=0, dr=config.LORA_NODE_DR)
            
            # wait until the module has joined the network
            prove=0
            freq=machine.freq()
            #uni_id=machine.unique_id()
            print(freq)
            #print(uni_id)
            
            while not lora.has_joined():
                time.sleep(2.5)
                print('Not joined yet...')
                prove+=1
                if(prove==5):
            		break
            if (prove<5):
                join=1
                print('Joined to LoRaWAN Network')
                # remove all the non-default channels
                for i in range(3, 16):
            		lora.remove_channel(i)
                # create a LoRa socket
                s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
            
            	# set the LoRaWAN data rate
                s.setsockopt(socket.SOL_LORA, socket.SO_DR, config.LORA_NODE_DR)
            
            	# make the socket non-blocking
                s.setblocking(False)
            else:
                print('Not joined to LoRaWAN Network')
                join=0
            
            
            """ Your own code can be written below! """
            time.sleep(5.0)
            """FINE SETUP PER LoRaWAN"""
            #---------------------------------------------------------------------------
            #---------------------------------------------------------------------------
            """Setup per HX711 """
            """imposto il valore di offset - non mi serve la tara
            #è il peso del sistema a vuoto senza pesi sopra """
            hx = HX711('P15', 'P11') #DAT, clk
            hx.set_offset(400500)	#è la tara senza peso sopra da togliere alla misura(iniziale 380600)
            reference_unit = 745.500 #calcolato con peso di 5000gr (iniziale di 743.500)
            """FINE SETUP PER HX711"""
            #---------------------------------------------------------------------------
            for i in range(1):
            	#leggo un valore dalla bilancia
                value = hx.get_value(10)
                print("Read VALUE: ", i)
                grammi = value/reference_unit #calcolo il peso della bilancia
                kg = grammi/1000
                print('             ')
                print('grammi: ', grammi, 'Kg: ',kg)
                print('             ')
            
            	#leggo un valore di temperatura
            	#trasformo i valori in byte
                if(kg < 0):
            		kg=kg*(-1)	#tolgo i valori negativi
                kg1=int(kg*100) #*100 come se avesse due decimali-prendo la parte intera
                print(kg1)
                hi=kg1>>8 #prendo il byte alto
                lo=kg1-(hi<<8) #prendo il byte basso
                print("kg1: ", kg1, hex(kg1), "hi: ", hex(hi), "lo: ", hex(lo))
                print("sending...")
                pkg=bytes([1,2])+bytes([hi,lo]) #formato LPP - Cayenne -
                #if(join==1):
                #    s.send(pkg)
                #time.sleep(30)
            	#trasmetto in lorawan
            	#leggo da lorawan
                #leggo la batteria in add_channel
                batt=battread()
                print("VALORE DI BATTERIA ", batt)
                batt=int(batt/10)
                batHi=batt>>8
                batLo=batt-(batHi<<8)
                pkg1=bytes([2,2])+bytes([batHi,batLo]) #formato LPP - Cayenne -
                pkg2=pkg+pkg1
                if(join==1):
                    s.send(pkg2)
                time.sleep(30)
            
            
            print("entro in deep sleep")
            machine.deepsleep(10000) #10sec to test
            
            
            1 Reply Last reply Reply Quote 0
            • G Offline
              Giorgio @Paul Thornton
              last edited by

              @paul-thornton ... and in the boot.py file I have this code:

              # boot.py -- run on boot-up
              import os
              from machine import UART
              uart = UART(0, 115200)
              os.dupterm(uart)
              #disable the wifi radio
              from network import WLAN
              wlan=WLAN()
              wlan.deinit()
              #disable the bluetotth radio
              from network import Bluetooth
              blt=Bluetooth()
              blt.deinit()
              
              1 Reply Last reply Reply Quote 0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              • 1 / 1
              • First post
                Last post

              Pycom on Twitter

              Pycom