- Start
- Bygg själv
- Ändringslogg
Ändringslogg.
En iteration är en version av noden som byggs på riktigt: en beställning, ett bygge och det vi lär oss av den. Varje iteration har sin inköpslista, besluten och skälen, vad bygget ska bevisa och lärdomarna efteråt. Lärdomarna blir underlaget för nästa iteration.
Nyast överst. Inköpslistan i src/bom.js är alltid den senaste iterationen.
Tidigare iterationers listor finns här och i git-historiken.
| Iteration | Status | Datum | Kostnad per nod |
|---|---|---|---|
| 2 | Planeras, väntar på lärdomar från 1 | – | – |
| 1 | Beställd, inte byggd | Beställd 13 oktober 2026 | ca 2 000 kr |
Iteration 2
Status: planeras. Inget är beställt. Den här listan är vad iteration 1 ska avgöra, inte ett beslut.
Det iteration 1 ska avgöra
| Fråga | Hur vi avgör den | Om svaret är nej |
|---|---|---|
| Räcker kretskortsantennen (nr 2) i lådan? | Signalstyrkan (rssi) med båda antennerna, där lådan ska sitta |
Spöantennen (nr 3) blir standard, och lådan får ett hål till |
| Stämmer stiften 15, 18, 26, 27, 28? | Mät på kortet innan något löds | Rätta firmware/-overlayn, monteringen och 3D-modellen |
| Tål bastugivarens kabel värmen? | Några timmar i 110 °C | En givare med teflonkabel (PTFE) eller angiven temperaturklass |
| Får SD16 grepp om bastukabeln? | Bygg upp kabeln med krympslang och dra i den | Annan kontakt, eller en givare med grövre kabel |
| Fungerar 1NCE på plats? | APN iot.1nce.net i firmware, registrering och första rapport |
Ett annat IoT-SIM med LTE-M i Sverige |
| Startar Walter rätt med GPIO0 som slår på 3V3 OUT? | Watchdog-reset, omstart efter OTA, brownout | Annan pinne för matningen, eller matning direkt från 3V3 |
| Klarar 1 000 µF modemets strömtoppar? | Mät spänningen på VIN när modemet sänder | Större kondensator eller kraftigare matning |
| Ryms allt i lådan? | Provmontera innan något borras | Större Kradex |
| Hur varmt och fuktigt blir förrummet? | Logga temperaturen i hallen under ett bastupass och en kall vinternatt | Lådan längre från bastudörren, eller en ventil mot kondens |
| Klarar adaptern ett kallt förrum? | Den är klassad för 0–40 °C. Ett förrum som inte värms går under noll på vintern | Uttaget i ett uppvärmt utrymme, eller en adapter klassad för kyla |
| Kommer signalen ut från förrummet? | Signalstyrkan med lådan på sin plats, båda antennerna | Spöantennen genom ytterväggen, eller lådan på en annan vägg |
Redan bestämt till iteration 2
- Dykröret kommer med i inköpslistan. I iteration 1 sköts det upp. Givaren är IP67, alltså tillfällig nedsänkning, och en vattengivare ska ligga i vattnet hela vintern. Rostfritt 316 för 6 mm givare, till exempel RS PRO med G1/2-gänga.
Att fundera på
- Tryckutjämningsventil i lådan. Den var med i första utkastet men ströks tills piloten visar om det blir kondens i lådan.
- Ett eget kretskort i stället för experimentkortet, när det blir fler än några noder. Färre lödningar och färre fel, men en ny leverantör och en ny ledtid.
- Batteri där el saknas. Inte byggt: kräver spänningsmätning, en egen
image och mätt ström i djupsömn (se
firmware/README.md, Batteridrift).
Iteration 1
Status: beställd 13 oktober 2026, inte byggd. Firmware: 0.1.0, provad i simulering hela vägen till plattformen, inte på ett riktigt kort.
Inköpslistan
Allt utom SIM-kortet från TinyTronics. Priser från produktsidorna 13 oktober 2026, inklusive nederländsk moms.
| Nr | Del | Antal | Pris | Butik |
|---|---|---|---|---|
| 1 | Walter ESP32-S3, LTE-M/NB-IoT | 1 | €67,75 | TinyTronics |
| 2 | GSM/LTE-antenn med U.FL | 1 | €0,75 | TinyTronics |
| 3 | JCG410NR LTE-antenn, SMA (jämförelse) | 1 | €6,00 | TinyTronics |
| 4 | SMA-hona till U.FL-kabel 10 cm | 1 | €1,20 | TinyTronics |
| 5 | Nano-SIM, 1NCE Industrial + Lifetime Flat | 1 | €14,00 | 1NCE |
| 6 | Experimentkort 5 × 7 cm, dubbelsidigt | 1 | €0,80 | TinyTronics |
| 7 | Hylslist hona 1 × 40 | 1 | €0,60 | TinyTronics |
| 8 | Skruvplint 3-pol 2,54 mm | 2 | €0,40 | TinyTronics |
| 9 | Skruvplint 2-pol 5 mm | 1 | €0,50 | TinyTronics |
| 10 | Motstånd 4,7 kΩ, 10-pack | 1 | €0,50 | TinyTronics |
| 11 | Elektrolyt 1000 µF 25 V, 5-pack | 1 | €1,10 | TinyTronics |
| 12 | Byglar och ledare | 1 | – | inte i korgen |
| 13 | Kradex 118 × 78 × 55 IP65, grå | 1 | €5,00 | TinyTronics |
| 14 | Dubbelhäftande skumtejp | 1 | – | inte i korgen |
| 15 | SD13 panelkontakt 3p (vatten) | 1 | €1,60 | TinyTronics |
| 16 | SD13 kabelkontakt hane 3p | 1 | €1,70 | TinyTronics |
| 17 | SD16 panelkontakt 3p (bastu) | 1 | €1,70 | TinyTronics |
| 18 | SD16 kabelkontakt hane 3p | 1 | €1,80 | TinyTronics |
| 19 | Kabelförskruvning M12, 3–6,5 mm | 1 | €0,60 | TinyTronics |
| 20 | Krympslangssats, svart | 1 | €4,00 | TinyTronics |
| 21 | DS18B20 vattentät 4 m (vatten) | 1 | €8,00 | TinyTronics |
| 22 | DS18B20 vattentät 2 m (bastu) | 1 | €6,00 | TinyTronics |
| 23 | Sunshine nätadapter 5 V 4 A | 1 | €10,50 | TinyTronics |
| 24 | Goobay DC-förlängning 3 m | 1 | €4,25 | TinyTronics |
TinyTronics-korgen €125,15 plus frakt ca €18. SIM-kortet €14 plus €11,55 frakt. Ungefär 2 000 kr för en nod. Utanför korgen: skumtejp, ledare, lödutrustning och borr 12, 13 och 16,5 mm.
Besluten och varför
- Walter har processor (ESP32-S3) och LTE-M-modem (Sequans GM02SP) på ett kort. Två kort hade betytt fler ledare och fler fel.
- En butik. Allt som går köps där Walter köps: en frakt, en leverans, ett ställe att reklamera.
- Två antenner. Kretskortsantennen är specad från 800 MHz, strax över band 20 (791–821 MHz). Spöantennen anger 700 och 800 MHz. Vi vet inte vilken som räcker, så vi mäter båda.
- SD13 för vattnet, SD16 för bastun. Olika storlekar går inte att förväxla. Pinnen avgör vilken givare som är vilken, så en förväxling skulle byta kanalerna utan att något larmar.
- En givare per 1-Wire-buss. Firmware läser givarens id själv, så samma image fungerar på alla noder och en trasig givare byts utan ombyggnad.
- Lådan i förrummet, inte på utsidan (ändrat 14 oktober 2026). Först satt lådan under takfoten på bastuns utsida. I förrummet, på väggen mot bastun, slipper den regn, sol och den värsta kylan, bastugivarens kabel blir en kort väg rakt genom väggen, och eluttaget finns ofta redan där. Priset: vattengivarens kabel behöver ett tätat hål genom ytterväggen, signalen ska genom en vägg till, och varm fuktig luft från bastun kan ge kondens när förrummet är kallt. Det mäts i iteration 1.
- Adaptern i ett eluttag inomhus, med en avklippt DC-förlängning genom förskruvningen. Bara lågspänning går till lådan. Adaptern är klassad för 0–40 °C, vilket ett förrum som inte värms inte klarar på vintern.
- 1NCE Lifetime Flat: 500 MB och 250 SMS i tio år, ingen månadsavgift. Säljs bara till företag, och kräver sin APN i firmware.
- Dykröret sköts upp. Det ingick inte i TinyTronics-korgen, och givaren kan provas i vatten utan det. Det kommer med i iteration 2.
Vägen hit: utkasten före beställningen
Inköpslistan ändrades fyra gånger på en dag. Skälen är lärdomar i sig.
| Utkast | Commit | Vad som ändrades | Varför |
|---|---|---|---|
| 0.1 | 263bac2 |
Två varianter: Europa (Electrokit, Botland, RS) och Kina (AliExpress). Låda 115 × 90 × 55 med flänsar, Weipu SP11/SP13, PG7, ventil. Kina-varianten med USB-C-genomföring och IKEA-laddare | För att se priset för varje väg |
| 0.2 | 807b1d7 |
Allt från TinyTronics: Kradex, SD13/SD16, M12, Taoglas FXUB63, Sunshine-adapter med DC-förlängning. Kina-varianten och ventilen bort | Bara en uppsättning ska beställas, och helst från ett ställe |
| 0.3 | 4fefb90 |
Antennen TE L000848-05 och krympslang med lim från Electrokit | Taoglas-antennen var slut och gick inte att beställa |
| 0.4 | 28dcc63 |
Tillbaka till bara TinyTronics: kretskortsantenn plus JCG410NR att jämföra med, vanlig krympslang. Dykrör i stället för lim | En butik igen. Röret skyddar givaren bättre än lim runt kabeln |
Vad bygget ska bevisa
Checklistan när delarna kommer. Hela listan med skäl finns i
firmware/README.md under Känt och öppet.
- Stiften 15 (IO4), 18 (IO7), 26 (3V3 OUT), 27 (GND), 28 (VIN) mätta på kortet
- Strömmen: 5 V med rätt polaritet på VIN, ingen kortslutning mellan 3V3 och GND
- Kortet och kontakterna ryms i lådan innan något borras
- Båda givarna ger värden, och bastuns stiger när den värms i handen
- Isvatten ger nära 0 °C på båda givarna
- Bastugivaren några timmar i 110 °C
- Första mätningen efter djupsömn är ett värde, inte
power_on - 1NCE registrerar sig med APN
iot.1nce.net, och första rapporten kommer fram - Signalstyrkan med båda antennerna, på platsen där lådan ska sitta
- Temperaturen i förrummet under ett bastupass och en kall natt
- Walter startar firmware, inte nedladdningsläget, efter watchdog, OTA och brownout
- Ström i djupsömn, med givarna inkopplade
- 100 resetar och tio strömavbrott utan förlorade eller dubblerade mätningar
Lärdomar så här långt
Från planeringen, innan något är byggt:
- Lager ändras på timmar. Antennen som rekommenderades till Walter var slut när beställningen skulle göras. Kolla lagret precis innan, och ha ett alternativ i samma butik.
- Placera efter miljön, inte efter vad som är enklast att rita. Lådan satt först på utsidan. I förrummet blir den skyddad, kablarna korta och strömmen nära, men varje komponents temperaturklass måste stämma mot förrummets: adaptern (0–40 °C) är den som inte gör det på vintern.
- IP-klassen på billiga givare är säljarens uppgift. IP67 är en halvtimme på en meters djup. Bygg så att vattentätheten inte hänger på den: givaren i ett dykrör.
- Läs datablad och kontrollera. Antennens frekvensområde slutar strax ovanför band 20. Det går inte att avgöra på papperet, så vi mäter.
- Ledarfärgerna stämde inte med vår egen dokumentation. README:n i firmware sa svart GND. På de beställda givarna är vit GND. Rättat 14 oktober 2026. Kontrollera färgerna mot produktsidan för varje ny givare.
- Butikens sidor går inte att läsa automatiskt. TinyTronics blockerar skript, så priser och lager är avlästa för hand och daterade.
- 1NCE säljer bara till företag och kräver en egen APN. Det hade stoppat en privatperson som bygger själv. Det står nu i inköpslistan och i guiden.
Lärdomar efter bygget
Fylls i när iteration 1 är byggd och har suttit på en bastu. Varje rad: vad vi såg, varför, och vad det ändrar i iteration 2.
- …
Har du byggt en?
Berätta vad som fungerade och inte. Det hamnar i nästa iteration, och här.