TinyMakerWifi › TestaiTests

TinyMaker 0.17 · testų pultastest checklist

154 punktai iš kaupiamojo registro, papildyta 0.17.1 ir 0.17.2 pataisų eilutėmis (2026-09-13); papildyta 0.17.9 (T-130 - T-139, 2026-09-16/22); aktuali 0.18.5 (0.18.4-0.18.5 be naujų punktų, 2026-09-30). Žymos išlieka uždarius naršyklę.154 items from the cumulative registry, extended with 0.17.1 and 0.17.2 fix rows (2026-09-13); extended with 0.17.9 (T-130 - T-139, 2026-09-16/22); current 0.18.5 (0.18.4-0.18.5 no new items, 2026-09-30). Marks survive closing the browser.

Kaip dirbti. Blokai eina fazėmis: pirma tai, kam užtenka naršyklės, paskui geležis be dervos (dry run), ir tik gale spaudiniai. Programinis defektas gali sugadinti geležies testą, o abu - spaudinį, todėl brangiausias testas eina paskutinis. Kiekvienas blokas yra vienas prisėdimas (laikas antraštėje) ir nepriklauso nuo kitų: užsirovus ant vieno punkto, likusius to bloko žymi „–“ ir eini toliau. Paspaudus pavadinimą atsiveria „ką daryti“ ir „ko tikėtis“; pastabą galima rašyti prie bet kurios žymos - į ataskaitą ji patenka visada.How to work. The blocks go in phases: first what needs only a browser, then the hardware without resin (dry run), and prints last. A software defect can spoil a hardware test, and both can spoil a print, so the most expensive test comes last. Each block is one sitting (time in the heading) and does not depend on the others: if you get stuck on one item, mark the rest of that block “–” and move on. Tap a title to open “what to do” and “what to expect”; you can write a note with any mark - it always goes into the report.

1A · Pultas pakyla ir sako tiesą1A · The dashboard comes up and tells the truth

12
~10 min · Tik naršyklė ir įjungtas printeris. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~10 min · Just a browser and the printer switched on. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
S-1
Boot iki meniuBoot to menuprinterisprinter

Įjungti printerį → animacija → main menu be strigimo; WiFi badge atsiranda per ~10 s.

Turn on the printer → animation → main menu with no freeze; WiFi badge appears within ~10 s.

S-2
Dashboard atsidaroDashboard openswwwwww

tinymaker.local naršyklėje → puslapis su gyvu statusu (sync taškas žalias), be console klaidų.

tinymaker.local in the browser → page with live status (sync dot green), no console errors.

S-9
Settings saveSettings savewwwwww

Pakeisti nustatymą (pvz., VAT ml) → Save → reboot → reikšmė išliko.

Change a setting (e.g., VAT ml) → Save → reboot → the value persisted.

T-34
Dashboard header - versijos zenkliukas = update signalasDashboard header - version badge = update signalwwwwww

Header rodo maza v-zenkliuka prie brand (ne nuorodu eiluteje); naujesne versija -> oranzinis su rodykle; bakstelejus -> soka i Update pane; tema virsuje desineje lyguota su pavadinimu; JOKIO reload loop (textContent grynas). Build hash Update+About.

Kilme: 0-39 / GitHub #50 (0.16.2). Zalias: 0.16.2 (08-03, desktop+mobile+gyvai)

Header shows a small v-badge next to the brand (not in the links row); newer version -> orange with an arrow; tapping it -> jumps to the Update pane; the theme icon top right is aligned with the title; NO reload loop (textContent is plain). Build hash in Update+About.

Origin: 0-39 / GitHub #50 (0.16.2). Verified: 0.16.2 (08-03, desktop+mobile+live)

T-30
Badge eilute printerio ekrane (DR/NEW/messenger)Badge row on the printer screen (DR/NEW/messenger)printerisprinter

PRINTERIO ekrano virsuje-desineje, pagrindinio meniu ekranuose (ne pulte): dry run -> oranzinis DR; yra naujesne firmware -> zalias NEW; ijungtas pranesimu kanalas (Telegram/WhatsApp/Discord) -> burbulas; Connect -> debeselis; WiFi stulpeliai visada (zali prisijungus, pilki ne). Pakuojami is desines i kaire, nesantiems tarpu nelieka; perpiesiama kas 5 s. Su visais keturiais NEW prasideda ties x=40, tad patikrink, ar eilute neislipa i kaire.

Kilme: 1-37 (0.16.0-beta), drawWifiBadge() badge row V2. Tekstas patikslintas is kodo 2026-08-26: anksciau klaidingai rase "dashboard" ir "naujas modelis -> NEW" (NEW = firmware atnaujinimas).

Top-right of the PRINTER screen, on the main menu screens (not the dashboard): dry run -> orange DR; a newer firmware is available -> green NEW; a notification channel is enabled (Telegram/WhatsApp/Discord) -> bubble; Connect -> cloud icon; WiFi bars always shown (green when connected, gray when not). Packed right to left, no gap for missing ones; redrawn every 5 s. With all four, NEW starts at x=40, so check that the row doesn't run off to the left.

Origin: 1-37 (0.16.0-beta), drawWifiBadge() badge row V2. Text corrected from the code on 2026-08-26: it previously incorrectly said "dashboard" and "new model -> NEW" (NEW = firmware update).

T-86
Geltonas „printeris neatsako“ nepasirodo be reikaloYellow "printer not responding" doesn't appear without reasonwwwwwwtelefonasphone

Kur daroma: stebi pranešimų vietą ir kompiuteryje, ir telefone.Where: you watch where the messages appear on both a computer and a phone.

Ką daryti. Įkelk modelį arba pasidalink pultu ir visą darbo laiką žiūrėk į pranešimų vietą (kompiuteryje ir telefone).

Ko tikėtis. Eigos pranešimas stovi vietoje; geltonas „the printer stops answering“ pasirodo tik tada, kai printeris tikrai neatsako, ir nesikaitalioja su eigos pranešimu.

Kodėl. Geltonas pranešimas išlisdavo tada, kai printeris tiesiog buvo užimtas savo darbu (V radinys 2026-08-22).

What to do. Upload a model or share the dashboard, and watch the message area the whole time (on the computer and on the phone).

What to expect. The progress message stays in place; the yellow "the printer stops answering" appears only when the printer really isn't responding, and it doesn't alternate with the progress message.

Why. The yellow message used to pop up when the printer was simply busy with its own work (V's finding, 2026-08-22).

T-18
Landing IP laukasLanding IP fieldwwwwww

Landing'e IP laukas tuščias → „Open" pritemdytas; placeholder aiškiai „e.g. …" (neatrodo kaip įvesta reikšmė).

Kilmė: vartotojas paspaudė Open ant tuščio lauko ir palaikė sugedusiu, 07-16.

On the landing page, empty IP field → "Open" is dimmed; placeholder clearly says "e.g. …" (doesn't look like an entered value).

Origin: a user clicked Open on an empty field and thought it was broken, 07-16.

T-19
Demo lieka demo puslapyjeDemo stays on the demo pagewwwwww

Atidaryti tinymakerwifi.com/demo/ → palaukti ≥5 s → URL TEBĖRA /demo/, fwVersion rodo einamą versiją, console be klaidų. (Po kiekvieno demo regen!)

Kilmė: shim'o užkietinta sena firmwareVersion suveikdavo stale-UI sargą → location.replace('/') → kiekvienas demo lankytojas mestas atgal į landing'ą (vartotojo radinys 07-18; fix: build_demo.py patch'ina shim'ą iš platformio.ini).

Open tinymakerwifi.com/demo/ → wait ≥5 s → the URL STAYS /demo/, fwVersion shows the current version, no console errors. (After every demo regen!)

Origin: the shim's hardcoded old firmwareVersion used to trigger the stale-UI guard → location.replace('/') → every demo visitor was bounced back to the landing page (user finding 07-18; fix: build_demo.py patches the shim from platformio.ini).

T-143
Temos jungiklis: System / Light / DarkTheme switch: System / Light / Darkwwwwwwtelefonasphone

Ką daryti. Pulto antraštėje dešinėje spausk tris ikonas paeiliui. Su „System" perjunk kompiuterio ar telefono temą. Perkrauk puslapį. Atidaryk Manual, Feedback, Roadmap.

Ko tikėtis. Light ir Dark laikosi nepriklausomai nuo sistemos, System seka sistemą iš karto. Pasirinkimas išlieka po perkrovimo. Atidarytos nuorodos - toje pačioje temoje.

Kilmė: V 2026-09-23 - viso tinklalapio temų suvienodinimas; senas ◐ mygtukas perjungdavo tik du būvius. 0.18.3 (#232).

What to do. In the dashboard header, on the right, click the three icons in turn. With "System", switch the computer's or phone's theme. Reload the page. Open Manual, Feedback, Roadmap.

What to expect. Light and Dark stay independent of the system, System follows the system right away. The choice persists after a reload. Opened links are in the same theme.

Origin: V, 2026-09-23 - unifying themes across the whole site; the old ◐ button only toggled between two states. 0.18.3 (#232).

T-144
„Browser extension" nuoroda dingsta, kai plėtinys įdiegtas"Browser extension" link disappears once the extension is installedwwwwww

Ką daryti. Naršyklėje be TinyMaker plėtinio atidaryk pultą, užvesk pelę ant „Browser extension". Tada įdiek plėtinį ir perkrauk pultą.

Ko tikėtis. Be plėtinio nuoroda stovi po „Feedback" toje pačioje eilutėje, užvedus - paaiškinimas. Įdiegus plėtinį nuorodos nebėra, eilutė nesulūžta.

Kilmė: V 2026-09-23 - plėtinys turi „atkeliauti su printerio softu"; pirma versija buvo atskira eilutė, kuri lūžo. 0.18.3 (#232).

What to do. In a browser without the TinyMaker extension, open the dashboard and hover over "Browser extension". Then install the extension and reload the dashboard.

What to expect. Without the extension the link sits after "Feedback" on the same row, and hovering shows an explanation. With the extension installed the link is gone and the row doesn't break.

Origin: V, 2026-09-23 - the extension should "arrive together with the printer software"; the first version was a separate row, which broke. 0.18.3 (#232).

T-145
Savos nuorodos iš links.json SD kortelėjeCustom links from links.json on the SD cardprinterisprinterwwwwww

Ką daryti. Į SD šaknį įrašyk links.json su dviem nuorodomis (formatas - docs/api.md), perkrauk pultą. Paskui failą ištrink ir perkrauk dar kartą.

Ko tikėtis. Su failu nuorodos atsiranda antraštėje po „Feedback" / „Browser extension". Be failo antraštė lygiai tokia pati, kaip visada.

Kilmė: V 2026-09-23 - gamintojas ar mokykla nori savo nuorodų (pagalba, dervų sąrašas) savo printerio pulte. 0.18.3 (#223).

What to do. Put links.json with two links (format - docs/api.md) in the SD root, reload the dashboard. Then delete the file and reload again.

What to expect. With the file, the links appear in the header after "Feedback" / "Browser extension". Without the file the header is exactly as always.

Origin: V, 2026-09-23 - a manufacturer or school wants their own links (support, a resin list) on their printer's dashboard. 0.18.3 (#223).

T-146
Pradžios gidas nebereikalauja PrusaSlicerGetting started guide no longer requires PrusaSlicerwwwwww

Ką daryti. Pulto antraštėje spausk „?" (Getting started).

Ko tikėtis. Antras žingsnis vadinasi „Slice a model - built-in slicer or PrusaSlicer", o aprašas siūlo įjungti pulto slicerį arba nustatyti PrusaSlicer. Varnelę jam dedi pats.

Kilmė: V 2026-09-23 - naujas žmogus galvodavo, kad be PrusaSlicer nepradės, nors pulte yra sliceris. 0.18.3 (#225/#226).

What to do. In the dashboard header, click "?" (Getting started).

What to expect. The second step is called "Slice a model - built-in slicer or PrusaSlicer", and the description suggests turning on the dashboard's slicer or setting up PrusaSlicer. You check it off yourself.

Origin: V, 2026-09-23 - a new user used to think they couldn't start without PrusaSlicer, even though the dashboard has a slicer. 0.18.3 (#225/#226).

1B · Vienas įkėlimas – trylika patikrų1B · One upload - thirteen checks

31
~25 min · Vienas modelis iš PrusaSlicer arba failo. Viską žiūri to paties įkėlimo metu. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~25 min · One model from PrusaSlicer or a file. Check everything during that same upload. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
S-3
Upload → UnpackUpload → Unpackwwwwwwprinterisprinter

Kur daroma: įkeli pulte, o juostą ir sluoksnių skaičių žiūri printerio ekrane.Where: you upload in the dashboard, and check the bar and the layer count on the printer screen.

Įkelti SL1/ZIP per dashboard → „Receiving" juosta auga → LCD „Unpacking layers" juosta+skaitiklis → modelis SD sąraše su teisingu sluoksnių skaičiumi.

Upload an SL1/ZIP through the dashboard → "Receiving" bar grows → LCD "Unpacking layers" bar+counter → the model is in the SD list with the correct layer count.

S-7
DeleteDeletewwwwwwprinterisprinter

Kur daroma: trini pulte, o juostą „Deleting“ matai printerio ekrane.Where: you delete in the dashboard, and see the "Deleting" bar on the printer screen.

Ištrinti didelį modelį per pultą → LCD „Deleting:“ juosta, snackbaras kabo iki pabaigos → sąrašas atsinaujina. Pranešimas turi būti VIENAS: nuo paspaudimo iki pabaigos ta pati dėžutė, kurioje tik atsiranda skaičiai.

Kilmė: vartotojo radinys 0.14.3. 2026-08-27 V pagavo, kad atrodo kaip trys pranešimai, ir priežasčių buvo trys: (1) pirmas snackas iš viso be juostelės – printeriui paskelbus darbą ji staiga atsirasdavo ir dėžutė paaukštėdavo; (2) skaičių langelis tuščias suplokščiamas iki nulio, tad atsiradus „120/240“ dėžutė praplatėdavo ir persicentruodavo; (3) tarp HTTP atsakymo ir darbo paskelbimo deleteBusy jau nuimta, o sdJobCur dar nėra – toje skylėje iššokdavo geltonas „Printer not answering“, o msg() išrauna eigos snacko vidu. Papildomai: vaikštanti juostelė slinko į dešinę ir buvo nukerpama (atrodė, kad mažėja), o tikroji augo nuo kairės – dvi priešingos kryptys. Pataisyta c7264a1: rezervuotas langelis, ramus griovelis su „starting…“, tylos langas iki darbo paskelbimo (20 s riba) ir skaitiklis pastovaus pločio (U+2007).

Telefone geltonas pranešimas pradžioje – PALIEKAMAS (V sprendimas 08-27): kitas įrenginys nespaudė, ir jam ta žinutė reikšmingai sako „kažkas vyksta“, kol ateina sluoksnių snackas.

Žalias: 0.17.0 c7264a1 (2026-08-27, ant geležies – V: „Deleting labai gerai“)

Delete a large model through the dashboard → LCD "Deleting:" bar, the snackbar stays up until the end → the list refreshes. The message must be ONE: from the click to the end it's the same box, in which only the numbers change.

Origin: user finding 0.14.3. On 2026-08-27 V caught that it looks like three messages, and there were three causes: (1) the first snack had no bar at all - once the printer announced the job it suddenly appeared and the box got taller; (2) the empty number field collapses to zero, so once "120/240" appeared the box widened and re-centered; (3) between the HTTP response and the job being announced, deleteBusy is already cleared but sdJobCur isn't set yet - in that gap the yellow "Printer not answering" popped up, and msg() rips the progress snack out from the middle. Additionally: the moving bar was scrolling right and getting clipped (looked like it was shrinking), while the real one was growing from the left - two opposite directions. Fixed in c7264a1: a reserved box, a quiet track with "starting…", a silence window before the job is announced (20 s limit), and a fixed-width counter (U+2007).

On the phone, the yellow message at the start is KEPT (V's decision, 08-27): the other device didn't click, and for it that message meaningfully says "something is happening" until the layer snack arrives.

Verified: 0.17.0 c7264a1 (2026-08-27, on the hardware - V: "Deleting is very good")

T-76
Įkėlimas: pranešimas nemirksi, kol eina baitaiUpload: message doesn't flicker while bytes are transferringwwwwww

Ką daryti. Įkelk didesnį modelį (kelis megabaitus) per pulto Upload ir viso įkėlimo metu žiūrėk į pranešimą. Tą patį pakartok įkeldamas iš PrusaSlicer, o pultą tik stebėk.

Ko tikėtis. Vienas pranešimas: Uploading <vardas>, po juo antra eilutė „Progress shows on the printer screen", apačioje slenkantis ruoželis - jokių sekundžių ir jokių megabaitų. Kai printeris pradeda išpakuoti, tas pats pranešimas persirašo į Unpacking <vardas> jau su tikrais jo skaičiais. Sakinys nesikaitalioja su „the printer stops answering", pranešimas nedingsta ir neišlenda iš naujo, vieta ekrane nešokinėja. Modelio vardas visur ryškesnis už sakinį.

Kodėl. Kol printeris priima baitus, jis neatsakinėja į apklausas - o klaidos pranešimas nustumdavo eigos pranešimą, kurį kitas baitų gabalas piešdavo iš naujo. Kas dvi sekundės - mirksėjimas (V radinys 2026-08-18).

What to do. Upload a bigger model (a few megabytes) through the dashboard's Upload and watch the message for the whole upload. Repeat the same uploading from PrusaSlicer, just watching the dashboard.

What to expect. One message: Uploading <name>, below it a second line "Progress shows on the printer screen", at the bottom a sliding stripe - no seconds and no megabytes. When the printer starts unpacking, the same message rewrites itself to Unpacking <name> with its real numbers. The sentence doesn't alternate with "the printer stops answering", the message doesn't disappear or pop back up, and its position on screen doesn't jump. The model name is always bolder than the sentence.

Why. While the printer is receiving bytes, it doesn't respond to polls - and the error message used to push out the progress message, which the next chunk of bytes then redrew. Flickering every two seconds (V's finding, 2026-08-18).

T-77
Antras įrenginys mato, kad printeriui siunčiamas failasA second device sees that a file is being sent to the printerwwwwwwtelefonasphone

Kur daroma: slicini kompiuteryje, o telefone tik stebi - nieko nespaudi.Where: you slice on a computer, and only watch on the phone - you press nothing.

Ką daryti. Kompiuteryje suslicink STL ir spausk Save to printer. Telefone tuo metu tik žiūrėk į pultą - nieko nespausk.

Ko tikėtis. Telefone stovi viena žinutė „Receiving <vardas> from another device", ji nemirksi ir nedingsta, kol eina baitai. Paskui savaime persijungia į Unpacking su tikrais sluoksnių skaičiais. Skundas „the printer stops answering" gali blyksteliėti vieną kartą pačioje pradžioje ir daugiau nebegrįžta.

Kodėl. Priimdamas failą printeris beveik neatsakinėja, o tarpuose tarp dviejų siuntų (peržiūros kešas, tada modelis) atsakydavo „laisvas" - telefonas iš to darydavo žinutę, kuri atsiranda ir dingsta. V matė tris mirktelėjimus (2026-08-19). Dabar printeris pats sako, kad priima.

What to do. On the computer, slice an STL and click Save to printer. On the phone, at that time just watch the dashboard - don't click anything.

What to expect. On the phone there is one message "Receiving <name> from another device", it doesn't flicker and doesn't disappear while the bytes are transferring. Afterwards it switches on its own to Unpacking with the real layer counts. The "the printer stops answering" complaint may flash once right at the start and won't come back.

Why. While receiving a file, the printer barely responds, and in the gaps between the two transfers (preview cache, then the model) it used to answer "free" - the phone turned that into a message that appears and disappears. V saw three flashes (2026-08-19). Now the printer itself says that it's receiving.

T-53
Kortelės darbai: žodis, eiga ir jokių svetimų pranešimųSD card jobs: wording, progress, and no unrelated messageswwwwwwprinterisprinter

Kur daroma: pranešimą lygini pulte ir printerio ekrane - turi būti tas pats žodis.Where: you compare the message in the dashboard and on the printer screen - it must be the same word.

Ką daryti. Įkelti ZIP; atskirai — ištrinti modelį. Stebėti pulto pranešimą.

Ko tikėtis. „Unpacking vardas N/M (xx %)" — tas pats žodis pulte, printerio ekrane ir būsenoje. Jokio „Stopping — finishing the current layer".

Kodėl. Stabdymo žinutė buvo rišama prie „užimtas", o užimtas printeris yra ir kortelės darbo metu, tuo tarpu stopping vėliava lieka pažymėta nuo praėjusio spaudinio. Žalias: 0.17-dev a18d12d + b8d6f23 (08-14, ant geležies)

What to do. Upload a ZIP; separately - delete a model. Watch the dashboard message.

What to expect. "Unpacking name N/M (xx %)" - the same wording on the dashboard, the printer screen, and in the status. No "Stopping - finishing the current layer".

Why. The stopping message was tied to "busy", and the printer is also busy during an SD card job, while the stopping flag stays set from the previous print. Verified: 0.17-dev a18d12d + b8d6f23 (08-14, on the hardware)

T-48
Ilgas tinklo darbas pulte: mygtukas, žinutė, atsitiesimasLong network job on the dashboard: button, message, recoverywwwwww

Ką daryti. Paspausti Share ir stebėti mygtuką bei žinutę; atskirai — įkelti modelį per pultą; atskirai — atidaryti peržiūrą, kai printerį jau užėmęs kitas langas.

Ko tikėtis. Share užsirakina su suktuku iki pabaigos (antras paspaudimas neįmanomas), tada virsta „Shared". Kol tyla, žinutė vardija tikrą darbą („Sharing this model…", „Uploading the model…"), o ne spėja; kai darbo nepradėjom mes — viena eilutė su galimomis priežastimis. Nepavykusi peržiūra rodo priežastį ir bakstelėjus bandoma iš naujo (ne negyvas „Preview failed").

Kilmė: V 08-13 — paspaudus Share pultas rodydavo ilgą spėjimą „probably uploading", mygtukas atrodydavo negyvas, o po nesėkmės liko tik F5. Žalias: — 2026-08-27 rastas ir istaisytas: Share ties modeliais su issaugota perziura luzdavo su localPreviewBlob is not defined (V radinys). Funkcija buvo isimta kaip negyva (dbaa417) — musu pulte kvieteju tikrai nera, bet ja kviecia Connect programele, uzkraunama IS SERVERIO, tad paieska po repo jos nemato. Grazinta + eksportuota i window + komentaras NETRINTI. Pertikrinti butent modeli su issaugota perziura (V atvejis: Bibigon), ne bet kuri.

What to do. Click Share and watch the button and the message; separately - upload a model through the dashboard; separately - open a preview while another window has already taken the printer.

What to expect. Share locks with a spinner until it's done (a second click is impossible), then turns into "Shared". While it's quiet, the message names the actual job ("Sharing this model…", "Uploading the model…"), not a guess; when we haven't started a job - one line with possible reasons. A failed preview shows the reason and retries on tap (not a dead "Preview failed").

Origin: V, 08-13 - after clicking Share the dashboard used to show a long guess "probably uploading", the button looked dead, and after a failure only F5 was left. Verified: - found and fixed on 2026-08-27: Share on models with a saved preview used to break with localPreviewBlob is not defined (V's finding). The function had been removed as dead code (dbaa417) - our dashboard truly has no caller for it, but the Connect app calls it, loaded FROM THE SERVER, so a search across the repo doesn't see it. Restored + exported to window + a comment DO NOT DELETE. Retest specifically a model with a saved preview (V's case: Bibigon), not just any model.

T-101
Po Share ta pati peržiūra nelieka nukirsta wwwAfter Share, the same preview doesn't stay cut off www

Ką daryti. 1) SD sąraše paspausk modelio eilutę – atsidaro peržiūra, pasižiūrėk, kad modelis visas. 2) Toje pačioje kortelėje spausk Share ir palauk, kol baigsis – pultas tave nuneš į Connect (taip sumanyta pačioje Connect programėlėje, ne pas mus). 3) Grįžk atgal viršutiniu spausdintuvo mygtuku ir paspausk tą pačią SD eilutę dar kartą. Į kitą modelį neik – kaip tik perėjimas ir slėpdavo klaidą.

Ko tikėtis. Po trečio žingsnio modelis pieštas visas, toks pat kaip po pirmo – ne nukirstas plokščiai ties viršumi. Tas pats ir paspaudus dar kartą.

Kilmė: V radinys 2026-08-29 testuojant T-48. Connect programėlė (kraunama iš Briano serverio) dalijimosi metu kviečia mūsų pačių fetchSlices(..., 'source05'|'print1'), o ji rašo į tą patį globalų slicesCache. Tos peržiūros statomos su kitokiu sluoksnių skaičiumi ir aukščiu, tad keše likdavo to paties modelio vardas su svetimu aukščiu, ir pultas jį priimdavo kaip savo – modelis atrodydavo nukirstas. Perėjus į kitą modelį vaizdas atsistatydavo, nes vardui nesutapus kešas atmetamas. Pataisyta 4e70ea3: slicesFit() priima tik savus režimus.

Žalias: modelis visas ir po Share. Raudonas: nukirstas. Po pataisos pultą naršyklėje reikia perkrauti su Ctrl+F5 – senas puslapis lieka su senu kodu.

What to do. 1) In the SD list, click the model's row - the preview opens, check that the model is whole. 2) In the same card, click Share and wait for it to finish - the dashboard will take you to Connect (that's how the Connect app itself is designed, not on our side). 3) Go back with the top printer button and click the same SD row again. Don't go to another model - it was exactly that switch that used to hide the bug.

What to expect. After the third step the model is drawn whole, the same as after the first - not cut off flat at the top. The same after clicking again.

Origin: V's finding, 2026-08-29, while testing T-48. The Connect app (loaded from Brian's server) calls our own fetchSlices(..., 'source05'|'print1') during sharing, and it writes into the same global slicesCache. Those previews are built with a different layer count and height, so the cache would keep the same model's name with someone else's height, and the dashboard would accept it as its own - the model looked cut off. Switching to another model reset the view, because the cache is rejected when the name doesn't match. Fixed in 4e70ea3: slicesFit() only accepts its own modes.

Verified: model whole even after Share. Red: cut off. After the fix, the dashboard in the browser needs to be reloaded with Ctrl+F5 - the old page keeps the old code.

T-102
Grįžus iš Connect peržiūra nelieka užšalusi wwwAfter returning from Connect, the preview doesn't stay frozen www

Ką daryti. 1) SD sąraše paspausk modelio eilutę ir palauk, kol peržiūra susistatys. 2) Spausk Share – pultas nuneš į Connect. 3) Grįžk viršutiniu spausdintuvo mygtuku. Tą patį pakartok nuėjęs į Nustatymus ir grįžęs.

Ko tikėtis. Kortelėje – modelio vaizdas, toks pat kaip prieš išeinant, ir detalus: peržiūra grubaus vaizdo nerodo niekada, grubus tinka tik spausdinimo progresui. Po Share vaizdas persistato iš naujo (kelios sekundės su juosta) – tai normalu; svarbu, kad pabaigoje būtų detalus modelis, o ne grubūs kubeliai. Ne užšalęs „Building the 3D view 100%“ su pilna oranžine juosta, kurio atsileisti reikia paspaudus eilutę iš naujo.

Kilmė: V radinys 2026-08-29, iškart po T-101. Connect ir Nustatymai yra atskiri rodiniai, tad jų metu peržiūros drobė paslėpta, o openView dar ir nutraukia vykstantį sluoksnių krovimą. Jei nutraukimas pataiko jau po paskutinio sluoksnio, ciklo sarga nebemeta „preview superseded“, gaudyklė nesuveikia, ir statymas baigiamas į nematomą drobę. V klausimas ir buvo atsakymas: po Share turi likti taip pat, kaip po nuėjimo į slicerį – o sliceris gyvena tame pačiame rodinyje, tad jo drobė niekur nedingsta. Pataisyta: grįžus į spausdintuvo rodinį vaizdas persipiešia pats.

What to do. 1) In the SD list, click the model's row and wait for the preview to settle. 2) Click Share - the dashboard will take you to Connect. 3) Go back with the top printer button. Repeat the same after going to Settings and back.

What to expect. In the card - the model's image, the same as before leaving, and detailed: the preview never shows the coarse image, coarse is only for print progress. After Share the image resettles from scratch (a few seconds with a bar) - that's normal; what matters is that at the end there's a detailed model, not coarse cubes. Not a frozen "Building the 3D view 100%" with a full orange bar that only lets go after clicking the row again.

Origin: V's finding, 2026-08-29, right after T-101. Connect and Settings are separate views, so during them the preview canvas is hidden, and openView also cancels the ongoing layer load. If the cancellation lands right after the last layer, the loop guard no longer throws "preview superseded", the trap doesn't trigger, and the build finishes onto an invisible canvas. V's question was also the answer: after Share it should stay the same as after going to the slicer - and the slicer lives in the same view, so its canvas never goes anywhere. Fixed: on returning to the printer view, the image redraws itself.

T-103
Share žyma pagelsta iškart grįžus, be vaikščiojimo wwwShare mark turns yellow right after returning, no extra navigating www

Ką daryti. Pasharink modelį, Connect lange baik įkėlimą, tada grįžk viršutiniu spausdintuvo mygtuku į peržiūrą. Niekur daugiau neik ir nieko nespausk.

Ko tikėtis. Share mygtukas iškart rodo, kad modelis jau Connect’e (pageltęs, „Already on Connect“). Nereikia perkrauti puslapio ar vaikščioti po skiltis.

Kilmė: V radinys 2026-08-29. Viešąjį ID į modelio metaduomenis įrašo Connect programėlė, o tikras paskelbimas įvyksta dar vėliau – žmogui paspaudus Upload jos pusėje. Mūsų refreshShareStateSoon tuo metu jau būdavo nustojęs klausti: jis pasiduoda, kai printeris užimtas, o Connect kaip tik tempia iš jo visus sluoksnius į archyvą. Todėl žyma atsirasdavo tik po bet kokio judesio, kuris iš naujo perskaito modelį. Pataisyta: grįžimas į spausdintuvo rodinį ir yra tas judesys – dabar ten perklausiama.

What to do. Share a model, finish the upload in the Connect window, then go back with the top printer button to the preview. Don't go anywhere else and don't click anything.

What to expect. The Share button immediately shows that the model is already on Connect (turned yellow, "Already on Connect"). No need to reload the page or navigate through tabs.

Origin: V's finding, 2026-08-29. The Connect app writes the public ID into the model's metadata, and the actual publishing happens even later - once the person clicks Upload on their side. Our refreshShareStateSoon would have already stopped asking by then: it gives up when the printer is busy, and Connect is exactly then pulling all its layers into the archive. So the mark only appeared after any move that re-reads the model. Fixed: returning to the printer view is exactly that move - now it re-asks there.

T-104
0,10 mm peržiūra Connect’ui – visas modelis, ne pusė www0.10 mm preview for Connect - the whole model, not half www

Ką daryti. Įkelk į SD naują, dar nesidalintą modelį ir paspausk Share. Stebėk Connect langą, kol jis gaminasi abi peržiūras (0,05 ir 0,10 mm).

Ko tikėtis. Abu kartus piešiamas visas modelis. Antroji peržiūra gali būti stambesnių kubelių, bet tokio pat aukščio – ne perpus nupjauta plokščiu viršumi. Grįžus į peržiūrą pulte modelis irgi visas.

