From e089911cfab6cc20e3f2443c7f76646cba9be342 Mon Sep 17 00:00:00 2001 From: Matt Edholm Date: Sat, 9 May 2026 11:06:30 -0400 Subject: [PATCH] ux(provisioning): unlock-first step + manual QR on Step 1/2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two changes to the yellow Step 1/2 (and red retry-twin) screens, both in service of the locked-phone-scan failure mode where iOS joins the AP but never opens the captive portal: * Promote 'Unlock your phone first' to step 1 of a four-step list (was three steps starting with 'Scan the QR'). Tightens step pitch from 46→38 px to fit the new step. Surfacing the requirement visually beats discovering it by scanning, getting nothing, and giving up. * Bake a manual-link QR into the bottom of the left panel pointing to https://pictureframe.edholm.me/help. Side label 'Need help? / Scan for setup / & troubleshooting'. Static URL → encoded directly into ap_bg.bin via the qrcode Python lib at gen time, no firmware QR-render changes needed. Retry twin (ap_bg_retry.bin) inherits. Co-Authored-By: Claude Opus 4.7 (1M context) --- data/waveshare73-v1/ap_bg.bin | Bin 192000 -> 192000 bytes data/waveshare73-v1/ap_bg_preview.png | Bin 10541 -> 12091 bytes data/waveshare73-v1/ap_bg_retry.bin | Bin 192000 -> 192000 bytes data/waveshare73-v1/ap_bg_retry_preview.png | Bin 10237 -> 11736 bytes scripts/gen_screens.py | 46 ++++++++++++++++---- 5 files changed, 38 insertions(+), 8 deletions(-) diff --git a/data/waveshare73-v1/ap_bg.bin b/data/waveshare73-v1/ap_bg.bin index f61d80ba9c988f34487b485d1cc90cf16b57ee57..c7b3ea2de414c892b10eeaca03227dd0c0a189fc 100644 GIT binary patch literal 192000 zcmeHQO}3-F4kYPwGERDs@%?f)(C5AlkxBNygjXfmV1gZfY#cf*cV95FY?&%#f%(bp zX2}pR1PlQ~zz{G53;{#H5HJJ`0YktLFa!(%L%uCCuCl44nc8?CD~p!DA4kQ6?MD-Sv0LolZVyD0>GA8*_fYOw6Po_{nro&_l4$^P_w z{5dx4I>anMR-qnZs>2YAlJG@$)6eJkb_Dz65jh4ss;`6kvqHjw4!h ze4rc%Y#Tqm87$BTMu(mc9k2e^{BnH!I6g=olkC`0veJP12U{A9S6@(Rex!BiI?s_> z?^#H_GCE z@DJ${D+FR#^DBuwvH_s1Sx)7a!BeikKGhL#PNx;<3pW?e6U>LK&g-C z6ieD}C&qlJEsU&)bzeRP@YsoWBIM)fRFn^2m%{hE2jNBP#vtZ6Bw@$!|4+w`C?8Nnbtdik4Q;Zn%Fu*nsPLYIE)+}e*@MrrT8s=d^jXNfXK##;_u!tgYJ8-S zd5_%qcn|I=tHwtPnfJ(zkN4o7vTA&!ka>^X_;?TQDXYdu3YquFjgR->ZdMHeL%IuS6-;c8 zQ!NV>z^Y)P7FyfesQ^|56Wild%R&XPDwwE+*7kNPfK|c7_BhqDPywt8CTgLzy`2hR zRWPwVPPHsl0IPzDT4-%=rvg|NOl*%+EejREs$ilPTHD*H09FMP+v8NrLItoYn5c!; z_I4_ORl&seIMuRH0jvrpYN55goeE%8FtI&OwJcNstAdGIXl-w2E?DQLxiroFaz%ya zj%CvvX7+BbiJ8rPw%S~<&OpDp9xi8a(j3mT}HHD@>Zxr%ea5TDwxPb;wtX}&%K^<#?Ji(7|wM{rE)DL zdsM+h()PRpeJ$Jgn1|NpT9|u4NW_KJqGbND2(AUn2p$Wxz3N-|xMGkz1A>AIedTzAqVSL(Z*1wB68G`g-pv$LC^Ey zE3YHM)tcZ#JOeBY`M`7uh=9AO$#Sb@LovzBqMJ9SVX~Ot%Z$HI91bjJtQIEiWIX*a%3O>kz zWFmZYmAB+WPoOwv(H&2`HHaR;Q`A4C_F$ACYO76~HiBN97MItAI3iK+VkRQVKGVj$4cNNdVXbm zRAOLgM)|@Vz2@q3?#-!P3Ysc z_%<#0z?-zjM;xKLQl3j`48NOy)P+83P5D6JfS1^K6@{p(uoeFxA24h2yejrFW1s+& ziN;3^n|H{-1Oho<=zw+ek9SZou&I3DT7&O%7#{;{{_zcZ=s5jT_s_?>|3-=N@ka0? zrj3sXC~p)QA8!OdV%qq?%SBTug4eyP@?v!`%Exl^V{KNdC+QIf08Z!Ub z7iq?a@v$!i_SGBn594EB2<)pj<{!q#z7W_~Z_Gc8k9{G4+q8YcZS?mh^AF?Wy+`24 zdhZ>zAD$j{1pTME*A;AenbO2_$L z$LlWs<-D#UGV#I0#w)?7$9fST2mI>t+GKo;&#yp(GO>;i{I--&%Xu+Aj1PbG>|{NP zAL1YQ^g^=5PLq4)mzOylCUy+&g|EldmMomr<7OrTK^W z$FJK>XpsR%`8e=r{qW0+@(Y-UGY28Ea>76ILg3ES;UBcPzKSl!E4&;^>abp#j1M|s~I1JZDG>!D&*r1FqH|<2j352 zl<)bV0HqJ7LDulTw7f?`K2Y3py)>DBMEqmS2Y#ZI_zT49AHoL^AMhdQi+?Cx#>dj* z5&9$lz+sJ_xs;Kriy!8cf{Xcy&PZILk@EvL2a#MEKy> z0o-xlonMKA04<(hog4ZH{YB2fK%ayQ{+24F&OhY0GUM>RpeSCU{`Gm=$i8y?nL3 z_@KiODH)5ffUw2ac*ut=yE4a00NISJ`iCxG^D(2bT$N|awY}=`12YRQVgPg?-kweq ze29XowTvIa)#vgt{Zd3k|m?3F{iq$xM&A8?Qt`)%r5yqZl86QsOzB16Nx^KHy<894YV`&!72_GUKBVADEQ` z;?3cLc~a#Ap9kZRCLG1icM&n@MsAsZzPs~yKEQeI#`^I};yJ)?4&VgTDA1k{$nO$w z5M?lQk*SUevceILOE;{E>R-Bu2V48SqIc10e7pcymkJ~jq;<&s^ zYJ9v4`M6!5o9=!ybG$M>lsMxfasa0e-iRt+yY(qroDil=7#|V9QeZ_?jgKfOWrfCvdwy4= zNHU;JJ^GfcxR5U6!}xHA%zooXE00nHM>Za5>9_bRg}9^N3z&POfBY<*sC(*pw;#LZ z0}s30yIx9Wzy}_ryz85Sfztc<_~JQM(38pR-^T}c2|j|Sweg-TkcKz(ug~($PQH0V z2KX`vovA(GkxJ)OcuqefrND|dDd)R<6#Vn}xZVCRqRU}U#P!tzJl=&@r8pY(ug`Mi za&OYIOx}&++qLp;En#~e>?oU^7W46a{6s#E&GEbA1CHV11z&F#`~kbZDhL9A?a9Rt z(1*?L9YQ{phcp}fh~lEk@Q*JUu0GE{FuBt6p%4>XdInIFrF(r=ww*VGd^qQ->>pn; zTzxzrCuN}>@*&4_7(YTj{J~x~eth%n>I36P^YhjD2N1=Jv-Aq@9}gLp^z~T|VK~2% zxH5a^pkhOPqVmM|?hULl=0- z%OXBrwv;SPnb__8758M!hf1F1I1MYBQeYJ{k}|PdK6vr{jC%}^)`y#cGHTzW+WhW^ z%naje6G<9VV8vQoDNC8yFCUnS8bF-b@rPW4pm3m!OOsgQJQvTIS={=HW5pC$W6jl) zl!+blfhj3oYv3BhuLX2&i$o7_UM2E?zr#^Dqk>N=LW6+w>xojA7byIb>IctBkhYWC_21gRfhWkJe$$PbyNAd~laVQ@?}>6>LJ+ z{A0}_L{$BJu3rnjz>}=Vgs$+x>vy0mSi?Ug!|1~c#w!OXegRXxfz%2g3{Dn5mhj@@ zc{h!Yd0qjXu!9ex+TPJ1<9WyjfQKgi1M0|$CcY&H2B6uVAl3MRTV1LC(6cs9DHD4c zuSUC1L=}7S1mcRMOgKJRE??t&;sa9U10$N}12kyr_^|llA(^%A_+b3NF^z3uNaBew z#cv~eK5(c*K|iTTP1YvhXV1q&f(@!j0gLnegI_<8(*^n+Hh7yxzEvgP$3ycI>96$< zIlm&fEq4J7==l{Hk^u04RL-w39Jx;_LR0wwV4e?mwSmeU#8{kn{Q(v*UV?7?`mOo%#t|RS5 zL@5)-#{#fk^56?2?L|b!M+B6VC{N*~;=unP3~uqud*58l)1k_-r`C#V+C@p52!)sFEI;e*d1o7vc`w_$FK1HT8SU}FcltnyYrbg-aY3t zS-fGc4_fu>5anLlRS1ix^Tvl8uY&h$;UDCHh+gk^JPOMD4Ej8k^1-L5Fo1{-%D|Qk zC&+jyYWoV)9E2Lihv%bz{~UbqK~VB>Io z65~Vo!1qgf|Cof$_?Uz!qOjWtkd0UJ4U@%9DBORB{>xF8~Zo$SY z7e7|=AwW;ZZQ}!{M#p)dAyOum^3n2>WhA1-lYx`T_}H2cyl^8^D!9~`k&KTFK5*3Y z^)ep)c+VD42J^YRCgC3n&z$__3xeV%d=ZyV4f5R%x%A+~uuk{N=M`s=Miq-69|ubLIvcOhp~i_}oeV}xY-Lt5KE^NsYC?RF zzdOoxzDnnHSqQ-K_aN|e1}e&Hx55&ONQ_Pl`?qc(ot2D_2uuLD$dj~#1FXDfv?_DEEB`7lEn{V zo5hDt?jCwRc&em)@bn1@lkqJb!H-vZekHHoQbA^SwUV7*5w9FRr2evn3~bA)#I!Ab zL{PzTzc?8mQ;@A5ujXGZ1YIyb0x+W4)qF%-t0c7XsuIvM%@`jufvTitd{hE@rWxa7 zCQy~sjF0jBZYAiWW{eNx!yOp*zFNdX%s21vs}`ip{A27NBq#umPmM&<6WW7K-57`>EyP5j;jsMG<6%zkquw8MPNMg@ zaR)F+xEUU7b=fDh2b;!62UDM!JHP9wkX6Tre1J`E1j<{3?!DRWNi1yRxe`8{hc;2m@2gLlsP(20K%%ggzYkC%~; zE4@h`L7|4!@1UNQF+P-!+s_vVETD+QgB*EyhI?2+o@5{={DWG@6Q0HD%AkG4GmEY! z`JneKOvZ=sar`fF3 z054Ci>(f`no=>pzd`r)-)Iaq63J*fC2v08R`IU`VAt6inXqwPJTq`mng)LUdTl|pt zVSHRJ`?~*O{;@AU5Inm0(T1m~VLmco#Rj#BDv?$?k&RbwybAdk;5pdnaO*P0M+e13 zW?4KB_>ePMZG3pj%4uJjwhAnJK0?~Ue4sifYyL6zj}#xcK0M*-qaEOCd<@`tv9a1e zFlnpvx#A7}aw*L}Gl5K^gNwY6kHmX%zhadZ zzhJ6Wd445rjV+BO#>W_ww1g*6ixbDT*~$2r4HXqR7Z5bc=7?y0o_$Y~Hep|*zK87V*Fg{A6nctT2k&j`?7L1RQXy&(N zeB@(TvIXO#B%1kc86Wu=mTbZJD2Zl%TgFE|h9z4tK1!mQ->V6n)z)RANd%TY{B>_iDrIV#z#JeC0j5)N}`$Hmhq8~VaXPZkCJHSw`F|f zV_32U<3rHYw>kZiBFzui3cT0y8Y(TcG(H5#F~%P4aBY0#9CdTw=cEneV?W=^Fh2CC z-^=$hln?FGFi)>}me7}Cy1gtb7qmTSM;-X(>kgmty;tsc9Ao2Sa7<)wEQ=q#v7Q^_ zqemq_XMDslObv;9iyt~f`?1S!={9|4_@}#)lw4#D?RP-)6DqBdD$yr4HWpEskoYOzhb|6l;wR{?O!(c@9)& ze2mC`Ay|5T6=H0Bya0A(k?|1+&c>@aE>UR;tf=xjVamk*;|JqIKZ^A^FSq!y0 zuRQKPnvfCYAmnCApC)xv2k&IX`3fl$<{uFZQ(#3@*NRdmjE@MSDX=1{Yegv&d*j3J zAIBsesls(1E3{m-!@No|mnpC^n+>a{Oc);_N-m!QE26qqlrmv_L=a7Z6;WL)N|`V| zB8aBIim0v?rA+LL4?Tko&tv;@TYrx0*F)X4xJ2uvz=|rb6Q)cU9}zrLU`15dic%(w zj|ieEup+8!MJW@;M+DInSP|8=qLhg}@iE@F;Z+FBeQX))7L=sGs$jzSh=6Q-L_nd) z{38L(YVnf!-LVnlV~k0jWCLaz!lQYg3)jqd38NBX2WzNf^eeY5{?VyNGbym5%IkzF6CcRO zg?!vE9F}+ z$Hxo=Q((=gI#(rS!uW_Fm;x)Jx>l4ju_r!!RNy}9RY!mA(Z>&8(j&1ZiuAQ3xfECt z)wQCO3F9MzXbP-|>RM6C#6Q5t>$$@ipee9ox+`TV6aN4oi+*Zb;7x(G68l)SlnL;$ zZ93j!-HFP=j_4JKzwQW2!aSSdcGz6|eCzKKmP&q#p+S42+C>B@6CcM1ey#pKM9laI z58>MWA;&&^gp*aL2Ddplm4)py=M`HVmQr>&T+UiN7o ztH&$&$K?v>FBjg9YO#J?&UgHy>~OhX@7Du3BOh8!)u)sK>q#wVGi72=e0UDHpBfW< zZ17Ae0xG43FAtG{4`_UNT;LTb0UyAhJb?wxD<4`M)^+(5SP|8=qLhixdsr*JT=vP!ywtC$p=Hl}^mV6l@S=Dc^dPR1E3IH6 zw~G$n5OI%r?=@km@sSPr%LWwR5OL$>itH{c_}2K9XnkT>RVMUTtyfv2yK1~8}n;}GrU7_6vT zj&N)O5UPKmSt9Gvz0zfH)TiAHZ9;G5m;UV90u4 zRJuMqFC>-qW#L#v9)!WYK$Eskjn~N^@2W*#2=%>hs9d*tKj}2D_XAL7{BXWOJ}^%L z+?j(O<>bNtX(=oDG_dQ1W!DiCBR+^Hu_m`P&0*HMm92^DAcj`4wJO z!;nS)aOYPT!<3IboL@}?l%X-?V_rjL_?TyFtVI%C+Wg?vG1Z%^v0ldq`sq@i^D!js z^&nz|1?%&2f8AC8Kt9$0LzLge2S>Ip86N`0JNf9iV8-|`J_ZNGJ~q66us0eZRMPj( zNBrket=A}$Gyf16jgKNnQ?W*jk77_3X~_5}0^??lXtdCCV2vm~eyB-bUc3VqKcbL& zyn7b<94q+pXyqKC@exJO-JdtQsZM8s_V5q;>O2%3`^EDK1!mQ-`1Fq;n^!|8}sr) z>&{N0_9D$xFcGo3Ok{j4!)t48<6~=tm$h$vEW>MS?LI!}+=!17L%W`}@wNO=FJr61 z;9kK*1^`;s_{fH^XamMaQ8=?3Gd{8*EZTsN7yhckZ>tfF8+~Ny<44g>u(1k*dj%8O zuz389k8CK5G+=xbfw5R4#z!$IKdYe%gL?%NpTkK7uqv1^J{BNgeC!J>~ zD;&HPOzaEOoZeIbtAdFf1ol<80$3GH>Rks3I6-?|4)12N^0IPzD90c}Nw*pudOzaEOoZeIbtAdFf1ol<80$3GH>Rks3I6-?|4)12N^0IPzD90c}Nw*pud zOzaEOoZeIbtAdFf1ol<80$3GH> zRks3I6-?|4)12N^0IPzD90c}Nw*pudOzaEOoZeIbtAdFf1ol<80$3GH>Rks3I6-?|4)12N^0IPzD90c}Nw*pudOzaEO zoZeIbtAdFf1ol<80$3GH>Rks3I T6-?|4)12N^0IPzDg$Vo~mGCn&KcH@bA?bZ4+dv*Rk=polq@bt|vL<r{Tno#A zR%O?^!tdt5A#C0VyVy!fshgZq&ts#~UI^eVkBbERaL4^HOx5y$3;UmdUQRL2dQf0q zyz5D8*MV}0xLg4os;8mgZN(2s5Q13y6m$#ho0S4fa=U2)E;U*^t5-=Bvx*>xN32n7 zK36GV4}Q1^=8eKHR9Wz{J4ay=)t6ZQ9K1xfmNfjlQ>t%*cJs4pNQT|b(2lgagv~AR znpl~sFT#mwR)zf(ahAF77<}pzo%#bpPpUf@$TQpCf$iXNE3Pb4?}HAYRlwZ$E`th# z1@F<)tpo$+(f3K6L|{NMSARfjY~2Fsc>H6?AO}O#r{WZh?1!&0eJf;)RSj*0vtv+m z;3LRh%xZ|wi-BvUsS`4#Cncx-PGiWMwcEoN-7$imV?H* z{oWa@i(U~8cqhxMap?C9Tzm|24Yi|`Glg{8V5X|6LLar!G>boK1v+Y*poHT0$D9{b zH60X1)09Y93wikvFP})FN}{SObh<|Wyh>Qp6$UYH4wMm*8bh>DIss}}{K&{lKPiGr zBJ+?+Q!E98y3ugHh^S`8P;m}&Nv+dvjRFIT#u7OXf{2u$skGL4pBAA+R>hF;W63jL zRivT9VNAfID9S`UxnMg$K}^I$r!WtBvo?V@pj+u-meKTZ05U2HSf)p?j2l(RD+&}} zFTta7dK~o{o1My5ILX<`i`q%J%I;Dxu%uE4D%^#fAHs0kM$xp>iC5ATP|1ZpO2ZLyW9bsHlF0}& z2r^NTO2I+T<6e$FDX3D{YavAwcR?Z(D9nhG?xH7%BqA{?Ydi_HxCltxEfR^48IjNo zi8iJJCn71NsZm5j@p;^!(k#qnv|QIz>Kd69Jv<1I6Im0hHo8Ks zAwVUphlRvXD(VxPgI}{_$IpC&h%^dY#{ZM}+X7`oAy1bt=z diff --git a/data/waveshare73-v1/ap_bg_preview.png b/data/waveshare73-v1/ap_bg_preview.png index 9f7cddf4a7998bee1b4a87eac8e465e17c753007..81af1bf4e7c28e4f18625c5ec77f5c89edc3d27c 100644 GIT binary patch literal 12091 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

