Projekt Gfrör.li - Protokoll

2018-03-27

Anwesend

@danilo @raphi

Stand: Hardware / Firmware

Next Steps

  • Low power Implementation in master integrieren: @raphi
  • Mit der Webapp weitermachen: @danilo
  • Prototyp bei HSR installieren: @danilo

2018-03-30

Anwesend

@danilo @raphi

Stand: Hardware / Firmware

Wir haben primär die Ansteuerung für den RN2483 debugged und ein paar Probleme behoben.

Fazit zu Join-Mechanismus:

  • Beim ersten Wakeup (power on wake) Join via OTAA (mac join otaa) durchführen, wenn nicht bereits joined (hasJoined()), dann mac save
  • Beim Deep Sleep Wakeup sollte man nun mit mac join abp joinen können, da die Session Keys persistiert wurden

Merged:

Stand: Web

  • Mit Chart styling weitergemacht (@danilo)

Other Learnings

Next Steps

2018-05-11

Anwesend

@raphi

1-Wire debugging

Currently we have severe problems with the stability of the 1-Wire communication due to timing problems with the wait_us function.

Measure the timing of the read function

With the read function implemented as follows:

 bool OneWire::read_bit() {
     _pin.write(0);
     _pin.output();
    // wait_us has ~15us overhead
     wait_us(0);
     _pin.input();
     bool b = _pin.read();
     wait_us(55);
     return b;
 }

The time for writing 0, waiting and changing back to input adds up to 19us (13us more than the target of 6us):

When the slave writes a 0 it will release the bus after 29us, thus when we would wait after changing to input we would miss the 0 from the slave:

Removing the call of the sleep reduces the low time to 4us which is less than the 6us thus violating the 1-Wire specs:

Downgrading the nxplpc version to 2.8.0 lead to a shorter delay (~15us) when using wait_us(0);

commit 5470e20c11a06a123f95a7769b519a7c549ccbfb (HEAD -> check-ds18b20-crc)
Author: Raphael Nestler <raphael.nestler@gmail.com>
Date:   Fri May 11 16:48:09 2018 +0200

    Specify the version of the nxplpc platform to use

diff --git a/platformio.ini b/platformio.ini
index f913a37..44da5c6 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -8,7 +8,7 @@
 env_default = debug
 
 [common]
-platform = nxplpc
+platform = nxplpc@2.8.0
 framework = mbed
 board = lpc11u24
 extra_scripts = extra_script.py

1 „Gefällt mir“

2018-05-14

Anwesend

@raphi
@danilo

1-Wire Fixing

By replacing the wait_us calls with direct calls to the ticker API we fixed the timing issues: https://github.com/gfroerli/firmware/pull/18


Read timings, showing a delay of 8us between pulling to low and rising to high again (6us in 1-Wire spec). Previously this was something like 15 to 20us.


Write timings, also showing a delay of 8us between pulling to low and rising to high again (also 6us in 1-Wire spec).

1 „Gefällt mir“

2018-06-05

Anwesend

@danilo @raphi

Low Power

Wir haben den Low-Power Code von Danilo debugged. Das Problem liegt am Wakeup des RN2483-Moduls. Ev ein Problem mit der Serial Break Condition.

Workaround vorerst: Nicht in den “ewigen” Sleep gehen, sondern mit einem Interval arbeiten: Das RN2483-Modul schläft etwas weniger lange als die Deep Sleep Phase und ist ready wenn der uC aufwacht.

PR:

Erste Messungen: Bei 15 Minuten-Intervallen kriegen wir vielleicht schön über ein Jahr Laufzeit hin! (Durchschnitts-Verbrach ca 235 uA) Siehe https://github.com/gfroerli/firmware/pull/25#issuecomment-394875883

Next Steps

  • Mit der Webapp weitermachen: @danilo
  • Prototyp bei HSR installieren: @danilo
  • Ev. RN2483 wakeup debuggen: @raphi

2018-06-10

Anwesend

@danilo @raphi

Deployment

Der erste Sensor ist live!

!

Web Updates

Next Steps

2018-06-11

Anwesend

@danilo @raphi @schmijos

API / DB

Bisher haben wir nur die See-Temperatur in der DB.
Sollen wir das so beibehalten oder sollen wir Innentemperatur, Feuchtigkeit und Batteriespannung auch in die DB loggen?

Soll die API diese Dinge auch zur Verfügung stellen?

Updates




2018-08-19

Anwesend

@danilo @raphi

HSR Node

Seit Freitag sendet der Sensor wieder keine Daten. Wir machen heute noch einen Powercycle.

Zusätzlich möchten wir einen Testnode im Coredump oder im Lattenbach. Leider haben wir keine Abdeckung hier :frowning:

Single Channel Test-Gateway

Parallel haben wir versucht, den LoRaGo DOCK Single-channel Gateway einzurichten.

