• Italy activation

    SiPy sipy nettrotter sigfox activation
    1
    0 Votes
    1 Posts
    428 Views
    No one has replied
  • LoPy4 not connecting to Sigfox Public Network

    LoPy sigfox lopy4 public network
    1
    0 Votes
    1 Posts
    705 Views
    No one has replied
  • No file open to run

    SiPy sigfox
    6
    0 Votes
    6 Posts
    1k Views
    R
    @Bernal-R This issue has been solved in Pymakr v1.4.2, which was released today.
  • 0 Votes
    6 Posts
    2k Views
    E
    @dmnk Sorry dominik, i have emergency on other projet and cannot do some test with my lopy4. In fact, as i previously said i work with sigfox on my company product. We send setting via downlink on our device to start them when necessary. For a 10K fleet device, 95% of them have receive downlink after 3 downlink (and aprox 50% one first downlink), so definitly for me downlink is more weak than uplink. As i understood the ohter post from xorlover and answer from seb, it's sigfox FSK ptp that is not yet present in firmware.
  • Sigfox FSK on FiPy Not Supported?

    Discussion sigfox sigfox fsk fipy
    1
    0 Votes
    1 Posts
    548 Views
    No one has replied
  • Error when uploading to LoPy4

    Firmware sigfox lopy bug
    3
    0 Votes
    3 Posts
    836 Views
    L
    The file is called main.py, and it always was, so i don't think it can be it. I have a project created, and all the file are inside, i can access it through windows explorer as well, for the code, i can explain it, and post a screen about it if you want. I use the internal RTC (even if i can't update the time, i can initialise it and do something when X date is reached, even if there is no save if the system is not alimented anymore, that's enough for me) i also use an analogic pin for taking a battery pourcentage, and i send a message when a pin receive something. If you really want all the code here it is from network import Sigfox from machine import Pin from machine import RTC import pycom import socket import machine import time class ComSigFox: msg = "" localisation = "" socket = "" Etat = "" tailleManquante = 0 Compteur = 0 def __init__(self): # Initialise SigFox en Europe (RCZ1) localisation = Sigfox(mode=Sigfox.SIGFOX, rcz=Sigfox.RCZ1) def sendMsg(self, paramMsg): pycom.rgbled(0x007f00) # vert # Créer un socket SigFox s = socket.socket(socket.AF_SIGFOX, socket.SOCK_RAW) # Bloque le socket s.setblocking(True) # Configure le socket en Uplink seulement (False / True) s.setsockopt(socket.SOL_SIGFOX, socket.SO_RX, False) msg = paramMsg msg += " %" if((len(msg) ) < 5 ): # Si le message fait en dessous de 5 caractères tailleManquante = 5 - (len(msg)) for Compteur in range(tailleManquante): msg = msg + " " # On rajoute des espaces autant de fois # Que nécessaire pour avoir 5 caractères Etat = "Close" if(Etat == "Open"): Etat = "Open " msg = msg + Etat s.send(msg) return True class Batterie: Voltage = 0 Charge = 0 def __init__(self): pass def getBattery(self): adc = machine.ADC(bits = 10) # create an ADC object apin = adc.channel(pin='P20', attn = machine.ADC.ATTN_11DB) # create an analog pin on P20 i = 0 MoyenneVolt = 0 for i in range(1,50): time.sleep(0.1) val = apin() - 698 Mesure = (val / 1024) * 5 MoyenneVolt += Mesure Voltage = MoyenneVolt / 49 print(Voltage) # Condition tension avec équation 0 - 10% de charge if(Voltage >= 1.32496 and Voltage <= 1.41429): Charge = (429.71806 * pow(Voltage,2)) - (1065.15152 * Voltage) + 656.90476 # Condition tension avec équation 10 - 30% de charge if(Voltage > 1.41429 and Voltage <= 1.45895): Charge = (404108.59608 * pow(Voltage,3)) - (1741647.28089 * pow(Voltage,2)) + (2502325.58922 * Voltage) - 1198510 # Condition tension avec équation 30 - 60% de charge if(Voltage > 1.45895 and Voltage <= 1.52594): Charge = (540257.28470 * pow(Voltage,4)) - (3000615.37231 * pow(Voltage,3)) + (6220087.42278 * pow(Voltage,2)) - (5699263.94063 * Voltage) + 1945763.58460 # Condition tension avec équation 60 - 100% de charge if(Voltage > 1.52594 and Voltage <= 1.58921): Charge = (348000.83082 * pow(Voltage,3)) - (1629386.97406 * pow(Voltage,2)) + (2543268.59982 * Voltage) - 1323295.17637 Charge = int(round(Charge,0)) print("") print(Charge) print("") # La fonction int() n'arrondit pas, elle ne fait que tronquer, ainsi, il faut faire un int de l'arrondi qui seras par exemple # 49.0, le résultat seras donc le nombre 49. return Charge class HorlogeRTC: rtc = 0 Date = 0 stringHeureDate = "" stringMinutesDate = "" stringSecondesDate = "" intHeureDate = 0 intMinuteDate = 0 intSecondesDate = 0 HeureSouhaite = 0 MinuteSouhaite = 0 SecondeSouhaite = 0 HeureFinal = 0 MinuteFinal = 0 SecondeFinal = 0 TempsTotalAttente = 0 def __init__(self): rtc = RTC() rtc.init((2018, 5 , 16 , 17, 19, 50, 0 )) # rtc.init(Année , mois , jours , heures , minutes, secondes, millisecondes) def getTime(self): Date = RTC().now() return Date def CalcTime(self,Date): Jour = False stringHeureDate = Date[3] stringMinutesDate = Date[4] stringSecondesDate = Date[5] s_intHeureDate = int(stringHeureDate) * 3600 s_intMinutesDate = int(stringMinutesDate) * 60 s_intSecondesDate = int(stringSecondesDate) s_TempsTotalActuel = s_intHeureDate + s_intMinutesDate + s_intSecondesDate HeureSouhaite = 17 * 3600 MinuteSouhaite = 20 * 60 SecondeSouhaite = 10 s_TempsTotalSouhaite = HeureSouhaite + MinuteSouhaite + SecondeSouhaite # TempsTotalAttente en seconde if(s_TempsTotalSouhaite < s_TempsTotalActuel): TempsTotalAttente = (s_TempsTotalSouhaite - s_TempsTotalActuel) * -1 else: TempsTotalAttente = s_TempsTotalSouhaite - s_TempsTotalActuel if(Jour == False): Jour == True return TempsTotalAttente elif(Jour == True): return 86400 + TempsTotalAttente def TempoVerifMesure(TempsRestantHorlogeParam): Max = 0 Diviseur = 0 TempsAttenteBoucle = str(TempsRestantHorlogeParam) print(TempsAttenteBoucle) if(len(str(TempsAttenteBoucle)) == 5): Diviseur = 10000 TempsAttenteBoucle = int(TempsRestantHorlogeParam) / Diviseur if(len(str(TempsAttenteBoucle)) == 4): Diviseur = 1000 TempsAttenteBoucle = int(TempsRestantHorlogeParam) / Diviseur if(len(str(TempsAttenteBoucle)) == 3): Diviseur = 100 TempsAttenteBoucle = int(TempsRestantHorlogeParam) / Diviseur if(len(str(TempsAttenteBoucle)) == 2): Diviseur = 10 TempsAttenteBoucle = int(TempsRestantHorlogeParam) / Diviseur print(TempsAttenteBoucle) #Pin de l'ILS #ILS = Pin('P23',mode=Pin.IN,pull=Pin.PULL_UP) Max = Diviseur pycom.rgbled(0x7f0000) # red for i in range(0,Max,1): time.sleep(TempsAttenteBoucle) print("Tempo... {0}".format(Max)) #if(ILS() == True): # return True return True if __name__=="__main__": Horloge = HorlogeRTC() # On initialise la classe HorlogeRTC Battery = Batterie() # On initialise la classe Batterie SigFox = ComSigFox() # On initialise la classe ComSigFox pycom.heartbeat(False) while(True): #Le programme tourne en permanance dans cette boucle envoiSigFox = False while(envoiSigFox == False): # Tant que le message SigFox n'est pas envoyé on boucle ici Date = Horloge.getTime() # On récupère la date TempsRestantHorloge = Horloge.CalcTime(Date) # On calcule le temps restants avant la date souhaite en secondes intCharge = Battery.getBattery() if(TempoVerifMesure(TempsRestantHorloge) == False): # Condition pour que le message SigFox s'envoie (Temporisation de TempsRestantHorloge + vérif ILS) pycom.rgbled(0x7f7f00) # jaune else: SigFox.sendMsg(str(intCharge)) envoiSigFox = True
  • Sigfox downlink and callback

    Discussion sigfox downlink blocking
    1
    0 Votes
    1 Posts
    593 Views
    No one has replied
  • 2 Votes
    1 Posts
    909 Views
    No one has replied
  • PAC changed after firmware update

    FiPy pac sigfox firmware update
    3
    0 Votes
    3 Posts
    662 Views
    C
    It just happened to me too :-( Yesterday it worked, and today it doesn't.
  • 0 Votes
    13 Posts
    2k Views
    L
    @jmarcelino how do you make a denit() of LoRa or Sigfox please ?
  • FiPy sigfox antenna issue

    FiPy fipy sigfox antenna
    10
    0 Votes
    10 Posts
    2k Views
    S
    @jmarcelino even in outdoors (completely flat field) the reads are erractic. Could you confirm me that the class of the tranceiver in FiPy is 0U??
  • Sigfox RC4 Freezing after 1 msg

    FiPy fipy sigfox send data freeze
    5
    0 Votes
    5 Posts
    1k Views
    G
    @jmarcelino said in Sigfox RC4 Freezing after 1 msg: time.sleep(20) Works like a charm. Thanks a lot. The documentation is a bit misguiding here, it says : "there must a minimum of a 20s delay after resetting to the default macro-channel. Our API takes care of this for i in range(1, 100): # send something s.send('Hello ' + str(i)) There will be a 20 second delay after every 2 packets" In fact, there should be a delay added between 2 packets. Maybe a suggestion for modification of the doc. Anyway, thanks a lot for correcting me ! All the best.
  • Getting started

    MicroPython micropython sigfox help
    2
    0 Votes
    2 Posts
    841 Views
    J
    When I started I first read this tutorial to understand the Python language. Not everything is available in Micropython, but you get the concept: https://docs.python.org/3/tutorial/ I looked up details uniqe to Micropython here when I found something from Python that was not working: http://docs.micropython.org/en/latest/pyboard/ For Pycom functionality documentation and examples are available here: https://docs.pycom.io/ Johan
  • 0 Votes
    11 Posts
    3k Views
    R
    @pmb_nl i have the same problem, do You have some solution about it? Thanks
  • Unhandled interrupt 30 on cpu 0! with lastest firmware

    Firmware sigfox fipy bug
    14
    0 Votes
    14 Posts
    3k Views
    M
    @seb Just tried 1.15.0.b1 and the first 2 tries where successful. Thanks!
  • Sigfox coverage in melbourne australia

    SiPy sigfox
    2
    0 Votes
    2 Posts
    834 Views
    A
    Hi @misterlisty You will have access to more details and to the coverage API once you register your device (follow the guide on pycom.io and register through backend.sigfox.com/activate). Aurelien
  • Sigfox library for LoPy4?

    LoPy lopy4 sigfox
    10
    0 Votes
    10 Posts
    2k Views
    T
    @xykon Great it works fine now, thanks a lot for your help.
  • SiPy : Pin modes blocking SigFox sending??

    SiPy sipy sigfox pins blocking payload
    2
    0 Votes
    2 Posts
    803 Views
    T
    I just made a mistake with the pins, the one I needed to not change were G12, G13 and G14 and not like mentionned above. I'm still interested if I could use those Pins for input and then somehow deinit so that the communication still works.
  • Cannot import name Sigfox

    FiPy import sigfox fipy
    11
    1
    0 Votes
    11 Posts
    3k Views
    H
    @pymiom @mbartecki I got the new public firmware supporting Sigfox, by updating the device this morning! Enjoy guys :) Thank you @jmarcelino