Sx_rg` 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 Ra8o=W|5WA4x5uV${uj5fUoZdw literal 10541 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 W^g*3*6Sxf$P*hNTR48xq_CEj;#N0su diff --git a/data/waveshare73-v1/ap_bg_retry.bin b/data/waveshare73-v1/ap_bg_retry.bin index 0a73343abacbd78c7a9e19cab331af528ac1120a..ef97b20c302801df168d7b303d1b0a4930498569 100644 GIT binary patch literal 192000 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 diff --git a/data/waveshare73-v1/ap_bg_retry_preview.png b/data/waveshare73-v1/ap_bg_retry_preview.png index a8f4537ba82755d906ddc98295c1558fa7b4d482..a4bdf8e942d6dd4bd58112c1b7301f9dcee66239 100644 GIT binary patch literal 11736 zcmcI~cT`i`pYH)gkSa*8;uVnILAn*CgVK8ysR3!B1W+j|0!o!Yf{mc`B7_>6fYc}@ z^b!$}5;~!T@{Zp5&7HY(XT5pvt@l^f$~yV(eX{rdwC{duWN?d~hKmLO0DA4)H|_uc z#d!cAo1rELzv*{Hz6Ah@9PJxdO`zF?N%f#v#cFAXzTj2uHT3VC!4y>lcB&E>H=6`tfzo|J>rx|hF$($jLNSh$jKm<`&?j5X& zt=(DC!(lN5n3P0>k&WIFAQrZ}-M~IxQZ*evn!ZUcoOQXzT-<1rTXyM^?7IWCuU|Xu zkAsecvyj&KOhcu6s#S)!?N3Ms&i00<4Q4;&w5%KQr>9{wXQd`Psb_u&yQN7=NUHY` z_eJ(Ua2CfEm@7AVG;T$lEHtik3&G%+u^L@_u~y2{*D`~q+auU!F zDzNZTnacC>AN{*Rn4YXUv#NWe?_Qau3M zVF|+Zv0Qxi_7xp>FDi%BgOrJGe_aYe!{aF=`>DZ$oB4q(!mbKl7q)9klYcJ#a2G#m zMf>k2H_XV1odi<9qai#c&M9o)G#}7B(e=2$tI5mb6)qbtG_2g&uqrj=O1E9pRpQ#I z%&DO4;N{dZZJYhwH#ikXBPZ&f5Oa(Eq30;gp7D`PSOd zW^9)da?)&i7SGkUjO|o`F@zh~AFpMc*w!)vCbP?jDuqO>Elmx(!2ijC+JO-1njRGb z44&s7|L3Fj-<+TScqYrG*49oWC#hZ!M??Hx^<^RC|e;)e3 z9z4SK^8$O#5s?`h>U{R)3H(WDNZi8S_WWYR?mCw)D(!Q!WoDlcAj<4O<~hi@&66Z$ ze?7N#H$mWm2Yh~hQG>o7g9+Gs)6*#gs=KlqTnBl1_iPJ_L)7(MG&qN&R@;La zmvewA$Awdhv(WG}H6H?=tb?B?Dg!1!{8%kQEvkt`&uQ%PSwkyN)1Nlzrt z8PC|=jm%i3_$n5D#NG3jZS7L^^Z35zXS&~RI7;3Oa#aADP_`GEp7{+G@AMC=owOn} z^A6t6vb$yHKCPnw++L|S(U>0rKsevlX$!*WJJ@bD0913yowjf!YcdIYA}Y>EZIin# z^?{f`{&+j7IN*4viT8}NDe1^|x}WZi9!W6TSCZ? zU9#~(;N;dVar=JR5jsRd7%_2SM{c|fQqnhJx6kW=9XVQg7iHiWdgU-?Y;EgfIzox9 zXInxE?qe9~RhQ%*?|E5ZE?fmIwR`!Y{k~+G}s0vTQNhyJU`v4 z_zbJeaXOuLTba;kz5yL$Y*6cH2`$5>D(FNPB3WVQdx1#bK zynT22wwdBepscQ@+OpF@qTrDiW8|l`TUosajEvt`K5gMFFHJY#Mq^DD8ct*h+_Y7J znB{A8F_Gdslc-WdZ7l7tQU%->cy7ZQc#++5jsy{|z+kWG#6L9p4l*NX&`FY{&ylKX z_7BGH7FEzA`bCWNm)Y~T+8@QxOlP}IqkO9u=6C^(q9IC)(KrXyQ&F_B4q+sFR3mF)dD&IL7?|0zm^>>0G~s$V99&bb z&{BOXZzxwjH#$HW$6FE6Uh@fYazL~SHybePQv|%apZk}NnX959V&582z+)BI0=oDrH8%g`TWs~Fo}LpHCo&lLCST9+n*fPt>vx^c{$gH zg@0@?Cwky@TY10ObycCQ$!_errXZ2C}7OWoRw(n&&@cn?H zXdgG;r*?P24l&m;_4ALr)qf7>zXC}On0|%JAAjftY&aM*?|(K+ifCZ4;{~b zriyCk8yjg5(ozg8xo9A z7n`1i(f4R+zM~))ak#MTK-RstgKcbWlq2@O{eXX+zcwVo3vdWMrtDd*S71;{v4A}e zMtI7&WbmK@4H#E$+-r*Z7t)$rTyD)hJ@}oMGQ;u7*?-BRc?YsQ%l(gRa_E_q7k`N% zfol$@{;*k)X{X6ap!=n>#=9M2ZrZ$EET}OlIScIln5QZ2|1dYZK_slJ8NFVl@$7pN z=7U@fW-Jko4YnJ zC%(hG9;$hPTLC#*#!7~}bx2tE!fn=c`9&Jw!}2wACZwLFtHAKK@l7Bq*XE~a%Vevk z|Id-*4QQBbdY2Zr?M-T+aN;>i%5Y&euw}ES161eiF(gjqt#j$_M*x!tHFZ0LoFr=}^m~bKDXlpIE4gkEK z|6ZoQ2(MR`s=Hngn2}5QYgPYN=5MlDvHRLP5ZR0J6FV}jOvwP7*uRzht*}YY$#A3o z>tY5|Iju2u!64mDPZu3#15Fn+oTF~Cf+#(^A!su%(nB6KSVd7t+^vNibXSMeoNOef#X4-IxoF8%<~J_{g7X;bX`oZ38|GD<+CSDAQe(I2!*93;bZ%ovnn;} zo}niD+e4GB%d2<=w%ftj&?%n_t4=iRz_3Sp+62|%#+KpY!1T#J1UKKJ_GW&3I6Um4 zXJex$A7u8%+pPIx!umvbyug7Lrp4~fk0@{h&W~TVvcE2fkkTyfBT(oEr!$g$Z3+of zRhyRI#W!~%^O7LQ)oBLoFLJ)#fh7lu+jHeC8c(+D_kuI$zpK4@cwYz;poUrDvumBj z%m|(0;XnE|)G_Pba{zud;Dn%03y7G>E#!ucli;i3IYA^Bmdg_jJt383P4iw6PfGpi z#PW|5_}-@AeTyzaMU9zR6g6W5oRiQc;XIA15NfF+BFO*7i|d9oKyhbo95q@pmbUc| z8^>tB^OOq49G1TU|zCIJxcC<4tg`e){-IrYMPvt9K z|0(JIvUNKA^fEMjpD!akt4rNu_r*&OxDdjUb>0t+b}LC&Qu_KeA`%^0-JRrW^n5*t zaukI@k?MJo&ig3$DWQdIC)2WmQDehGev70P)sc!O~m54On8jmZl{lbl065y+iu>Ulg;RFAoZO>(}p87uWz+*LB0mj7_ zXRE@9uh&TGFV2UpP$)3+kS6|c62`h%cfO&|eu3#CjS)OoWtH0~$qNHS3R~20v7k^B zYz+c(ZjqLYgV!ch3Mk4+_GOhbt_i^{cgBN#`Au*q%g^Q!^fGeMuhs=6csaYTuwop*7@^=NqT)Q=`mUlt#DOeFP)RnaK0zFc1a_z z_S;fdhO)v9YQV-|5_%u;&D0qrombXH;(J}}2Ra~>M1>3?0?}t;smcDMZSUa`2hv@b z&Wc)LFG`TH`HqEZQ~-+2pai+%3R;80mbH^ZbO8HEKIp~W7bSoE!pA>dzhd`U$Lh@c ztgE+a-uGd?_oyAwZ*&^IdA6Yy_|KjqFi`=Uuj)R4po-E5RW@K!wVyTto_vtQ^asM# zrZBunHxJjw#)7a>U$~ZzXJXty#2H}ZnYUZ%wO0?+FrY;M5dy@M+%OZD#zqpfo_6iM2I&$9Sn< zV`H5=2ASyZ!fn$AbpzNG8Dxd?gBD+ zg>lXLYqk47CtN|Zl#`gC=@c2nSc3OGo%nVwcjSILt1dce$y*J**jNf#eAwL664wc? zlW;9LZnhuf&Mwht8#nV;bGfmz`5e)(UOL$L#&egRD>r1T@(WvD@rYtY5d;^Asx>2L zVMyqyg|oI~o)!BA)N+VFVy|))y09;snlLlc2gtI<3W;rhoaX#C-aBxV<;hLv@YN}0 zVm2r1ZofI<%&>s3a>&u-$WKx3JL2NF8eNY1?t7!Vg3$*I?;&A@iUo3$8u@5%lwFx( zScKy|u)hsRI%adJ|}xUr1c{YyVmPM2#qeta^b zV~-LR?>$>_x0N+Ws7!?s^k`3u@>0GI5Z){rH&6oY2b;&okR2VvzLhg%X4(OPJ7V6o z7m^%hWbJDI@Z10iI~zR<%01f({;bNDV3WhlcBvTCz$AtE4K2Ni!UZMRLxGmfpG$H- ztxwScBgMLmOzj*Ms~#3v^AH7~TDDtiKsv6*TnR`oM;>Z6MfFaLy7>vx+V_U)UfmTt z6;(M(RIwO+U>5IEq{CIzUxs7b^F=T_kQwr*egD$J(ko((KK4c>!6Tf zyBqE&raY2nLmUZSYpbq~R7DT3hJ>1TVAt8mXJm`ro|GQ7jbd&&)~Z`C`J3#UI35X) zFD*B9KIUD$vInv9H`CD2S2csKAgI!KyVpZjJ>QltV#1`-b=Q`vV?QuOE&HmInF)pa zffjM`;H@9oE8>GC#N73Vr41sl2=YcJotU-+N87Jki7NBXpz2s#%!b&iWM(}jDb6OT zPwo=dd8~WBBZ+0`_yq6JXT&6K0F~wX#P{XZbnw{OZpu$x60)XK?+pRLdLsghn5)>< z>O_!{mJD}xifpxWRvg}aYIVE4RxIbc0tyqN>^4O(Nqeo~6>nIrI-8g#!7robeBtDl zQRE2Bje!kF^NL_FJM8Mg@OCil(oI}AIP6Ps7rR&t?sW>e>;r}%RN@YAm>VOBc*I4` zR~x^x=%wOA*MXem`rz`UbaE>|5awSBd~n?&!%dtkmf8=@>g!we+HI-m#%d5hos3q7 z-G%!=p1T#g!;=r4@}N4jDXD;O|4?7^(z%7v=)pE$ytL2I6x!?vp=$85?~;xZDlN~D zYSZ71CoE6yZ9xmFVsYzTUyz&nyaPxqU2kB#txa=Gi;aB=i=Y{)7%S%w4rRSde-+G}p<&8QR8{9TYU}xJK!a*zH^Q7;u7ZVjSS#AV8l<|1vJv{ovfwx@Z>n@Q-VG z*=da2vxjXXJ_~jfL*%J@;2~J+hm9y!1ic#Cf%WFyN{j;S&eW1$v<{b2^p07(WX|+J(VU4K2)|IF_n-v2QPJoOMD_Zy z3P`sEmhjF=sk~;p9{sNJA?ruY%dr#Gp8a1&KmG?X@F}BXM#z*0`S^ zY}*xIrmq#ayxr7@CMP5~W0?V)hoF7|iBaUp9K9Lv#CLZ+R1Fh-wE#*gn%w}Q8y+#; z(Xz1tVkan8%{n*sn0ILy%e%%CP^VSS2Jb`bd%vgQh59!UN7?sH_**iQV3#HubTr8v zyd`-ZjzFFLTLZJB^*(~7xhjNYL}|+NWQa5Z26g!y@Bj=PR~iOQNUE^3w|pna`=rk0 z8@^NMKqz|%{zNgCF{X~9$+UKxr;x*ZD7m+})_s+P86*WYhSY+gM_kDvXzX6KrJcU+ zC<;@2jDbLxpU((Q3KHGC&cTkJ8zgoF&Zh|R-D|5j1#p*x4(pk~@W!5O5Rx>GSB`e| z>jvMd*i>jR(@xOb4=Sc*(u*#u*nr%Rt+eDYSdb@Pm5WphP8H?8^XM!1=y&)B2uoC$Uf4 zi30B_T9d$dPkHt%DAmJ5B2UnvxpNuQaU7oKn`#eagyQ{W#qA<%18!kN4+(aLak?fa zvo5_jVj`G7mP|*SVf-H4oL}1kZ?m7eEKXd`iIl=+@k{u!Ixc{lu%N8TG}_X}^r-e4 z5alW%P339LG&FG?DvO_^%Ofvk9S$nUHvIV`nz0h?EVXRZo+@+C{1CGcOFI{Wp}B2fCoo5}*FjS%Xbdw*5ie&0wu6@pGi#i*d& z^j+puXO^ckCHd3QU3B07#8zWygqMjHQ02+xY0`LGDcO*p}1VpUENi+PoT5ud6)}JjG479 zBPpWlK6k`uzTT#K$#%|}tW*FD=AmWUnu|p*2kQ0|G^dJcew>b>*w6_VDcp)Ee_9wW zjvF2?9Q$-^L;#1~f@TGlL-wR>$But6zFqs;Prg{h9B0j6O}hhb9$FehWW%ZxP)a%8 z=MYmuurft#^rvnvdTryAH_V>ukJ6Jl>$sbk4@6t8jDQ{#iHD+dJ~1M=olOO-o++ee zb8fW*)#Tk1@ukHeEm>W^mtpd1p$?RKurQtnR!Y6Y(YOHjAW@;A{y9`jO~M>#Ed_>B z)7>G5Q`q8n;NqbPbY=tcen_MA{o5%rGQ_TA`EyyTUT=*Q8}p^4b~d2n2H%Es#&S*R z^@z`sRJ-Y12A#f3@Z1b~MuW9$%V7s>dgdt#4P?%p!_+&ku*R~q5}%%HJAhwe>FRh{ zjhS?gVn#=IRJMO>nIKBDa2Vd67-4{YCvL9<`grl*99w9q$Y860vjg0lb4N$hxg_Z{ z$n@4_NY+`YT$|cI>{(IF!vlC`L^si{pt9i|9JLQxv6jcsKPrE#m&W=H#g4|~{avSq z{crPf7J|CcV0*5=O1K837uCpR01&Gn0J`@TVk)QrxzWR4apD;Dzw7qj-8!#y?NwIx zNkt}ZV1$SBAA5QS^`dt1rDJSl4otsO4#jY(7EHkHv^3s7b0_>p$1DL1ltK{;qibu5 zWoB(=2WJ5GQam6QftXgCRMNjIbNUy)c8nKB08!V5m2ZGT8cZ)@BHf`Z$o34C-O07J z@>J7<%d2*G2v__OJD<>TC&a+L=dI7jRg)UDHy^!mnI;x~>x&5Do9*0U1c9N94#%%~ z!oqh5s^%dv5XY3_N|JU-b$iwBa1hUK>&HM2`izS(E*9`naBLqq$)dbutdAft^K*i) zy92qx9~w8+&UX)Y(x)=O^?mkNIk#O=NAQi9nFUhgdB(qZsVg&JJD_z47W<@}U{^t0w<>zptj9l+~%}8TG%yP})qbxR^4#y_ z6L_NxJNthuZFujwA{@;jkH}!_sJ>0Y&If;%jxTQHW}aC1updN z`dG;5WRoLOt+<87>Zi40@!05n9JbGyEXwfvzXc0=wyAXNxQ4DCS5GekFjByhs@BnA z>b#Onj2_mL8rZQZWBq}{U-8G)Llq0tU5kpnZtfI?f9>WSMv(16Tm-ww<$@H2ze1)1 zFsR57GDPU9LPG6`7ZB6ioD@-+UVC=Y&8cn5WWanW0T645=?=*^41?GQa=7SfN$|12 z*BF5<8L9$Q>4RpFc8^`fSUzVIGEoA<-mPS2U(Uo-W;pSj%X7(nsSh1P=CgLWEZepv z6IxmeR4Um!x>n6O=%ro{jT+f6!|r~K4O0!Dq3AZF-<2R})t0Tf$@s>q7L+5|0P8Zm zz^_cG`kn4`bI^#+ZzxLUg$!g@i}n4AT3;lkwk6}k)HQrC3Cp?T#}RhGLwn-lQffgGt|MI8qK=;>6ucpmFRcu?D4Uk}Lp+n0seR*$!!*J6`2@6Fa+J+nT6?hOHSE`paZ^HbEq(rf4jW=kRe)bC3)$FEuj}BfDv)=%# zSaSC{B;1Lx&cYKjmf1nyoS88<1Wv~O z<+Hd(V!GCgQPxyvi3o8(8W$^E6Z~xJHSJm?k5)-L+wz2DmDIY1I^R~stlsqtloR3kT;mNn@^XETQKvoAw2+qBJd=5-P)Z{tYf2Gc5GGL=M z=Bh^&Gq`GLJul&R+_bF$;BS%9O8&e<+ACS50*JltF#w4CZCciCJcU-vw-XTdrgtzU z5dVqzuc20eFYiB0$iI+RfoK<9*_A{vwC4n6+L!-)on-Xpfm?zXP&JMsnz7OZ-IgVxao7srf@cEDzPJ) z9B0CZWM$LJCGnbId@82M!v_aSVDJE{foKa;Rm-SnVZ_gF1Sz4OZgWsAVYv=K5FY+& z$p_4ze|&Ql42Kt=E`gH)(=S>$ru^tf1uy~zR$jb?$qEHJRY|s_{P)N*Pp967W88(s^t14Qdrwav z_;-%$Gk^_)wVnssHe|k>vDAx-FSK-SO_V!+PLa~D4}!ctHd*-TvgMt5dYF-1T8WIU zVQe3Hxmit1R3?Zs;-fo!y+5^YduW=t0p(`jPOc=M+3aclUf1_TbbRwyb7iuQv3~oy zy1MIFud5+xNowuA18r2d1vsy=Io)}a1jH=`*JE5Ni7tKHTgMt`DyIWkz~tVO7X=r_ zshYTcZ;GmCfu-%m3Z{1=y6Ou=+NZ32b=uq1BmfKHf7^cIv!HR4G^GU0+b;&EmxVzU z3eN;==COmC0Vu$!<%_tY!2a~w3D2%Yb}Oh+tFb-cGBn*;9I$qmgm%mw9UDkfH3@QF z_)!OiWX^8P5!P3bFu<4Zdi3G>UaQ=s@yw#?+IUMosP{T3>r`Pf!(y?qLTbV zx7%to*qqkF$CPdJRBXDKNs(yEr$C;^D)516{4d_#gF`1CJ)4?AgVaTE#* z>&TkNXp>hT9T$hxCm8qXZ#6K&?pF2_%CG`+=?X_d&?(JS1}27G9)Lz7NUBA7b$QtQ zo>!z!>UKyM+`@U`o~a+`H=8baF8_$$20gaCENM@%QS_9OpneDJdaOvSCqL!gN|kqI zo2a{P+dROSOX=R#^bD@V0;fw=v?ru0=eE%em}!g!XfNUV?Kx1UD^{j#3gmM8VAC^W zm3&aR$?40L=$Enfi_bsAKP__@OL@wP*@jA7Bx@SAx%nlS(0%&)r;QD$YBndF&$bQK zs<*Yd`SFFnM@DB=o?*r8Gpg@2IsnRIr-7QZNhKH(W3}v%fbdL9&*{gO9hD?|hN!9q z<2X^daT(uV*l-2rvQHxf5F}H~u~}HLg@x4xpGe&WXTn-bc7DmgR7&2WK*!^;nrCOD z&S2^rPr}OD)8SujmxTtLm-!3c=lD;^!yOPA^zCh(>8sS{EvhttDXv!se+=5`M+&PVDb=#_9z5@K2RfbBaftO@AZW`Ih4OP_XL0 zv5p4(z^7o0kEOdR`g~z21U8CDQP`eKQ4!OQGpo4bVnV!sa4XcT^+Rh9gWKyXX3)JG zX@`1LT<{?$GP9z~+0)7D$`pAd)DKM#cr z2Gn4#^Wb9Czu&32-V_w?E}g0_;qGd(>NaSYe?wcRaPkJ}R*p9(R85SGZMyBeknT|G z4~KHn_~+pD;oN>k-nxKQz7}}UL-`j=VkyUC+os?^WxRafPDwYm08Vf5)HC&vRq;oh zm1~_QW|MwpHCx*6PV-bWj6HrDpNG+VumA$PCsY;5#Hkm~?^b5Kkf-+w#(&(Fu%W1m zh*a(KcxUNZUBA)|ak`k=NAiKJgzK;plr4n2lk)42s?A==ubX9J^M{+4#HQU=LQN{m zY475ixm0t+6+DA3wp(OmUK>=d9bUb&fB_-@g>U(D@VyCas~U(RaAvJT%Gmi z9(ykInlAD5b5+hZVPKRf!+?TU%%0{`NwE zO-+f#Gl0fM;5No$|M-P z#7AXq3SAg1(=3f*c*VSOOGefW@z1qr7e7+oYtOk`ZLf#81ih z{FVEE)U*lb4VPO)DJVj9^hePp z$U&Zm@eV)F>6m*X?r6`dUswNi(=C?zO*y7gk8Drvl!cLHeLho^VYkY!+iyiGj}=@K zO^P}aaPoDA#`w8aut`xKtzWceT86W+xU_MhuOF*y4K0qX^0Wx$9pJ zUJJ_)^q(^+3NeOl<=nZ8!z>lJtxSk-l>rV%|3wOgF&Sj)ns`bMrz)E|FWBx7RIBu~ zBf(_p?^AH{FTLZuCUCi`CsotI9DAX_zuR-!*fencNNli{%Lw(F^^tBE>*O9*Acz$fwU_UH?leJOx6_ocfAHq zuj&DRLox}FR5d^Zb7evnG1Dn=6}GL-QasCd>iFZo zaXd*^N;i&->@lxI%X~1nodP#_f9@6geNlx119mQlyV}Zx4}y1gOjBHR`xg{vI?W4n z)pnMO%op%1#`o|u0Px%QoDb3f0QWg01E68-CxPqoY<$4kR5T}W)Tosm;JE~20}h=i z2Y@GstpVWU@7-8-4eY?rbn04oN+~-VZhxOR2$?!-``1qYVy?aZ5puZVr;DO}Myr5u zzS!H7IV|R{m?UWn0@gQ}Y!NN-gZ>GL@*=1y*|UP_#i+KH6=`Yfb66%xmC4V^Js32z zyhI3w>1(p~h?F(bHc2m=_V`})Jx1gfp=C{JhwxxZ$%HP;&)T_XLs?Q}eO)mEG|B2W zi>m52<%#odJ$Ait^~~leG$D+_r0wbwqKs+IG_UzfD5Qwvy|Z0aODfw~`9;akL+S(9 zX%sSR$Ro->ybz#Js7lp5}>xl6P(iu;6a50ZIX^h

MDd5_>9%aCKZeCK_G&&vC+1?Ys5xq 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 diff --git a/scripts/gen_screens.py b/scripts/gen_screens.py index f5bceae..bfb02c6 100644 --- a/scripts/gen_screens.py +++ b/scripts/gen_screens.py @@ -13,8 +13,13 @@ Constants exported (copy to epd.cpp): """ from PIL import Image, ImageDraw, ImageFont +import qrcode import os, sys +# URL for the user manual QR baked into Step 1/2. Static on purpose — +# changing it requires regenerating the bg images + uploadfs. +MANUAL_URL = "https://pictureframe.edholm.me/help" + # ── Display ────────────────────────────────────────────────────────────────── W, H = 800, 480 @@ -181,24 +186,49 @@ def gen_ap(accent=YL, header="SETUP MODE — STEP 1 OF 2", qr_label="SCAN TO C bb = draw.textbbox((0,0), "WiFi", font=F_HEAD) draw.rectangle([28, BODY_Y+82, 28+bb[2]+2, BODY_Y+85], fill=accent) - # Steps + # Steps — step 1 is the unlock-first prompt because iOS won't open + # the captive portal from a locked-phone scan, and we'd rather + # surface that requirement up front than have the user discover it + # by scanning, getting nothing, and giving up. steps = [ + ("Unlock your phone first", ""), ("Scan the QR code →", "Phone joins PictureFrame-91F8"), ("Browser opens — enter", "your home WiFi password"), ("Tap Connect and watch", "for the QR code to change"), ] - sy = BODY_Y + 105 + sy = BODY_Y + 95 + step_pitch = 38 for i, (l1, l2) in enumerate(steps): - bx, by = 28, sy + i*46 + bx, by = 28, sy + i*step_pitch draw.rectangle([bx, by, bx+24, by+24], fill=BK) text_center(draw, bx+12, by+6, str(i+1), F_STEPN, accent) draw.text((62, by+3), l1, font=F_STEP, fill=BK) - draw.text((62, by+17), l2, font=F_STEP, fill=BK) + if l2: + draw.text((62, by+17), l2, font=F_STEP, fill=BK) - # Divider + footnote - draw.rectangle([28, BODY_Y+254, 283, BODY_Y+255], fill=BK) - draw.text((28, BODY_Y+262), "Page didn't open?", font=F_FOOT, fill=BK) - draw.text((28, BODY_Y+276), "Go to 192.168.4.1", font=F_FOOT, fill=BK) + # Manual QR + side label — bottom of left panel. + # The manual covers the captive-portal-didn't-open fallback (192.168.4.1) + # plus general setup/troubleshooting, so we drop the inline footnote + # and rely on the QR/manual to deliver the longer story. + qr_bottom_y = BODY_Y + 95 + len(steps)*step_pitch + 12 # below last step + qr = qrcode.QRCode( + version=None, + error_correction=qrcode.constants.ERROR_CORRECT_L, + box_size=4, + border=2, + ) + qr.add_data(MANUAL_URL) + qr.make(fit=True) + qr_img = qr.make_image(fill_color=BK, back_color=WH).convert("RGB") + qr_w, qr_h = qr_img.size + img.paste(qr_img, (28, qr_bottom_y)) + + # Side label, vertically centered against the QR + label_x = 28 + qr_w + 14 + label_y = qr_bottom_y + (qr_h - 56) // 2 + draw.text((label_x, label_y), "Need help?", font=F_STEP_B, fill=BK) + draw.text((label_x, label_y + 18), "Scan for setup", font=F_STEP, fill=BK) + draw.text((label_x, label_y + 32), "& troubleshooting", font=F_STEP, fill=BK) # ── Centre panel ───────────────────────────────────────────── orientation_diagrams(draw, accent, show_active_ls=True)