Der Gateway läuft auf SF7 / BW125 / 868.1 MHz.

Konfiguration RN2483:

sys factoryRESET
mac set ch status 0 off
mac set ch status 1 off
mac set ch status 2 off
mac set ch status 2 off

mac set ch freq 5 868100000
mac set ch dcycle 5 9
mac set ch drrange 5 0 5
mac set ch status 5 on

mac set devaddr xxxxxxx
mac set nwkskey xxxxxxx
mac set appskey xxxxxxx

mac set adr off
mac set ar off
mac set pwridx 1
mac set dr 5

mac join abp
mac tx uncnf 1 4242

2019-01-22

Anwesend

@danilo @raphi

Android App

…hat ein neues Logo und ein paar Verbesserungen erhalten

Ziele 2019

  • Bessere Datenanzeige/-auswertung für App und Web
  • Einfache Firmware in Rust
  • Ev. neues PCB mit LibrePCB?

Heute

2019-02-05

Anwesend

@danilo @raphi

Android App

Release mit neuem Logo und Bugfixes published.

Hardware

@danilo Hat einige der benötigten Bauteile in LibrePCB integriert.

https://md.coredump.ch/uG6HKibfTdqGOjAmTkBs5g?view

iOS App

Niklas hat einen ersten Prototypen bereit.

Heute

  • @raphi macht an UART Implementierung mit Rust Nightly weiter
  • @danilo erfasst weitere LibrePCB Bauteile, die wir in der Gfrörli-Hardware nutzen.

2019-02-19

Anwesend

@danilo @raphi

Rust Firmware

Probleme mit Delay behoben:


Website

Elm 0.19 Migration gestartet.

Next Steps

  • @raphi macht an UART Implementierung mit Rust Nightly weiter
  • @danilo erfasst weitere LibrePCB Bauteile, die wir in der Gfrörli-Hardware nutzen.
  • @danilo macht mit der Elm-0.19-Migration weiter.

2019-03-19

Anwesend

@danilo @raphi

Rust Firmware

UART debugging: getraced was der c++ code genau macht und einen bug gefunden und gefixt:

Ansonsten noch einige kleine Fixes:

UART funktioniert jetzt!

Website

Der Elm 0.19 Port ist fast fertig!

Next Steps

  • @raphi macht an UART Implementierung mit Rust Nightly weiter

2019-04-30

Anwesend

@danilo @L3p0

iOS App

Niklas macht an der Entwicklung weiter.

Website

Port auf Elm 0.19 vor 2 Wochen abgeschlossen! Seither Bugs gefixt.

2019-05-14

Anwesend

@danilo @raphi

Hardware

Wir wechseln für v2 auf einen STML0 uC, Favorit ist aktuell der STM32L071KBT6 (3.33 CHF auf Digikey).

image-e167f56f-bcb2-4f04-b622-e033355c972d

HAL

@danilo hat den PR von @raphi reviewed:

Next Steps

Embedded-HAL-Treiber für:

  • RN2483: Schreiben
  • 1-Wire: Testen

2019-06-25

Anwesend

@danilo @raphi

Status

  • Raphi hat in der Zwischenzeit am One-Wire Rust-Treiber weitergearbeitet. Es gibt Probleme mit der Genauigkeit von Timern im Mikrosekunden-Bereich mit dem STM32L071 HAL (zu viel Overhead).
  • Danilo hat mit der Entwicklung eines RN2xx3-Treibers begonnen und an den LibrePCB-Libraries weitergearbeitet.
  • Wir haben an der Cosin beide mit dem Hardware-Design für v2 begonnen, vorerst mal nur das Schema.
  • Wir bestellen bei Gelegenheit ein paar neue Temperatursensoren weil die billigen China-Sensoren schrott sind.

Next Steps

Embedded-HAL-Treiber für:

  • RN2483: Fertigstellen
  • 1-Wire / HAL: Bugfixes machen
  • Schema v2: Fertigstellen

2019-10-15

(In der Zwischenzeit haben wir ein paar Meetings ohne Protokoll gehabt…)

Anwesend

@danilo @raphi

Status

Next Steps

  • Schema v2: Fertigstellen
  • Embedded-HAL-Treiber für RN2483: Fertigstellen
  • 1-Wire / HAL: Bugfixes machen

2019-10-19

Anwesend

@danilo @raphi

Status

Hardware v2

Erledigte Issues:

Next Steps

Ich habe mit dem Routing begonnen…

Wird schon langsam eng :sweat_smile:

2019-12-03

Anwesend

@danilo @raphi

Status

Hardware v2

An den offenen Issues weitergemacht. Wir sind fast fertig mit Routing!

2019-12-10

Anwesend

@danilo @raphi

Status

Hardware v2

Die letzten paar offenen Milestone-Issues geschlossen. Diese Woche können wir die PCB-Bestellung abschicken!