Fipy läuft nicht richtig ohne Atom



  • Hallo Leute, ich schreibe hier in Deutsch weil ich es so besser erklären kann.
    Ich habe ein Projekt in Atom geladen und speichere es auf mein Fipy.
    Läuft alles Wunderbar, sobald ich aber das Atom Programm schließe und den Fipy resette, läuft es nicht mehr richtig.
    Starte ich dann wieder die Atom Software fängt es nach kurzer zeit wieder an zu laufen.
    Irgendwo fehlen da wohl Dateien die nicht auf dem Fipy sind.
    Hier der Link zum Projekt:
    https://ruuvitag-ttn.readthedocs.io/en/latest/



  • @robert-hh said in Fipy läuft nicht richtig ohne Atom:

    Achtung: Niemals eine Eingangsspannung an 3.3V anlegen. Das ist ein Ausgang.

    Hatte ich leider schon mal gemacht!.
    Hatte aber nicht mein vorheriges Problem verursacht das war ja schon von Anfang an so.
    Ich wünsche dir noch einen schönen Sonntag.



  • @wolli01 Man kann einen Akku an Vin und GND anschließen. Aufgeladen werden muss der dann separat. Spezifizierter Spannungsbereich für Vin ist 3.4-6V. Es geht aber auch 'runter bis ca. 3V.
    Wenn man mehr Flexibilität beim Akku braucht (z.B. 6V Bleiakku, Spannung 7.2-5.4V, oder 3x Primärzelle, Spannung 5.1-3V), kann man auch einen externen Regler vorschalten, z.B. das Modul S7V8F5 von Pololu (auch S7V8F3). Das regelt eine Eingangsspannung von 2.7 bis 11.8V auf 5V (3.3V) Ausgang.
    Bei einer Spannung unterhalb von 3.4V schaltet der Spannungsregler des FiPy auf Bypass.
    Achtung: Niemals eine Eingangsspannung an 3.3V anlegen. Das ist ein Ausgang.



  • @robert-hh Danke, du hast mir schon reichlich geholfen. Freue mich ja riesig das es endlich läuft.
    Braucht man das Borad jetzt überhaupt noch oder kann ich einfach ein Akku an den Fipy direkt anschließen?



  • @wolli01 Die Jumper werden nicht benötigt. Die Signale werden von der Firmware ohnehin nicht ausgewertet. Ein Script könnte sie benutzen, um den Status der Verbindung zum PC zu verwenden. Aber dann müsste Pycom mal wieder Dokumentieren, wo diese Signale angeschlossen sind. Für das Expansion Board 2 ist das dokumentiert, dort sind es P19 und P20. Unglücklicherweise werden diese Anschlüssel beim Fipy auch für das LTE modem verwendet, sodass man bei Nutzung von FiPy auf Expansion board 2 (und 3) die Jumper auf jeden Fall weglassen muss. Wie gesagt, für Expansion Board 3 fehlen die Angaben. Das müsste man ggf. durchmessen. Da ich das Board nicht habe und auch nicht kaufen will, kann ich es nicht machen.



  • @robert-hh Vielen, vielen Dank für den Mithilfe, Es scheint jetzt ohne den beiden Jumpern zu laufen.
    Kann da jetzt irgenwas mit dem Borad passieren oder kann man es getrost so laufen lassen?



  • @wolli01 Das kann nur der Zustand der USB/UART Verbindung sein, insbesondere die Modem-Steuerleitungen RTS und CTS. ich weiß nicht, wie diese beim Expansion Board 3 verknüpft sind. Pycom schweigt sich über exakte Details aus. Du ḱannst mal versuchen, die entsprechnden Jumper auf dem Expansion board zu entfernen, ab das den Zustand mit Atom zum schlechteren oder ohne zum besseren verändert.



  • @robert-hh Am Notebook aber ja sobald Putty oder Atom an ist, ich brauche dann nur zu warten und dann läuft es durchegehend ob reset gedrückt wird oder nicht. Es startet immer wieder neu so wie es soll. Man könnte eher vermuten er holt sich was vom Notebook aus Putty oder Atom was er sonst nicht bekommt.???



  • @wolli01 D.h. die Software kehrt aus deepsleep nicht mehr zurück. Dazu gibt es viele Posts, welche ich aber nicht intensiv verfolgt habe.



  • @robert-hh Wenn es läuft dann auch ohne Atom am Notebook.
    Wenn das Usb mal ab war dann startet es am Notebook nur mit Atom. sonst nur 1 x.



  • @wolli01 Hängt es überhaupt von diesen Dateien ab? Zeigt ein simples main.py, mit nur kurz einem Blinken der LED und Deepsleep das gleiche phänomen?



  • @wolli01 Notebook mit oder ohne Atom aktiv? Wenn ohne, dann das USB-Netzteil überprüfen. FiPy benötigt relativ viel Strom, in Spitzen mehr als 500mA. Auch ein Versuch: P8 auf 3.3v verbinden.





  • @robert-hh
    NODE_DEEPSLEEP = 60000
    Lasse ich es am Notebook, läuft es durchgehend.
    Ich kann es auch ständig resetten und es läuft weiter. Ziehe ich das USB Kable ab und stecke es in die Steckdose, dann geht es nur 1 x. Schließe ich es wieder am Notebook an und starte Atom läuft es wieder sonst nicht.



  • @wolli01 D.h.: Auch wenn das Board z.B. per USB Ladegerät versorgt wird, startet es nicht? Das ist ungewöhnlich. Ich betreibe z.B. so ein LoRaWan-Gateway.
    Ggf. läuft es nur einmal. Welchen Wert hat settings.NODE_DEEPSLEEP?



  • @morpheus Dann läuft es einmal un bleibt stehen auch wenn ich Atom oder Putty anhabe.
    Also, habe ich den fipy mit dem Expansion Board 3.0 über USB an mein Notebook verbunden.
    Starte Atom und resette den fipy. Es läuft alles wie es soll. Beende ich jetzt aber Atom dann läuft es so lange bis ich
    das Usb Kabel entferne und es resette. Danach hört es auf zu funktionieren. Auch wenn ich es an der Steckdose anschließe.
    Stecke ich jetzt wieder das Usb Kabel ins Notebook und starte ich dann wieder Atom ohne was zu ändern, geht es nach kurzer Zeit wieder so wie es soll.



  • @wolli01
    Hallo wolli,
    wie sieht es aus wenn du das deepsleep auskommentierst?



  • @robert-hh And why's it going when I've got Putty going?



  • @wolli01 So sieht es aus. main.py läuft durch bis zu letzten Zeile, und dann ist schluss. Anders als bei Arduino wird main.py nicht zyklisch aufgerufen.

    Note: Translated by www.deepl.com:
    so it looks. main.py runs through to the last line, and then it's over. Unlike Arduino, main.py is not called cyclically.



  • @robert-hh
    hier mal die main.py
    in der boot.py steht nichts drinne

    import machine
    import ustruct
    
    import pycom
    import socket
    import struct
    import network
    import time
    from network import Bluetooth
    
    import settings
    
    from node import LoRaWANNode
    from ruuvitag.scanner import RuuviTagScanner
    
    
    
    
    #from ruuvitag.scanner import RuuviTagScanner
    #rts = RuuviTagScanner()
    #for ruuvitag in rts.find_ruuvitags(timeout=10):
    #    print(ruuvitag)
    #from ruuvitag.tracker import RuuviTagTracker
    #def cb(ruuvitag):
    #    print(ruuvitag)
    #rtt = RuuviTagTracker()
    #rtt.track_ruuvitags(cb)
    
    
    def pack_temp(temp):
        """Temperature in 0.005 degrees as signed short"""
        temp_conv = round(round(temp, 2) / 0.005)
        temp_int16 = ustruct.pack('!h', temp_conv)
        return temp_int16
    
    
    def pack_hum(hum):
        """Humidity in 0.0025 percent as unsigned short"""
        hum_conv = round(round(hum, 2) / 0.0025)
        hum_int16 = ustruct.pack('!H', hum_conv)
        return hum_int16
    
    
    payload = b''
    
    rts = RuuviTagScanner(settings.RUUVITAGS)
    print (rts)
    
    
    
    # get all data and prepare payload
    print('harvest ruuvitags')
    for ruuvitag in rts.find_ruuvitags(timeout=settings.TIMEOUT):
        id_payload = settings.RUUVITAGS.index(ruuvitag.mac.encode())
        temp_payload = pack_temp(ruuvitag.temperature)
        hum_payload = pack_hum(ruuvitag.humidity)
    
        payload = payload + bytes([id_payload]) + temp_payload + hum_payload
    
    
    #payload = (b'\x00\x11\x8aZ\xd0\x01\x06&y\xe0')
    
    print(payload)
    
    
    
    print('setup lorawan')
    node = LoRaWANNode(settings.NODE_APP_EUI, settings.NODE_APP_KEY)
    
    print('send payload')
    node.send(payload)
    
    print('enter deepsleep for {} ms'.format(settings.NODE_DEEPSLEEP))
    machine.deepsleep(settings.NODE_DEEPSLEEP)```
    Insert Code Here
    

Log in to reply
 

Pycom on Twitter