diff --git a/Makefile b/Makefile
index 33245c0..4f05d7c 100644
--- a/Makefile
+++ b/Makefile
@@ -90,3 +90,5 @@ data/MDDM.HRP1: $(patsubst %.EI,%.EI.HRP1,$(wildcard data/20*-MDDM-[0-9]*.EI))
%_BifA.2dhist: %.EI
./RPi.awk -v U=uM 'isuMlight(A1,A2) && is2D(B1,B2) && Ai<500 && Aj<500 {do_2DHIST(Ai,Aj)}' $< > $@
+%.sethat: %.EI %.epoch
+ ./sethat.awk 'isI(){pr()}' file_epoch=$(shell cat $*.epoch) $< > $@
diff --git a/RPi.awk b/RPi.awk
index 03b17ee..3f03b5c 100755
--- a/RPi.awk
+++ b/RPi.awk
@@ -164,7 +164,7 @@ function isH() {
Vio = $5*Vref*2/4096
Vrpi = $6*Vref*2/4096
Tfpga = degC($7, 3.3, 3.3, 4500)
- Tsh = degC($8, 3.3, 3.3, 4500)
+ Tsh = degC($8, 3.3, 10.0, 3940)
Tair = degC($9, 3.3, 3.3, 4500)
Ibias = $10*Vref/3.3*0.077
return 1
diff --git a/altera_ctrl.py b/altera_ctrl.py
index 0351ebd..fc956ec 100644
--- a/altera_ctrl.py
+++ b/altera_ctrl.py
@@ -113,7 +113,7 @@ def altera_from_file(fn='rpirena.rbf', hz=30000000):
sleep(1)
CD = gpio_read(CONF_DONE)
if not CD:
- raise IOError("CONF_DONE did not go high after config")
+ raise IOError(f"CONF_DONE did not go high after config nSTATUS={gpio_read(nSTATUS)}")
spidev.set_mode(cpol=0, cpha=1)
def cmdstr(w):
diff --git a/auto_run.py b/auto_run.py
new file mode 100644
index 0000000..9f2b2b5
--- /dev/null
+++ b/auto_run.py
@@ -0,0 +1,2 @@
+import rpirena
+from rpirena import tanos_jr as config
diff --git a/i2c.py b/i2c.py
index f326997..4117960 100644
--- a/i2c.py
+++ b/i2c.py
@@ -82,13 +82,13 @@ class i2c:
s.cmdi(s.STOP)
return 4
- def conf(self):
- self.cmda(0)
+ def conf(self, a=0):
+ self.cmda(a)
s = 0
for k, v in self.CONF.items():
s += self.conf1(k, v)
self._log(2, f"I²C conf({self.name}), len={s}")
- self.cmda(0, s)
+ self.cmda(a, s)
def readi(s, k):
s.cmdi(s.START, s.SAD)
diff --git a/rpirena.py b/rpirena.py
index b585374..1b07d1c 100755
--- a/rpirena.py
+++ b/rpirena.py
@@ -196,6 +196,7 @@ class configuration(object):
hk = True,
counter = True
)
+ self.NTC=[dict()]*8
self.stream.update(stream)
self.iniz()
@@ -269,24 +270,29 @@ threediodes = configuration("3Diodes",
)
tanos_jr = configuration("TANOS",
- nsamples=(1,),
l1 = [
- dict(thr= 10.0*mV, flags=0b0110100001), # B2
- dict(thr= 12.0*mV, flags=0b0011100010), # CC
- dict(thr= 12.0*mV, flags=0b0011100100), # AA
- dict(thr= 10.0*mV, flags=0b0110001000), # B1
+ dict(thr= 9.0*mV, flags=0b0100000001), # B2
+ dict(thr= 12.0*mV, flags=0b1000000010), # CC
+ dict(thr= 12.0*mV, flags=0b1000000100), # AA
+ dict(thr= 10.0*mV, flags=0b0100001000), # B1
+ dict(thr= 7.0*mV, flags=0b0000010000), # B2
+ dict(thr= 10.0*mV, flags=0b0000100000), # CC
+ dict(thr= 10.0*mV, flags=0b0001000000), # AA
+ dict(thr= 8.0*mV, flags=0b0010000000), # B1
],
l2 = [
- dict(any=0b0000001110), # B1 & AA & CC
- dict(any=0b0000001000, none = 0b0000100000), # B1 & ~(others)
- dict(any=0b0000000001), # B2
+ dict(any=0b0011100000), # B1 & AA & CC
+ dict(any=0b0000001000, none=0b0001110000), # B1 & ~(others)
+ dict(any=0b0100000000), # B1 | B2
dict(any=0b0000000010), # CC
dict(any=0b0000000100), # AA
- dict(any=0b0000001000), # B1
- dict(any=0b0000000110), # AA & CC
- dict(any=0b0000001001), # B1 & B2
+ dict(any=0b1000000000, none=0b0010010000 ), # (AA|CC) & ~B1 & ~B2
+ dict(any=0b0001100000), # AA & CC
+ dict(any=0b0010010000), # B1 & B2
],
)
+tanos_jr.Vref = 3.337
+tanos_jr.NTC[4] = dict(R25=10e3)
mddm = configuration("MDDM",
nsamples=(1,),
@@ -630,7 +636,7 @@ def monitor():
monitor_Vprim = 0;
if "Tfpga" in monitor_flags and monitor_hk:
hk = monitor_hk[-1]
- Tfpga = degC(hk[4])
+ Tfpga = degC(hk[4], **current.NTC[4])
global monitor_Tfpga, monitor_Tsleep
print(f"T_fpga {Tfpga:.1f} °C"
f" ({monitor_Tfpga_temp_sleep:.1f}/{monitor_Tfpga_temp_shutdown:.1f}"
diff --git a/sethat.awk b/sethat.awk
index ec46d8d..8a92c1c 100755
--- a/sethat.awk
+++ b/sethat.awk
@@ -1,6 +1,10 @@
#! /usr/bin/gawk -i
-/^H/ { Time= $2 - 3 }
+BEGIN {
+ file_epoch = 0
+}
+
+/^H/ { Time= $2 - 3 + file_epoch }
function magc(d) {
if (d >= 0x8000)
@@ -42,9 +46,9 @@ isI() {
acc_adc[1] = adcc($11)
acc_temp = tempc($12)
for (i=1; i<=18; i++) {
- mag[i][0] = magc($(13 + 3*i))
- mag[i][1] = magc($(14 + 3*i))
- mag[i][2] = magc($(15 + 3*i))
+ mag[i][0] = magc($(10 + 3*i))
+ mag[i][1] = magc($(11 + 3*i))
+ mag[i][2] = magc($(12 + 3*i))
}
acc_status_fifo = $67
acc_status = $68
@@ -62,7 +66,7 @@ function pr() {
printf "IS %d 0x%04x 0x%04x 0x%04x 0x%04x %.2f %.2f %.4f %.4f\n", Time, \
mag_status, acc_status, acc_status_aux, acc_status_fifo, \
mag_temp, acc_temp, acc_adc[0], acc_adc[1]
- for (i=0; i<20; i++) if (i != 18) {
+ for (i=0; i<20; i++) {
printf "IV %.1f %7.4f %7.4f %7.4f %7.4f %7.4f %7.4f\n", Time+i/10, \
mag[i][0], mag[i][1], mag[i][2], \
acc[i][0], acc[i][1], acc[i][2]
diff --git a/www/cgi/rpirena-3Diodes b/www/cgi/rpirena-3Diodes
index 4148508..6b110ef 100755
--- a/www/cgi/rpirena-3Diodes
+++ b/www/cgi/rpirena-3Diodes
@@ -1,6 +1,8 @@
#! /bin/bash
# -*- sh -*-
+DATA="/3diodes/data/"
+
cat <
-
-
+
+
+