diff --git a/README.md b/README.md index 4eaadd6..51f760e 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,6 @@ - ATtiny404 - WRL-10534 LPD433 Radio transmitter -![Schematics](turbo_sch.png) +![Schematics](/SiB64/turbo_weather/raw/branch/master/turbo_sch.png) -![Layout](gerber/turbo.png) \ No newline at end of file +![Layout](/SiB64/turbo_weather/raw/branch/master/gerber/turbo.png) \ No newline at end of file diff --git a/gerber/turbo-bot.png b/gerber/turbo-bot.png index 597bb73..63fc648 100644 Binary files a/gerber/turbo-bot.png and b/gerber/turbo-bot.png differ diff --git a/src/rc.local b/src/rc.local deleted file mode 100755 index 7d9e91b..0000000 --- a/src/rc.local +++ /dev/null @@ -1,8 +0,0 @@ -#! /bin/bash -v - -date --utc +"Turbo reboot at %FT%TZ" -SRC=~stephan/turbo_weather/src -[ -d "$SRC" ] || exit 0 -mount /data/blaulicht -[ -d /data/blaulicht/temperature ] || exit 0 -sudo -inu stephan screen -S turbo -d -m $SRC/turbo.sh diff --git a/src/set_clock.py b/src/set_clock.py deleted file mode 100755 index 786262e..0000000 --- a/src/set_clock.py +++ /dev/null @@ -1,6 +0,0 @@ -#! /usr/bin/python3 -import time -t = int(time.time()) -t = "".join([f"{(t>>b)&0xff:02x}" for b in range(0,32,8)]) -print(f"\nK {t}") - diff --git a/src/turbo.awk b/src/turbo.awk index 1b2bcfb..1f64ab8 100755 --- a/src/turbo.awk +++ b/src/turbo.awk @@ -50,6 +50,6 @@ function emit() { Vbat = A["BAT/1V"] Vdd = A["VDD/1V"] Vrf = A["RFP/2.5V"] - printf "%.0f %.1f %.1f %.6f %.2f %.2f %.2f %.2f %.2f %.4f %.4f %.4f\n", \ + printf "%.0f %.1f %.1f %.3f %.2f %.2f %.2f %.2f %.2f %.4f %.4f %.4f\n", \ tT, tU, tF, dt, p, Tp, Tc, Tn, Tb, Vbat, Vdd, Vrf } diff --git a/src/turbo.gpt b/src/turbo.gpt index 3e01069..6f28976 100755 --- a/src/turbo.gpt +++ b/src/turbo.gpt @@ -11,6 +11,7 @@ set grid x set format x "" time set ytics nomirror set y2tics +set xrange [*:*] writeback # set margin 12,12,0,0 set multiplot title fn noenh layout 3,1 margin char 12,13,5,2 spacing char 1 @@ -18,22 +19,20 @@ set multiplot title fn noenh layout 3,1 margin char 12,13,5,2 spacing char 1 set ylab "Δt [s]" set y2lab "dt/dt_{UTC}" set y2ra [0.98<*:*<1.02] -set yra [*:*] plot fn u 2:($1-$2) t "clock offset" w l, \ "" u 2:($3-$2) t "clock offset fit" w l, \ "" u 2:4 axis x1y2 t "clock speed" w l -set yra [*:*] set y2ra [*:*] set xrange restore set ylab "p [mbar]" set y2lab "T [°C]" -plot fn u 2:7 axis x1y2 t "T_{CPU}" w l, \ +plot fn u 2:5 t "pressure" w l lw 2, \ + "" u 2:6 axis x1y2 t "T_{SENSOR}" w l lw 2, \ + "" u 2:7 axis x1y2 t "T_{CPU}" w l, \ "" u 2:8 axis x1y2 t "T_{NTC}" w l, \ - "" u 2:9 axis x1y2 t "T_{BRIDGE}" w l lt 7, \ - "" u 2:5 t "pressure" w l lw 2, \ - "" u 2:6 axis x1y2 t "T_{SENSOR}" w l lw 2 + "" u 2:9 axis x1y2 t "T_{BRIDGE}" w l lt 7 set format x "%H:%M\n%d. %b\n%Y" time diff --git a/src/turbo.py b/src/turbo.py index f3ffdbc..1dd43cd 100755 --- a/src/turbo.py +++ b/src/turbo.py @@ -59,16 +59,17 @@ for o,v in options: if not out: out = sys.stdout +if tty and files: + raise ValueError("cannot do tty and files") + if len(files)==1: if "/dev/tty" in files[0]: tty = files[0] - files = [] -inp = [] if tty: - inp = [serial.Serial(port=tty, baudrate=baud)] -if files or not inp: - inp[0:0] = [fileinput.input(files, mode="rb")] + inp = serial.Serial(port=tty, baudrate=baud) +else: + inp = fileinput.input(files, mode="rb") checksum = 0 @@ -157,12 +158,12 @@ def clock(line): return noise(line, "t") s = None t = None - if do_clock: - t = time.time() try: t = float(ll[3]) except: pass + if do_clock: + t = time.time() if t is not None: freq.add(t, c) s = freq.solve() @@ -170,7 +171,7 @@ def clock(line): if t is None: t = time.time() return echo(line, f"{c} {t:.1f}") - return echo(ll[0]+b' '+ll[1], f"{c} {t:.1f}", *("%.6g" % ss for ss in s[0])) + return echo(line, f"{c} {t:.1f}", *("%.4g" % ss for ss in s[0])) Data = {} @@ -180,7 +181,7 @@ def data(line): c = ll[0] d = [int(l, 16) for l in ll[1:]] if ll[1:]: - Data[c] = d + data[c] = d emit_data(c) return echo(line) except Exception as e: @@ -233,7 +234,6 @@ ADC_mV = {} def emit_adc(c, cc): if len(cc) > 8: return - ADC_mV.clear() for n, a in enumerate(cc): C = ADC_CONFIG[n] if C is None: @@ -456,11 +456,6 @@ processes = { b'X': echo, } -splits = { - b'Q': 1, - b'T': 2, -} - class batecmd(cmdsocket.cmd_receiver): def msg(self, m): echo(b'r '+m) @@ -472,22 +467,19 @@ if socket: raise ValueError("cannot have socket without tty") cmd.open(socket, force=True) -while inp: +while True: try: - line = inp[0].readline() + line = inp.readline() except KeyboardInterrupt: break if not line: - inp[:1] = [] - continue + break line_key = line[0:1] is_noise = line_key not in processes if not is_noise and min(line.strip()) < 32: is_noise = True - - if line_key in b"apcufse": - continue + if is_noise: if do_noise: noise(line) @@ -495,8 +487,6 @@ while inp: continue if processes[line_key](line): - if line_key in splits: - line = b" ".join(line.split()[:splits[line_key]])+b"\n" add_checksum(line) if tty: diff --git a/src/turbo.sh b/src/turbo.sh deleted file mode 100755 index f11b03e..0000000 --- a/src/turbo.sh +++ /dev/null @@ -1,23 +0,0 @@ -#! /bin/bash - -TTY=/dev/ttyUSB0,1200 -DATA=/data/blaulicht/temperature -NEWDATA=$(date --utc +$DATA/turbo-%FT%TZ.txt) -OLDDATA=$(ls -1 $DATA/turbo-????-??-??*.txt | tail -1) -LINKDATA=$DATA/turbo.txt - -SRC=~/turbo_weather/src - -[ -e $NEWDATA ] && exit - -if [ "$(stat -c %h $LINKDATA)" -eq "2" ] -then - rm -vf $LINKDATA - touch $NEWDATA || exit 0 - ln -v $NEWDATA $LINKDATA -fi - -echo $NEWDATA -echo $OLDDATA - -$SRC/turbo.py --tty="$TTY" $OLDDATA | tee --append "$NEWDATA"