Kilmė: V radinys 2026-08-29 (sittingPredator4, 540 šaltinio sluoksnių). Connect prašo 0,10 mm peržiūros ir paduoda spausdinimo sluoksnių skaičių (270), o mūsų fetchSlices tą skaičių imdavo kaip šaltinio indeksų ribą – t. y. piešdavo apatinę modelio pusę. mode buvo priimamas, bet indeksams nenaudojamas. Nupjauta peržiūra keliaudavo į Connect ir likdavo kortelėje. Pataisyta: 0,10 mm ima kas antrą šaltinio sluoksnį.

⚠️ Modeliams, pasidalintiems iki šios pataisos, kortelėje guli klaidinga 0,10 mm peržiūra ir Connect ją naudos pakartotinai. Norint ištaisyti – ją reikia pašalinti, kad būtų pergaminta.

What to do. Upload a new, not-yet-shared model to the SD card and click Share. Watch the Connect window while it builds both previews (0.05 and 0.10 mm).

What to expect. Both times the whole model is drawn. The second preview may have coarser cubes, but the same height - not cut in half with a flat top. Back in the dashboard preview, the model is whole too.

Origin: V's finding, 2026-08-29 (sittingPredator4, 540 source layers). Connect asks for a 0.10 mm preview and passes the print layer count (270), and our fetchSlices used to take that number as the source index limit - i.e. it drew the bottom half of the model. mode was accepted but not used for the indices. The cut-off preview would travel to Connect and stay in the card. Fixed: 0.10 mm now takes every other source layer.

⚠️ For models shared before this fix, the card holds the wrong 0.10 mm preview and Connect will reuse it. To fix it, it has to be removed so it gets rebuilt.

T-105
Dalijimasis nemiršta nuo vaikščiojimo wwwSharing doesn't die from navigating around www

Ką daryti. Paspausk Share ir, kol jis dirba, tyčia pavaikščiok: grįžk į spausdintuvo rodinį, atidaryk Nustatymus, sugrįžk į Connect. Ir atskirai – bandyk atidaryti kito modelio peržiūrą, kol dalijimasis dar eina. Neskubėk – padaryk tai pirmosios peržiūros metu.

Ko tikėtis. Dalijimasis tęsiasi: Connect praeina abi peržiūras, supakuoja modelį ir pasiūlo Upload. Nėra jokio „preview superseded“ ir eiga nesustoja pusiaukelėje. Paspaudus kitą modelį pultas pasako „Not now – sharing this model…“ ir peržiūros nepradeda krauti – printeris aptarnauja po vieną užklausą, tad ta peržiūra vis tiek nebūtų užsikrovusi. Dalijimuisi pasibaigus tas modelis atsidaro įprastai.

Kilmė: V radinys 2026-08-30, atkartotas ir švarioje ryto bazėje – t. y. senas defektas. openView išeinant iš modelio rodinio nutraukdavo vykstantį sluoksnių krovimą (fetchSlicesSeq++), o Connect savo peržiūras gaminasi būtent tuo pačiu krovimu – ir jo paties eiga žmogų neša į Connect rodinį. Pataisyta: kol vyksta dalijimasis (shareInFlight), krovimas nebekertamas; stabdomas tik mūsų pačių fono darbas.

What to do. Click Share and, while it's working, deliberately navigate around: go back to the printer view, open Settings, return to Connect. And separately - try to open another model's preview while the sharing is still running. Don't rush - do this during the first preview.

What to expect. The sharing continues: Connect goes through both previews, packages the model, and offers Upload. There's no "preview superseded" and the progress doesn't stop halfway. Clicking another model, the dashboard says "Not now - sharing this model…" and doesn't start loading the preview - the printer serves one request at a time, so that preview wouldn't have loaded anyway. Once the sharing is done, that model opens normally.

Origin: V's finding, 2026-08-30, also reproduced on a clean morning base - i.e. an old bug. openView, when leaving the model view, used to cancel the ongoing layer load (fetchSlicesSeq++), and Connect builds its previews using exactly that same load - and its own progress carries the person into the Connect view. Fixed: while sharing is in progress (shareInFlight), the load is no longer cancelled; only our own background job is stopped.

T-106
Modelis neišnyksta iš peržiūros, kai jis pasirodo Connect’e wwwThe model doesn't vanish from the preview when it appears on Connect www

Ką daryti. Pasharink modelį, kuriuo dar nesidalinta (svarbu: jau sharintiems Connect ima išsaugotas peržiūras ir nieko nepiešia, tad klaida nepasirodytų). Palauk, kol Connect lange atsiras jo vaizdas, ir grįžk į spausdintuvo rodinį.

Ko tikėtis. Peržiūroje tebestovi modelis. Ne užrašas „Building the 3D view 100%“, atsiradęs tiksliai tą sekundę, kai Connect nupiešė savo peržiūrą.

Kilmė: V radinys 2026-08-30. Detalus vaizdas piešiamas GPU sluoksniu virš drobės, o drobėje po juo lieka paskutinis 2D kadras – po detalaus statymo tai kaip tik ir yra progreso užrašas. drawIso yra bendra funkcija, ir Connect kviečia ją su savo drobe; pabaigoje ji užgesindavo sluoksnį bet kuriai ne mūsų drobei, ir po juo išlįsdavo senas kadras. Laikinas pėdsakas buildIso viduje parodė nulį naujų kvietimų – tai atmetė visas kitas versijas. Pataisyta fcb726e: piešimas į svetimą drobę sluoksnio nebeliečia.

What to do. Share a model that hasn't been shared yet (important: for models already shared, Connect takes the saved previews and draws nothing, so the bug wouldn't show up). Wait until its image appears in the Connect window, and go back to the printer view.

What to expect. The model is still there in the preview. Not the text "Building the 3D view 100%", appearing at the exact second Connect drew its own preview.

Origin: V's finding, 2026-08-30. The detailed image is drawn as a GPU layer above the canvas, and the canvas underneath keeps the last 2D frame - right after a detailed build that frame happens to be the progress text. drawIso is a shared function, and Connect calls it with its own canvas; at the end it used to clear the layer for any canvas that wasn't ours, and the old frame would show through underneath. A temporary trace inside buildIso showed zero new calls - that ruled out every other theory. Fixed in fcb726e: drawing to a foreign canvas no longer touches the layer.

T-7
SD sąrašas po didelio upload'oSD list after a large uploadwwwwww

Įkelti didelį modelį → iškart po Unpack SD sąrašas PILNAS (nedingsta, nesutrumpėja).

Kilmė: feedback #4 — truncated JSON ant fragmentuoto heap'o → out.reserve + ok laukas + integrity check, 0.15.3.

Upload a large model → right after Unpack the SD list is FULL (doesn't disappear, doesn't shrink).

Origin: feedback #4 - truncated JSON on a fragmented heap → out.reserve + an ok field + integrity check, 0.15.3.

T-9
Delete iš web — matomasDelete from the web - visiblewwwwwwprinterisprinter

Kur daroma: trini pulte, o juostą matai printerio ekrane.Where: you delete in the dashboard, and see the bar on the printer screen.

Trinti didelį modelį → LCD rodo „Deleting:" + juostą, dashboard žinutė kabo iki pabaigos, sąrašas atsinaujina, printeris grįžta į main menu.

Kilmė: vartotojo radinys 07-17 („atrodo pakibęs") → aef9cbb, 0.15.5.

Delete a large model → LCD shows "Deleting:" + a bar, the dashboard message stays up until the end, the list refreshes, the printer returns to the main menu.

Origin: user finding 07-17 ("looks stuck") → aef9cbb, 0.15.5.

T-11
Pasenusio preview pakeitimasReplacing a stale previewwwwwwwprinterisprinter

Kur daroma: peržiūrą palieki pulte, o kitą modelį startuoji nuo printerio.Where: you leave the preview open in the dashboard, and start another model from the printer.

Naršyklėje paliktas modelio A preview; startuoti modelį B nuo LCD → kortelė rodo pastabą, NE klaidingą modelį A.

Kilmė: always-on kortelės peržiūra 0.15.0.

Model A's preview left open in the browser; start model B from the LCD → the card shows a note, NOT the wrong model A.

Origin: the always-on card preview, 0.15.0.

T-12
Upload mygtukas pagal būsenąUpload button by statewwwwww

Spausdinant / be SD / Web control off → Upload mygtukas disabled su aiškiu hint'u; idle su SD — aktyvus.

Kilmė: „kodėl Upload oranžinis spausdinant" radinys 07-16 → syncUploadGate, 0.15.4.

Printing / no SD / Web control off → the Upload button is disabled with a clear hint; idle with SD - active.

Origin: the "why is Upload orange while printing" finding, 07-16 → syncUploadGate, 0.15.4.

T-28
Deferred SD delete/import - visuose irenginiuoseDeferred SD delete/import - across all deviceswwwwwwtelefonasphone

Kur daroma: pultą atidarai dviejuose įrenginiuose - kompiuteryje ir telefone.Where: you open the dashboard on two devices - a computer and a phone.

Dashboard'a atidaryti dviejuose irenginiuose; viename delete modeli ar import ZIP/SL1 -> darbas matomas ABIEJUOSE su snackbar'u, sarasas atsinaujina pabaigus, printeris lieka reaguojantis.

Kilme: 1-32/1-33 (0.16.0-beta) - ilgi SD darbai iskelti is HTTP handler'io i idle cikla (sdJobRun, atsako kas 200ms); printerBusy() apima job'a.

Open the dashboard on two devices; on one delete a model or import a ZIP/SL1 -> the job is visible on BOTH with a snackbar, the list refreshes when done, the printer stays responsive.

Origin: 1-32/1-33 (0.16.0-beta) - long SD jobs moved out of the HTTP handler into the idle loop (sdJobRun, responds every 200ms); printerBusy() covers the job.

T-79
SD sąrašas: naujausias modelis viršujeSD list: newest model on topwwwwww

Ką daryti. Įkelk modelį (bet kuriuo būdu) ir pažiūrėk į sąrašą. Tada Įkelk dar vieną.

Ko tikėtis. Kiekvienas naujas modelis atsistoja pirmas, seni (įkelti iki 0.17) lieka apačioje abėcėlės tvarka, archyvai - pačiame gale. Perjungiklio nėra ir datos eilutėje nėra.

Kodėl. Sąrašas yra darbo eilė, ne archyvas. Rūšiuoja printerio skaitliukas, ne data - be interneto laikrodis nesusisinchronizuoja, ir data būtų amžinas nulis (V, 2026-08-19).

What to do. Upload a model (any way) and look at the list. Then upload another one.

What to expect. Every new model lands first, old ones (uploaded before 0.17) stay at the bottom in alphabetical order, archives at the very end. There's no toggle, and there's no date row.

Why. The list is a work queue, not an archive. It's sorted by the printer's counter, not by date - without internet the clock doesn't sync, and the date would be an eternal zero (V, 2026-08-19).

T-81
SD sąrašas: veiksmai po pele (kompiuteris) ir kompaktiškos eilutės (telefonas)SD list: hover actions (computer) and compact rows (phone)wwwwwwtelefonasphone

Kur daroma: pele vedžioji kompiuteryje, o eilučių kompaktiškumą tikrini telefone.Where: you move the mouse around on a computer, and check how compact the rows are on a phone.

Ką daryti. Kompiuteryje užvesk pelę ant keletų eilučių, tada paspausk Start nežymėdamas eilutės. Telefone atidaryk tą patį sąrašą ir pažiūrėk į nepažymėtas eilutes.

Ko tikėtis. Kompiuteryje užvedus pelę eilutėje išnyra Start ir Delete, sąrašas nuo to nepašokteli, o Start paleidžia neužsakydamas peržiūros (klausimas „Start this print?" lieka). Delete nuo krašto atitrauktas tiek pat, kiek piktograma kairėje. Telefone eilutės kompaktiškos - jokios tuščios juostos; mygtukai pasirodo tik bakstelėjus. Tab klavišas irgi atidengia veiksmus.

Kodėl. Eilutės paspaudimas užsako peržiūrą, o ji užima patį printerį; pelė yra ketinimo signalas, kurio telefone nėra. Vieta mygtukams telefone virsdavo tuščia juosta (V, 2026-08-19).

What to do. On the computer, hover over a few rows, then click Start without selecting the row. On the phone, open the same list and look at the unselected rows.

What to expect. On the computer, hovering over a row reveals Start and Delete, the list doesn't jump from this, and Start launches without ordering a preview (the "Start this print?" question stays). Delete is pulled back from the edge by the same amount as the icon on the left. On the phone the rows are compact - no empty bar; the buttons only appear on tap. The Tab key also reveals the actions.

Why. Clicking a row orders a preview, and that occupies the printer itself; the mouse is an intent signal that the phone doesn't have. On the phone, the space for the buttons used to turn into an empty bar (V, 2026-08-19).

T-99
Po įkėlimo sąrašas grįžta į pirmą puslapįAfter an upload, the list returns to the first pagewwwwww

Ką daryti. SD tvarkyklėje pereišk į antrą puslapį ir tada įkelk modelį – per pultą arba iš PrusaSlicer. Nešliauk niekur pats.

Ko tikėtis. Išpakavimui pasibaigus sąrašas pats grįžta į pirmą puslapį ir atslenka prie ka tik atsiųsto modelio (jis stovi viršuje – ž. T-79). Rašant į filtro laukelį vaizdas neatimamas.

Kilmė: V radinys 2026-08-27 – įkėlus stovint antrame puslapyje žmogus likęs ten, o modelis, kurį ką tik atsiuntė, gulėjo pirmame. Pataisyta c7264a1.

Žalias: 0.17.0 c7264a1 (2026-08-27, ant geležies – V: „OK“)

Žalias: 0.17.0 0b6e5a0 (2026-08-31, Claude naršyklė per Chrome)

What to do. In the SD manager, go to the second page and then upload a model - through the dashboard or from PrusaSlicer. Don't navigate anywhere yourself.

What to expect. Once unpacking finishes, the list returns to the first page on its own and scrolls to the model just uploaded (it's on top - see T-79). Typing in the filter field doesn't take away the view.

Origin: V's finding, 2026-08-27 - after uploading while standing on the second page, the person stayed there, while the model they had just sent sat on the first. Fixed in c7264a1.

Verified: 0.17.0 c7264a1 (2026-08-27, on the hardware - V: "OK")

Verified: 0.17.0 0b6e5a0 (2026-08-31, Claude browser via Chrome)

T-125
Sumažinimas pasakomas ir nemeluojaThe scale-down is stated and doesn't liewwwwww

Ką daryti. Pulte įkelk STL, didesnį už plokštę, paspausk Fast fit, tada PLACEMENT → lifted ir Slice.

Ko tikėtis. Eilutėje „Sliced in N s · N layers · ~N ml" ir toliau - „Scaled down N% - the supports reached past the plate, and they still do. Scale the model down by hand before printing." Tas pats sakinys sąrašo apačioje su ⚠ ir geltona spalva. Svarbiausia: jei po sumažinimo vis tiek netelpa, tai turi būti pasakyta, o ne nutylėta.

Kilmė: FIT-real darbas 2026-09-12 (PR #137 variklis + #138 pultas). Iki tol verdiktas „telpa ar ne" buvo priimamas PRIEŠ atramas, iš blogiausio atvejo, ir kaina fiksuota 15-20 %; o po sumažinimo kortelė sakydavo tik „sumažinta" ir nutildavo, nors detalė galėjo vis tiek nesutilpti. Audito skaičiavimą patvirtino stendas: 96 mm puodelis sumažinamas 73,2 % ir vis tiek išlenda 3,5 mm.

Žalias: 0.17.1 + modulis 3.4.0 (2026-09-12, build 911fb38) - Claude pulte: `aukstas.stl` 62 × 44 mm gavo „Too large - width +60%", Fast fit pritaikė iki 38,8 × 27,5 mm (po 1 mm nuo krašto), su „lifted" sumažino 25,2 % ir pasakė, kad vis tiek netelpa. V modelis (996 658 trikampiai, 48 MB): sumažinta 11,6 %, du ėjimai užėmė 101,8 s. V patvirtino akimis: „3 testai OK".

What to do. On the dashboard upload an STL bigger than the plate, click Fast fit, then PLACEMENT → lifted and Slice.

What to expect. In the line "Sliced in N s · N layers · ~N ml" and further on - "Scaled down N% - the supports reached past the plate, and they still do. Scale the model down by hand before printing." The same sentence at the bottom of the list with ⚠ and yellow. The key point: if it still doesn't fit after scaling down, that has to be stated, not left unsaid.

Origin: the FIT-real work, 2026-09-12 (PR #137 engine + #138 dashboard). Before that, the "fits or not" verdict was decided BEFORE the supports, from the worst case, with the cost fixed at 15-20%; and after scaling down, the card would just say "scaled down" and go quiet, even though the part could still not fit. A test bench confirmed the audit's calculation: a 96 mm cup is scaled down 73.2% and still sticks out 3.5 mm.

Verified: 0.17.1 + module 3.4.0 (2026-09-12, build 911fb38) - Claude on the dashboard: `aukstas.stl` 62 × 44 mm got "Too large - width +60%", Fast fit fit it to 38.8 × 27.5 mm (1 mm from the edge), with "lifted" it scaled down 25.2% and said it still doesn't fit. V's model (996,658 triangles, 48 MB): scaled down 11.6%, two passes took 101.8 s. V confirmed by eye: "3 tests OK".

T-126
Įspėjimas apie nupjautą detalę pergyvena pervadinimąThe warning about a cropped part survives a renamewwwwww

Ką daryti. Turėk suslicintą modelį, kurį variklis sumažino (žr. T-125). Vardo laukelyje įrašyk vardą, kuris kortelėje jau yra, ir paspausk Send to printer. Klausime pasirink Rename.

Ko tikėtis. Pabaigoje vienas pranešimas: „Saved as „X-2" - that name was taken. · Scaled down N% - …". Įspėjimas apie sumažinimą turi būti prikabintas, ne pamestas.

Kilmė: penkto ir šešto vartų rato radiniai 2026-09-12. Pervadinimo šakos skaitė žymę jau PO to, kai duomenys apie išsaugotą failą išvalomi, tad sąlyga visada buvo klaidinga ir įspėjimas tuo keliu nepasakomas niekur - kortelė uždaryta, įspėjimų eilutė išvalyta, snacke tik „Saved as X". Prieš tai ta pati vieta rėmėsi kintamuoju iš kitos funkcijos, t. y. garsus gedimas buvo pakeistas tyliu. Nei `node --check`, nei kompiliacija tokio nemato - klaida vykdymo tvarkoje.

Žalias: 0.17.1 + modulis 3.4.0 (2026-09-12) - Claude įrašė pranešimų juostą: „Saved as „aukstas-3“ - that name was taken. · Scaled down 25.2% - the supports reached past the plate, and they still do." Pakeliui patvirtinta, kad pranešimai eina po vieną, be perrašymo. V patvirtino: „3 testai OK".

What to do. Have a sliced model that the engine scaled down (see T-125). In the name field, type a name that's already in the card, and click Send to printer. In the prompt pick Rename.

What to expect. At the end, one message: "Saved as "X-2" - that name was taken. · Scaled down N% - …". The scale-down warning has to be attached, not dropped.

Origin: findings from the fifth and sixth gate rounds, 2026-09-12. The rename branch read the flag AFTER the saved file's data had already been cleared, so the condition was always false and the warning was never said on that path - the card closed, the warning line cleared, the snack showing only "Saved as X". Before that, the same spot relied on a variable from a different function, i.e. a loud failure had been replaced with a silent one. Neither `node --check` nor compilation catches this - the bug is in the execution order.

Verified: 0.17.1 + module 3.4.0 (2026-09-12) - Claude recorded the message bar: "Saved as "aukstas-3" - that name was taken. · Scaled down 25.2% - the supports reached past the plate, and they still do." Along the way it was confirmed that the messages go one at a time, without overwriting. V confirmed: "3 tests OK".

T-127
Kai atramų nereikia, apie sumažinimą tylimaWhen no supports are needed, the scale-down stays silentwwwwww

Ką daryti. Įkelk plokščią modelį, kuris telpa, PLACEMENT → auto, ir paspausk Slice.

Ko tikėtis. „No supports needed - nothing on this part hangs in the air" ir jokio sumažinimo pranešimo. Tyla čia yra teisingas atsakymas: be atramų ir pado tikrasis pėdsakas lygus pačiam modeliui, o jis telpa.

Kilmė: FIT-real 2026-09-12. Ši eilutė sergi nuo priešingos ydos - kad naujas pranešimas nepradėtų rodytis be reikalo. Jei jis atsiras kiekvienam modeliui, žmogus išmoks jį ignoruoti, ir tada jis nepadės ten, kur tikrai reikia.

Žalias: 0.17.1 + modulis 3.4.0 (2026-09-12) - Claude: `aukstas.stl` plokščiai, 100 sluoksnių per 8,6 s, „No supports needed", nė vieno sumažinimo sakinio. V patvirtino: „3 testai OK".

What to do. Upload a flat model that fits, PLACEMENT → auto, and click Slice.

What to expect. "No supports needed - nothing on this part hangs in the air" and no scale-down message. Silence here is the correct answer: without supports and a pad, the true footprint equals the model itself, and it fits.

Origin: FIT-real, 2026-09-12. This row guards against the opposite flaw - a new message showing up without reason. If it appears for every model, people learn to ignore it, and then it won't help where it's actually needed.

Verified: 0.17.1 + module 3.4.0 (2026-09-12) - Claude: `aukstas.stl` flat, 100 layers in 8.6 s, "No supports needed", not one scale-down sentence. V confirmed: "3 tests OK".

T-128
Matmenų eilutė rodo dydį po automatinio sumažinimoThe dimensions row shows the size after automatic scalingwwwwww

Ką daryti. Slicerio kortelėje įkelk cup15.stl pilno dydžio ir paspausk Slice. Palauk, kol kortelė parodys sumažinimo sakinį.

Ko tikėtis. Eilutė po failo vardu („cup15.stl · … mm · … triangles") rodo jau sumažintą dydį, tą patį, kurį rodo mastelio slankiklis, o ne dydį prieš sumažinimą.

Kilmė: V printeryje 2026-09-12 su cup15.stl matė 24,0 mm, nors variklis detalę buvo sumažinęs iki 19,7. Slankiklis ir aukščio laukelis persistatydavo, o ši eilutė ne. Žmogus, kuriam reikia tikro dydžio (žiedas, laikiklis ant ašies), perskaitytų seną skaičių ir gautų mažesnę detalę. Pataisa PR #140.

Žalias: 0.17.1 + d12f9f6, modulis 3.5.0 (2026-09-13) - V nuotrauka: „cup15.stl · 19.7 × 19.7 × 17.3 mm · 1,024 triangles".

What to do. In the slicer card, upload cup15.stl at full size and click Slice. Wait until the card shows the scale-down sentence.

What to expect. The row under the file name ("cup15.stl · … mm · … triangles") shows the already scaled-down size, the same one the scale slider shows, not the size before scaling.

Origin: V on the printer, 2026-09-12, with cup15.stl saw 24.0 mm, even though the engine had scaled the part down to 19.7. The slider and the height field would update, but this row didn't. Someone who needs the real size (a ring, a holder on a shaft) would read the old number and get a smaller part. Fix in PR #140.

Verified: 0.17.1 + d12f9f6, module 3.5.0 (2026-09-13) - V's photo: "cup15.stl · 19.7 × 19.7 × 17.3 mm · 1,024 triangles".

T-129
Procentų laukelio rodyklė aukštyn didina detalęThe percentage field's up arrow enlarges the partwwwwww

Ką daryti. Slicerio kortelėje įkelk bet kokį modelį, 3D juostoje paspausk % (Scale) ir procentų laukelyje kelis kartus spausk rodyklę aukštyn, tada žemyn.

Ko tikėtis. Aukštyn: 100 → 101 → 102, žemyn atgal. Priėjus plokštės ribą kortelė sako „Too large".

Kilmė: V printeryje 2026-09-12 - rodyklė aukštyn neveikė niekur, žemyn veikė. Laukelio min buvo 0,1, o žingsnis 1, tad naršyklė lipo į 100,1, kurį kortelė suapvalina atgal į 100. Pataisa PR #141.

Žalias: 0.17.1 + d12f9f6, modulis 3.5.0 (2026-09-13) - V: „veikia rodyklė".

What to do. In the slicer card, upload any model, in the 3D toolbar click % (Scale) and in the percentage field click the up arrow a few times, then down.

What to expect. Up: 100 → 101 → 102, down goes back. Once it reaches the plate limit, the card says "Too large".

Origin: V on the printer, 2026-09-12 - the up arrow didn't work at all, down worked. The field's min was 0.1, and the step was 1, so the browser climbed to 100.1, which the card rounds back down to 100. Fix in PR #141.

Verified: 0.17.1 + d12f9f6, module 3.5.0 (2026-09-13) - V: "the arrow works".

T-132
Modelis vardu „resin", „lib" ar „bootanim" neištrina printerio aplankųA model named "resin", "lib" or "bootanim" doesn't delete the printer's folderswwwwwwprinterisprinter

Ką daryti. Pulte pažiūrėk, kiek dervos profilių turi. Tada per PrusaSlicer „Send to printer" (arba pulto įkėlimą) nusiųsk bet kokį modelį, pavadintą resin. Paskui dar vieną, pavadintą Lib. Po to su tuo pačiu vardu nusiųsk jau esantį modelį dar kartą.

Ko tikėtis. Modeliai atsiranda sąraše kaip resin-model ir Lib-model. Dervos profiliai ir slicerio modulis lieka nepaliesti (pulte tas pats profilių skaičius, sliceris atsidaro be interneto). Pakartotinai nusiųstas esamas modelis tyliai pakeičia seną, kaip ir anksčiau.

Kilmė: saugumo auditas prieš 1.0.0 (2026-09-17) - PrusaSlicer įkėlimas vardu resin.sl1 pakeisdavo aplanką /resin ir ištrindavo visus dervų profilius su kalibracijomis; lib - slicerio modulį. Pataisa c14b6e9 (PR #172).

Žalias: 0.17.5 + 2e6f5e6 (2026-09-17) - per /api/files/local: resin → resin-model, Lib → Lib-model, pakartotinis resin pakeitė tą patį modelį (be -2); 9 profiliai ir slicerio modulis 3.5.0 nepaliesti.

What to do. On the dashboard check how many resin profiles you have. Then through PrusaSlicer "Send to printer" (or a dashboard upload) send any model named resin. Then another one named Lib. After that, send an already existing model under the same name again.

What to expect. The models appear in the list as resin-model and Lib-model. The resin profiles and the slicer module stay untouched (same profile count on the dashboard, the slicer opens without internet). Re-sending an existing model quietly replaces the old one, same as before.

Origin: the security audit before 1.0.0 (2026-09-17) - a PrusaSlicer upload named resin.sl1 used to overwrite the /resin folder and delete all resin profiles with their calibrations; lib - the slicer module. Fix c14b6e9 (PR #172).

Verified: 0.17.5 + 2e6f5e6 (2026-09-17) - via /api/files/local: resin → resin-model, Lib → Lib-model, re-sending resin replaced the same model (no -2); 9 profiles and slicer module 3.5.0 untouched.

T-134
SD sąrašas nemirga, kai viršuje ilgas naujas vardasSD list doesn't flicker when there's a long new name on topwwwwww

Ką daryti. Kompiuteryje (platus langas, du stulpeliai) atidaryk pultą ir palik jį atvirą. Iš kito įrenginio ar iš Resin Lab įkelk modelį ilgu vardu be tarpų, pvz. Lab-Test_03_kubas_tm-005. Kai jis atsiras sąraše su žyme New, paspausk ant jo (pažymėk) ir kelis kartus spausk Next ir Prev.

Ko tikėtis. Vardas vienoje eilutėje (netelpantis baigiasi „…", pilnas matosi užvedus pelę), žyma New stovi datos eilutės gale, visos eilutės vienodo aukščio. Puslapių skaitiklis (pvz. „1 / 5") stovi vietoje ir keičiasi tik paspaudus - sąrašas nešokinėja tarp dviejų puslapių.

Kilmė: V 2026-09-19 - ilgas naujas vardas persilauždavo į tris eilutes, eilučių matuoklis tada duodavo 3 eilutes vietoj 5, ir po Next sąrašas šokinėdavo tarp „1 / 5" ir „2 / 8" kelis kartus per sekundę. Tą patį darė senas modelis be laiko ir dydžio (be datos eilutės). Pataisa PR #200, išleista 0.17.7.

Stende žalias (2026-09-19): senas pultas 43-45 persijungimai per 3 s, naujas 0; eilutės 58-59 px.

Žalias: 0.17.7 printeryje (2026-09-19, V) - sąrašas nebemirga.

What to do. On the computer (wide window, two columns) open the dashboard and leave it open. From another device or from Resin Lab, upload a model with a long name and no spaces, e.g. Lab-Test_03_kubas_tm-005. When it appears in the list with the New mark, click it (select it) and click Next and Prev a few times.

What to expect. The name is on one line (if it doesn't fit it ends in "…", the full name shows on hover), the New mark sits at the end of the date row, all rows the same height. The page counter (e.g. "1 / 5") stays in place and only changes on click - the list doesn't jump between two pages.

Origin: V, 2026-09-19 - a long new name used to wrap onto three lines, the row-height measurer then gave 3 rows instead of 5, and after Next the list would jump between "1 / 5" and "2 / 8" several times a second. An old model with no time or size (no date row) did the same. Fix PR #200, released in 0.17.7.

Verified on the bench (2026-09-19): old dashboard 43-45 switches in 3 s, new one 0; rows 58-59 px.

Verified: 0.17.7 on the printer (2026-09-19, V) - the list no longer flickers.

T-135
Sliceris: atramos „no", raftas be atramų, Size keepSlicer: supports "no", raft without supports, Size keepwwwwww

Ką daryti. Pulte atidaryk slicerį ir įkelk STL. Supports → no → Slice. Tada Raft layers → 3 → Slice. Tada Supports → regular, Size → keep → Slice modeliu, kurio atramos siekia plokštės kraštą (pvz. cup15).

Ko tikėtis. Su „no": Strength, Placement, Tip ir Fit by užrakinti, Raft rodo off, mygtukas vadinasi „Fit size", supjaustyta be atramų ir be rafto. Su raftu 3: raftas žiedu apjuosia pagrindą. Su keep: dydis nesikeičia, kortelė perspėja, kad kraštinės atramos bus nukirptos. Jei printerio modulis senesnis nei 3.6.2 - „no" užrakintas, kortelėje užuomina atnaujinti ir perkrauti puslapį.

Kilmė: slicerio modulis 3.6.2 (PR #202), išleista 0.17.8 (2026-09-19).

Žalias: 0.17.8 turinys (`ec66324`) printeryje 2026-09-19 - V ir Claude (9 kadrai: no, raftas, keep, užraktai, siuntimas į SD).

What to do. Open the slicer in the dashboard and load an STL. Supports → no → Slice. Then Raft layers → 3 → Slice. Then Supports → regular, Size → keep → Slice with a model whose supports reach the edge of the plate (e.g. cup15).

What to expect. With "no": Strength, Placement, Tip and Fit by are locked, Raft shows off, the button is called "Fit size", sliced without supports and without a raft. With raft 3: the raft rings around the base. With keep: the size does not change, the card warns that edge supports will be cut off. If the printer's slicer module is older than 3.6.2 - "no" is locked, the card hints to update and reload the page.

Origin: slicer module 3.6.2 (PR #202), released in 0.17.8 (2026-09-19).

Verified: 0.17.8 content (`ec66324`) on the printer 2026-09-19 - V and Claude (9 frames: no, raft, keep, locks, sending to SD).

T-136
SD ↔ slicer perjungimai nieko nepametaSD ↔ slicer switching loses nothingwwwwww

Ką daryti. SD manager → paspausk modelį, palauk, kol užsikraus. Atidaryk tuščią slicerį (be STL), grįžk į SD. Pakartok su įkeltu STL. Tada SD modelį paspausk ir, kol jis dar kraunasi, iškart atidaryk slicerį.

Ko tikėtis. Antraštė keičiasi kartu su kortele: sliceryje „Slicer preview", SD - modelio vardas. Grįžus į SD modelis grįžta (ir po tuščio slicerio). Slicerio vaizdas lieka toks, koks buvo. Kol SD kraunasi fone, slicerio vaizde „?", stumdymo ir sukimo mygtukai matomi, Share išjungtas; ant tuščio slicerio SD modelis nenupiešiamas.

Kilmė: V 2026-09-19 - grįžus iš SD, kol ši kraunasi, dingdavo „?" ir sukimas (nuo 0.17, `cardBusy`), o tuščias sliceris pamiršdavo SD modelį ir rodė „Model preview" (nuo 0.17.0). Pataisa PR #203, išleista 0.17.8.

Žalias: 0.17.8 turinys (`ec66324`) printeryje 2026-09-19 - V („veikia OK") ir Claude (stendas A-D, 6 kelių regresija gyvai).

What to do. SD manager → tap a model, wait for it to load. Open an empty slicer (no STL), go back to SD. Repeat with a loaded STL. Then tap the SD model and, while it is still loading, immediately open the slicer.

What to expect. The header changes together with the card: on the slicer "Slicer preview", on SD - the model name. Going back to SD, the model returns (also after an empty slicer). The slicer view stays as it was. While SD is loading in the background, the slicer view shows "?", the pan and rotate buttons are visible, Share is disabled; on an empty slicer the SD model is not drawn.

Origin: V 2026-09-19 - going back from SD while it was still loading used to lose the "?" and rotation (since 0.17, `cardBusy`), and an empty slicer used to forget the SD model and show "Model preview" (since 0.17.0). Fix PR #203, released in 0.17.8.

Verified: 0.17.8 content (`ec66324`) on the printer 2026-09-19 - V ("works OK") and Claude (bench A-D, 6-path regression live).

T-138
Akordeonas: pirmas atidarymas - SD; prie slicerio SD be UploadAccordion: SD opens first; SD next to slicer without Uploadwwwwww

Ką daryti. Naršyklėje, kurioje pultas dar nebuvo atidarytas (inkognito arba naujas telefonas), atidaryk pultą. Tada ▶ prie „STL slicer“, paskui ▶ prie „SD manager“.

Ko tikėtis. Pirmą kartą atidaryta SD su sąrašu ir Upload, sliceris suskleistas. Atidarius slicerį SD kortelėje lieka antraštė ir vietos juostelė (kiek failų, kiek vietos), Upload nėra. Atidarius SD - sąrašas ir Upload grįžta. Pasirinkimas įsimenamas po perkrovimo.

Kilmė: V 2026-09-22 - suskleista SD rodė Upload, o suskleistas sliceris tik antraštę; naujas žmogus pirmiausia matė slicerį. PR #207, išleista 0.17.9.

Žalias: `ba00a47` printeryje 2026-09-22 - Claude (Chrome ir tuščia naršyklės atmintis).

What to do. In a browser where the dashboard has never been opened (incognito or a new phone), open the dashboard. Then ▶ next to “STL slicer”, then ▶ next to “SD manager”.

What to expect. The first time, SD is open with its list and Upload, the slicer is collapsed. Opening the slicer leaves the SD card's header and space strip (how many files, how much space), no Upload. Opening SD brings the list and Upload back. The choice is remembered after a reload.

Origin: V 2026-09-22 - collapsed SD showed Upload, and a collapsed slicer showed only its header; a new person saw the slicer first. PR #207, released in 0.17.9.

Verified: `ba00a47` on the printer 2026-09-22 - Claude (Chrome, empty browser storage).

T-139
Mažo modelio trynimas nebekabo ties „starting…“Deleting a small model no longer hangs on “starting…”wwwwww

Ką daryti. SD manager → mažas nereikalingas modelis (keli šimtai KB) → Delete → OK. Tada tas pats su didesniu modeliu.

Ko tikėtis. Mažas: „Deleting X · starting…“, po 1-2 s „Deleted X“, modelis dingsta iš sąrašo be F5, pranešimas nusiima pats. Didelis: eiga su skaičiais, vienas „Deleted X“ pabaigoje.

Kilmė: V 2026-09-22 - mažas modelis ištrinamas greičiau nei kita apklausa, ir „starting…“ kabodavo su modeliu sąraše iki F5 (nuo 0.17, atkartota stende). PR #213, 0.17.9 perpublikuota.

Žalias: `21cbdb4` printeryje 2026-09-22 - V („veikia"); stendas: akimirksniu ir įprastas trynimas.

What to do. SD manager → a small unneeded model (a few hundred KB) → Delete → OK. Then the same with a larger model.

What to expect. Small: “Deleting X · starting…”, after 1-2 s “Deleted X”, the model disappears from the list without an F5, the message clears itself. Large: progress with numbers, one “Deleted X” at the end.

Origin: V 2026-09-22 - a small model was deleted faster than the next poll, and “starting…” used to hang with the model still in the list until an F5 (since 0.17, reproduced on the bench). PR #213, republished as 0.17.9.

Verified: `21cbdb4` on the printer 2026-09-22 - V ("works"); bench: instant and normal deletion.

1C · Vienas atidarytas modelis – visa peržiūra1C · One opened model - the whole preview

19
~30 min · Vienas modelis kortelėje + telefonas šalia (T-50). Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~30 min · One model on the card + a phone next to you (T-50). The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
S-4
PreviewPreviewwwwwww

SD eilutės Preview → 3D vaizdas kortelėje, „In preview" žymė ant eilutės.

SD row Preview → 3D view in the card, "In preview" mark on the row.

T-45
3D peržiūra: paviršius ir antras atidarymas3D preview: surface and second openwwwwww

Ką daryti. Atidaryk modelio peržiūrą pulte. Apversk vaizdą, pažiūrėk iš viršaus ir iš šono. Uždaryk ir atidaryk tą patį modelį antrą kartą - išmatuok, per kiek laiko vaizdas atsistoja pirmą ir antrą kartą.

Ko tikėtis. Atramos liečia detalę, ne kabo tarpais. Glotnumas vienodas iš viršaus ir iš šono. Dėžė kraunantis ir gatavas 3D – to paties kampo ir tų pačių proporcijų. Krovimo juostelė po užrašu, ne ant dėžės kraštinės (ji matoma kiekvienam modeliui - vaizdas visada statomas iš naujo; imk didesnį, pvz. Predator ar xenomorph, kad spėtum ją pamatyti). Antras atidarymas – pastebimai greitesnis už pirmą, bet ne akimirksniu: vaizdas visada statomas iš naujo ir visada detalus, tad kešas sutrumpina, o ne panaikina statymą (išmatuota 2026-08-31, 3 MB modeliai: pirmas 34-42 s, antras 14-24 s).

Kilmė: 0.17 #93 (PR #97). 2026-08-27 perskeltas – buvo sukišti keturi testai į vieną, trys iš jų reikalavo naršyklės konsolės ir failų trynimo nuo SD (V: „nieko nesupratau“). Techninė dalis persikėlė į T-98 (pakopų grandinė) ir A-6 (kontrolinė suma). 2026-08-31 nušluostytos dulkės: išimtos visos „Detailed“ mygtuko dalys - jo nebėra nuo 08-20 (#gl3dZoom #gl3dDet{display:none}, V sprendimas: vaizdas visada detalus), tad testas laukdavo mygtuko, kurio nėra. Kartu pataisytas ir „antras atidarymas akimirksniu“ - išmatuota, kad taip nebuvo ir negali būti.

Žalias: 0.17-dev 01fa716 (08-12, geležei: pilnas 154 sluoksnių dry run, 8 modeliai persiskenavo į TMV2)

What to do. Open the model preview in the dashboard. Flip the view, look from the top and from the side. Close and open the same model a second time - measure how long the view takes to settle, the first and the second time.

What to expect. Supports touch the part, they don't hang with gaps. Smoothness is the same from the top and from the side. The box is the same, both while loading and once the 3D is ready - the same angle and the same proportions. The loading bar sits below the label, not on the edge of the box (it is visible for every model - the view is always rebuilt from scratch; pick a bigger one, e.g. Predator or xenomorph, so you have time to see it). The second open is noticeably faster than the first, but not instant: the view is always rebuilt from scratch and always detailed, so the cache shortens the build rather than skipping it (measured 2026-08-31, 3 MB models: first 34-42 s, second 14-24 s).

Origin: 0.17 #93 (PR #97). Split on 2026-08-27 - four tests had been merged into one, three of them needed the browser console and deleting files from SD (V: "I understood nothing"). The technical part moved to T-98 (stage chain) and A-6 (checksum). Dust wiped off on 2026-08-31: all mentions of the "Detailed" button were removed - it hasn't existed since 08-20 (#gl3dZoom #gl3dDet{display:none}, V's decision: the view is always detailed), so the test used to wait for a button that doesn't exist. This also fixed the "second open is instant" claim - measured, and it wasn't true and can't be.

Verified: 0.17-dev 01fa716 (08-12, on hardware: full 154-layer dry run, 8 models re-scanned into TMV2)

T-46
Peržiūros statymas neužšaldo naršyklės (ir kiek trunka)Building the preview does not freeze the browser (and how long it takes)wwwwww

Ką daryti. Įjungus „Detailed" atidaryti didelį modelį (scull, 240 pjūvių) ir viso krovimo metu slinkti puslapį, spausti skiltis, perjunginėti temą.

Ko tikėtis. Puslapis atsako visą laiką; Chrome nerodo „Page Unresponsive"; virš dėžės auga tikri procentai („Building the 3D view — 42 %"), paskui pats paviršius ropoja iš apačios į viršų.

Matuojama. Konsolėje MessageChannel tikeriu (ne requestAnimationFrame — fone jis stabdomas): ilgiausias vienos gijos blokas turi būti < 0,5 s. Ties „scull" išmatuota 855 ms → 403 ms, bendra trukmė 66 s → 45 s.

Kilmė: V 08-13 — naršyklė pasiūlė uždaryti puslapį ties „smoothing 240 slices". Priežastis: laukas, paviršius ir piešimas suko vieną giją be pertraukos. Fix: tie patys skaičiavimai perrašyti generatoriais + MessageChannel pauzė (laikmatis fone būtų droselinamas). Tinklelio rezultatas po perrašymo bit-į-bitą tas pats (46584 viršūnės, 62080 keturkampiai). Žalias: 0.17-dev 4425977 (08-13, geležei: blokai ≤ 403 ms)

What to do. With "Detailed" on, open a large model (scull, 240 slices) and, during the whole load, scroll the page, tap tabs, switch theme.

What to expect. The page keeps responding the whole time; Chrome does not show "Page Unresponsive"; above the box real percentages grow ("Building the 3D view — 42 %"), then the surface itself crawls from the bottom to the top.

Measured. In the console with a MessageChannel ticker (not requestAnimationFrame — it is throttled in the background): the longest single-thread block must be < 0.5 s. On "scull" measured 855 ms → 403 ms, total duration 66 s → 45 s.

Origin: V 08-13 — the browser offered to close the page at "smoothing 240 slices". Reason: the mesh, surface and drawing ran on one thread with no break. Fix: the same calculations rewritten as generators + a MessageChannel pause (a background timer would be throttled). The mesh result after the rewrite is bit-for-bit the same (46584 vertices, 62080 quads). Verified: 0.17-dev 4425977 (08-13, on hardware: blocks ≤ 403 ms)

T-47
Peržiūros bloko dydis: pailginimas, rėmelis, kortelės telpamumasPreview block size: expanding, border, card fitwwwwwwtelefonasphone

Kur daroma: darai pulte kompiuteryje, paskui kartoji telefone.Where: you do it in the dashboard on a computer, then repeat it on a phone.

Ką daryti. Pulte spausti kortelės antraštės kvadratuką: blokas pailgėja iki spausdinimo tūrio proporcijų; spausti dar kartą — grįžta. Pakartoti telefone ir siaurame lange.

Ko tikėtis. Pailgėjus dėžė telpa VISA (nenupjauta nei viršus, nei apačia); įrankiai lieka prie vaizdo, ne ekrano kampuose; vienas rėmelis; ikona virsta „dviem kvadratais" (kaip Windows „restore"), o įprastoje būsenoje — vienas kvadratas. Neišdidintas pultas telpa į ekraną kartu su oranžiniu puslapio rėmeliu.

Kur žiūrėti akimis. Dėžė turi būti to paties dydžio prieš ir po 3D užsikrovimo (3D kadruoja visą tūrį, kaip ir piešinys). Krovimo metu dėžė mažesnė — taip ir turi būti, tai krovimo ženklas.

Kilmė: V 08-13 — pilno ekrano peržiūra nupjaudavo vaizdą siaurame lange, „Close" lipdavo prie naršyklės juostos, plačiame ekrane įrankiai išsibėgiodavo į kampus, matėsi rėmelis rėmelyje, o kortelė nebetilpdavo. Sprendimas: atsisakyta pilno ekrano — blokas tiesiog pailgėja iki plotis/0,611 ir toliau nebeilgėja. Žalias: 0.17-dev 03d62dc (08-13, geležei: 486×795, santykis 0,611)

What to do. In the dashboard click the square in the card's header: the block expands to the proportions of the print volume; click again — it returns. Repeat on a phone and in a narrow window.

What to expect. Once expanded the box fits WHOLE (neither top nor bottom cut off); the tools stay next to the view, not in the screen corners; one border; the icon turns into "two squares" (like Windows "restore"), and in the normal state — one square. An un-maximized dashboard fits the screen together with the orange page border.

What to look at. The box must be the same size before and after the 3D loads (3D frames the whole volume, same as the drawing). While loading the box is smaller — that is expected, it is a sign of loading.

Origin: V 08-13 — the full-screen preview used to cut off the view in a narrow window, "Close" used to stick to the browser bar, on a wide screen the tools scattered into the corners, a border showed inside a border, and the card no longer fit. Fix: full screen dropped — the block simply expands to width/0,611 and does not grow further after that. Verified: 0.17-dev 03d62dc (08-13, on hardware: 486×795, ratio 0,611)

T-55
Modelio pjūvis pagal aukštį (3D peržiūra)Model cross-section by height (3D preview)wwwwww

Ką daryti. Atidaryti modelio peržiūrą ir pjūvio valdikliu nuleisti/pakelti pjūvio aukštį; pažiūrėti, ar matosi tikri sluoksnių laipteliai.

Ko tikėtis. Modelis nukerpamas pasirinktame aukštyje, pjūvio plokštumoje matosi voxelių laipteliai; grąžinus - vėl visas modelis.

Kodėl. PR #104: leidžia pažiūrėti, kas viduje ir kaip guls sluoksniai, dar prieš spaudinį. Žalias: 0.17-dev adb9644 (08-15, ant geležies - V verdiktas „labai gerai")

What to do. Open the model preview and use the section control to lower/raise the section height; check whether real layer steps are visible.

What to expect. The model is cut at the chosen height, voxel steps are visible on the cut plane; restoring it shows the whole model again.

Why. PR #104: lets you see what is inside and how the layers will lie, before printing. Verified: 0.17-dev adb9644 (08-15, on hardware - V's verdict "very good")

T-82
2D vaizdas nenukerta modelio kampo2D view does not cut off the model's cornerwwwwww

Ką daryti. Atidaryk modelio peržiūrą ir perjunk į plokščią (2D) vaizdą. Žiūrėk į modelio kampus ir į paties bloko aukštį; perjunk pirmyn atgal kelis kartus.

Ko tikėtis. Visas modelis telpa kadre - nė vienas kampas nenukirstas. Blokas lieka to paties aukščio kaip 3D vaizde, langas nešokinėja. Plokštės kraštai pažymėti kampų žymėmis.

Kodėl. Plokščias vaizdas keisdavo bloko aukštį ir nukirsdavo modelį (V radinys 2026-08-22).

Žalias: 0.17.0 0b6e5a0 (2026-08-31, Claude naršyklė per Chrome)

What to do. Open the model preview and switch to the flat (2D) view. Look at the model's corners and at the block's own height; switch back and forth several times.

What to expect. The whole model fits in the frame - not a single corner is cut off. The block stays the same height as in the 3D view, the window does not jump. The plate's edges are marked with corner marks.

Why. The flat view used to change the block's height and cut off the model (V's finding 2026-08-22).

Verified: 0.17.0 0b6e5a0 (2026-08-31, Claude browser via Chrome)

T-83
Sluoksnio slankiklis: patikrinti ABU - slicerio ir SD peržiūrosLayer slider: check BOTH - slicer and SD previewwwwwww

Ką daryti. Atidaryk slicerio peržiūrą ir pasinaudok sluoksnių slankikliu dešinėje. Tada atidaryk SD kortelės modelio peržiūrą ir pjūvio slankiklį toje pačioje vietoje. Žiūrėk abu ir dideliame lange, ir telefone.

Ko tikėtis. Abu slankikliai to paties ilgio, neišsitęsia per visą kraštą (daugiausia apie tris ketvirčius aukščio) ir nelipa nei ant viršuje esančių mygtukų, nei ant apatinės juostos.

Kodėl. Jų yra du: slicerio ir SD peržiūros. Pataisius vieną, antras liko nepaliestas (V radinys 2026-08-22).

Žalias: 0.17.0 0b6e5a0 (2026-08-31, Claude naršyklė per Chrome)

What to do. Open the slicer preview and use the layer slider on the right. Then open the SD card's model preview and the section slider in the same place. Check both in a large window and on a phone.

What to expect. Both sliders are the same length, they don't stretch the full edge (mostly about three quarters of the height) and don't overlap either the buttons above or the bottom bar.

Why. There are two of them: the slicer's and the SD preview's. Fixing one left the other untouched (V's finding 2026-08-22).

Verified: 0.17.0 0b6e5a0 (2026-08-31, Claude browser via Chrome)

T-85
Du vaizdo mygtukai: 3D ir 2D, kiekvienas su savo poraTwo view buttons: 3D and 2D, each with its own pairwwwwww

Ką daryti. Peržiūroje surask du vaizdo mygtukus. Pirmu perjunk 3D: su atramomis ↔ be atramų. Antru perjunk 2D: su atramomis ↔ UV šviesoje.

Ko tikėtis. Keturi vaizdai, visi ant tos pačios plokštės. Mygtukai randami iš karto - jokių slepiamų vaizdų rate. UV vaizdas violetinis. žalias: 0.17 (2026-08-22)

Kodėl. Anksčiau visi vaizdai gyveno viename rate, ir UV vaizdo nepavykdavo rasti (V radinys 2026-08-22).

Žalias: 0.17.0 0b6e5a0 (2026-08-31, Claude naršyklė per Chrome)

What to do. In the preview, find the two view buttons. Use the first to switch 3D: with supports ↔ without supports. Use the second to switch 2D: with supports ↔ under UV light.

What to expect. Four views, all on the same plate. The buttons are found right away - no views hidden in a rotation. The UV view is purple. verified: 0.17 (2026-08-22)

Why. Previously all views lived in one rotation, and the UV view was hard to find (V's finding 2026-08-22).

Verified: 0.17.0 0b6e5a0 (2026-08-31, Claude browser via Chrome)

T-93
Raw voxels: išjungus glotninimą matosi tikri lipteliaiRaw voxels: with smoothing off, real steps are visiblewwwwww

Ką daryti. Pulte atidaryk modelio peržiūrą, įjunk Raw voxels ir pavaržyk pjūvio slankiklį.

Ko tikėtis. Matosi tikri 0,13 mm lipteliai (mūsų taškas 0,1275 mm), ne glotnus paviršius ir ne miglota košė.

Kodėl. Jungiklis atsirado su PR #104 (e40f58e); jo prasmė - parodyti, kaip spaudinys atrodys iš tikrųjų. Kilmė: issue #101.

What to do. In the dashboard open the model preview, turn on Raw voxels and drag the section slider.

What to expect. You see real 0.13 mm steps (our pitch is 0,1275 mm), not a smooth surface and not a blurry mush.

Why. The toggle came with PR #104 (e40f58e); its purpose is to show how the print will actually look. Origin: issue #101.

T-94
Glotninimo jungiklis kaskart stoja į numatytą vietąThe smoothing toggle always starts at its defaultwwwwww

Ką daryti. Perjunk glotninimą (banguota ikonelė), atidaryk kitą modelį - jungiklis turi likti ten, kur palikai. Tada perkrauk puslapį.

Ko tikėtis. Vieno puslapio ribose jungiklis lieka (tai to lango vaizdo režimas), o po perkrovimo grįžta į numatytą padėtį - rodomi tikri sluoksniai, be glotninimo. Tai ne klaida: taip nuspręsta sąmoningai. Palyginimui narvas elgiasi kitaip - jis įsimenamas (tmViewCage), nes yra nustatymas, o ne režimas.

Kodėl. Issue #101 prašė įsiminti, bet sprendimas apverstas: glotninimas yra vaizdo režimas, ne nustatymas, ir jis meluoja - išmatuota, kad nuo rafto lieka 24 %, o pats raftas iš vaizdo dingsta. Įsimintas jis tyliai rodytų daiktą be rafto per visą kitą sesiją. Kodas tai sako garsiai: dashboard.html:3278 „Neisaugom: tai vaizdo rezimas, ne nustatymas“.

2026-08-31: eilutė apversta pagal kodą - anksčiau ji reikalavo priešingo elgesio, nei firmware sąmoningai daro.

What to do. Toggle smoothing (the wavy icon), open another model - the toggle should stay where you left it. Then reload the page.

What to expect. Within one page load the toggle stays (it is that window's view mode), and after a reload it returns to the default - real layers shown, no smoothing. This is not a bug: it was decided this way on purpose. For comparison, the cage behaves differently - it is remembered (tmViewCage), because it is a setting, not a mode.

Why. Issue #101 asked for it to be remembered, but the decision was reversed: smoothing is a view mode, not a setting, and it lies - measured that 24% remains from the raft, while the raft itself disappears from the view. Remembered silently, it would show a piece without a raft for the rest of the session. The code says this out loud: dashboard.html:3278 "Not saving: this is a view mode, not a setting".

2026-08-31: the line was reversed to match the code - it previously required the opposite of what the firmware deliberately does.

T-95
Perjungus režimą nerodomas senas tinklelisSwitching modes does not show the old meshwwwwwwtelefonasphone

Kur daroma: perjunginėji pulte, o kartoji abiem temomis ir telefone.Where: you switch in the dashboard, and repeat it in both themes and on a phone.

Ką daryti. Tą patį modelį peržiūrėk įjungtu ir išjungtu Raw voxels, pirmyn atgal. Pakartok šviesioje ir tamsioje temoje bei telefone.

Ko tikėtis. Kiekvieną kartą piešiamas to režimo vaizdas. Jokio seno tinklelio, jokio pilko blyksnio pereinant.

Kodėl. Modelio tinklelis kešuojamas; jei kešo raktas neįtraukia režimo, grąžinamas senas tinklelis. Kilmė: issue #101.

What to do. Preview the same model with Raw voxels on and off, back and forth. Repeat in light and dark theme and on a phone.

What to expect. Each time that mode's view is drawn. No old mesh, no gray flash when switching.

Why. The model mesh is cached; if the cache key doesn't include the mode, the old mesh is returned. Origin: issue #101.

T-80
Išdidintas peržiūros langas: kompiuteryje - platus, telefone - aukštasMaximized preview window: wide on a computer, tall on a phonewwwwwwtelefonasphone

Kur daroma: išdidini kompiuteryje, paskui tą patį kartoji telefone.Where: you enlarge it on a computer, then repeat the same on a phone.

Ką daryti. Atidaryk modelį ir spausk kvadratą peržiūros kortelės viršuje. Pakartok telefone.

Ko tikėtis. Kompiuteryje maketas susklečia į vieną stulpelį ir vaizdas užima visą plotį iki oranžinės linijos, o dešinės kortelės nusileidžia žemiau; aukštis neviršija lango. Telefone - kaip buvo: tik aukštesnis blokas. Abiem atvejais įrankiai (juosta, priartinimas, sluoksnio slankiklis, padai) lieka vaizdo viduje, o puslapis neslenka į šoną. Antras paspaudimas grąžina.

Kodėl. Kompiuteryje pusę lango užima antras stulpelis, o modelis be narvo plačiame lange matosi geriausiai (V, 2026-08-19).

What to do. Open a model and click the square at the top of the preview card. Repeat on a phone.

What to expect. On a computer the layout collapses into one column and the view takes up the full width to the orange line, and the right-hand cards drop below; the height does not exceed the window. On a phone - as before: just a taller block. In both cases the tools (bar, zoom, layer slider, pads) stay inside the view, and the page does not scroll sideways. A second click restores it.

Why. On a computer the second column takes up half the window, and the model without a cage is best seen in a wide window (V, 2026-08-19).

T-84
Šviesi tema: visos peržiūros piktogramos matomosLight theme: all preview icons visiblewwwwww

Ką daryti. Perjunk pultą į šviesią temą. Atidaryk modelio peržiūrą ir apžiūrėk visus peržiūros mygtukus (pasukimas, priartinimas, padai, vaizdo mygtukai, pagalba). Perjunk atgal į tamsią.

Ko tikėtis. Visos piktogramos matomos abiejose temose - nė viena ne tamsi ant tamsaus ar šviesi ant šviesaus.

Kodėl. Šviesioje temoje devyni mygtukai buvo tamsu ant tamsaus (V radinys 2026-08-22).

What to do. Switch the dashboard to light theme. Open a model preview and check all preview buttons (rotate, zoom, pads, view buttons, help). Switch back to dark.

What to expect. All icons are visible in both themes - none dark on dark or light on light.

Why. In light theme, nine buttons were dark on dark (V's finding 2026-08-22).

T-52
Vienas kameros kampas visurOne camera angle everywherewwwwww

Ką daryti. Perjungti „as printed" pirmyn atgal; atidaryti peržiūrą ir persijungti į 3D; pasukti 3D vaizdą, atidaryti kitą modelį ir grįžti.

Ko tikėtis. Rombas nekeičia formos vartant; 2D ir 3D nesiskiria kampu; „Preview" visada pradedamas numatytuoju kampu.

Kodėl. Buvo du skirtingi kampai (23,8° stačiame, 13,4° apverstame) ir penki ranka surašyti dydžiai. Dabar viskas skaičiuojama iš vieno CAM_PITCH_DEG (20°). Žalias: 0.17-dev 9f400e2 (08-14, stende + ant geležies)

What to do. Toggle "as printed" back and forth; open the preview and switch to 3D; rotate the 3D view, open another model and go back.

What to expect. The diamond does not change shape when flipping; 2D and 3D don't differ in angle; "Preview" always starts at the default angle.

Why. There used to be two different angles (23.8° upright, 13.4° inverted) and five hand-written sizes. Now everything is calculated from one CAM_PITCH_DEG (20°). Verified: 0.17-dev 9f400e2 (08-14, on the bench + on hardware)

T-50
Telefonas ir kompiuteris piešia vienodaiPhone and computer draw the samewwwwwwtelefonasphone

Kur daroma: tą patį modelį lygini kompiuteryje ir telefone vienu metu.Where: you compare the same model on a computer and a phone at the same time.

Ką daryti. Spausdinant palyginti tą patį modelį kompiuteryje ir telefone, atidarytame jau prasidėjus spaudiniui.

Ko tikėtis. Tarpai tarp detalės ir atramų vienodi; žiedo skylė nevirsta blynu.

Kodėl. Gyvas buferis buvo 64×48, o kešas 80×60 — sumažinimas užpildydavo ~19 % daugiau ploto. Nuo 08-14 abu 80×60, tad priešužpildymas yra paprastas kopijavimas. Žalias: 0.17-dev cf11c1d (08-14; maxAllocHeap nepakito — 49 140 B, Telegram žinutė atėjo)

What to do. While printing, compare the same model on a computer and on a phone, opened after the print has already started.

What to expect. Gaps between the part and the supports are the same; the ring's hole does not turn into a pancake.

Why. The live buffer was 64×48, and the cache 80×60 — downscaling used to fill in ~19 % more area. Since 08-14 both are 80×60, so pre-filling is a simple copy. Verified: 0.17-dev cf11c1d (08-14; maxAllocHeap unchanged — 49 140 B, Telegram message arrived)

T-78
Defekto žymėjimas: taškas, zona ir ataskaitaMarking a defect: point, area and reportwwwwww

Ką daryti. Atrakink slicerių (septyni bakstelėjimai į versiją), atidaryk modelį, peržiūros įrankiuose spausk taikinio mygtuką. Bakstelėk į modelį (taškas), tada tempk pirštą per modelį (zona). Spausk Copy.

Ko tikėtis. Įjungus įrankį aplink vaizdą - oranžinis rėmelis, ir vaizdas nebesisuka (taip ir turi būti). Taškas duoda milimetrus ir sluoksnį su žingsniu („~L152 @0.10 mm"), zona - dydį mm ir sluoksnių ruožą, ant modelio matosi vielinis narvelis. Žymių sąrašas - po peržiūros kortele, jis nieko nedengia, o įrankį galima išjungti tuo pačiu mygtuku. Įklijuota ataskaita turi slicerio versiją, pulto ETag ir firmware build’ą.

Ir dar. Pažymėk vietą nesuslicinus, tada suslicink ir pažymėk tą pačią vietą. Ataskaitoje turi būti dvi grupės - BEFORE SLICING ir SLICED - o kontaktiniame lape prie kiekvieno numerio matytis etapas.

Kodėl. Žodinis aprašymas po savaitės nebepasako, su kuria versija tai buvo; plaukiojantis sąrašas telefone guldavo ant pačio mygtuko; o žymė be etapo nepasako, ar kalbama apie modelį, ar apie tai, ką sliceris su juo padarė (V, 2026-08-19).

What to do. Unlock the slicer (seven taps on the version), open a model, in the preview tools click the target button. Tap the model (point), then drag your finger across the model (area). Click Copy.

What to expect. Turning the tool on puts an orange border around the view, and the view no longer rotates (that is expected). A point gives millimeters and the layer with the pitch ("~L152 @0.10 mm"), an area gives the size in mm and the layer range, a wireframe cage shows on the model. The mark list is below the preview card, it doesn't cover anything, and the tool can be turned off with the same button. The copied report has the slicer version, the dashboard's ETag and the firmware build.

And more. Mark a spot without slicing, then slice and mark the same spot. The report must have two groups - BEFORE SLICING and SLICED - and the contact sheet must show the stage next to each number.

Why. A verbal description no longer says, a week later, which version it was; a floating list on a phone used to sit right on top of the button itself; and a mark without a stage doesn't say whether it is about the model or about what the slicer did with it (V, 2026-08-19).

T-87
Slicinant pultas užrakintas, po to atsirakina patsThe dashboard is locked while slicing, then unlocks itselfwwwwww

Ką daryti. Paleisk slicinimą ir, kol jis eina, bandyk spausti pulto mygtukus (Start, Settings, SD veiksmus). Pabaigus neperkraunk puslapio ir pabandyk vėl.

Ko tikėtis. Slicinimo metu valdikliai neaktyvūs ir sukasi suktukas - lygiai kaip per spaudinį. Pabaigus viskas atsirakina savaime. žalias: 0.17 (2026-08-22)

Kodėl. Slicinimas nebuvo įrašytas į „printeris užimtas“ būseną, tad pultas likdavo atrakintas (V radinys 2026-08-22).

Žalias: 0.17.0 0b6e5a0 (2026-08-31, Claude naršyklė per Chrome)

What to do. Start slicing and, while it runs, try clicking dashboard buttons (Start, Settings, SD actions). When it finishes don't reload the page and try again.

What to expect. During slicing the controls are inactive and a spinner turns - exactly like during a print. Once it finishes everything unlocks by itself. verified: 0.17 (2026-08-22)

Why. Slicing was not recorded into the "printer busy" state, so the dashboard stayed unlocked (V's finding 2026-08-22).

Verified: 0.17.0 0b6e5a0 (2026-08-31, Claude browser via Chrome)

T-26
Snackbar'ai per ekrano vidury (visur)Snackbars in the middle of the screen (everywhere)wwwwwwtelefonasphoneprinterisprinter

Kur daroma: spaudi ir pulte, ir printerio mygtukais; žiūri kompiuteryje ir telefone.Where: you press both in the dashboard and with the printer buttons; you watch on a computer and a phone.

Stop/Pause/Resume is dashboard'o IR printerio mygtuku, PC ir telefone, + saltas refresh -> kiekvienas snackbar'as ekrano viduryje (nebe prilipes virsuje telefone, nieko neslenka po juosta).

Kilme: V lauko testai (07-22) - tap-anchored toast'ai telefone lipdavo virsuje / turinys slankiodavo po juosta. Doktrina: visi centruoti (snackCentre).

Stop/Pause/Resume via the dashboard OR the printer's button, on PC and on a phone, + a cold refresh -> every snackbar in the middle of the screen (no longer stuck at the top on a phone, nothing scrolls under the bar).

Origin: V field tests (07-22) - tap-anchored toasts on a phone used to stick to the top / content used to scroll under the bar. Doctrine: all centered (snackCentre).

T-112
Laiko įvertis prie kiekvieno modelio wwwTime estimate next to every model www

Ką daryti. 1) SD sąraše pažiūrėk modelų eilutes – po vardu turi būti laikas ir dydis (about 1h 12m · 3.4 MB). 2) Paspausk modelį – kortelėje Estimated time turi sutapti su tuo, ką rodė eilutė. 3) Nustatymuose perjunk dervos profilį ir grįžk į sąrašą.

Ko tikėtis. Laikas rodomas prie kiekvieno modelio, įkelto su 0.17, ir perjungus dervą visos eilutės persiskaičiuoja (kita ekspozicija – kitas laikas). Seni, dar prieš 0.17 įkelti modeliai laiko nerodo visai – taip ir turi būti: sluoksnių skaičius jiems neįrašytas, o perskaityti juos iš naujo būtų lėta.

Kilmė: plano punktas EST-model (V 2026-08-07, #83), padarytas kartu su dervų profiliais (0-16). Į testų sąrašą įtrauktas 2026-08-31 V sprendimu – iki tol kabojo šalia sąrašo kaip review ir būtų likęs neuždarytas.

Žalias: 0.17.0 0b6e5a0 (2026-08-31, Claude naršyklė per Chrome)

What to do. 1) In the SD list, look at the model rows - under the name there should be a time and a size (about 1h 12m · 3.4 MB). 2) Click a model - in the card Estimated time should match what the row showed. 3) In settings switch the resin profile and go back to the list.

What to expect. The time is shown for every model uploaded with 0.17, and switching resin all rows recalculate (a different exposure - a different time). Old models uploaded before 0.17 don't show a time at all - that is expected: their layer count was never recorded, and re-reading them would be slow.

Origin: plan item EST-model (V 2026-08-07, #83), done together with the resin profiles (0-16). Added to the test list on 2026-08-31 by V's decision - until then it hung next to the list as review and would have stayed unclosed.

Verified: 0.17.0 0b6e5a0 (2026-08-31, Claude browser via Chrome)

1D · Nustatymai, tinklas, atnaujinimas1D · Settings, network, update

24
~25 min · Printerio ekranas + pultas. Vienas iš punktų (T-15) perkrauna printerį. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~25 min · Printer screen + dashboard. One of the items (T-15) reboots the printer. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
S-8
Update tabUpdate tabwwwwww

Settings → Update: rodo installed/latest teisingai, picker'io sąrašas = lango dydžio (ne begalinis).

Settings → Update: shows installed/latest correctly, the picker list = window size (not infinite).

T-13
Update tab be tinkloUpdate tab without networkwwwwww

Atjungti internetą (ne LAN) → Update tab atsidaro, UI nestringa; nepavykusi patikra kešuojama (pakartotinis atidarymas neblokuoja).

Kilmė: „GitHub freeze" — nekešuota nepavykusi patikra stabdė visą printerį, 0.15.x.

Disconnect the internet (not LAN) → Update tab opens, the UI doesn't stall; a failed check is cached (reopening doesn't block).

Origin: "GitHub freeze" — an uncached failed check used to stall the whole printer, 0.15.x.

T-15
Self-update pilnas ratasSelf-update full loopprinterisprinter

Su senesne versija printeryje: Update ekranas pats pasiūlo naują → Install → reboot → nauja versija; „Install update?" patvirtinimas rodomas.

Kilmė: 0.15.4 promotion repeticija 07-16 — pirmas pilnas patikrinimas.

With an older version on the printer: the Update screen itself offers a new one → Install → reboot → new version; the "Install update?" confirmation is shown.

Origin: 0.15.4 promotion rehearsal 07-16 — first full check.

T-14
Beta nepasiekia naujokųBeta does not reach newcomerswwwwww

Po --beta: /releases/latest ir version.txt tebe-rodo seną stable; picker'yje beta matosi.

Kilmė: 0.15.0 beta tapo GitHub „Latest" ir web flasher dalino betą — flipinta ranka; dabar --beta žymi prerelease.

After --beta: /releases/latest and version.txt still show the old stable; the picker shows the beta.

Origin: 0.15.0 beta became GitHub's "Latest" and the web flasher handed out the beta — flipped back by hand; now --beta marks a prerelease.

T-131
Savaiminis atnaujinimas eina per patikrintą ryšį ir vis dar veikiaSelf-update goes over a verified connection and still workswwwwwwprinterisprinter

Ką daryti. Pulte atidaryk Settings → Update. Printerio ekrane atidaryk System → Update. Tada kortelėje pasirink kitą versiją (pvz. ankstesnę betą) ir spausk Install selected; po to grįžk į naujausią tuo pačiu būdu.

Ko tikėtis. Kortelė ir ekranas rodo stabilaus kanalo versiją, ne „unknown" ir ne „Version check failed". Pasirinkta versija parsisiunčia su progreso juosta ekrane ir printeris persikrauna į ją per ~35 s. Jei kas nors atsako „Update refused" ar patikra nepavyksta - tai raudona, nes tokio printerio savaiminis atnaujinimas neveikia.

Kilmė: PR #146 (@DeadlySIn777) - atnaujinimas anksčiau netikrino GitHub sertifikato, tad svetimame tinkle kas nors galėjo įdiegti savo firmware; + PR #166 (papildomi Let's Encrypt šakniniai sertifikatai). Išleista 0.17.5.

Žalias: 0.17.5 + #146 + #166, build 0110eec (2026-09-16) - versijos patikra „Up to date", ekranas „Latest: 0.16.2", 0.17.4 įdiegta per patikrintą ryšį ir grąžinta, blogos versijos atmestos (400), slicerio manifestas 1,5 s, atmintis nepakito.

What to do. In the dashboard open Settings → Update. On the printer screen open System → Update. Then in the card pick another version (e.g. an earlier beta) and click Install selected; afterwards go back to the latest the same way.

What to expect. The card and the screen show the stable channel's version, not "unknown" and not "Version check failed". The chosen version downloads with a progress bar on screen and the printer reboots into it in about 35 s. If anything answers "Update refused" or the check fails - that is a red flag, because that printer's self-update does not work.

Origin: PR #146 (@DeadlySIn777) - the update used to not check GitHub's certificate, so on someone else's network anyone could have installed their own firmware; + PR #166 (extra Let's Encrypt root certificates). Released in 0.17.5.

Verified: 0.17.5 + #146 + #166, build 0110eec (2026-09-16) - version check "Up to date", screen "Latest: 0.16.2", 0.17.4 installed over a verified connection and rolled back, bad versions rejected (400), slicer manifest 1.5 s, memory unchanged.

T-133
Atnaujinus iš 0.17.5 sliceris vieną kartą įsijungia patsAfter updating from 0.17.5 the slicer turns itself on onceprinterisprinterwwwwww

Ką daryti. Dar su 0.17.5 pulte išjunk slicerį (Settings → Network → STL slicer in the dashboard → Save config). Tada išjunk ir įjunk printerį - įsikrovęs jis pats pasitikrina atnaujinimą ir pasiūlo Install. Įdiek ir pažiūrėk pultą. Paskui išjunk slicerį jau su 0.17.6, išsaugok ir vėl perkrauk printerį.

Ko tikėtis. Po atnaujinimo pulte sliceris YRA (kortelė matoma, jungiklis įjungtas), nors prieš tai buvo išjungtas - tai vienkartinis įjungimas. Po antro išjungimo ir perkrovimo sliceris lieka IŠJUNGTAS: savininko žodis nusveria, ir daugiau niekas jo neįjungia.

Kilmė: K9 (PR #162), išleista 0.17.6 (2026-09-18). 0.17 rašė „išjungta" per kiekvieną nustatymų išsaugojimą, tad vien numatytosios reikšmės pakeitimo nebūtų užtekę - reikėjo vienkartinio perjungimo su žyme NVS.

What to do. Still on 0.17.5 in the dashboard, turn off the slicer (Settings → Network → STL slicer in the dashboard → Save config). Then power the printer off and on - once booted it checks for an update itself and offers Install. Install it and check the dashboard. Then turn off the slicer again, now on 0.17.6, save, and reboot the printer again.

What to expect. After the update the slicer IS in the dashboard (the card is visible, the toggle is on), even though it was off before that - this is a one-time turn-on. After the second turn-off and reboot the slicer stays OFF: the owner's word wins, and nothing turns it on again.

Origin: K9 (PR #162), released in 0.17.6 (2026-09-18). 0.17 wrote "off" on every settings save, so just changing the default value would not have been enough - a one-time switch with an NVS flag was needed.

T-113
Pasirinktas dervos profilis tikrai egzistuoja wwwThe selected resin profile actually exists www

Ką daryti. Pulte pasižiūrėk, koks dervos profilis įjungtas (pilulė po būsenos laukais), tada atidaryk dervos rinkiklį. Sulygink: ar tas pats vardas yra sąraše.

Ko tikėtis. Įjungtas profilis visada matomas rinkiklyje su varnele. Jei jo failo kortelėje nėra, pultas turi tai pasakyti – ne rodyti vardą, už kurio nieko nėra.

Kilmė: Claude radinys 2026-08-31 testuojant T-112. Printeris rodė sunlu-tough2, o /resin/sunlu-tough2.json SD kortelėje nebebuvo – rinkiklyje tik fast ir slow. Profiliai gyvena kortelėje, o pasirinkto vardas – įrenginio nustatymuose, todėl jie gali išsiskirti. Pavojus tikras: tikrosios V kalibracijos reikšmės buvo tik /api/config, tad perjungus profilį jos būtų dingusios negrįžtamai. Apeita ištrinant pakibusį vardą ir paliekant bibliotekos sunlu-tough. Svarbu: printerio EKRANAS tai jau rodo – Interface.ino:739 rašo slugToTitle(vardas) + „ (missing)“. Nemoka tik pultas, todėl pataisa yra grynai dashboard.html darbas: /api/resin-profile jau grąžina ir selected, ir visą profiles sąrašą, tad užtenka patikrinti, ar vardas sąraše yra. Spausdinimo tai neblokuoja ir neturi – EEPROM reikšmės teisingos; pavojus tik tas, kad perjungimas į kitą profilį yra vienpusiškės durys be įspėjimo. Pataisos dar nėra.

What to do. In the dashboard check which resin profile is active (the pill under the status fields), then open the resin picker. Compare: is that same name in the list.

What to expect. The active profile is always visible in the picker with a checkmark. If its file is not on the card, the dashboard must say so - not show a name with nothing behind it.

Origin: Claude's finding 2026-08-31 while testing T-112. The printer showed sunlu-tough2, but /resin/sunlu-tough2.json was no longer on the SD card - the picker only had fast and slow. Profiles live on the card, while the selected name lives in the device settings, so they can drift apart. The danger is real: V's actual calibration values were only in /api/config, so switching profiles would have lost them for good. Worked around by deleting the dangling name and keeping the library's sunlu-tough. Note: the printer SCREEN already shows this - Interface.ino:739 writes slugToTitle(name) + " (missing)". Only the dashboard doesn't know this, so the fix is purely a dashboard.html job: /api/resin-profile already returns both selected and the full profiles list, so it's enough to check whether the name is in the list. This does not and should not block printing - the EEPROM values are correct; the only danger is that switching to another profile is a one-way door with no warning. There is no fix yet.

T-100
WiFi pasako, KODĖL neprisijungėWiFi says WHY it didn't connect

Ką daryti. System → WiFi Info → OK → OK (Reset WiFi), tada portale įvesk tyčia neteisingą slaptažodį. Palauk, kol juosta pasibaigs. Paskui nueik į System → WiFi Info. Pabaigoje pakartok su teisingu slaptažodžiu.

Ko tikėtis. Po juostos ekrane dvi eilutės: „WiFi: offline mode" ir po ja priežastis su kodu – Wrong pass? (204). Ta pati eilutė lieka WiFi Info ekrane po „Not connected". Tekstas telpa į vieną eilutę, nenusikelia. Su teisingu slaptažodžiu prisijungia kaip visada.

Kilmė: #118 (jvlobo) – naudotojo printeris nesijungė, o firmware rodė tik „offline mode", tad nei jis, nei mes negalėjom atskirti slaptažodžio nuo silpno signalo. Padaryta da08f67, uždaryta #122. Geležis pamokė: neteisingas slaptažodis grąžina 204, ne 202 – rankos paspaudimas tiesiog nepasibaigia.

What to do. System → WiFi Info → OK → OK (Reset WiFi), then in the portal enter a deliberately wrong password. Wait for the bar to finish. Then go to System → WiFi Info. At the end repeat with the correct password.

What to expect. After the bar the screen shows two lines: "WiFi: offline mode" and below it a reason with a code — Wrong pass? (204). The same line stays on the WiFi Info screen below "Not connected". The text fits on one line, it doesn't wrap. With the correct password it connects as usual.

Origin: #118 (jvlobo) — the user's printer wasn't connecting, and the firmware only showed "offline mode", so neither they nor we could tell a wrong password from a weak signal. Done in da08f67, closed #122. Hardware taught us: a wrong password returns 204, not 202 — the handshake simply never finishes.

T-107
SD sąrašo piktograma atsiranda ir „greitiems“ modeliams wwwSD list icon also appears for "fast" models www

Ką daryti. Atidaryk modelį, kuris jau turi išsaugotą peržiūros paveikslėlį (toks parodomas iš karto, be statymo juostos). Palauk ~10 s, kol fone susistatys tikras 3D. Pažiūrėk į to modelio eilutę SD sąraše.

Ko tikėtis. Eilutėje – modelio paveiksliukas, ne pilkas TinyMaker ženkliukas.

Kilmė: V radinys 2026-08-30 (skeltool). Piktograma piešiama naršyklėje iš sluoksnių ir laikoma localStorage. Modeliui su išsaugotu paveikslėliu pultas rodo jį iš karto, o tikri sluoksniai ateina vėliau, fone – ir piktogramos kurti niekas nebegrįždavo. Išmatuota: rankinis ensureRowIcon kvietimas ją padarydavo iš karto, tad funkcija buvo sveika, kaltas kvietimo momentas. Pataisyta 92be692: piktograma daroma fono pakėlimo pabaigoje.

What to do. Open a model that already has a saved preview thumbnail (it shows right away, with no build bar). Wait about 10 s for the real 3D to build in the background. Look at that model's row in the SD list.

What to expect. The row shows a model thumbnail, not the gray TinyMaker icon.

Origin: V's finding 2026-08-30 (skeltool). The icon is drawn in the browser from the layers and kept in localStorage. For a model with a saved thumbnail the dashboard shows it right away, and the real layers arrive later, in the background — and nothing ever went back to make the icon. Measured: a manual ensureRowIcon call made it right away, so the function was fine, the call's timing was at fault. Fixed in 92be692: the icon is made at the end of the background build.

T-108
„Prepare 3D“ nesugadina atidarytos peržiūros www"Prepare 3D" does not break an already-open preview www

Ką daryti. Atidaryk bet kurio modelio peržiūrą ir palauk, kol susistatys 3D. Nueik į Nustatymus ir paleisk „Prepare 3D for all models“. Palauk pabaigos ir grįžk.

Ko tikėtis. Kortelėje – tas pats vaizdas, koks buvo prieš perkūrimą. Ne stambūs kubeliai, ne priartintas ir nucentruotas kampas. Tas pats ir perjungus temą, ir išdidinus langą. Sąrašo piktogramos tuo metu turi atsinaujinti – įskaitant modelius, kurių niekas neperžiūrėjo.

Kilmė: V radinys 2026-08-30. Ciklas išjungia detalų vaizdą (jam reikia tik grubaus kešo), perpiešdavo kortelę dar būdamas grubiame režime, o pabaigoje išvalydavo kešą – likdavo stambus piešinys virš tuštumos, matmenys skaičiuoti kitokiam tankiui. Išmatuota: iškart po ciklo kešas /80x60/0, o piešimo laukas 720×420 vietoj 240×150. Pataisyta 4aad9e0: kortelė perpiešiama tik grubiame režime, o matomas vaizdas – GPU sluoksnyje – neliečiamas.

What to do. Open any model's preview and wait for the 3D to build. Go to Settings and run "Prepare 3D for all models". Wait for it to finish and go back.

What to expect. The card shows the same view as before the rebuild. Not chunky cubes, not a zoomed-in and off-center corner. Same after switching theme and maximizing the window. The list icons must refresh during this — including models nobody has previewed.

Origin: V's finding 2026-08-30. The loop turns off the detailed view (it only needs the coarse cache), used to redraw the card while still in coarse mode, and at the end cleared the cache — leaving a chunky drawing over emptiness, with dimensions computed for a different density. Measured: right after the loop the cache is /80x60/0, and the drawing field is 720×420 instead of 240×150. Fixed in 4aad9e0: the card is only redrawn in coarse mode, and the visible view — in the GPU layer — is left untouched.

T-109
SD sąrašo piktogramos matomos ir kitame įrenginyje www telefonasSD list icons are visible on another device too www phone

Ką daryti. Kompiuteryje atsiversk SD sąrašą ir palauk ~pusę minutės (piktogramos fone keliauja į kortelę). Tada atidaryk pultą telefone arba naršyklėje, kurioje šio printerio niekada nebuvai atidaręs.

Ko tikėtis. Sąraše – modelių paveikslėliai, ne pilki ženkliukai. Nieko spausti ir nieko paruošti nereikia. Puslapiuotame sąraše piktogramos nusiunčiamos tų eilučių, kurios buvo parodytos – kito puslapio modeliai išsiunčia savąsias jį atvertus (V sprendimas: siųsti visų iš karto nėra prasmės).

Kilmė: V 2026-08-30 – „nėra logikos rodyti naršyklėje PC, o atidarai telefoną ir joje nematai". Nuo e06e402 (08-16) piktograma gyveno tik localStorage, iki 24 naujausių, ir priklausė naršyklei, ne modeliui. Dabar 56×56 PNG (~5 KB) guli prie modelio kortelėje (icon.png), o sąrašas ima iš ten. Gaminimo momentas nepakito: peržiūra arba „Prepare 3D". Patikrinta ištrynus visas 25 naršyklės žymes: sąraše 10 iš 10 eilučių su paveikslėliais iš kortelės (1da71bd).

What to do. On a computer open the SD list and wait about half a minute (icons travel to the card in the background). Then open the dashboard on a phone or in a browser that has never opened this printer before.

What to expect. The list shows model thumbnails, not gray icons. Nothing needs to be clicked and nothing needs to be prepared. In a paginated list, icons are sent for the rows that were shown — the next page's models send their own once it is opened (V's decision: sending all of them at once makes no sense).

Origin: V 2026-08-30 — "there's no sense showing it in the PC browser, and you open it on a phone and don't see it there". Since e06e402 (08-16) the icon lived only in localStorage, up to 24 most recent, and belonged to the browser, not the model. Now a 56×56 PNG (~5 KB) sits next to the model on the card (icon.png), and the list takes it from there. The moment it's generated didn't change: preview or "Prepare 3D". Checked by deleting all 25 browser bookmarks: 10 out of 10 rows in the list had thumbnails from the card (1da71bd).

T-110
Po slicerio įkėlimo SD sąraše lieka 5 eilutės wwwAfter a slicer upload the SD list keeps 5 rows www

Ką daryti. Kompiuteryje (platus langas) supjaustyk STL sliceriu ir įkelk į SD. Kai SD skiltis išsiskleis, suskaičiuok eilutes.

Ko tikėtis. 5 eilutės ir sąrašas nenukaręs žemiau kairiojo stulpelio. Siaurame lange (telefone) - 10, ir tai teisinga: ten stulpelių nėra.

Kilmė: V radinys 2026-08-30. Eilučių skaičius matuojamas iki kairiojo stulpelio apačios, bet akimirką po slicerio įkėlimo SD išsiskleidžia iškart, o peržiūra dar kraunasi - matavimo sąlygos nepraeina, ir likdavo pradinė reikšmė 10 (telefono puslapis, ne matavimas). Pataisyta 571ec77: išeities reikšmė imama iš maketo (kompiuteryje 5), o ne visada 10. Pirmas bandymas (ada342f) taikė ne į tą vietą - taisė matavimo vidų, o iki jo išvis neprieinama.

Žalias: 0.17.0 0b6e5a0 (2026-08-31, Claude naršyklė per Chrome)

What to do. On a computer (wide window) slice an STL and upload it to SD. When the SD section expands, count the rows.

What to expect. 5 rows and the list doesn't run off below the left column. In a narrow window (phone) — 10, and that is correct: there are no columns there.

Origin: V's finding 2026-08-30. The row count is measured against the bottom of the left column, but right after a slicer upload SD expands immediately while the preview is still loading — the measurement conditions don't hold, and the initial value 10 was left in place (the phone layout, not a measurement). Fixed in 571ec77: the starting value is taken from the layout (5 on a computer), not always 10. The first attempt (ada342f) targeted the wrong spot — it fixed the inside of the measurement, which wasn't even reachable yet.

Verified: 0.17.0 0b6e5a0 (2026-08-31, Claude browser via Chrome)

T-111
Narvo mygtukas visada pirmas juostoje wwwThe cage button is always first in the bar www

Ką daryti. Patikrink keturiuose režimuose: įprasta peržiūra iš SD; sliceryje ką tik užkrautas STL; suslicinta; iškart po įkėlimo į SD. Papildomai - išdidinus peržiūros langą.

Ko tikėtis. Narvo mygtukas visur pirmas iš kairės.

Kilmė: V radinys 2026-08-30. Sliceryje slepiami gl3dDet, gl3dClip ir gl3dRaw, tad narvas atsidurdavo tai priekyje, tai gale, nors pats nejudėjo. Pataisyta 0b6e5a0: order:-1 - ne DOM perstatymas, tad slicerio tiltelis lieka nepaliestas.

What to do. Check in four modes: normal preview from SD; an STL just loaded in the slicer; sliced; right after uploading to SD. Also — with the preview window maximized.

What to expect. The cage button is always first from the left.

Origin: V's finding 2026-08-30. In the slicer gl3dDet, gl3dClip and gl3dRaw are hidden, so the cage used to end up sometimes at the front, sometimes at the back, even though it never moved itself. Fixed in 0b6e5a0: order:-1 — not a DOM reorder, so the slicer's bridge is left untouched.

T-29
Firmware-updated pranesimas (vienkartinis)Firmware-updated notice (one-time)wwwwww

Self-update is dashboard'o/printerio -> naršyklei prisijungus po perkrovimo rodomas vienkartinis 'firmware updated' pranesimas; NEsikartoja velesniuose refresh'uose.

Kilme: 1-35 (0.16.0-beta), sessionStorage tmFwUpd.

Self-update via the dashboard/printer -> once the browser reconnects after the reboot, a one-time 'firmware updated' notice is shown; it does NOT repeat on later refreshes.

Origin: 1-35 (0.16.0-beta), sessionStorage tmFwUpd.

T-32
WiFi-off boot -> System->Update kelia laikina WiFiWiFi-off boot -> System->Update brings WiFi up temporarilyprinterisprinter

Advanced -> Network -> WiFi Off, perkrauti. System -> Update: laikinas WiFi PAKYLA, self-update galimas (anksciau buvo aklaviete). networkStarted latch nebeblokuoja (case 423 unlatch).

Kilme: 0-35 / GitHub #38 (0.16.2). Zalias: 0.16.2 (08-03, ant gelezies)

Advanced -> Network -> WiFi Off, reboot. System -> Update: temporary WiFi COMES UP, self-update is possible (used to be a deadlock). networkStarted latch no longer blocks (case 423 unlatch).

Origin: 0-35 / GitHub #38 (0.16.2). Verified: 0.16.2 (08-03, on hardware)

T-89
Printeris, uzsikraves be tinklo, atsigauna PATSA printer that boots without a network recovers BY ITSELFprinterisprinterwwwwww

Kur daroma: routerį ir printerį jungi fiziškai, o grįžimą į tinklą matai pulte.Where: you switch the router and the printer on physically, and see it rejoin the network in the dashboard.

Ką daryti. Isjunk routeri (arba WiFi jame). Ijunk printeri ir palauk, kol ekrane praeis „WiFi: offline mode". Tik tada ijunk routeri atgal ir palauk ~1 min. Nieko printeryje nespausk - jokio perkrovimo, jokio System → Update.

Ko tikėtis. WiFi zenklas pazaliuoja IR pultas atsidaro per IP; tinymaker.local irgi veikia; PrusaSlicer „Send to printer" prisijungia. Antras variantas tam paciam: paleisk printeri, kol routeris dar kyla po elektros dingimo - rezultatas turi buti toks pat.

Kodėl. Nepavykes 15 s jungimasis boot’e grazindavo is network_setup() per anksti, ir uz to likdavo nepaleisti VISI HTTP marsrutai bei server.begin(). Budintis watchdog’as radija sugrazindavo - zenklas zalias, IP teisingas - bet printeris tyledavo i kiekviena uzklausa. Vienintelis kelias atgal buvo System → Update. Kilme: feedback #24 (Simon, 0.16.2) - du printeriai vienu metu, abu tinkle, abu nepasiekiami; perkrovimas nepadejo. Fix 836d6d3.

What to do. Turn off the router (or its WiFi). Turn on the printer and wait until the screen shows "WiFi: offline mode". Only then turn the router back on and wait about 1 min. Don't touch anything on the printer - no reboot, no System → Update.

What to expect. The WiFi icon turns green AND the dashboard opens over IP; tinymaker.local also works; PrusaSlicer's "Send to printer" connects. Second variant of the same thing: start the printer while the router is still coming back up after a power outage - the result must be the same.

Why. A failed 15 s connection attempt at boot used to return from network_setup() too early, and behind that ALL the HTTP routes and server.begin() were left un-started. A watchdog would bring the radio back - green icon, correct IP - but the printer would stay silent to every request. The only way back was System → Update. Origin: feedback #24 (Simon, 0.16.2) - two printers at the same time, both on the network, both unreachable; a reboot didn't help. Fix 836d6d3.

T-21
WiFi atsigauna po ryšio nukritimoWiFi recovers after a connection dropprinterisprinterwwwwww

Kur daroma: routerį perkrauni fiziškai, o atsigavimą matai ir printeryje, ir pulte.Where: you restart the router physically, and see the recovery both on the printer and in the dashboard.

Spausdinant IR idle metu perkrauti routerį (ar trumpam išjungti WiFi) → printeris pats grįžta į tinklą be pakartotinio slaptažodžio vedimo; tinymaker.local atsigauna. Ekspozicija (CURE) nepaveikta — watchdog tik network_loop(), per UV nesisuka; auto-reconnect fone. žalias: 0.15.6+dirty (07-18, lauko testas — „atsigavo")

Kilmė: feedback #12 (Jack Butler, 0.15.6) — WiFi nukrisdavo visai, tekdavo vesti creds iš naujo (nuo ~0.15.4). Priežastis: nebuvo runtime auto-reconnect (tik boot'e). Fix 07-18: setAutoReconnect(true)+persistent(true) + idle reconnect watchdog + mDNS re-announce.

While printing AND while idle, reboot the router (or briefly turn off WiFi) -> the printer reconnects to the network on its own without re-entering the password; tinymaker.local recovers. Exposure (CURE) is not affected - the watchdog only touches network_loop(), it does not run during UV; auto-reconnect runs in the background. Verified: 0.15.6+dirty (07-18, field test - "recovered")

Origin: feedback #12 (Jack Butler, 0.15.6) - WiFi used to drop completely, and the credentials had to be re-entered (since ~0.15.4). Cause: no runtime auto-reconnect (only at boot). Fix 07-18: setAutoReconnect(true)+persistent(true) + idle reconnect watchdog + mDNS re-announce.

T-24
Discard NENUTRINA WiFiDiscard does NOT erase WiFiprinterisprinter

'Power restored' -> Discard (palaikyti mygtuka iki galo). Po to System -> WiFi Info: printeris VIS DAR tinkle. Palaikytas Discard NETURI suveikti kaip factory WiFi reset.

Kilme: lauko bug'as (V, 07-22) - 'hold BACK ijungiant = WiFi erase' suveikdavo nuo dar laikomo Discard (network_setup is loop). Fix 1c38cfc: mygtuku atleidimo drenazas pries network_setup.

'Power restored' -> Discard (hold the button down all the way). Then System -> WiFi Info: the printer is STILL on the network. A held Discard must NOT act as a factory WiFi reset.

Origin: field bug (V, 07-22) - 'hold BACK while powering on = WiFi erase' was triggered by a still-held Discard (network_setup from loop). Fix 1c38cfc: button-release drain before network_setup.

T-38
Decisekundes Regular ekspozicija (migracija + round-trip)Decisecond Regular exposure (migration + round-trip)printerisprinterwwwwww

Kur daroma: reikšmę keiti ir printerio meniu, ir pulte, tikrini, ar sutampa.Where: you change the value both in the printer menu and in the dashboard, and check that they match.

Regular ekspozicija saugoma/redaguojama 0.1 s tikslumu (Base lieka sveikos sek.). Senas whole-second Regular x10 -> ds (self-healing migracija, addr3 mirror downgrade'ui). Nustatyta X.X islieka po reboot ir backup/restore; UV laikas + estimate naudoja /10 (ne 10x nukrype); factory reset -> 14.0.

Kilme: 0-3 (0.17, PR #85). Zalias: 0.17-dev (08-08, gelezei: #3 realus spaudinys Sunlu Rapid @ Regular 8.0/Base 18 - svari detale + adhezija; migracija auto-OK 14->14.0)

Regular exposure is stored/edited with 0.1 s precision (Base stays in whole seconds). Old whole-second Regular x10 -> ds (self-healing migration, addr3 mirror for downgrade). A value set to X.X survives reboot and backup/restore; UV time + estimate use /10 (not off by 10x); factory reset -> 14.0.

Origin: 0-3 (0.17, PR #85). Verified: 0.17-dev (08-08, on hardware: #3 real print Sunlu Rapid @ Regular 8.0/Base 18 - clean part + adhesion; migration auto-OK 14->14.0)

T-17
Tekstai telpa ekranuoseText fits on the screensprinterisprinter

Exposure testo pabaigos ekranas, WiFi Info, Update ekranai — tekstas nelipa ant savęs, nekerta rėmelio.

Kilmė: mėlyno teksto užlipimas + „(Good)" susidūrimas su pagaliukais, 0.14.3/0.15.4.

Exposure test end screen, WiFi Info, Update screens - text does not overlap itself, does not cross the frame.

Origin: blue text overlap + "(Good)" colliding with the bars, 0.14.3/0.15.4.

T-2
Boot anim: nutrauktas siuntimasBoot animation: interrupted uploadwwwwwwprinterisprinter

Kur daroma: siuntimą pradedi pulte, o rezultatą tikrini printerio ekrane.Where: you start the send in the dashboard, and check the result on the printer screen.

Pradėti animacijos siuntimą ir nutraukti tinklą → sena animacija lieka nepažeista, dalinis failas neinstaliuojamas.

Kilmė: Briano 538 KB truncated failas — installer'is priimdavo dalinius; fix: TMB antraštės dydis + magic prieš rašymą.

Start uploading an animation and cut the network -> the old animation stays intact, the partial file is not installed.

Origin: Brian's 538 KB truncated file - the installer used to accept partial files; fix: TMB header size + magic check before writing.

T-140
Atnaujinimas tikrinamas mūsų parašu, ne GitHub sertifikatuThe update is verified by our signature, not the GitHub certificatewwwwwwprinterisprinter

Ką daryti. Settings → Update → „Install selected" su ankstesne versija (pvz. 0.18.2), paskui „Install latest". Tada „Choose & flash…" su bet kokiu kitu failu (pvz. PNG, pervadintu į firmware.bin).

Ko tikėtis. Abi versijos įsidiegia, printeris persikrauna pats, versija pulte pasikeičia. Svetimas failas atmetamas su klaida (tikrinama failo antraštė; rankinis įkėlimas parašo netikrina - jis skirtas savo build'ams), printeris lieka dirbti su sena versija. Jokio „Version check failed - could not reach GitHub".

Kilmė: Garry (#118) - kai kuriuose regionuose GitHub rodo kitą sertifikatą, ir printeris negalėjo atsinaujinti. 0.18.0.

Žalias: 0.18.0 printeryje 2026-09-22 - persikrovė per parašo kelią; rado ir pataisė tarpų JSON'e klaidą.

What to do. Settings -> Update -> "Install selected" with an earlier version (e.g. 0.18.2), then "Install latest". Then "Choose & flash…" with any other file (e.g. a PNG renamed to firmware.bin).

What to expect. Both versions install, the printer reboots on its own, the version on the dashboard changes. A foreign file is rejected with an error (the file header is checked; a manual upload does not check the signature - it is meant for your own builds), the printer keeps running the old version. No "Version check failed - could not reach GitHub".

Origin: Garry (#118) - in some regions GitHub presents a different certificate, and the printer could not update. 0.18.0.

Verified: 0.18.0 on the printer 2026-09-22 - rebooted via the signature path; found and fixed a whitespace bug in the JSON.

T-141
Avarijos pranešimas pasako, kuris build'as lūžoThe crash report says which build failedprinterisprinter

Ką daryti. Tik Claude: bandomasis build'as su ENABLE_CRASH_TEST 1 (niekada į laidą) → /api/crashtest → printeris persikrauna → avarijų dėžutė (Crash inbox).

Ko tikėtis. Naujas įrašas: priežastis „crash (panic)", sluoksnis ir laikas tušti (spausdinama nebuvo), backtrace rodo Network.ino, Build stulpelis - „self-built ⚠" (bandomasis) arba „vX ✓" (laida). Laidos build'e /api/crashtest → 404.

Kilmė: V 2026-09-24 - 0.18.2 pranešimas rodė „power-on · layer 100": tai buvo senas įvykis, prilipęs prie naujo, o build'o atpažinti nebuvo kaip. 0.18.1 (backtrace), 0.18.3 (#243).

Žalias: bandomasis `01691ee+dirty` printeryje 2026-09-24 - Claude („crash (panic)", layer 0, elf = run); `07aeafa` - crashtest 404.

What to do. Claude only: a test build with ENABLE_CRASH_TEST 1 (never in a release) -> /api/crashtest -> the printer reboots -> the crash inbox.

What to expect. A new entry: reason "crash (panic)", layer and time empty (nothing was printing), backtrace shows Network.ino, the Build column - "self-built ⚠" (test build) or "vX ✓" (release). On a release build, /api/crashtest -> 404.

Origin: V 2026-09-24 - the 0.18.2 report showed "power-on · layer 100": that was an old event stuck to the new one, and there was no way to tell which build it came from. 0.18.1 (backtrace), 0.18.3 (#243).

Verified: test build `01691ee+dirty` on the printer 2026-09-24 - Claude ("crash (panic)", layer 0, elf = run); `07aeafa` - crashtest 404.

T-142
Įjungus printerį nėra savaiminio persikrovimoTurning the printer on does not cause a spontaneous rebootprinterisprinter

Ką daryti. Penkis kartus iš eilės išjunk ir įjunk printerį (palauk, kol pultas atsiranda tinkle).

Ko tikėtis. Kiekvieną kartą printeris prisijungia iš pirmo karto ir daugiau nepersikrauna; avarijų dėžutėje naujų įrašų nėra.

Kilmė: 0.18.1 avarijos pranešimai - WiFiManager uždarydamas nustatymų langą kartais kreipdavosi į tuščią rodyklę. Pataisyta 0.18.2.

What to do. Turn the printer off and on five times in a row (wait each time until the dashboard appears on the network).

What to expect. Each time the printer connects on the first try and does not reboot again; no new entries in the crash inbox.

Origin: 0.18.1 crash reports - WiFiManager sometimes dereferenced a null pointer when closing the settings portal. Fixed in 0.18.2.

1E · Pranešimai į telefoną1E · Notifications to the phone

2
~10 min · Sukonfigūruotas Telegram (ar kitas kanalas). Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~10 min · Telegram (or another channel) set up. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
T-96
Pultas pasako, ar telefono žinutė tikrai nuėjoThe dashboard says whether the phone message actually went throughwwwwwwtelefonasphone

Kur daroma: „Send test“ spaudi pulte, o pristatymą tikrini telefone.Where: you press "Send test" in the dashboard, and check delivery on the phone.

Ką daryti. Įjunk pranešimus ir paspausk „Send test“ - žinutė turi ateiti į telefoną. Tada paleisk dry run ir sulauk automatinio pranešimo (starto ar pabaigos) - tik po jo Settings po kanalo jungikliais atsiranda eilutė. Paskui sugadink nustatymus (klaidingas Chat ID arba išjunk routerį), pakartok dry run ir žiūrėk tą pačią eilutę.

Ko tikėtis. Pirmu atveju „Last automatic message: delivered just now.“. Antru - raudona „NOT delivered“ su priežastimi. Kol jokio automatinio pranešimo dar nebuvo (pvz. ką tik perkrautas printeris), eilutės išvis nėra - net jei „Send test“ ką tik puikiai suveikė.

Svarbu. „Send test“ šios eilutės NEKEIČIA, ir taip yra sąmoningai: testas eina savu keliu, tad žalias testo pranešimas gali stovėti virš raudonos eilutės - būtent tas skirtumas („testas veikia, o spausdinant ne“) ir buvo #40 simptomas.

Kodėl. Siuntimo rezultatas buvo skaičiuojamas ir išmetamas, todėl atminties bug’as (#40) savaitėmis tyliai žudė pranešimus spausdinimo metu, o „Send test“ ramybėje veikė. Kilmė: issue 88, 0.17.

zalias: 0.17.0 (2026-09-02) - Claude + V, build Sep 1 21:42:17. ABI puses. „Delivered“: po tikro automatinio pranesimo eilute rode „Last automatic message: delivered 5 min ago.“ „NOT delivered“: laikinai pakeitus pokalbio ID i neteisinga ir paleidus `Test2min`, po pabaigos - „Last automatic message: NOT delivered just now - Telegram returned HTTP 400.“ (`notifyLastOk false`). Pokalbio ID grazintas.

What to do. Turn on notifications and press "Send test" - the message should arrive on the phone. Then run a dry run and wait for an automatic message (start or finish) - only after that does a line appear in Settings below the channel switches. Then break the settings (wrong Chat ID, or turn off the router), repeat the dry run and watch the same line.

What to expect. In the first case, "Last automatic message: delivered just now.". In the second - a red "NOT delivered" with a reason. As long as there has been no automatic message yet (e.g. the printer was just rebooted), the line is not there at all - even if "Send test" just worked perfectly.

Important. "Send test" does NOT change this line, and that is intentional: the test takes its own path, so a green test message can sit above a red line - and exactly that mismatch ("the test works, but not while printing") was the symptom of #40.

Why. The send result was computed and then discarded, so a memory bug (#40) silently killed messages during printing for weeks, while "Send test" kept working fine. Origin: issue 88, 0.17.

Verified: 0.17.0 (2026-09-02) - Claude + V, build Sep 1 21:42:17. Both sides. "Delivered": after a real automatic message the line showed "Last automatic message: delivered 5 min ago." "NOT delivered": after temporarily setting the chat ID to an invalid value and running `Test2min`, after it finished - "Last automatic message: NOT delivered just now - Telegram returned HTTP 400." (`notifyLastOk false`). The chat ID was restored.

T-6
Canceled ≠ finished pranešimuoseCanceled ≠ finished in messagesprinterisprintertelefonasphone

Kur daroma: atšauki prie printerio ar pulte, o žinutę gauni telefone.Where: you cancel at the printer or in the dashboard, and get the message on the phone.

Atšaukti printą per galinį lift'ą → Telegram/WhatsApp gauna „canceled", NE „finished".

Kilmė: cancel per final lift landino be notifikacijos / kaip finished — pagauta 0.15.x peržiūroje.

Cancel a print during the final lift -> Telegram/WhatsApp receives "canceled", NOT "finished".

Origin: canceling during the final lift used to land without a notification / as finished - caught in the 0.15.x review.

2A · Judesys, homing, UV2A · Motion, homing, UV

13
~25 min · Tuščias VAT, be dervos. Plokštė įstatyta. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~25 min · Empty vat, no resin. Build plate mounted. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
T-44
Homing patikimumas (klaidinga "Homing error")Homing reliability (false "Homing error")printerisprinter

Dry run, pilnas vatas, nusileidimo greitis maksimalus. 0) Po tikro spaudinio parko spausti +0.1 mm iki atsiremimo i lubas ir skaiciuoti: ~23 = dreifo nera (parkas 68.0, lubos 70.3); ~0-5 = platforma po darbo auksciau nei skaitiklis mano. 1) Ciklai flash -> boot -> start (homing is parko i pilna vata) - 5+ ratu. 2) Iassokus klaidai: spausti OK ir NIEKO neliesti, tada perskaityti /api/status lauka endstop: false = platforma jutiklio nepasieke (mechanika - properša/prilipimas prie FEP), true = pasieke, bet skaitymas melavo judant (elektrika/triukSmas). Retry turi startuoti "nepajudejes".

Isbraukta matavimais (nekartoti): ryski sviesa optinio jutiklio NEapgauna (islaike true ~2.5 min); eigos biudzeto versija atmesta - fizine eiga 70.3 mm < 73.0 mm biudzeto, tad per aukstos padeties scenarijus neimanomas; dreifo nera.

Kilme: 2x "Homing error, print canceled" 08-09, abu iskart po flash'o. 08-11 vakara 5 ciklai svarus - klaida NEATKARTOTA, pereita i stebejima. Zalias: 0.17-dev (08-11, gelezei: 5 ciklai svarus, dreifo 0); klaidos priezastis LIEKA neatrasta - pasikartojus vykdyti 2) punkta

Dry run, full vat, maximum descent speed. 0) After a real print, at park press +0.1 mm until it rests against the ceiling and count: ~23 = no drift (park 68.0, ceiling 70.3); ~0-5 = the build plate is higher after the job than the counter thinks. 1) Cycles flash -> boot -> start (homing from park to full vat) - 5+ rounds. 2) When the error triggers: press OK and touch NOTHING, then read the /api/status field endstop: false = the plate did not reach the sensor (mechanical - a gap / sticking to the FEP), true = it reached it, but the reading lied while moving (electrical/noise). A retry must start "not having moved".

Ruled out by measurement (do not repeat): bright light does NOT fool the optical sensor (stayed true for ~2.5 min); the travel-budget version was rejected - the physical travel 70.3 mm < 73.0 mm of the budget, so a too-high-position scenario is impossible; no drift.

Origin: 2x "Homing error, print canceled" on 08-09, both right after a flash. On the evening of 08-11, 5 clean cycles - the error was NOT reproduced, moved to monitoring. Verified: 0.17-dev (08-11, on hardware: 5 clean cycles, 0 drift); the cause of the error REMAINS unfound - if it recurs, run step 2)

T-58
Homing: jokio pranešimo, tik būsenaHoming: no message, just statuswwwwww

Ką daryti. Paleisk spaudinį ir netrukdyk. Stebėk pultą per visą leidimąsi.

Ko tikėtis. Būsena rodo Homing be sekundžių, ir jokio pranešimo ekrane nėra.

Kodėl. Homing yra spausdinimo dalis, o ne atskiras laukimas; kelio iki galinio jungiklio niekas neišmatuoja, tad ir skaičiaus ten būti negali.

What to do. Start a print and do not interfere. Watch the dashboard through the whole descent.

What to expect. The status shows Homing with no seconds, and there is no message on the screen.

Why. Homing is part of printing, not a separate wait; nobody measures the distance to the end stop, so there can be no number there.

T-54
Krovimo žinutė neprapuola per homing'ąThe loading message does not disappear during homingtelefonasphone

Ką daryti. Paleisti spaudinį ir žiūrėti telefone, kol platforma leidžiasi.

Ko tikėtis. Juodame bloke „Loading live 3D…", antraštėje „Printing 0% · vardas" — abu sutampa; prasidėjus ekspozicijai savaime virsta 3D vaizdu.

Kodėl. Žinutė buvo piešiama vieną kartą; bet ką perpiešus drobę ji nebeatsirasdavo, ir per visą homing'ą likdavo „Pick a model and press Preview". Žalias: 0.17-dev 92236f7 (08-14, ant geležies)

What to do. Start a print and watch the phone while the plate descends.

What to expect. In the black block "Loading live 3D…", in the header "Printing 0% · name" - both match; once exposure starts it turns into the 3D view on its own.

Why. The message was drawn only once; as soon as anything redrew the canvas it no longer reappeared, and through the whole homing it stayed on "Pick a model and press Preview". Verified: 0.17-dev 92236f7 (08-14, on hardware)

T-3
Stop per homing'ą — retraceStop during homing - retracewwwwwwprinterisprinter

Kur daroma: Stop spaudi pulte, o platformos grįžimą stebi prie printerio.Where: you press Stop in the dashboard, and watch the plate come back at the printer.

Atšaukti printą per galinį homing'ą (pozicija žemiau 0) → platforma grįžta į 0, HTTP gyvas (puslapis atsako), jokio freeze.

Kilmė: stop-during-homing radinys → fff62d3, 0.15.4.

Cancel a print during the final homing (position below 0) -> the plate returns to 0, HTTP stays alive (the page responds), no freeze.

Origin: stop-during-homing finding -> fff62d3, 0.15.4.

T-72
Pause mygtukas per homing neaktyvusThe Pause button is inactive during homingwwwwww

Ką daryti. Paleisk spaudinį. Kol būsena „Homing", pabandyk paspausti Pause.

Ko tikėtis. Mygtukas neaktyvus (pilkas). Printeris tuo metu pauzės nepriima.

Kodėl. Kad nebūtų komandos, kuri tyliai nieko nedaro.

What to do. Start a print. While the status is "Homing", try to press Pause.

What to expect. The button is inactive (grayed out). The printer does not accept a pause at this point.

Why. So there is no command that silently does nothing.

T-40
Pause lift height reguliuojamas (apziuros kelimas)Pause lift height is adjustable (inspection lift)printerisprinterwwwwww

Kur daroma: aukštį nustatai printerio meniu arba pulte, o kilimą matai prie printerio.Where: you set the height in the printer menu or in the dashboard, and see the lift at the printer.

Advanced->Resin->"Pause lift": ciklas 20/25/30/35/40; dashboard input tas pats. Per spaudini Pause -> platforma kyla nustatytu auksciu (ne fiksuotu 20), Resume -> grizta i tikslia Z ir tesia. Lubos: bet kuriam auksciui runtime clamp iki max_height (nevirsija). Default 20 = sena elgsena.

Kilme: #82 (0.17, PR #86); firmware-auditor svarus (lubos saugios, default-ekviv., meniu be off-by-one). Zalias: 0.17-dev 488194f (08-08, gelezei: meniu ciklas + kilnojimas OK)

Advanced->Resin->"Pause lift": cycles through 20/25/30/35/40; the dashboard input is the same. During a print, Pause -> the plate rises by the configured height (not a fixed 20), Resume -> returns to the exact Z and continues. Ceiling: for any height, a runtime clamp to max_height (does not exceed it). Default 20 = the old behavior.

Origin: #82 (0.17, PR #86); firmware-auditor clean (ceiling safe, default-equivalent, menu without an off-by-one). Verified: 0.17-dev 488194f (08-08, on hardware: menu cycle + lift OK)

S-10
Exposure test įėjimasExposure test entryprinterisprinter

Advanced → Exposure test pasileidžia, juostos matomos, pick ekranas suveikia (galima atšaukti be įrašymo).

Advanced -> Exposure test starts, the bars are visible, the pick screen works (it can be canceled without saving).

T-39
Exp-test juostele sub-sekundine + LCD telpaExp-test bars are sub-second + fit on the LCDprinterisprinter

Advanced->Resin->Exposure test: 8 juostu sub-sekundines ir skirtingos, rodomos "X.X s" (ne zalias ds "44-176"). Intro/rezultatas/Advanced reiksme telpa 160px (nenukerpa pabaigos). "Pick bar" pritaiko decisekundine Regular reiksme.

Kilme: 0-3 display-fix (ffa7685) - bug'a rado V ant gelezies (rode "44-176", nukirpo "8 bars: 4.4-17."). Zalias: 0.17-dev (08-08, gelezei - rodo "4.4-17.6s")

Advanced->Resin->Exposure test: 8 bars are sub-second and distinct, shown as "X.X s" (not the raw ds "44-176"). The Intro/result/Advanced value fits in 160px (does not cut off the end). "Pick bar" applies the decisecond Regular value.

Origin: 0-3 display fix (ffa7685) - the bug was found by V on hardware (showed "44-176", cut off "8 bars: 4.4-17."). Verified: 0.17-dev (08-08, on hardware - shows "4.4-17.6s")

T-5
Exposure kopėtėlė prie mažų verčiųExposure ladder at small valuesprinterisprinter

Regular = 1–2 s → testo juostos VISOS skirtingos ir pasirenkamos (ne identiškos dėl sveikų skaičių).

Kilmė: vartotojo radinys 0.15.0 testuose → 13c9b4b; galutinai išnyks su 0-3 decisekundėmis.

Regular = 1-2 s -> the test bars are ALL distinct and selectable (not identical due to whole numbers).

Origin: a user finding in 0.15.0 tests -> 13c9b4b; will finally disappear with 0-3 deciseconds.

T-1
Šviežia plokštė → UV veikiaFresh board -> UV worksprinterisprinter

Flash ant išvalytos/naujos plokštės (erase_flash) → pirmas boot: ekspozicijos gauna default'us (35/14), UV šviečia, Layer_Height ne 2.55.

Kilmė: Issue #13 (mwalimu, nauja mašina iš gamyklos) → EEPROM validacija ead35e9, 0.15.x.

Flash onto an erased/fresh board (erase_flash) -> first boot: exposures get the defaults (35/14), UV lights up, Layer_Height is not 2.55.

Origin: Issue #13 (mwalimu, a new machine from the factory) -> EEPROM validation ead35e9, 0.15.x.

T-4
UV hard-stopUV hard-stopwwwwwwprinterisprinter

Kur daroma: Stop spaudi pulte, o UV gesimą matai prie printerio.Where: you press Stop in the dashboard, and see the UV go off at the printer.

Stop vidury ekspozicijos → UV užgęsta IŠKART (esp_timer), ne po fazės pabaigos.

Kilmė: UV saugos peržiūra 0.15.x (uvOffTimer).

Stop in the middle of an exposure -> UV turns off IMMEDIATELY (esp_timer), not after the phase ends.

Origin: UV safety review 0.15.x (uvOffTimer).

T-20
Level įspėjimo ekranasLevel warning screenprinterisprinter

Maintenance → Level Build Plate → raudonas ekranas sako „Plate must be EMPTY. Homing goes DOWN." — trys eilutės telpa, nelipa viena ant kitos ir ant Back/Next mygtukų; Back grąžina be homingo. žalias: 0.15.6-kand. c1d323e (07-20, foto)

Kilmė: Simon #8 power-outage incidentas → sauga pirmu smuiku; pirmoji redakcija lūžo dėl CAPS pločio (wrap užlipimas, lauko foto 07-20) → trys trumpos eilutės.

Maintenance -> Level Build Plate -> the red screen says "Plate must be EMPTY. Homing goes DOWN." - the three lines fit, do not overlap each other or the Back/Next buttons; Back returns without homing. Verified: 0.15.6-cand. c1d323e (07-20, photo)

Origin: Simon #8 power-outage incident -> safety comes first; the first version broke due to the width of CAPS (wrap overlap, field photo 07-20) -> three short lines.

T-31
Power-loss resume ON/OFF jungiklisPower-loss resume ON/OFF switchprinterisprinterwwwwww

Kur daroma: jungiklį tikrini printerio meniu ir pulte, kad rodytų tą pačią būseną.Where: you check the switch in the printer menu and in the dashboard, so that both show the same state.

Advanced -> Resin -> Power resume OFF: nutraukus srove -> JOKIO resume prompt'o, checkpoint NErasomas (spausdinam nuo nulio). ON: prompt'as atsiranda + resumina. Jungiklis issisaugo (NVS + backup); printerio meniu ir dashboard rodo TA PACIA busena.

Kilme: 0-34 (0.16.2). Zalias: 0.16.2 (08-03, ant gelezies)

Advanced -> Resin -> Power resume OFF: cut the power -> NO resume prompt, checkpoint is NOT written (we print from scratch). ON: the prompt appears + it resumes. The switch is saved (NVS + backup); the printer menu and dashboard show the SAME state.

Origin: 0-34 (0.16.2). Verified: 0.16.2 (08-03, on hardware)

2B · Dry run: startas, būsena, pabaiga2B · Dry run: start, status, finish

17
~35 min · Dry run įjungtas. Vienas paleidimas dengia visą bloką. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~35 min · Dry run on. One run covers the whole block. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
S-5
Print start + progresasPrint start + progressprinterisprinterwwwwww

Kur daroma: paleidi pulte arba prie printerio, o progresą lygini abiejuose.Where: you start it in the dashboard or at the printer, and compare the progress in both.

Start (galima Dry run) → LCD ir dashboard rodo progresą, countdown fazės keičiasi, puslapis gyvas viso printo metu.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Ziedas 173 sluoksniai iki galo; fazes keitesi visa spaudini, pultas gyvas; printerio ekrana ir pakilusia plokste patvirtino V.

Start (Dry run is fine) -> the LCD and dashboard show progress, the countdown phase changes, the page stays live for the whole print.

Verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. Ring, 173 layers to the end; phases changed through the whole print, the dashboard stayed live; V confirmed the printer screen and the raised plate.

T-88
Start: joks pranešimas nekabo, būsena pasako patiStart: no message hangs around, the status speaks for itselfwwwwww

Ką daryti. Paleisk spaudinį iš SD sąrašo ir žiūrėk į pranešimų vietą bei būsenos eilutę. Tas pats su Update mygtuku.

Ko tikėtis. Jokio pranešimo ekrano viduryje. Būsena pati pereina Processing files → Homing. žalias: 0.17 (2026-08-22)

Kodėl. Starto pranešimas kartojo tai, ką puslapis ir taip rodė, ir likdavo kaboti (V radinys 2026-08-22).

2026-09-01 (Claude): ZALIA: statusMsg per visa starta liko tuscias, busena pati perejo Processing files -> Homing (651 ms). Tas pats ir stabdymo pabaigoje - pranesimas issivale pats.

What to do. Start a print from the SD list and watch the message area and the status line. Same for the Update button.

What to expect. No message in the middle of the screen. The status moves on its own from Processing files -> Homing. Verified: 0.17 (2026-08-22)

Why. The start message repeated what the page already showed, and it used to stay hanging (V finding 2026-08-22).

2026-09-01 (Claude): VERIFIED: statusMsg stayed empty through the whole start, the status moved on its own from Processing files -> Homing (651 ms). Same at the end of stopping - the message cleared itself.

T-56
Start: mažas modelis - pranešimas nemirksiStart: small model - the message does not flickerwwwwww

Ką daryti. SD sąraše pasirink mažą modelį (keli šimtai sluoksnių). Paspausk Start ir patvirtink. Žiūrėk į pranešimą ekrano viduryje ir skaičiuok mintyse.

Ko tikėtis. Arba pranešimo nėra visai, arba jis pasirodo ir išsilaiko apie 3 sekundes. Neturi būti „šmėkštelėjo ir dingo". Tekstas - Processing files. Please wait...

Kodėl. Pranešimas atidedamas sekundei (kad nemirktų), bet pasirodęs privalo išbūti tiek, kad spėtum perskaityti - iki 08-18 jis dingdavo tą pačią akimirką, kai baigdavosi darbas.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Pranesimo nebuvo VISAI (statusMsg tuscias), o tai eilute leidzia: Processing files -> Homing uztruko 651 ms, tad atidejimas sekundei ji ir nuslopino.

What to do. Pick a small model from the SD list (a few hundred layers). Press Start and confirm. Watch the message in the middle of the screen and count in your head.

What to expect. Either there is no message at all, or it appears and stays for about 3 seconds. It must not "flash and vanish". Text - Processing files. Please wait...

Why. The message is delayed by a second (so it does not flicker), but once shown it must stay long enough to read - until 08-18 it used to vanish the very moment the job finished.

Verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. There was NO message at all (statusMsg empty), and the status line allows this: Processing files -> Homing took 651 ms, so the one-second delay suppressed it.

T-57
Start: didelis modelis - tie patys žodžiai kaip printerio ekraneStart: large model - the same words as on the printer screenwwwwwwprinterisprinter

Kur daroma: Start spaudi pulte, o žodžius lygini su printerio ekranu.Where: you press Start in the dashboard, and compare the words with the printer screen.

Ką daryti. Pasirink didelį modelį (~800+ sluoksnių). Paspausk Start ir iškart pažiūrėk į printerio ekraną, paskui į pultą.

Ko tikėtis. Abu sako tą patį: printerio ekrane „Processing files / Please wait...", pulte - „Processing files. Please wait...". Būsenos eilutė pulte irgi ta pati.

Kodėl. Skirtingi pavadinimai tam pačiam laukimui vertė spėlioti, ar tai vienas darbas, ar du.

zalias: 0.17.0 (2026-09-02) - Claude + V, build Sep 1 21:42:17. `Bibio`, 897 sluoksniai. Paleidus IS PULTO printerio ekrane (V mate) ir pulte vienu metu - „Processing files“; pulte jis stovejo 12 s, tada homing. Zodziai sutampa.

What to do. Pick a large model (~800+ layers). Press Start and look at the printer screen right away, then at the dashboard.

What to expect. Both say the same thing: on the printer screen "Processing files / Please wait...", on the dashboard - "Processing files. Please wait...". The status line on the dashboard is also the same.

Why. Different names for the same wait made you guess whether it was one job or two.

Verified: 0.17.0 (2026-09-02) - Claude + V, build Sep 1 21:42:17. `Bibio`, 897 layers. Started FROM THE DASHBOARD, on the printer screen (V watched) and on the dashboard at the same time - "Processing files"; on the dashboard it stayed for 12 s, then homing. The words match.

T-74
Būsenos eilutė: sekundės tik ten, kur jos sprendžiaStatus line: seconds only where they matterwwwwww

Ką daryti. Stebėk būsenos eilutę per kelis sluoksnius. Paskui sustabdyk arba pauzuok ir vėl pažiūrėk.

Ko tikėtis. Sekundės rodomos tik ties Curing ir Finished. Ties Lifting, Dropping, Pausing, Resuming, Canceling - tik pavadinimas.

Kodėl. Pakėlimo ir leidimosi sekundės kartojasi šimtus kartų ir iš jų niekas nieko nesprendžia; o laukimų skaičių jau rodo pranešimas.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Sekundes TIK ties Curing ir Finished; Lifting, Dropping, Pausing, Resuming - be ju. Pastaba: viename cikle Curing 0,36 s pastovejo be skaiciaus pries pereidamas i Lifting.

What to do. Watch the status line through several layers. Then stop or pause and look again.

What to expect. Seconds are shown only at Curing and Finished. At Lifting, Dropping, Pausing, Resuming, Canceling - only the name.

Why. Lift and drop seconds repeat hundreds of times and nobody decides anything from them; and the wait message already shows the count.

Verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. Seconds ONLY at Curing and Finished; Lifting, Dropping, Pausing, Resuming - without them. Note: in one cycle, Curing stayed at 0.36 s with no number before moving to Lifting.

T-75
Vienas pranešimas - ir tas pats abiejuose įrenginiuoseOne message - and the same one on both deviceswwwwwwtelefonasphone

Kur daroma: pultą atidarai kompiuteryje ir telefone, o spaudi tik vienoje vietoje.Where: you open the dashboard on a computer and a phone, and press in one place only.

Ką daryti. Atidaryk pultą kompiuteryje ir telefone. Vienoje vietoje paspausk Pause arba Stop. Žiūrėk į abu ekranus.

Ko tikėtis. Abu rodo tą patį pranešimą su tuo pačiu skaičiumi. Ekrane vienu metu - tik vienas pranešimas, jis nemirksi ir nešokinėja.

Kodėl. Pranešimai apie printerį eina iš būsenos, tad juos mato ir tas, kuris nespaudė.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Trys ziurovai vienu metu: kompiuteris, V telefonas (V patvirtino) ir trecias langas, kuriame niekas nespaude - visi tas pats sakinys, skaiciai per 3 s (fone paliktam langui narsykle retina laikmacius).

What to do. Open the dashboard on a computer and on a phone. In one place press Pause or Stop. Watch both screens.

What to expect. Both show the same message with the same number. On screen at any moment - only one message, it does not flicker or jump.

Why. Messages about the printer come from the status, so they are also seen by whoever did not press anything.

Verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. Three viewers at once: a computer, V's phone (V confirmed it) and a third window where nobody pressed anything - all the same sentence, numbers within 3 s (the browser throttles timers for a window left in the background).

T-119
Kai spaudini paleidžia kitas, antras įrenginys nemeluojaWhen someone else starts the print, the second device does not liewwwwwwtelefonasphone

Kur daroma: pultą atidarai dviejuose įrenginiuose, o spaudinį paleidi tik viename iš jų.Where: you open the dashboard on two devices, and start the print on only one of them.

Ka daryti. Atidaryk pulta DVIEJUOSE irenginiuose (pvz. kompiuteryje ir telefone). Viename ju paleisk dideli modeli (~800+ sluoksniu). Ziurek i antraji - i ta, kuriame nespaudei.

Ko tiketis. Antrasis rodo ta pati, ka ir pirmasis: „Processing files“. Jokio „Printer not answering“ - printeris sveikas, jis tik ruosia failus.

Kilme: Claude radinys 2026-09-02, darant T-57. Paleidus `Bibio` (897 sluoksniai) ne is to lango, kuriame ziurima, tas langas 8-12 s rode „Printer not answering - an upload, share or other background job is prepared“. Priezastis: ruosdamas dideli modeli printeris kelias sekundes neatsakineja, o langas, kuris pats starto nesiunte, tos tylos paaiskinti negali. Priestarauja T-75 (abu irenginiai turi rodyti ta pati).
Del ko NETAISOMA is karto (V klausimas 09-02: „nesugadinsim taisydami?“): tas sakinys egzistuoja tam, kad pasakytu apie TIKRA nepasiekiamuma - o ju ta pati vakara buvo keturi. Padarius ji lėtesni ar tylesni, nustotume matyti tikrus dingimus. Taisymas turi buti siauras: nutildyti TIK kai paskutine zinoma busena buvo „ruosiami failai“ ir TIK kelioms sekundems; ilgesne tyla vis tiek turi rekti. Palikta, kol neaisku, del ko printeris iskrenta is tinklo. Susije: T-75, T-57.

UŽDARYTA V sprendimu 2026-09-12 („uždarytas tas 119, basta“): netaisom - pranešimas lieka toks, koks yra. Priežastis ta pati, kuri buvo užrašyta nuo pradžių: tildant jį nustotume matyti tikrus dingimus iš tinklo, o tie yra brangesni už kelias sekundes netikslaus sakinio. Eilutė lieka registre kaip elgesio aprašymas, ne kaip laukianti pataisa.

What to do. Open the dashboard on TWO devices (e.g. a computer and a phone). On one of them, start a large model (~800+ layers). Watch the second one - the one where you did not press anything.

What to expect. The second one shows the same thing as the first: "Processing files". No "Printer not answering" - the printer is fine, it is just preparing the files.

Origin: a Claude finding 2026-09-02, while doing T-57. After starting `Bibio` (897 layers) from a different window than the one being watched, that window showed, for 8-12 s, "Printer not answering - an upload, share or other background job is prepared". Cause: while preparing a large model the printer does not respond for a few seconds, and a window that did not send the start itself cannot explain that silence. This contradicts T-75 (both devices should show the same thing).
Why this is NOT fixed right away (V's question 09-02: "will we break something by fixing it?"): that sentence exists to report a REAL unreachability - and there were four of those that same evening. Making it slower or quieter would mean we stop seeing real dropouts. A fix must be narrow: silence it ONLY when the last known state was "preparing files" and ONLY for a few seconds; a longer silence must still shout. Left as is until it is clear why the printer drops off the network. Related: T-75, T-57.

CLOSED by V's decision 2026-09-12 ("that 119 is closed, enough"): not fixing it - the message stays as it is. The reason is the same one written down from the start: silencing it would mean we stop seeing real dropouts from the network, and those are worth more than a few seconds of an inaccurate sentence. The line stays in the register as a description of behavior, not as a pending fix.

T-59
Spaudiniui pasibaigus pultas atsirakina patsThe dashboard unlocks itself once the print finisheswwwwww

Ką daryti. Paleisk trumpą spaudinį (dry run tinka) ir leisk jam pasibaigti. Pasibaigus neperkraunėk puslapio. Pabandyk paspausti bet kurį mygtuką.

Ko tikėtis. Mygtukai veikia iš karto, pranešimų ekrane nėra. Kol plokštė kyla, būsena rodo Finished · Ns su mažėjančiu skaičiumi.

Kodėl. Iki 08-18 čia buvo gedimas: pultas likdavo užrakintas iki puslapio perkrovimo, o „Processing files" kabodavo ekrane.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Curing 1s -> Lifting -> Finished 22s->0s per 24 s -> Idle pats, be perkrovimo. Settings atsidare per 16 ms, jokio pranesimo ekrane.

What to do. Start a short print (dry run works) and let it finish. After it finishes, do not reload the page. Try pressing any button.

What to expect. The buttons work right away, there is no message on the screen. While the plate rises, the status shows Finished · Ns with a decreasing number.

Why. Until 08-18 there was a bug here: the dashboard used to stay locked until the page was reloaded, and "Processing files" hung on the screen.

Verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. Curing 1s -> Lifting -> Finished 22s->0s over 24 s -> Idle on its own, without a reload. Settings opened within 16 ms, no message on screen.

T-16
Progreso ekranai be mirgėjimoProgress screens without flickerprinterisprinterwwwwww

Kur daroma: veiksmus paleidi pulte, o mirgėjimą tikrini printerio ekrane.Where: you start the actions in the dashboard, and check for flicker on the printer screen.

Unpacking / web OTA / upload / boot-anim download → juosta tik AUGA, tekstas nemirksi, jokių oranžinių dryžių ant LCD.

Kilmė: unpacking flicker + SPI streaks radiniai → 6d7c874/832e147, 0.15.5.

Unpacking / web OTA / upload / boot-anim download -> the bar only GROWS, the text does not flicker, no orange streaks on the LCD.

Origin: unpacking flicker + SPI streaks findings -> 6d7c874/832e147, 0.15.5.

T-8
Reload vidury printoReload in the middle of a printwwwwww

Perkrauti puslapį spausdinant → matosi aktyvus printas (progresas, countdown), ne idle kortelė; puslapis užsikrauna per protingą laiką.

Kilmė: feedback #5 (iPhone) → mid-print HTTP servisas 0.15.1–0.15.3.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Perkrovimas ties 10/173: puslapis uzsikrove per 162 ms ir iskart rode aktyvu spaudini (Layer 10/173, liko 46m, valdikliai matomi).

Reload the page while printing -> the active print is visible (progress, countdown), not an idle card; the page loads in a reasonable time.

Origin: feedback #5 (iPhone) -> mid-print HTTP service 0.15.1-0.15.3.

Verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. Reload at 10/173: the page loaded in 162 ms and immediately showed the active print (Layer 10/173, 46m left, controls visible).

T-10
Boot anims tab spausdinantBoot animations tab while printingwwwwww

Atidaryti Settings → Boot animations vidury printo → užrakto žinutė (ne amžinas „Loading animations..."); printui pasibaigus sąrašas užsikrauna PATS. žalias: 0.15.6-kand. c1d323e (07-20)

Kilmė: vartotojo radinys 07-17 → fix 0.15.6 kandidatas (dar nebuildinta).

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Abi puses: spausdinant - uzrakto sakinys, pasibaigus sarasas uzsikrove PATS (4 animacijos), be perkrovimo.

Open Settings -> Boot animations in the middle of a print -> a lock message (not an endless "Loading animations..."); once the print finishes, the list loads BY ITSELF. Verified: 0.15.6-cand. c1d323e (07-20)

Origin: a user finding 07-17 -> fix 0.15.6 candidate (not yet built).

Verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. Both sides: while printing - the lock sentence, once finished the list loaded BY ITSELF (4 animations), without a reload.

T-27
Pause/Resume neuzsaldo wwwPause/Resume does not freeze the dashboardwwwwww

Dashboard'e Pause (plokste kyla), tada Resume (plokste grizta) -> fazes countdown atsinaujina per visa judesi, dashboard'as neuzsala tas sekundes.

Kilme: V lauko radinys (07-22) - lift/travel 160ms langas nepataikydavo i 2s poll'a -> www uzsalimas. Fix: fazes countdown + HTTP kas 200ms judesio cikle (status 'phased' apima state 5/7).

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Pauze: skaicius mazejo kas ~1 s; tesimas: didziausias tarpas tarp atnaujinimu 1,9 s per 26 s judesi; puslapio ciklas 827 kadrai is 820 lauktu - jokio uzsalimo.

On the dashboard, Pause (the plate rises), then Resume (the plate returns) -> the phase countdown keeps updating through the whole move, the dashboard does not freeze during those seconds.

Origin: a V field finding (07-22) - the 160ms lift/travel window used to miss the 2s poll -> the dashboard froze. Fix: phase countdown + HTTP every 200ms during the move cycle (status 'phased' covers state 5/7).

Verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. Pause: the number decreased about every 1 s; resume: the largest gap between updates was 1.9 s over a 26 s move; the page cycle was 827 frames out of 820 expected - no freeze.

T-25
Nuotolinis resume is dashboard'oRemote resume from the dashboardwwwwww

Po power-loss vietoj printerio mygtuku atidaryti dashboard'a -> 'Power was restored' kortele su Resume/Lift/Discard; Resume ten testia printa gyvai, printerio liesti nereikia.

Kilme: 0-33 (exp-5), 0.16.0-beta. /api/resume/accept|lift|discard.

zalias: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17, dry run, Test4min, V istrauke kistuka is sienos. Kortele pulte: „Power was restored - a print was interrupted. Test4min - 1 of 9 layers were finished“ su trimis mygtukais (Resume print / Lift plate only / Discard). Paspausta „Resume print“ PULTE, printerio neliesta - patvirtinimo langelis ispejo del voneles ir plokstes, spaudinys tesesi ir baige 9/9.

After a power loss, instead of the printer buttons, open the dashboard -> a 'Power was restored' card with Resume/Lift/Discard; Resume there continues the print live, no need to touch the printer.

Origin: 0-33 (exp-5), 0.16.0-beta. /api/resume/accept|lift|discard.

Verified: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17, dry run, Test4min, V pulled the plug from the wall. The card on the dashboard: "Power was restored - a print was interrupted. Test4min - 1 of 9 layers were finished" with three buttons (Resume print / Lift plate only / Discard). "Resume print" was pressed ON THE DASHBOARD, the printer was not touched - a confirmation dialog warned about the vat and the plate, the print continued and finished 9/9.

T-35
P-live: gyvas 3D antrame lange (mid-join) + resume atvejisP-live: live 3D in a second window (mid-join) + the resume casewwwwww

Spausdinant (dry run tinka) atidaryti SVIEZIA narsykle / incognito BE Perziuros -> rodo „Print progress 3D" su auganciu voxel render'iu (ne statiska nuotrauka + „Printing NN%"). Auga gyvai kylant spaudiniui. Antra dalis (M1 sargas): po power-loss RESUME atidaryti sviezia langa -> gyvas 3D VIS TIEK auga (virsus), sampler'is neuzstringa nuo resumeLayer starto. Stebeti heap (freeHeap sveikas su ~13.8 KB liveBuf).

Kilme: P-live (0.17 Sprintas B, #P-live) - gyvas 3D visuose languose per /api/live/slices (64x48 1-bit siluetu RAM stack). Resume-stall (M1/M2) = firmware-auditor radinys, fix'inta pries merge (PR #79). Zalias: 0.17-dev cc829eb (08-05, ant gelezies - incognito augo, liveN=36, heap min 77KB)

2026-09-01 (Claude): Pirma dalis ZALIA: sviezias langas, kuris perziuros neatidare, auga gyvai - tarp 21 ir 24 sluoksnio 377 vaiduoklio taskai virto kietais, juosta 12% -> 14%. Antra dalis (po power-loss resume) NEDARYTA - laukia bloko 2E.

zalias: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17, dry run, Test4min, V istrauke kistuka is sienos. ANTRA dalis (pirma buvo zalia dar 08-31): po power-loss tesimo sviezias langas, kuris to modelio perziuros niekada neatidare, PATS susistate gyva vaizda - drobeje buvo 1 spalva (tuscia deze), po tesimo 35 spalvos ir 8969 taskai, antraste „Printing 100% · Test4min“. Sampler'is nuo resumeLayer neuzstrigo, heap sveikas (~166 KB).

While printing (dry run works), open a FRESH browser / incognito WITHOUT the preview -> it shows "Print progress 3D" with a growing voxel render (not a static photo + "Printing NN%"). It grows live as the print rises. Second part (M1 guard): after a power-loss RESUME, open a fresh window -> the live 3D still grows (from the top), the sampler does not stall starting from resumeLayer. Watch the heap (freeHeap stays healthy with ~13.8 KB liveBuf).

Origin: P-live (0.17 Sprint B, #P-live) - live 3D in every window via /api/live/slices (64x48 1-bit silhouettes, RAM stack). Resume-stall (M1/M2) = a firmware-auditor finding, fixed before the merge (PR #79). Verified: 0.17-dev cc829eb (08-05, on hardware - incognito grew, liveN=36, heap min 77KB)

2026-09-01 (Claude): First part VERIFIED: a fresh window that never opened the preview grows live - between layer 21 and 24, 377 ghost points turned solid, the bar 12% -> 14%. Second part (resume after power loss) NOT DONE - waiting for block 2E.

Verified: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17, dry run, Test4min, V pulled the plug from the wall. SECOND part (the first was verified back on 08-31): after a power-loss resume, a fresh window that never opened that model's preview BUILT the live view BY ITSELF - the canvas had 1 color (empty box), after the resume 35 colors and 8969 points, the header "Printing 100% · Test4min". The sampler did not stall starting from resumeLayer, the heap stayed healthy (~166 KB).

T-114
Nustatymu issaugojimas nenusineša dry run wwwSaving settings does not wipe out dry run www

Ka daryti. Ijunk Dry run (Dashboard, mygtukas sale „VAT refilled"). Nueik i Settings, pakeisk bet kuri nustatyma (ar net nieko nekeisk) ir paspausk Save config. Grizk i Dashboard.

Ko tiketis. Dry run lieka ijungtas: mygtukas sako „Dry run: on", virsuje stovi juosta „Dry run mode enabled". Kitas paleidimas turi buti sausas.

Kilme: Claude radinys 2026-09-01. Ismatuota du kartus is eiles: po „Save config" dryRun nukrenta i false, nors jungiklio niekas nelete. Priezastis Network.ino:1753 uvLedEnabled = !formCheck("dry_run", !uvLedEnabled): pultas siuncia PILNA forma, o dry run jungiklis toje formoje negyvena (jis atskiras mygtukas), tad formCheck nesant laukelio grazina false = „naudotojas isjunge". Pavojus tikras: zmogus pasiruosia sausa bandyma, pakeicia WiFi nustatyma - ir kitas paleidimas jau su degancia UV lempa.

PATAISYTA 2026-09-01 (commit 3e71888, ant gelezies build Sep 1 21:42:17). Priezastis: `formCheck` pilnoje formoje nesant laukelio grazindavo „isjungta“, o pultas dry run jungia atskiru endpoint'u ir i forma jo nededa. Dabar reiksme keiciama TIK jei laukelis atsiustas. Patikrinta: suskaiciuota pati `POST /api/config` uzklausa, po jos `dryRun` liko `true`; kiti jungikliai nepajudejo.

What to do. Turn on Dry run (Dashboard, the button next to "VAT refilled"). Go to Settings, change any setting (or change nothing at all) and press Save config. Go back to Dashboard.

What to expect. Dry run stays on: the button says "Dry run: on", a banner at the top says "Dry run mode enabled". The next print must be dry.

Origin: a Claude finding 2026-09-01. Measured twice in a row: after "Save config" dryRun drops to false, even though nobody touched the switch. Cause Network.ino:1753 uvLedEnabled = !formCheck("dry_run", !uvLedEnabled): the dashboard sends the FULL form, and the dry run switch does not live in that form (it is a separate button), so formCheck, finding no field, returns false = "the user turned it off". The danger is real: someone sets up a dry test, changes a WiFi setting - and the next print already runs with the UV lamp lit.

FIXED 2026-09-01 (commit 3e71888, on hardware, build Sep 1 21:42:17). Cause: `formCheck`, when a field was missing from the full form, used to return "off", and the dashboard toggles dry run via a separate endpoint and does not put it in the form. Now the value changes ONLY if the field was actually sent. Verified: the exact `POST /api/config` request was captured, after it `dryRun` stayed `true`; the other switches did not move.

T-115
Sausas ratas nenurašo dervos wwwA dry cycle does not deduct resin www

Ka daryti. Uzsirasyk „Resin left (est.)" skaiciu. Ijunk dry run, paleisk trumpa modeli ir leisk jam pasibaigti. Pasiziurek skaiciu vel.

Ko tiketis. Skaicius nepasikeite: sausame rate niekas nesukieteja, tad ir nurasyti nera ko.

Kilme: Claude radinys 2026-09-01. Pilnas sausas 9 sluoksniu ratas nurase 0,5 ml (9,8 -> 9,3), t.y. visa modelio iverti. Per dienos testus V skaitiklis nukrito 14,5 -> 8,9 ml, nors VAT visa laika buvo tuscias. Priezastis TinyMaker.ino:2688: vatRemainingMl -= (resinUsedMl - resinSampledMl) daroma kiekvienam sluoksniui be dry run salygos (UV skaitiklis tokia apsauga turi). Ne tik kosmetika: ties 2 ml isijungia „mazai dervos" stabdymas, tad daug testuojantis zmogus gautu netikra ispejima ir sustabdyta spaudini.

PATAISYTA 2026-09-01 (commit 3e71888, ant gelezies build Sep 1 21:42:17). Nurasymui uzdeta `if (uvLedEnabled)`. Patikrinta abiem pusem: pilnas 9 sluoksniu SAUSAS ratas - derva liko lygiai 7,5 ml (pries pataisa toks pat ratas nurasydavo 0,5 ml); TIKRAS 9 sluoksniu spaudinys - derva 7,5 -> 7,1 ml, UV +137 s, t.y. apskaita nepaliesta.

What to do. Write down the "Resin left (est.)" number. Turn on dry run, start a short model and let it finish. Check the number again.

What to expect. The number has not changed: nothing cures in a dry cycle, so there is nothing to deduct.

Origin: a Claude finding 2026-09-01. A full dry 9-layer cycle deducted 0.5 ml (9.8 -> 9.3), i.e. the whole model estimate. Over a day of tests V's counter dropped 14.5 -> 8.9 ml, even though the vat was empty the whole time. Cause TinyMaker.ino:2688: vatRemainingMl -= (resinUsedMl - resinSampledMl) runs for every layer with no dry-run check (the UV counter has that guard). Not just cosmetic: at 2 ml the "low resin" stop kicks in, so someone doing a lot of testing would get a false warning and a stopped print.

FIXED 2026-09-01 (commit 3e71888, on hardware, build Sep 1 21:42:17). The deduction is now wrapped in `if (uvLedEnabled)`. Verified both ways: a full dry 9-layer cycle - the resin stayed at exactly 7.5 ml (before the fix the same cycle used to deduct 0.5 ml); a REAL 9-layer print - resin 7.5 -> 7.1 ml, UV +137 s, i.e. the accounting was untouched.

T-137
Spausdinant slicerio ir SD kortelės suskleistos, pilkos, neoranžinėsWhile printing, the slicer and SD cards are collapsed, gray, not orangewwwwwwprinterisprinter

Ką daryti. Įjunk Dry run ir paleisk mažą modelį. Kompiuteryje pažiūrėk į dešinį stulpelį, užvesk pelę ant „STL slicer“, „SD manager“ ir peržiūros antraštės „Printing …“. Atsidaryk pultą telefone. Paspausk Pause → OK, palauk „Paused“, Resume → OK. Leisk spaudiniui baigtis.

Ko tikėtis. Spausdinant abi kortelės - tik pilkos antraštės su ▶, be turinio, ir telefone (nėra „Locked while printing“ ir Upload). Užvedus pelę niekas nenusidažo oranžine, žymeklis paprastas; „Printing …“ ne nuoroda. Per pauzę kortelės lieka suskleistos. Po spaudinio SD atsidaro su sąrašu, rodyklė ▼, užvedus pelę antraštė vėl oranžinė.

Kilmė: V 2026-09-20/21 - spausdinant SD sąrašas vis tiek užrakintas, o slicerio kortelė tempėsi kartu su SD; telefone SD nesusiskleisdavo, užrakinta antraštė būdavo oranžinė. PR #207, išleista 0.17.9.

Žalias: `ba00a47` printeryje 2026-09-22 - Claude (dry run `test-mazas`, Chrome + 375 px, pauzė, pabaiga).

What to do. Turn on Dry run and start a small model. On the computer, look at the right column, hover the mouse over "STL slicer", "SD manager" and the preview header "Printing …". Open the dashboard on the phone. Press Pause → OK, wait for "Paused", Resume → OK. Let the print finish.

What to expect. While printing, both cards - just gray headers with ▶, no content, and on the phone too (no "Locked while printing" and no Upload). Hovering the mouse does not turn anything orange, the cursor is plain; "Printing …" is not a link. During the pause the cards stay collapsed. After the print, SD opens with a list, arrow ▼, hovering the mouse turns the header orange again.

Origin: V 2026-09-20/21 - while printing, the SD list was still locked, and the slicer card was dragged along with SD; on the phone SD would not collapse, the locked header was orange. PR #207, released in 0.17.9.

Verified: `ba00a47` on the printer 2026-09-22 - Claude (dry run `test-mazas`, Chrome + 375 px, pause, finish).

2C · Dry run: stop matrica2C · Dry run: stop matrix

10
~30 min · Tas pats dry run, stabdoma skirtingose fazėse. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~30 min · The same dry run, stopped in different phases. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
S-6
StopStopwwwwwwprinterisprinter

Kur daroma: Stop spaudi pulte, o plokštę ir UV tikrini prie printerio.Where: you press Stop in the dashboard, and check the plate and the UV at the printer.

Stop iš dashboard vidury printo → „Canceling · Ns" countdown → platforma pakyla → Idle; UV užgesęs.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Countdown, plokste kyla, po to Idle. UV skaitiklis nejudejo (7248 s) - bet tai sausas ratas, tad UV puse dar netikrinta su derva.

Stop from the dashboard mid-print → "Canceling · Ns" countdown → the platform rises → Idle; UV off.

verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. Countdown, the plate rises, then Idle. The UV counter did not move (7248 s) - but this is a dry run, so the UV side is not yet verified with resin.

T-60
Stop per ekspozicija: trumpas pirmas etapas, be tylosStop during exposure: short first stage, no silencewwwwww

Ka daryti. Palauk, kol prasides sluoksnio ekspozicija (busena „Curing“). Paspausk Stop ir patvirtink. Ziurek i pranesima nuo pat paspaudimo; jei turi antra irengini - laikyk pulta atidaryta ir jame.

Ko tiketis. Keturi dalykai:

1) Pirmas sakinys „Stopping the current operation“ pasirodo per sekunde ir nekabo ilgiau nei ~6 s.
2) Per ta laika pultas nerodo „Printer not answering“, o antras irenginys rodo ta pati.
3) Sakinys persiraso vietoje i „Stopping · lifting the platform“ su sekundemis - antras pranesimas neatsiranda ir pirmasis nesokineja i kita vieta.
4) Plokste pakyla, pabaigoje Idle, valdikliai atsirakina.

Kodel butent taip. Pirmas etapas privalo egzistuoti: nutraukus ekspozicija sluoksnis yra ka tik sukietejes ir prilipes prie voneles pleveles, tad printeris dar atlieka svelnu atplesimo pakelima (~4,6 s) ir tik tada kelia plokste i virsu. Tai tikras darbas, ne strigimas.

Pirmine sios eilutes redakcija to nezinojo ir reikalavo, kad pirmo etapo nebutu is viso („ekspozicija nutruksta ta pacia akimirka, tad laukti nera ko“). Del to ji krito 2026-09-01 net tada, kai viskas veike teisingai. Perrasyta V leidus.

Ka si eilute serge is tikruju: iki 2026-09-01 tas etapas truko ~9 s ir per ji printeris neatsakinejo net i busenos uzklausas (nutraukimo pranesimas i telefona atidarydavo sifruota rysi ir blokuodavo visa loop()), tad antrame irenginyje issokdavo „Printer not answering“. Pataisyta commit 3e71888: pranesimas perkeltas uz plokstes pakelimo, o etapas gavo tikra iverti. Jei kas nors vel idetu blokuojanti darba i nutraukimo kelia, si eilute krenta. zalias: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17: pirmas etapas 6,7 s, tarpas be atsakymu 4,6 s (buvo 7,8 s), sakinys persirase vietoje. Susije: T-116, T-117.

What to do. Wait until the layer exposure starts (status "Curing"). Press Stop and confirm. Watch the message from the moment you press it; if you have a second device - keep the dashboard open on it too.

What to expect. Four things:

1) The first sentence "Stopping the current operation" appears within a second and does not hang for more than ~6 s.
2) During that time the dashboard does not show "Printer not answering", and the second device shows the same.
3) The sentence rewrites itself in place to "Stopping · lifting the platform" with seconds - no second message appears and the first one does not jump to another spot.
4) The platform rises, at the end Idle, the controls unlock.

Why exactly like this. The first stage must exist: when exposure is interrupted, the layer has just cured and is stuck to the vat film, so the printer still performs a gentle peel-off lift (~4.6 s) and only then raises the platform to the top. This is real work, not a hang.

The first version of this row did not know that and required that the first stage not exist at all ("exposure stops at that same instant, so there is nothing to wait for"). Because of that it failed on 2026-09-01 even when everything worked correctly. Rewritten with V's permission.

What this row was actually guarding against: until 2026-09-01 that stage took ~9 s, and during it the printer did not even respond to status requests (the cancellation notification to the phone opened an encrypted connection and blocked the whole loop()), so the second device would show "Printer not answering". Fixed in commit 3e71888: the notification was moved after the platform lift, and the stage got a real estimate. If anyone puts blocking work back into the cancellation path, this row fails. verified: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17: first stage 6.7 s, gap with no response 4.6 s (was 7.8 s), the sentence rewrote itself in place. Related: T-116, T-117.

T-61
Stop per judesį: du etapai, viena žinutėStop during movement: two stages, one messagewwwwww

Ką daryti. Stebėk būseną ir pagauk momentą, kai plokštė juda. Paspausk Stop. Žiūrėk į tą patį pranešimą bent 10 sekundžių - nenuleisk akių.

Ko tikėtis. Iš pradžių Stopping the current operation (skaičius tik jei ten liko >5 s), paskui ta pati žinutė persirašo į Stopping · lifting the platform su sekundėmis. Žinutė nepašoka į kitą vietą ir neišnyra iš naujo.

Kodėl. Tai vienas laukimas su dviem etapais; du atskiri pranešimai skaitosi kaip du darbai.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Stabdant per judesi pranesimas persirase toje pacioje vietoje i 'Stopping - lifting the platform'; nepasoko ir antras neatsirado.

What to do. Watch the status and catch the moment the platform is moving. Press Stop. Watch the same message for at least 10 seconds - don't look away.

What to expect. At first Stopping the current operation (a number only if more than 5 s remain), then the same message rewrites itself to Stopping · lifting the platform with seconds. The message does not jump to another spot and does not reappear from scratch.

Why. This is one wait with two stages; two separate messages would read as two jobs.

verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. When stopping during movement, the message rewrote itself in the same spot to 'Stopping - lifting the platform'; it did not jump and no second one appeared.

T-62
Stop per homing: vienas sakinys apie plokštęStop during homing: one sentence about the platformwwwwww

Ką daryti. Paleisk spaudinį. Kol būsena rodo Homing, paspausk Stop. Žiūrėk į pranešimą nuo pat paspaudimo.

Ko tikėtis. Vienas sakinys: Stopping · returning the platform su sekundėmis. Plokštė iš tikrųjų grįžta į viršų per maždaug tiek, kiek žadėta.

Kodėl. Nutraukus homing galutinio kėlimo nėra - plokštė tik grįžta atgal, tad ir sakinys turi būti vienas.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Vienas sakinys 'Stopping - returning the platform' 19->0 s, visas stabdymas 23 s (zadeta 19). Jokio pirmo etapo.

What to do. Start a print. While the status shows Homing, press Stop. Watch the message from the moment you press it.

What to expect. One sentence: Stopping · returning the platform with seconds. The platform actually returns to the top in roughly the promised time.

Why. When homing is interrupted there is no final lift - the platform just returns back, so there should be only one sentence.

verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. One sentence 'Stopping - returning the platform' 19->0 s, total stop 23 s (promised 19). No first stage.

T-63
Stop iš pauzėsStop from pausewwwwww

Ką daryti. Paleisk spaudinį, paspausk Pause ir palauk, kol būsena taps „Paused". Tada paspausk Stop.

Ko tikėtis. Iš karto Stopping · lifting the platform su sekundėmis - be pirmo etapo, nes niekas nejuda. Pabaigoje būsena Idle, mygtukai atsirakina.

Kodėl. Tai atskira vieta firmware kode (stabdymas pauzės cikle), tad ir tikrinama atskirai.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Is pauzes - iskart 'Stopping - lifting the platform ~22 s', be ivado; pabaigoje Idle, valdikliai atsirakino.

What to do. Start a print, press Pause and wait until the status becomes "Paused". Then press Stop.

What to expect. Immediately Stopping · lifting the platform with seconds - no first stage, because nothing is moving. At the end status Idle, the buttons unlock.

Why. This is a separate spot in the firmware code (stopping in the pause loop), so it is tested separately.

verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. From pause - immediately 'Stopping - lifting the platform ~22 s', no lead-in; at the end Idle, controls unlocked.

T-64
Stop paspaudus du kartus: skaitliukas neatsuka atgalStop pressed twice: the counter does not rewindwwwwww

Ką daryti. Sustabdyk spaudinį. Kai pamatysi skaičių, paspausk Stop dar kartą (jei mygtukas dar aktyvus). Stebėk skaičių.

Ko tikėtis. Skaičius tęsia mažėjimą. Neturi šoktelėti atgal į pradinę reikšmę.

Kodėl. Printeris antrą kartą įverčio neperskaičiuoja; atsakyme jis grąžina likutį, o ne visą trukmę.

zalias: 0.17.0 (2026-09-01) - Claude, narsykle per Chrome, build Sep 1 00:02:57 (a5587d9), dry run ant gelezies. Antro paspaudimo neimanoma: stopButton stabdymo metu disabled. Skaitliuko atsukti atgal nera kaip.

What to do. Stop the print. When you see the number, press Stop again (if the button is still active). Watch the number.

What to expect. The number keeps decreasing. It must not jump back to the initial value.

Why. The printer does not recalculate the estimate the second time; in its response it returns the remainder, not the full duration.

verified: 0.17.0 (2026-09-01) - Claude, browser via Chrome, build Sep 1 00:02:57 (a5587d9), dry run on hardware. A second press is not possible: stopButton is disabled while stopping. There is no way to rewind the counter.

T-116
Po Stop printeris neapmirsta astuonioms sekundemsAfter Stop the printer does not go silent for eight secondswwwwwwprinterisprinter

Kur daroma: Stop spaudi pulte, o tylos tarpą matai ir pulte, ir printerio ekrane.Where: you press Stop in the dashboard, and see the quiet gap both in the dashboard and on the printer screen.

Ka daryti. Spausdinant paspausk Stop ir ziurek i pranesima. Jei turi antra irengini - laikyk pulta atidaryta ir jame.

Ko tiketis. Nuo paspaudimo iki „Stopping - lifting the platform" su sekundemis praeina maziau nei ~2 s, ir per ta laika pultas neparodo „Printer not answering".

Kilme: Claude radinys 2026-09-01, septyni ratai. Printeris po Stop ~8-9 s sedi etape stopTail, kuri pats ivertina nuliu, ir tuo metu neatsakineja i busenos uzklausas (naršykles pačios uzfiksuotas tarpas be atsakymo - 7,8 s). Pultas nekaltas: sakini perraso praejus 30 ms nuo tos akimirkos, kai gauna nauja faze. Dalis kaltes - blokuojantis Telegram pranesimas (TinyMaker.ino:2996 -> tgNotifyCanceled() -> WiFiClientSecure): isjungus pranesimus etapas sutrumpejo iki 7,4 s, o tarpas be atsakymo - iki 2,8-4,3 s (du ratai). Likusiu ~7 s saltinis DAR NEIVARDYTAS. Susije: T-60.

PATAISYTA 2026-09-01 (commit 3e71888, ant gelezies build Sep 1 21:42:17). Dvi priezastys, abi pasalintos. (1) Nutraukimo pranesimas i telefona blokuodavo `loop()` kelias sekundes - perkeltas uz plokstes pakelimo, ten pat, kur „Finished“. (2) Pirmam etapui buvo zadamas nulis, nes matuota is variklio, o jis nutraukus ekspozicija stovi - dabar imamas praeito pakelimo laikas (arba puse lenteles ciklo pirmam spaudiniui po ijungimo), ir TIK kai stabdoma is ekspozicijos. Ismatuota po liejimo: tarpas be atsakymu 7,8 s -> 4,6 s, printeris atsakineja visa laika, stabdymo atsakymas grazina 4531 ms vietoj 0, nutraukimo pranesimas isejo praejus 32,3 s (jau pakelus plokste, `notifyLastOk true`). Skaiciaus ekrane vis tiek nera: 4,6 s < 5 s riba (`WAIT_BAR_MIN_MS`), V 08-18 sprendimas - V 09-01 patvirtino palikti.

What to do. While printing, press Stop and watch the message. If you have a second device - keep the dashboard open on it too.

What to expect. From the press to "Stopping - lifting the platform" with seconds, less than ~2 s passes, and during that time the dashboard does not show "Printer not answering".

Origin: Claude finding 2026-09-01, seven rounds. After Stop the printer sits ~8-9 s in the stage stopTail, which estimates itself as zero, and during that time it does not respond to status requests (a gap with no response captured by the browser itself - 7.8 s). The dashboard is not at fault: it rewrites the sentence 30 ms after the moment it receives the new phase. Part of the blame is a blocking Telegram notification (TinyMaker.ino:2996 -> tgNotifyCanceled() -> WiFiClientSecure): with notifications turned off the stage shortened to 7.4 s, and the gap with no response - to 2.8-4.3 s (two rounds). The source of the remaining ~7 s is STILL UNIDENTIFIED. Related: T-60.

FIXED 2026-09-01 (commit 3e71888, on hardware build Sep 1 21:42:17). Two causes, both removed. (1) The cancellation notification to the phone used to block `loop()` for several seconds - moved after the platform lift, the same spot as "Finished". (2) The first stage used to promise zero, because it was measured from the motor, and the motor stands still when exposure is interrupted - now it takes the time of the previous lift (or half the plate cycle for the first print after power-on), and ONLY when stopping during exposure. Measured after flashing: gap with no response 7.8 s -> 4.6 s, the printer responds the whole time, the stop response returns 4531 ms instead of 0, the cancellation notification went out after 32.3 s (platform already raised, `notifyLastOk true`). The number is still not on screen: 4.6 s < 5 s threshold (`WAIT_BAR_MIN_MS`), V's decision from 08-18 - V confirmed on 09-01 to leave it.

T-117
Stop po persigalvojusios pauzės elgiasi kaip paprastas StopStop after a canceled pause behaves like a plain Stopwwwwww

Ka daryti. Spausdinant paspausk Pause, o po sekundes, dar tam paciam sluoksniui nesibaigus, apsigalvok ir paspausk Stop. Ziurek i pranesima ir i plokste.

Ko tiketis. Viskas taip pat, kaip stabdant BE pauzes: pauzes sakinys su skaiciumi persiraso vietoje i „Stopping the current operation“, po keliu sekundziu - i „Stopping · lifting the platform“ su sekundemis, plokste pakyla, pabaigoje Idle ir valdikliai atsirakina. Antras pranesimas neatsiranda ir sakinys nesokineja i kita vieta.

Kilme: `firmware-auditor` radinys 2026-09-01 taisant T-116. Jis ispejo, kad stabdant PO pauzes prasymo ivertis nepritaikomas, nes vidine busena „pauzuojam“ ir „kylam apziurai“ yra ta pati (5), tad neatskirsi, ar atplesimo pakelimas dar bus. Ismatuota ta pati vakara: ispejimas pasitvirtino tik is dalies. Stop komandos atsakymas tikrai grazina etaMs: 0, BET printerio busena tuoj pat neseka tikra skaiciu (stopTail 4615 ms) - ji perskelbia UVLED.ino eilute, kurioje faze perduodama tiesiogiai, nes ten ji zinoma is anksto. Todel pultas elgiasi identiskai: pirmas etapas 5,9 s (be pauzes - 6,7 s), tada kelimas su sekundemis. Pirmine sios eilutes redakcija tikejosi skaiciaus pirmame etape - jo NEBUNA niekada, nes 4,6 s < 5 s riba (WAIT_BAR_MIN_MS, V 08-18 sprendimas). Eilute perrasyta pagal tikrove (V leidus, 09-01), kad sergetu nuo tikros regresijos, o ne nuo isgalvotos. zalias: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17, dry run, Test4min. Susije: T-116, T-60.

What to do. While printing, press Pause, and after a second, before that same layer finishes, change your mind and press Stop. Watch the message and the platform.

What to expect. Everything the same as stopping WITHOUT a pause: the pause sentence with a number rewrites itself in place to "Stopping the current operation", after a few seconds - to "Stopping · lifting the platform" with seconds, the platform rises, at the end Idle and the controls unlock. No second message appears and the sentence does not jump to another spot.

Origin: `firmware-auditor` finding 2026-09-01 while fixing T-116. It warned that when stopping AFTER a pause request the estimate is not adjusted, because the internal state "pausing" and "rising for inspection" is the same (5), so you cannot tell whether the peel-off lift is still to come. Measured that same evening: the warning was confirmed only partly. The Stop command's response does return etaMs: 0, BUT the printer's status does not immediately follow the real number (stopTail 4615 ms) - it re-announces the UVLED.ino line, where the phase is passed directly, because it is known in advance there. So the dashboard behaves identically: first stage 5.9 s (without a pause - 6.7 s), then lifting with seconds. The first version of this row expected a number in the first stage - it NEVER happens, because 4.6 s < 5 s threshold (WAIT_BAR_MIN_MS, V's decision from 08-18). The row was rewritten to match reality (with V's permission, 09-01), so it would guard against a real regression, not an imagined one. verified: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17, dry run, Test4min. Related: T-116, T-60.

T-120
Stop, kai plokštė kyla į pauzęStop while the platform is rising into a pausewwwwwwprinterisprinter

Kur daroma: Pause ir Stop spaudi pulte, o pauzės ženklus tikrini printerio ekrane.Where: you press Pause and Stop in the dashboard, and check the pause marks on the printer screen.

Ką daryti. Paleisk spaudinį (dry run užtenka). Ties 2 sluoksniu pulte spausk Pause → OK. Kai plokštė pradeda kilti (printerio juostoje „Pausing..."), pulte spausk Stop → OK.

Ko tikėtis. Pultas rodo „Canceling" ir toks lieka iki pabaigos, o Resume pilkas. Plokštei sustojus viršuje NETURI atsirasti „Paused". Printerio ekrane taip pat „Canceling...", paskui Idle.

Kilmė: V klausimas 2026-09-11 („kodėl po Stop rodo Paused?“). Pauzės kėlimas atsakinėja pultui, tad Stop priimamas judesio metu, bet pakilus plokštei kodas vis tiek parkuodavo pauzę: ~24 s pultas rodė „Paused" su aktyviu Resume, ekranas - pauzės ženklus, o dervos pauzėje dar išeidavo Telegram žinutė. Pataisyta 0.17.1 (3f2c79b): parkuojama tik jei pauzė dar stovi.

Žalias: 0.17.1 (2026-09-12) - Claude pulto įrašu (0,6 s → „Canceling", 24 s be „Paused") ir V akimis ekrane.

What to do. Start a print (dry run is enough). At layer 2 on the dashboard press Pause → OK. When the platform starts rising (printer's status bar shows "Pausing..."), on the dashboard press Stop → OK.

What to expect. The dashboard shows "Canceling" and stays that way until the end, and Resume is gray. When the platform stops at the top, "Paused" must NOT appear. The printer screen also shows "Canceling...", then Idle.

Origin: V's question 2026-09-11 ("why does it show Paused after Stop?"). The pause lift responds to the dashboard, so Stop is accepted during the movement, but once the platform rose the code still parked the pause: for ~24 s the dashboard showed "Paused" with Resume active, the screen showed pause signs, and during the resin pause a Telegram message would still go out. Fixed in 0.17.1 (3f2c79b): it is parked only if the pause is still pending.

Verified: 0.17.1 (2026-09-12) - Claude with a dashboard recording (0.6 s → "Canceling", 24 s without "Paused") and V's own eyes on the screen.

T-121
Stop, kai plokštė leidžiasi po ResumeStop while the platform is descending after Resumewwwwwwprinterisprinter

Kur daroma: Resume ir Stop spaudi pulte, o mygtukus ekrano dešinėje tikrini prie printerio.Where: you press Resume and Stop in the dashboard, and check the buttons on the right of the screen at the printer.

Ką daryti. Tas pats spaudinys: Pause → plokštė pakyla → pulte Resume → OK. Kai plokštė leidžiasi, pulte spausk Stop → OK. Žiūrėk į mygtukus printerio ekrano dešinėje.

Ko tikėtis. Mygtukai lieka pilki iki pabaigos. Raudonas kvadratas ir geltoni brūkšneliai neturi grįžti, nes spaudinys stabdomas.

Kilmė: firmware-auditor radinys 2026-09-11, taisant T-120. Nusileidus plokštei kodas perpiešdavo gyvus mygtukus ant pilkų, kuriuos jau buvo nupiešęs Stop. Pataisyta 0.17.1 (648563b). Pultas ten rodė teisingai, tad yda buvo tik ekrane.

Žalias: 0.17.1 (2026-09-12) - V akimis: „Pilki“.

What to do. Same print: Pause → the platform rises → on the dashboard press Resume → OK. When the platform descends, on the dashboard press Stop → OK. Watch the buttons on the right side of the printer screen.

What to expect. The buttons stay gray until the end. The red square and yellow dashes must not come back, because the print is being stopped.

Origin: firmware-auditor finding 2026-09-11, while fixing T-120. Once the platform descended, the code used to redraw the live buttons over the gray ones that Stop had already drawn. Fixed in 0.17.1 (648563b). The dashboard showed it correctly there, so the bug was only on the screen.

Verified: 0.17.1 (2026-09-12) - V's own eyes: "Gray".

2D · Dry run: pauzės matrica2D · Dry run: pause matrix

7
~25 min · Tas pats dry run, pauzė skirtingose fazėse. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~25 min · The same dry run, paused in different phases. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
T-66
Pauzė per ekspozicijąPause during exposurewwwwww

Ką daryti. Palauk „Curing" ir paspausk Pause. Užsirašyk pažadėtą skaičių. Laikyk laiką, kol būsena taps Paused.

Ko tikėtis. Pausing · finishing the layer su sekundėmis (maždaug 30-40 s prie 0,05 mm). Paskui ta pati žinutė persirašo į Pausing · lifting the platform (~24 s). Realus laikas nuo pažadėto skiriasi ne daugiau kaip ~15 %.

Kodėl. Čia įvertis sudėtinis: likusi ekspozicija + visas pakėlimas + 20 mm kilimas apžiūrai.

zalias: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run ant gelezies (TestasLong). Pauze 264 ms nuo iprasto sluoksnio (11/28) ekspozicijos pradzios: zadeta 36,3 s, realiai 38,3 s (+5,5%, riba +-15%); patenka i laukta 30-40 s ruoza.

What to do. Wait for "Curing" and press Pause. Note down the promised number. Time it until the status becomes Paused.

What to expect. Pausing · finishing the layer with seconds (roughly 30-40 s at 0.05 mm). Then the same message rewrites itself to Pausing · lifting the platform (~24 s). The actual time differs from the promised one by no more than ~15 %.

Why. Here the estimate is composite: remaining exposure + the whole lift + a 20 mm rise for inspection.

verified: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run on hardware (TestasLong). Pause 264 ms after the start of exposure of a normal layer (11/28): promised 36.3 s, actual 38.3 s (+5.5%, threshold +-15%); falls within the expected 30-40 s range.

T-67
Pauzė per pakėlimąPause during the liftwwwwww

Ką daryti. Pagauk momentą, kai plokštė kyla, ir paspausk Pause. Užsirašyk skaičių ir laiką iki „Paused".

Ko tikėtis. Skaičius mažesnis nei pauzuojant per ekspoziciją (maždaug 25-30 s) - nes ekspozicijos laukti nebereikia.

Kodėl. Kita kodo šaka: skaičiuojamas tik likęs judesys plius kilimas.

zalias: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run ant gelezies (TestasLong). Pauze 466 ms nuo pakelimo pradzios (4/28): zadeta 28,1 s, realiai 29,5 s (+5%). Skaicius mazesnis nei ekspozicijos atveju (33-44 s), sluoksnio numeris nepasikeite - kaip ir turi buti pagavus pakelima.

What to do. Catch the moment the platform is rising, and press Pause. Note down the number and the time until "Paused".

What to expect. The number is smaller than when pausing during exposure (roughly 25-30 s) - because there is no more exposure to wait out.

Why. A different code branch: only the remaining movement plus the rise is counted.

verified: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run on hardware (TestasLong). Pause 466 ms after the start of the lift (4/28): promised 28.1 s, actual 29.5 s (+5%). The number is smaller than in the exposure case (33-44 s), the layer number did not change - as it should be when the lift is caught.

T-68
Pauzė per leidimąsi - ilgiausias atvejisPause during the descent - the longest casewwwwww

Ką daryti. Pagauk momentą, kai plokštė leidžiasi, ir paspausk Pause. Užsirašyk skaičių. Stebėk, kiek sluoksnių dar praeis iki sustojimo.

Ko tikėtis. Skaičius didžiausias (~45-70 s), nes prieš pauzę praeina dar visas kitas sluoksnis. Sluoksnio numeris spėja padidėti vienetu. Patikimas ženklas - ne būsenos užrašas, o sluoksnio numeris: pulto būsena vėluoja iki 2 s, o leidimasis trunka ~4 s, tad „Dropping" ekrane dažnai jau būna praėjęs. Jei tikrai pertraukei leidimąsi, printeris sustos ties sluoksniu, kurio numeris vienetu didesnis nei matytas spaudžiant, o skaičius bus ~45 s (ne ~36 s, kaip pertraukus ekspoziciją). Jei numeris tas pats - pataikei į ekspoziciją, ir tai atskiras testas (C1).

Kodėl. Pauzės taškas kode yra po kito sluoksnio ekspozicijos ir pakėlimo - jei skaičius to neįskaičiuotų, jis meluotų per pusę minutės.

zalias: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run ant gelezies (TestasLong). Pauze per leidimasi: zadeta 44,4 s (didziausias is visu atveju), sluoksnio numeris speja pakilti 2 -> 3 - tas pozymis, kuri eilute vadina patikimu. Realiai ~35 s, t.y. greiciau nei zadeta (saugesne puse).

What to do. Catch the moment the platform is descending, and press Pause. Note down the number. Watch how many more layers pass before it stops.

What to expect. The number is the largest (~45-70 s), because before the pause a whole other layer still passes. The layer number manages to increase by one. The reliable sign is not the status text but the layer number: the dashboard's status lags by up to 2 s, and the descent takes ~4 s, so "Dropping" on screen is often already over. If you really interrupted the descent, the printer will stop at a layer number one higher than the one seen when you pressed, and the number will be ~45 s (not ~36 s, as when interrupting exposure). If the number is the same - you hit exposure, and that is a separate test (C1).

Why. The pause point in the code is after the next layer's exposure and lift - if the number did not account for that, it would be off by half a minute.

verified: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run on hardware (TestasLong). Pause during descent: promised 44.4 s (the largest of all cases), the layer number managed to rise 2 -> 3 - the sign this row calls reliable. Actual ~35 s, i.e. faster than promised (the safe side).

T-69
Pauzė baziniame sluoksnyjePause on a base layerwwwwww

Ką daryti. Paleisk spaudinį ir palauk pirmo sluoksnio „Curing". Paspausk Pause ir užsirašyk skaičių.

Ko tikėtis. Skaičius pastebimai didesnis nei įprastame sluoksnyje (bazinė ekspozicija ilgesnė), ir realus laikas jį atitinka.

Kodėl. Ta pati šaka kaip C1, bet čia paklaida būtų matomiausia - bazinė ekspozicija ilga.

zalias: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run ant gelezies (TestasLong). Pauze baziniame sluoksnyje: zadeta 33 s, realiai 35,0 s (+6%). Pranesimas persirase 'finishing the layer ~33 s' -> po 9,4 s 'lifting the platform ~24 s'.

What to do. Start a print and wait for the first layer's "Curing". Press Pause and note down the number.

What to expect. The number is noticeably larger than on a normal layer (the base exposure is longer), and the actual time matches it.

Why. The same branch as C1, but here the error would be most visible - the base exposure is long.

verified: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run on hardware (TestasLong). Pause on the base layer: promised 33 s, actual 35.0 s (+6%). The message rewrote itself 'finishing the layer ~33 s' -> after 9.4 s 'lifting the platform ~24 s'.

T-70
Pauzė pirmame sluoksnyje iškart po įjungimoPause on the first layer right after power-onwwwwww

Ką daryti. Įjunk printerį (arba perkrauk) ir iškart paleisk spaudinį. Pirmame sluoksnyje paspausk Pause.

Ko tikėtis. Skaičius gali būti per mažas (printeris dar neturi praėjusio sluoksnio matavimo) - tai normalu. Svarbu: skaičius neišeina į minusą ir pranešimas nemirkčioja; pasibaigus skaičiui žinutė lieka be jo.

Kodėl. Žinoma riba, sąmoningai palikta: geriau pažadėti mažiau, nei rodyti neigiamą skaičių.

zalias: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run ant gelezies. Pauze pirmame sluoksnyje iskart po maitinimo perjungimo (uptime 74 s): zadeta 41,6 s, realiai 48,1 s - pazadas PER MAZAS, kaip eilute ir numato sviesiai pakilusiam printeriui. Skaicius niekada nenukrito i minusa (min 0), pranesimas ekrane pasirode LYGIAI VIENA karta (jokio mirkciojimo), o skaiciui pasibaigus zinute liko be jo dar 2 s iki pauzes.

What to do. Power on the printer (or reboot it) and start a print right away. On the first layer press Pause.

What to expect. The number can be too small (the printer does not yet have a measurement from the previous layer) - that is normal. Important: the number does not go negative and the message does not flicker; once the number runs out, the message stays without it.

Why. A known, deliberately accepted limit: better to promise less than to show a negative number.

verified: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run on hardware. Pause on the first layer right after switching power on (uptime 74 s): promised 41.6 s, actual 48.1 s - promise TOO SMALL, exactly as the row expects for a freshly powered-on printer. The number never dropped below zero (min 0), the message appeared on screen EXACTLY ONCE (no flicker), and once the number ran out the message stayed without it for another 2 s until the pause.

T-71
Pauzė printerio mygtukuPause with the printer's own buttonprinterisprinterwwwwww

Kur daroma: pauzę spaudi printerio mygtuku, o pranešimą žiūri pulte.Where: you pause with the printer button, and watch the message in the dashboard.

Ką daryti. Paspausk pauzę ant printerio (ne pulte). Pažiūrėk į pultą.

Ko tikėtis. Pulte pasirodo toks pat pranešimas su skaičiumi, kaip spaudžiant pulte.

Kodėl. Iki 08-18 pauzė nuo printerio mygtukų pulte tylėdavo - skaičių skelbdavo tik web komanda.

zalias: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run ant gelezies. Pauze paspausta ant PATIES printerio: jis paskelbe iverti taip pat, kaip ir web komanda - waitStage=pauseWork, trukme 30,8 s, sluoksnis 12/28. Pultas parode ta pati pranesima su skaiciumi ('Pausing - lifting the platform ~4 s -> 0 s').

What to do. Press pause on the printer itself (not on the dashboard). Look at the dashboard.

What to expect. The dashboard shows the same message with a number as when pressing on the dashboard.

Why. Until 08-18 a pause from the printer's own buttons stayed silent on the dashboard - only the web command used to announce the number.

verified: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run on hardware. Pause pressed on the printer ITSELF: it announced the estimate the same way as the web command - waitStage=pauseWork, duration 30.8 s, layer 12/28. The dashboard showed the same message with a number ('Pausing - lifting the platform ~4 s -> 0 s').

T-73
ResumeResumewwwwww

Ką daryti. Paspausk Resume. Stebėk pranešimą ir būsenos eilutę.

Ko tikėtis. Resuming · lowering the platform su sekundėmis (~24 s). Būsenos eilutėje sekundžių nėra - skaičius tik pranešime. Prasidėjus spausdinimui pranešimas dingsta.

Kodėl. Tas pats skaičius dviejose vietose atrodė kaip du skirtingi laikrodžiai.

zalias: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run ant gelezies (TestasLong). Resume: 'Resuming - lowering the platform ~23 s' su sekundemis, busenos eiluteje sekundziu NERA, prasidejus spausdinimui pranesimas dingo pats. Realiai 26,1 s.

What to do. Press Resume. Watch the message and the status line.

What to expect. Resuming · lowering the platform with seconds (~24 s). The status line has no seconds - the number is only in the message. Once printing starts the message disappears.

Why. The same number in two places looked like two different clocks.

verified: 0.17.0 (2026-09-01) - Claude, build a5587d9, dry run on hardware (TestasLong). Resume: 'Resuming - lowering the platform ~23 s' with seconds, the status line has NO seconds, once printing started the message disappeared on its own. Actual 26.1 s.

2E · Srovės dingimas2E · Power loss

8
~35 min · Kištukas rankoje. Dry run užtenka – dervos nereikia. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~35 min · Plug in hand. A dry run is enough - no resin needed. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
T-22
Tesimas po sroves dingimo: E, M ir P fazesResume after power loss: the E, M and P phasesprinterisprinter

Ka daryti. Spausdinant istrauk kistuka is sienos (ne printerio mygtuku) tris kartus, kaskart kitu momentu: E - kietinant sluoksni, M - plokstei judant, P - pauzeje (plokste pakelta apziurai). Kaskart ijunk ir pasirink Resume.

Ko tiketis. Po kiekvieno ijungimo ekrane (ir pulte) - „Power restored“ su modeliu ir sluoksniu. Resume tesia nuo to paties sluoksnio: nei praleisto, nei dvigubo. Plokste nusileidzia sklandziai ir neatsiremia i plevele. Spaudiniui pasibaigus checkpoint issivalo pats (resumePending: None), heap sveikas.

Si eilute tikrina MECHANINE ir apskaitos puse - ja galima daryti sausai. Siule nutrukimo vietoje isskirta i atskira T-118 (blokas 3A), nes jai reikia dervos: sausame rate siules tiesiog nera. Padalinta V sprendimu 2026-09-01, kad nereiktu laikyti atviros eilutes vien del vieno dalyko, kuriam reikia kito bloko.

Kilme: exp-5 power-loss checkpoint variklis (Tanner PR #11), 0.16.0-beta. Checkpoint /tinymaker-resume.txt SD kortoje. zalias: 0.17.0 (2026-09-01) - Claude + V, dry run, Test4min, kistukas is sienos. Visos trys fazes svarios: kiekviena karta printeris atsimine sluoksni, tese nuo to paties ir baige 9/9; heap ~166 KB; pasibaigus checkpoint issivale. M fazeje V stebejo plokste - nusileido tvarkingai, i plevele neatsireme. Ismatuota atskirai: pirmame rate nuo ekspozicijos pradzios iki dingimo praejo 29 s, o ekspozicija trunka 18 s - pjuvis teko ANTROJO sluoksnio ekspozicijai, tad „finished=1“ buvo teisinga. Pries skelbiant „praleido sluoksni“ butina suskaiciuoti, i kuria faze pjuvis realiai pataike. Susije: T-118, T-25, T-37, T-35.

What to do. While printing, pull the plug at the wall (not the printer's buttons) three times, each at a different moment: E - while curing a layer, M - while the platform is moving, P - during a pause (platform raised for inspection). Each time power on and choose Resume.

What to expect. After each power-on, on screen (and on the dashboard) - "Power restored" with the model and layer. Resume continues from the same layer: neither skipped nor doubled. The platform descends smoothly and does not press against the film. Once the print finishes, the checkpoint clears itself (resumePending: None), heap is healthy.

This row tests the MECHANICAL and bookkeeping side - it can be done dry. The seam at the cut point has been split into a separate T-118 (block 3A), because it needs resin: in a dry run the seam simply does not exist. Split by V's decision on 2026-09-01, so this row would not stay open just for one thing that needs another block.

Origin: exp-5 power-loss checkpoint engine (Tanner PR #11), 0.16.0-beta. Checkpoint /tinymaker-resume.txt on the SD card. verified: 0.17.0 (2026-09-01) - Claude + V, dry run, Test4min, plug pulled at the wall. All three phases clean: each time the printer remembered the layer, continued from the same one and finished 9/9; heap ~166 KB; the checkpoint cleared once the print finished. During phase M, V watched the platform - it descended cleanly, did not press against the film. Measured separately: in the first round, 29 s passed from the start of exposure to power loss, and exposure takes 18 s - the cut landed in the exposure of the SECOND layer, so "finished=1" was correct. Before claiming "it skipped a layer", you must count which phase the cut actually hit. Related: T-118, T-25, T-37, T-35.

T-36
Granular power-loss resume (lift/drop cut, Balanced+Precise)Granular power-loss resume (lift/drop cut, Balanced+Precise)printerisprinter

Dry-run print. Nutraukti maitinima sienoje per KELIMA ir per DROP (leidimasi) -> ijungti -> Resume: plokste peel'ina + seda ties tikslu ar VIRS, niekada zemyn (i FEP). Perjungti Advanced->Resin „Resume mode" i Precise -> kartoti drop cut -> tikslesnis atsistatymas; toggle islieka po reboot (NVS). Heap sveikas.

Kilme: 1-38/1-38b granular mid-motion checkpoints (PR #80). live= laukas (pos=drift-free base, live=reali pozicija relabel'ui); lift=actual, drop=down-biased. firmware-auditor HIGH (mid-drop cancel staliens live) fix'intas pries merge. Zalias: 0.17-dev 958ca5f (08-06, gelezei: lift L6, drop L11 be kritimo, Precise drop L14 tikslesnis, toggle isliko)

zalias: 0.17.0 (2026-09-01) - Claude + V, dry run, Test4min, kistukas is sienos. Precise patikrintas anksciau ta pati vakara (zr. T-22 M faze), Balanced - dabar: pjuvis plokstei kylant TARP sluoksniu, po tesimo homing, tada 2 sluoksnis ir normalus ciklas; nuo tesimo iki kitos ekspozicijos praejo 12 s (su Precise - 13 s), spaudinys baige 9/9, heap sveikas, checkpoint issivale. Jungiklis islieka po perkrovimo (NVS): po sroves dingimo resumePrecise tebebuvo false, o rankiniu budu grazinus - true.
Ko SAMONINGAI nedaryta ir kodel: atskiro sauso pjuvio per NUSILEIDIMA. Jis tikrintu ta pati mechanizma, kuri ka tik matem per pakelima, o vienintelis likes klausimas - ar plokste nusileido i TEISINGA auksti - sausame rate neatsakomas is principo: ten nera nei dervos, nei siules. V 09-01: „cia irgi reik ziuret realaus testo metu su derva... bet siaip rodos nusileido ok“. Aukscio puse eina i T-118 (blokas 3A).

Dry-run print. Cut power at the wall during LIFT and during DROP (descent) -> power on -> Resume: the platform peels + lands at the target or ABOVE, never lower (into the FEP). Switch Advanced->Resin "Resume mode" to Precise -> repeat the drop cut -> more precise recovery; the toggle survives a reboot (NVS). Heap healthy.

Origin: 1-38/1-38b granular mid-motion checkpoints (PR #80). the live= field (pos=drift-free base, live=real position for relabeling); lift=actual, drop=down-biased. firmware-auditor HIGH finding (mid-drop cancel stales live) fixed before merge. Verified: 0.17-dev 958ca5f (08-06, on hardware: lift L6, drop L11 with no drop, Precise drop L14 more precise, toggle survived)

verified: 0.17.0 (2026-09-01) - Claude + V, dry run, Test4min, plug pulled at the wall. Precise was checked earlier the same evening (see T-22 phase M), Balanced - now: cut while the platform was rising BETWEEN layers, homing after resume, then layer 2 and a normal cycle; 12 s passed from resume to the next exposure (13 s with Precise), the print finished 9/9, heap healthy, checkpoint cleared. The switch survives a reboot (NVS): after the power loss resumePrecise was still false, and after switching it back manually - true.
What was DELIBERATELY not done and why: a separate dry cut during the DESCENT. It would test the same mechanism we just saw during the lift, and the only remaining question - whether the platform descended to the RIGHT height - cannot be answered dry in principle: there is neither resin nor a seam there. V on 09-01: "this also needs to be watched during a real test with resin... but it looks like it descended ok otherwise". The height side goes into T-118 (block 3A).

T-23
Lift plate only (be resume)Lift plate only (without resume)printerisprinter

'Power restored' ekrane rinktis 'Lift plate only' -> plokste pakyla (galima apziuret/nuimt detale), printas atmetamas, be resume.

Kilme: 0-2 (exp-5), 0.16.0-beta.

zalias: 0.17.0 (2026-09-01) - Claude + V, dry run, Test4min, kistukas is sienos. Pjuvis pataike i pirmo sluoksnio ekspozicija, tad printeris siule testi nuo 0 is 9 (skaicius reiskia PILNAI sukietintus sluoksnius - cia ju nebuvo nei vieno). Pulte paspausta „Lift plate only“, patvirtinimo langelis ispejo, kad spaudinys bus atmestas. V patvirtino, kad plokste pakilo. Po to resumePending tapo None - spaudinys tikrai atmestas, ne atidetas. Kelimo metu HTTP trumpam nutrunka (judesio metu neaptarnaujamas) - normalu.

On the 'Power restored' screen choose 'Lift plate only' -> the platform rises (you can inspect/remove the part), the print is discarded, without resume.

Origin: 0-2 (exp-5), 0.16.0-beta.

verified: 0.17.0 (2026-09-01) - Claude + V, dry run, Test4min, plug pulled at the wall. The cut hit the exposure of the first layer, so the printer offered to resume from 0 of 9 (the number means FULLY cured layers - here there were none). On the dashboard "Lift plate only" was pressed, the confirmation dialog warned that the print would be discarded. V confirmed that the platform rose. Afterwards resumePending became None - the print was really discarded, not postponed. During the lift, HTTP briefly stalls (not served during movement) - normal.

T-33
UP 'Lift plate' clear-first (resume prompt)UP 'Lift plate' clear-first (resume prompt)printerisprinter

Power-loss prompt -> UP (Lift plate): plokste pakyla, tada power-cycle -> JOKIO re-prompt (checkpoint valomas PRIES kelima). Brownout kelimo metu nebepalieka klaidingo resume su pajudejusia plokste.

Kilme: UP clear-first fix (0.16.2, rasta 08-03 V testuose). Zalias: 0.16.2 (08-03, ant gelezies)

zalias: 0.17.0 (2026-09-01) - Claude + V, dry run, Test4min, kistukas is sienos. Iskart po „Lift plate only“ V perjunge maitinima: printeris pakilo svarus, resumePending: None - jokio pakartotinio pasiulymo testi. Tai ir yra esme: irasas valomas PRIES kelima, tad srovei dingus paties kelimo metu printeris nebesiulytu testi spaudinio, kurio plokste jau pajudinta.

Power-loss prompt -> UP (Lift plate): the platform rises, then power-cycle -> NO re-prompt (checkpoint cleared BEFORE the lift). A brownout during the lift no longer leaves a false resume with a platform that has already moved.

Origin: UP clear-first fix (0.16.2, found 08-03 in V's tests). Verified: 0.16.2 (08-03, on hardware)

verified: 0.17.0 (2026-09-01) - Claude + V, dry run, Test4min, plug pulled at the wall. Right after "Lift plate only" V switched the power: the printer came up clean, resumePending: None - no repeated offer to resume. That is the whole point: the record is cleared BEFORE the lift, so if power was lost during the lift itself, the printer would no longer offer to resume a print whose platform has already been moved.

T-37
Power-restored pranesimas po sroves dingimoPower-restored notification after power lossprinterisprintertelefonasphone

Kur daroma: srovę nutrauki prie printerio, o žinutę gauni telefone.Where: you cut the power at the printer, and get the message on the phone.

Spausdinant nutraukti maitinima -> ijungti -> jei ijungtas pranesimu kanalas (Telegram/WA/Discord), telefone ateina „Power restored - print interrupted at layer X/Y (model)" (viena zinute per boot). Resume ekrano prompt + dashboard resumePending kaip anksciau.

Kilme: PR-notify (V 08-05, PR #81) - 4-a notify (po finished/low-resin/canceled); boot'e po WiFi, greta crashPingMaybe. Zalias: 0.17-dev 958ca5f (08-06, gelezei: Telegram atejo „layer 6/154 Tooth")

zalias: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17, dry run, Test4min, V istrauke kistuka is sienos. Pranesimas isejo praejus 12 s po ijungimo, `notifyLastOk true`; V patvirtino, kad zinute atejo i telefona.

Cut power while printing -> power on -> if a notification channel is enabled (Telegram/WA/Discord), a message arrives on the phone: "Power restored - print interrupted at layer X/Y (model)" (one message per boot). The resume screen prompt + dashboard resumePending as before.

Origin: PR-notify (V 08-05, PR #81) - the 4th notify (after finished/low-resin/canceled); on boot after WiFi, next to crashPingMaybe. Verified: 0.17-dev 958ca5f (08-06, on hardware: Telegram message arrived "layer 6/154 Tooth")

verified: 0.17.0 (2026-09-01) - Claude, build Sep 1 21:42:17, dry run, Test4min, V pulled the plug at the wall. The notification went out 12 s after power-on, `notifyLastOk true`; V confirmed that the message arrived on the phone.

T-122
Srovė dingsta per ilgą plokštės judesį – tęsti nebesiūlomaPower is lost during a long platform move - resume is no longer offeredprinterisprinterwwwwww

Kur daroma: kištuką traukai prie printerio, o kad klausimo neliktų, tikrini ir ekrane, ir pulte.Where: you pull the plug at the printer, and check both on the screen and in the dashboard that the question is gone.

Ką daryti. Paleisk spaudinį, spausk Pause, ir kai plokštė kyla, ištrauk maitinimą. Palauk ~5 s, įkišk, printerio mygtukų neliesk.

Ko tikėtis. Printeris įsijungia įprastai: ekrane NĖRA „Power restored" su Discard/Resume, o pulte nėra juostos „Power was restored". Būsena Idle.

Kilmė: V principas 2026-09-12 („jei operacija gali sugadinti printerį ar detalę - raštelį trinam“). Per pauzės kėlimą, leidimąsi po Resume ir galutinį pakėlimą kortelėje įrašytas aukštis nesutampa su tikru, tad tęsimas galėtų įspausti detalę į ekraną arba nuvaryti plokštę į viršų. Nuo 0.17.1 (e421b9b) raštelis prieš tuos judesius ištrinamas ir įrašomas iš naujo, kai plokštė sustoja. Stovint pauzėje ir spausdinant sluoksnius tęsimas veikia kaip anksčiau (T-22, T-36).

Žalias: 0.17.1 (2026-09-12) - V traukė maitinimą, `resumePending` tuščias, `bootReason=power-on`.

What to do. Start a print, press Pause, and when the platform is rising, pull the power. Wait ~5 s, plug it back in, do not touch the printer's buttons.

What to expect. The printer powers on normally: the screen has NO "Power restored" with Discard/Resume, and the dashboard has no "Power was restored" bar. Status Idle.

Origin: V's principle from 2026-09-12 ("if an operation could damage the printer or the part - we delete the record"). During the pause lift, the descent after Resume and the final lift, the height written in the record does not match the real one, so resuming could press the part into the screen or drive the platform to the top. Since 0.17.1 (e421b9b) the record is deleted before those moves and written again once the platform stops. While stationary in a pause and while printing layers, resume works as before (T-22, T-36).

Verified: 0.17.1 (2026-09-12) - V pulled the power, `resumePending` empty, `bootReason=power-on`.

T-123
Tęsto spaudinio pabaigoje plokštė nekeliamaAt the end of a resumed print the platform is not liftedprinterisprinterwwwwww

Kur daroma: „Resume print“ spaudi pulte, o spaudinio pabaigą stebi printerio ekrane.Where: you press "Resume print" in the dashboard, and watch the print finish on the printer screen.

Ką daryti. Ištrauk maitinimą spausdinant sluoksnį (ne per ilgą judesį), įjunk, pulte spausk Resume print → OK ir leisk spaudiniui pasibaigti. Žiūrėk į printerio ekraną pabaigoje.

Ko tikėtis. Plokštė nekyla į viršų, o ekrane pasirodo „Raise the plate". Juostoje trumpai švysteli „Raising...", bet plokštė lieka vietoje (aukštis nepakinta). Plokštę pakeli pats rankiniu kėlimu. Įprastas spaudinys, kuris prieš pradėdamas grįžo į nulį, pabaigoje kelia kaip visada.

Kilmė: incidentas 2026-09-12 - po tęsto spaudinio Stop galutinis pakėlimas atsitrenkė į viršų ir variklis burzgė. Priežastis: atkūrimas aukščio nežino tiksliai ir laiko jį sąmoningai mažesnį, o pakėlimas ėjo iki absoliučių 68 mm, kai virš jų fiziškai yra tik 3 mm (išmatuota). Nuo 0.17.1 (2d28f6e) tęstas spaudinys pabaigoje nekelia.

Žalias: 0.17.1 (2026-09-12) - `zMm` 4,31 vietoj ~24 mm, trukmė 4 s vietoj ~24 s; V matė „Raise the plate".

What to do. Pull the power while printing a layer (not during a long move), power on, on the dashboard press Resume print → OK and let the print finish. Watch the printer screen at the end.

What to expect. The platform does not rise to the top, and the screen shows "Raise the plate". The status bar briefly flashes "Raising...", but the platform stays in place (the height does not change). You raise the platform yourself with a manual lift. A normal print, which returned to zero before starting, lifts as usual at the end.

Origin: incident 2026-09-12 - after a resumed print, Stop's final lift slammed into the top and the motor buzzed. Cause: the recovery does not know the height exactly and deliberately keeps it lower, but the lift went up to an absolute 68 mm, when there is physically only 3 mm above that (measured). Since 0.17.1 (2d28f6e) a resumed print does not lift at the end.

Verified: 0.17.1 (2026-09-12) - `zMm` 4.31 instead of ~24 mm, duration 4 s instead of ~24 s; V saw "Raise the plate".

T-124
„Lift plate only“ sustoja anksčiau ir klauso BACK"Lift plate only" stops earlier and listens to BACKprinterisprinter

Ką daryti. Po srovės dingimo spausdinant (kaip T-123) paleidimo klausime rinkis UP = „Lift plate only" (arba tą patį mygtuką pulte). Kai plokštė kyla, paspausk printerio BACK.

Ko tikėtis. Juostoje „Raising plate." ir „Watch it - BACK stops"; abi eilutės telpa ekrane. Paspaudus BACK judesys nutrūksta ir pasirodo „Raise the plate". Neliesus BACK plokštė pakyla ne aukščiau 62 mm, ne 68.

Kilmė: auditas 2026-09-12 po T-123 incidento. Tas kėlimas irgi ėjo iki 68 mm pagal spėtą aukštį, tad su aukštu spaudiniu (plokštė virš ~48 mm) galėjo persišokti daugiau, nei yra tų 3 mm. Nuo 0.17.1 (9fa6b03, e64da93): lubos 6 mm žemiau, abu judesiai stabdomi BACK, ekrane pasakoma, kad reikia stebėti. 62 mm lubų trumpi testiniai spaudiniai nepasiekia, tad ta dalis lieka netikrinta akimis.

Žalias: 0.17.1 (2026-09-12) - V spaudė BACK, plokštė sustojo 3,27 mm (tik atplėšimas), „Raise the plate" pasirodė.

What to do. After a power loss while printing (like T-123), on the start-up prompt choose UP = "Lift plate only" (or the same button on the dashboard). While the platform is rising, press the printer's BACK.

What to expect. The status bar shows "Raising plate." and "Watch it - BACK stops"; both lines fit on screen. After pressing BACK the movement stops and "Raise the plate" appears. Without touching BACK, the platform rises no higher than 62 mm, not 68.

Origin: audit 2026-09-12 after the T-123 incident. That lift also went up to 68 mm based on the guessed height, so with a tall print (platform above ~48 mm) it could overshoot by more than those 3 mm. Since 0.17.1 (9fa6b03, e64da93): the ceiling is 6 mm lower, both movements are stopped by BACK, the screen says you need to watch it. Short test prints do not reach the 62 mm ceiling, so that part remains unverified by eye.

Verified: 0.17.1 (2026-09-12) - V pressed BACK, the platform stopped at 3.27 mm (only the peel-off), "Raise the plate" appeared.

3A · Pirmas tikras spaudinys3A · First real print

7
~60 min · Derva VAT'e. Vienas spaudinys dengia visą bloką. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~60 min · Resin in the vat. One print covers the whole block. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
T-51
Spaudinio pradžia: plėvelė, ne blynasStart of the print: film, not a pancakewwwwww

Ką daryti. Stebėti pirmus procentus abiejuose vaizduose (stačiame ir „as printed").

Ko tikėtis. Pirmas sluoksnis matomas kaip plona plėvelė, storėjanti kartu su eiga.

Kodėl. Rodomi 36 pjūviai per visą aukštį, tad vienas rodomas pjūvis ≈ modelio aukštis/35 (15 mm modeliui — 0,44 mm ≈ 4 tikri sluoksniai). Dabar priekinis pjūvis piešiamas proporcingo storio. Žalias: 0.17-dev 9f400e2 (08-14, stende ties 1 %, 2 %, 12 %)

What to do. Watch the first few percent in both views (the upright one and "as printed").

What to expect. The first layer is visible as a thin film, thickening as progress continues.

Why. 36 cross-sections are shown across the whole height, so one shown cross-section ≈ model height/35 (for a 15 mm model - 0.44 mm ≈ 4 real layers). Now the front cross-section is drawn at a proportional thickness. Verified: 0.17-dev 9f400e2 (08-14, on the test bench at 1 %, 2 %, 12 %)

T-49
Vaiduoklis nedingsta prasidėjus spaudiniuiThe ghost does not disappear once the print startswwwwwwtelefonasphone

Kur daroma: peržiūrą atidarai kompiuteryje, o vidury spaudinio prisijungi telefonu.Where: you open the preview on a computer, and connect with a phone in the middle of the print.

Ką daryti. Atidaryti modelio peržiūrą, paleisti spaudinį (arba dry run) ir stebėti tą patį langą; atskirai — atidaryti pultą telefone spaudinio viduryje.

Ko tikėtis. Neatspausdinta dalis matoma visą spaudinį, taškeliais. Telefone — taip pat: printeris spaudinio pradžioje užpildo savo siluetų buferį modelio pjūviais iš SD, tad ir šviežias įrenginys mato vaiduoklį, o ne vien atspausdintą dalį.

Kodėl. Anksčiau prasidėjus spaudiniui pultas persijungdavo į printerio gyvą srautą, kuriame pagal apibrėžimą yra tik jau atspausdinti sluoksniai — vaiduoklio nebūdavo iš ko piešti. Žalias: 0.17-dev 9f400e2 / cf11c1d (08-14, ant geležies)

What to do. Open the model preview, start a print (or dry run) and watch the same window; separately - open the dashboard on the phone in the middle of the print.

What to expect. The unprinted part is visible for the whole print, as dots. On the phone too: at the start of the print the printer fills its own silhouette buffer with model cross-sections from the SD card, so even a fresh device sees the ghost, not just the printed part.

Why. Previously, once the print started, the dashboard used to switch to the printer's live stream, which by definition only contains layers already printed - there was nothing left to draw the ghost from. Verified: 0.17-dev 9f400e2 / cf11c1d (08-14, on hardware)

T-42
Mid-print telefono zinutes ISVIS pristatomos (heap)Mid-print phone messages are delivered AT ALL (heap)telefonasphone

Spausdinant (ne idle!) sukelti notify (pvz. low-resin warn) ir patikrinti, kad zinute PASIEKIA telefona. Slaptas failure mode: preview RAM snapshot (~70 KB) fragmentuoja heap'a (maxAlloc 110->48 KB), TLS "connection refused", zinute dingsta TYLIAI - idle "Send test" veikia, tad konfigas atrodo geras. Po fix'o telegramNotify() pirma atlaisvina snapshot'a.

Kilme: 08-08 - V pastebejo, kad #40 warn neatejo; diagnostinis build parode, jog ir SENAS pause-notify niekada nevyko mid-print. Zalias: 0.17-dev 5644714 (08-08, gelezei: abi zinutes mid-print)

While printing (not idle!), trigger a notify (e.g. low-resin warn) and check that the message REACHES the phone. Hidden failure mode: the preview RAM snapshot (~70 KB) fragments the heap (maxAlloc 110->48 KB), TLS "connection refused", the message disappears SILENTLY - idle "Send test" works, so the config looks fine. After the fix, telegramNotify() first frees the snapshot.

Origin: 08-08 - V noticed that the #40 warn did not arrive; a diagnostic build showed that even the OLD pause-notify never happened mid-print. Verified: 0.17-dev 5644714 (08-08, on hardware: both messages mid-print)

T-65
Stop tikrame spaudinyje (ne dry run)Stop in a real print (not dry run)wwwwww

Ką daryti. Išjunk Dry run (no UV) ir paleisk spaudinį. Po kelių sluoksnių paspausk Stop. Pasižymėk, kiek sekundžių žada, ir kiek iš tikrųjų kyla plokštė.

Ko tikėtis. Kėlimas trunka 60-80 s (ne ~24 s kaip dry run), ir pažadėtas skaičius nuo tikrojo skiriasi ne daugiau kaip keliomis sekundėmis.

Kodėl. Dry run kelia tik iki apžiūros aukščio, tikras spaudinys - iki pat viršaus; tai skirtingi skaičiai ir jie skaičiuojami atskirai.

What to do. Turn off Dry run (no UV) and start a print. After a few layers press Stop. Note how many seconds it promises, and how long the platform actually takes to rise.

What to expect. The lift takes 60-80 s (not ~24 s like dry run), and the promised number differs from the real one by no more than a few seconds.

Why. Dry run only lifts to the inspection height, a real print - all the way to the top; these are different numbers and they are calculated separately.

T-41
Dvieju lygiu low-resin: warn (spausdina toliau) + stopTwo-level low-resin: warn (keeps printing) + stopwwwwwwtelefonasphone

Kur daroma: ribas nustatai pulte, o įspėjimą gauni pulte ir telefone.Where: you set the limits in the dashboard, and get the warning in the dashboard and on the phone.

Dry print su vat ties warn zona: prie "Warn (ml)" ribos ateina viena "Low resin soon" zinute formatu "~X.X ml left (layer x/y[, ~Z min to stop])" - minutes TIK kai zinomas tempas (nuo 5 sluoksnio; anksciau rode melaginga "~0 min") - ir spausdinimas TESIASI; prie "Stop (ml)" ribos (jei varnele ON) - pauze + "printer paused" zinute. Refill re-armina abu latch'us. Warn nepriklauso nuo stop varneles.

Kilme: #40 (FB pain) - laiko trigeris niekada nesuveike ant mazo vat (V rado); perdaryta i ml dvieju lygiu (V dizainas). Zalias: 0.17-dev b5020f9 (08-08, gelezei: warn+continue+stop+cancel zinutes telefone, layer x/y formatas)

Dry print with the vat near the warn zone: at the "Warn (ml)" threshold one "Low resin soon" message arrives in the format "~X.X ml left (layer x/y[, ~Z min to stop])" - minutes ONLY once the pace is known (from layer 5; before that it showed a false "~0 min") - and printing CONTINUES; at the "Stop (ml)" threshold (if the checkbox is ON) - pause + "printer paused" message. A refill re-arms both latches. Warn does not depend on the stop checkbox.

Origin: #40 (FB pain) - the time trigger never fired on a small vat (found by V); redone as a two-level ml system (V's design). Verified: 0.17-dev b5020f9 (08-08, on hardware: warn+continue+stop+cancel messages on the phone, layer x/y format)

T-118
Siūlė po srovės dingimo – tikrame spaudinyjeThe seam after power loss - in a real print

Ka daryti. Spausdink TIKRA spaudini su derva. Kai plokste juda (kyla arba leidziasi), istrauk kistuka is sienos. Ijunk, pulte (arba printerio ekrane) pasirink Resume. Leisk spaudiniui pasibaigti ir apziurek ta vieta, kur jis buvo nutrukes.

Ko tiketis. Detale nenulupta nuo plokstes, o nutrukimo vietoje nera nei ispaudos, nei praleisto sluoksnio, nei dvigubo storio. Siule turi buti tokia pat svari, kaip T-4 kupono (idealiu atveju jos is viso nesimato).

Kodel atskira eilute. Mechanine puse (ar printeris atsimena sluoksni, ar tesia nuo to paties, ar checkpoint issivalo) patikrinta 2026-09-01 sausai - zr. T-22, visos trys fazes zalios. Bet sausame rate siules nera, tad liko neatsakytas vienintelis klausimas, kuris rupi zmogui: ar plokste po tesimo nusileido i TEISINGA auksti. V 09-01: „pagal platformos laikikli jis buvo 2 mm nuo pagrindo... spėju, kad nusileido gerai, bet pamatuoti negaliu“ - ir tai tikslu, nes akimis desimtuju milimetro nepamatuosi, o printeris savo Z padeties per API neatiduoda. Netinkamai nusileidus spaudinys arba neprilips, arba toje vietoje liks matoma yda - todel atsakymas ateina tik su derva. Deta i 3A, kad butu daroma to paties spaudinio metu, o ne del jos vienos pilti derva. Rezimas: daryti su tuo „Resume mode“, kuris tuo metu ijungtas (numatytasis - Precise); jei siule bloga, pakartoti su kitu - sausai abu rezimai atsistato vienodai (T-36), tad skirtumas, jei jis yra, matysis tik cia.

What to do. Print a REAL print with resin. When the platform is moving (rising or descending), pull the plug at the wall. Power on, on the dashboard (or the printer screen) choose Resume. Let the print finish and inspect the spot where it was interrupted.

What to expect. The part is not peeled off the platform, and at the interruption spot there is no dent, no skipped layer, and no double thickness. The seam must be as clean as the T-4 coupon's (ideally not visible at all).

Why a separate row. The mechanical side (whether the printer remembers the layer, continues from the same one, whether the checkpoint clears) was checked dry on 2026-09-01 - see T-22, all three phases verified. But in a dry run there is no seam, so the one question that matters to a person remained unanswered: whether the platform descended to the RIGHT height after resuming. V on 09-01: "by the platform holder it was 2 mm from the base... I guess it descended fine, but I cannot measure it" - and that is accurate, because you cannot see a tenth of a millimeter by eye, and the printer does not expose its Z position via the API. If it descends incorrectly, the print will either not stick, or a visible defect will remain there - so the answer only comes with resin. Placed in 3A so it can be done during the same print, rather than pouring resin just for this one thing. Mode: do it with whichever "Resume mode" is enabled at the time (default - Precise); if the seam is bad, repeat with the other one - dry, both modes recover identically (T-36), so any difference, if there is one, will only show up here.

T-130
Padėkos langas iššoka po trečio pavykusio spaudinio, ir tik kartąThe thank-you dialog pops up after the third successful print, and only onceprinterisprinterwwwwww

Ką daryti. Ant naujo (arba NVS išvalyto) printerio atspausdink tris spaudinius, kurie nueina iki galo. Po kiekvieno pasižiūrėk pulte /api/status lauką printsOk. Po trečio palik pultą atidarytą. Paskui atspausdink ketvirtą.

Ko tikėtis. printsOk eina 1 → 2 → 3. Po trečio pulte vieną kartą iššoka padėkos langas su trimis sumomis; paspaudus No thanks jis užsidaro. Po ketvirto spaudinio langas nebeiššoka, o thanksSeen lieka true. Nutrauktas ar nepavykęs spaudinys skaitiklio nejudina.

Kilmė: plano punktas K8 (V 2026-08-26), padaryta PR #163, išleista 0.17.5.

Žalias: 0.17.4 + 2f828b2 (2026-09-16) - V testavo tris spaudinius be vonelės: „viskas gerai".

What to do. On a fresh (or NVS-cleared) printer, print three prints that run all the way through. After each one, check the printsOk field on the dashboard's /api/status. After the third, leave the dashboard open. Then print a fourth.

What to expect. printsOk goes 1 → 2 → 3. After the third, the thank-you dialog pops up once on the dashboard with three sums; pressing No thanks closes it. After the fourth print the dialog no longer pops up, and thanksSeen stays true. A canceled or failed print does not move the counter.

Origin: plan item K8 (V 2026-08-26), done in PR #163, released in 0.17.5.

Verified: 0.17.4 + 2f828b2 (2026-09-16) - V tested three prints without a vat: "all good".

3B · Kuponai ir matavimai3B · Coupons and measurements

4
~90 min · Derva, svarstyklės, slicerio paruošti failai. Pirmas punktas yra vartai: jei jis krenta, likusius šio bloko žymim „–“ ir einam į kitą bloką.~90 min · Resin, scales, files prepared by the slicer. The first item is the gate: if it fails, mark the rest of this block “–” and move on to the next block.
T-90
AA grindų kuponas neatsiplėšia nuo FEPThe AA-floor coupon does not peel off the FEPprinterisprinter

Ką daryti. Spausdink slicerio pusės paruoštą kuponą (52 sluoksniai, ~16 min, pagrindas 743 mm² = 60 % plokštės). Stebėk pirmus 6 sluoksnius.

Ko tikėtis. Pagrindas lieka ant plokštės, ne ant plėvelės. Grindų kraštas lygus, be pilkų „šešėlių“ nuo glotninimo.

Kodėl. 743 mm² yra didžiausias plotas, kokį iki šiol lipdėm; jei atsiplėš - kuponas generuojamas siauresnis (slicerio sesija padaro tą pačią dieną). Kilmė: slicerio pusė, AA grindų darbas 2026-08-19.

What to do. Print the coupon prepared by the slicer side (52 layers, ~16 min, base 743 mm² = 60 % of the plate). Watch the first 6 layers.

What to expect. The base stays on the plate, not on the film. The floor edge is smooth, with no gray "shadows" from smoothing.

Why. 743 mm² is the largest area we have stuck down so far; if it peels off - the coupon is regenerated narrower (the slicer session does this the same day). Origin: slicer side, AA-floor work 2026-08-19.

T-91
Rafto storis: keturi greta, vienoje plokštėjeRaft thickness: four side by side, on one plateprinterisprinter

Ką daryti. Spausdink C:/PIO-build/raftai.zip (~11 min, keturi padai vienoje plokštėje, 34 % ploto). Įpjovos pado krašte sako, kuris yra kuris: 1 Įpjova = 0,15 mm, 2 = 0,30, 3 = 0,60, 4 = 1,00. ⚠ Nė vienas iš jų nėra tai, ką sliceris siunčia šiandien: mūsų raftas yra vienas sluoksnis (išmatuota 2026-09-02), tad plokštė rodo, kur riba iš storesnės pusės, o ne mūsų tikrąjį atvejį. Ant kiekvieno pado 6×6 mm detalė, kad būtų už ko paimti. Po spaudinio bandyk nuimti mentele kiekvieną atskirai.

Ko tikėtis. Svarbiausias klausimas šiam testui - ar vieno sluoksnio raftas (tas, kurį žmonės gauna) laikosi spausdinant ir nusiima mentele ant šitos mašinos. Plokštė duoda antrą atsakymą: nuo kurio storio nuėmimas pradėjo reikalauti jėgos. Jei 1,00 reikia peilio, riba per aukšta.

Patikslinta 2026-09-02. Anksčiau čia stovėjo, kad mūsų numatytasis 0,15 mm yra „perpus plonesnis už etaloną 0,30“. Tai netiesa: slicerio sesija sugretino mūsų .sl1 su PrusaSlicer etalonu (tas pats modelis, tas pats profilis) ir pado sluoksnyje suskaičiavo 36 107 prieš 37 428 apšviestus pikselius - abiejuose padas užima vieną sluoksnį, nes pirmas pjūvis apima visą juostą iki 0,3 mm. Storesnio pirmo sluoksnio šis spausdintuvas iš viso neturi - firmware to lauko iš config.ini neskaito.

Kodėl. Dvipusė riba iš V patirties: per plonas raftas atsileidžia spausdinant, per storas gadina detalę nuimant. Visi keturi vienoje plokštėje sąmoningai - atskiri spaudiniai skirtųsi dervos temperatūra ir plėvelės būkle labiau, nei matuojamas dydis. Šis testas tikrina storį, ne pado formą (apvado, nuolydžio, apkabinimo klausimas eina po šito). Kilmė: slicerio pusė, 2026-08-23.

What to do. Print C:/PIO-build/raftai.zip (~11 min, four pads on one plate, 34 % of the area). A notch on the edge of each pad says which is which: 1 notch = 0.15 mm, 2 = 0.30, 3 = 0.60, 4 = 1.00. ⚠ None of these is what the slicer sends today: our raft is one layer (measured 2026-09-02), so the plate shows where the threshold is from the thicker side, not our real case. Each pad has a 6×6 mm part to grab. After the print, try removing each one separately with a scraper.

What to expect. The most important question for this test - whether the one-layer raft (the one people actually get) holds while printing and comes off with a scraper on this machine. The plate gives a second answer: from which thickness removal starts to need force. If 1.00 needs a knife, the threshold is too high.

Clarified 2026-09-02. This used to say that our default 0.15 mm is "half as thin as the reference 0.30". That is not true: the slicer session compared our .sl1 with the PrusaSlicer reference (same model, same profile) and counted 36 107 versus 37 428 exposed pixels in the pad layer - in both, the pad occupies one layer, because the first cross-section covers the whole band up to 0.3 mm. This printer has no thicker first layer at all - the firmware does not read that field from config.ini.

Why. A two-sided limit from V's experience: too thin a raft loosens while printing, too thick damages the part when removed. All four on one plate is deliberate - separate prints would differ more in resin temperature and film condition than the measured quantity. This test checks thickness, not pad shape (the rim, taper and wrap-around question comes after this). Origin: slicer side, 2026-08-23.

T-92
Atramų atplėšiamumas: 0,5 mm smaigalys mūsų dervaiSupport removability: 0.5 mm tip for our resinprinterisprinter

Ką daryti. Spausdink C:/PIO-build/atramu-testas.zip (9° pakrypęs puodelis, 12 mm, 22 atramų taškai, 235 sluoksniai, ~57 min). Nuimk atramas pirštais, be replių.

Ko tikėtis. Atramos atsiskiria švariai, paviršiuje lieka taškelis, ne krateris. Nė viena atrama nenulūžta spausdinant.

Kodėl. Smaigalio storį dabar parenka PrusaSlicer variklis (0,5 mm), ne mes; mūsų ekrano taškas 0,1275 mm, tad plonesnė nei ~0,4 mm atrama kaukėje neatsirastų (žr. uždarytą issue 102). Kilmė: slicerio pusė, WASM portas.

What to do. Print C:/PIO-build/atramu-testas.zip (a cup tilted 9°, 12 mm, 22 support points, 235 layers, ~57 min). Remove the supports with your fingers, no pliers.

What to expect. The supports come off cleanly, leaving a small dot on the surface, not a crater. No support breaks while printing.

Why. The tip thickness is now chosen by the PrusaSlicer engine (0.5 mm), not us; our screen's pixel is 0,1275 mm, so a support thinner than ~0.4 mm would not even appear in the mask (see closed issue 102). Origin: slicer side, WASM port.

T-43
Dervos kalibracija (R-cal): du svoriai -> du skaiciaiResin calibration (R-cal): two weights -> two numberswwwwww

Pasverti vata PRIES ir PO spaudinio, skirtuma gramais ivesti i eilute "Sample 1"; pakartoti su aiskiai kitokio dydzio modeliu i "Sample 2". Tikrinti: (a) po antro matavimo zenkliukas calibrated ir formule "x k + f ml per print" (kalibruota: x1.092 + 0.39 ml); (b) vato likutis sutampa su svarstyklemis ~1 % tikslumu (buvo 0.8 ml paklaida, liko 0.11); (c) didesni spaudini ivedus i pirma eilute fitas vis tiek gaunasi (tvarkos nepriklausomybe) ir eilutes NEsusikeicia; (d) istrynus viena eilute grizta "1 of 2", istrynus abi - x1.000 + 0.00; (e) absurdiskas svoris (99 g prie 5 ml) atmetamas su paaiskinimu.

Tankis matuojamas, ne spejamas: "X g is Y ml" (vatas iki markerio arba svirkstas). Pakeitus tanki ABU matavimai persifituoja (saugomi GRAMAI, ml isvedami skaitymo metu).

Backup scenarijai (visi keturi tikrinti gyvai 08-11): senas 0.16.x failas be kalibracijos lauku - kalibracija NEsugadinama; pereinamasis ml failas be calUnit - konvertuojasi tiksliai; "pagrazintas" JSON su tarpais po dvitaskio - jungikliai NEvirsta false (buvo isjunges WiFi); apvalus ratas backup->restore - visi 62 laukai identiski.

Kilme: 0.17 R-cal (PR #92). Klaidos, kurias sugavo sis testas: senas backup dauginto kalibracija is tankio; pretty JSON skaite boolean'us kaip false; resume checkpoint buvo nulinamas pries ji perskaitant. Zalias: 0.17-dev 5ef206e (08-11, gelezei: x1.092 + 0.39, vato paklaida 0.11 ml, visi 4 backup scenarijai)

Weigh the vat BEFORE and AFTER the print, enter the difference in grams into the "Sample 1" field; repeat with a model of clearly different size into "Sample 2". Check: (a) after the second measurement, the calibrated badge and the formula "x k + f ml per print" (calibrated: x1.092 + 0.39 ml); (b) the vat's remainder matches the scale within ~1 % accuracy (was 0.8 ml error, now 0.11); (c) entering a larger print into the first field, the fit still comes out (order independence) and the rows do NOT swap; (d) deleting one row goes back to "1 of 2", deleting both - x1.000 + 0.00; (e) an absurd weight (99 g for 5 ml) is rejected with an explanation.

Density is measured, not guessed: "X g from Y ml" (vat up to a marker, or a syringe). After changing the density BOTH measurements refit (GRAMS are stored, ml are derived on read).

Backup scenarios (all four checked live on 08-11): an old 0.16.x file without calibration fields - calibration is NOT damaged; a transitional ml file without calUnit - converts exactly; a "prettified" JSON with spaces after the colon - switches do NOT turn into false (WiFi had been turned off); a round trip backup->restore - all 62 fields identical.

Origin: 0.17 R-cal (PR #92). Bugs this test caught: an old backup multiplied the calibration by the density; pretty JSON read booleans as false; the resume checkpoint was zeroed before it was read. Verified: 0.17-dev 5ef206e (08-11, on hardware: x1.092 + 0.39, vat error 0.11 ml, all 4 backup scenarios)