From 64738393db6bdd2742c583ba62bfa4197e8faf33 Mon Sep 17 00:00:00 2001 From: Krzysztof Taborowski Date: Mon, 19 Feb 2024 12:56:49 +0100 Subject: [PATCH] doc: rename template sample to end device [KRKNWK-18226] Rename sample. Add sample variants as overlays. Minor fixes. Signed-off-by: Krzysztof Taborowski --- doc/images/unify_sample_new.png | Bin 24986 -> 0 bytes doc/images/unify_sample_new.svg | 4 + doc/images/unify_sample_old.png | Bin 35393 -> 0 bytes doc/images/unify_sample_old.svg | 4 + doc/migration_guide.rst | 81 ++++++++-- doc/samples/samples_list.rst | 22 +-- .../{template.rst => sid_end_device.rst} | 145 +++++++----------- .../template_testing/sensor_monitoring.rst | 67 -------- doc/samples/variants/demo.rst | 94 ++++++++++++ doc/samples/variants/dut.rst | 33 ++++ .../hello_sidewalk.rst => variants/hello.rst} | 38 ++--- .../variants/include_building_and_running.txt | 12 ++ .../include_testing_nordic_dfu.txt} | 7 - .../include_user_interface_common.txt | 13 ++ .../requirements.rst | 66 ++++---- samples/sid_end_device/CMakeLists.txt | 8 +- samples/sid_end_device/Kconfig | 36 ++--- samples/sid_end_device/Kconfig.defconfig | 6 +- .../sid_end_device/Kconfig.sensor_monitoring | 16 +- samples/sid_end_device/include/app.h | 2 +- samples/sid_end_device/overlay-demo.conf | 2 +- samples/sid_end_device/overlay-dut.conf | 10 +- samples/sid_end_device/overlay-hello.conf | 2 +- samples/sid_end_device/sample.yaml | 8 +- samples/sid_end_device/src/hello/app.c | 6 +- .../src/sensor_monitoring/app.c | 14 +- .../src/sensor_monitoring/app_rx.c | 2 +- .../src/sensor_monitoring/app_tx.c | 6 +- samples/sid_end_device/src/sidewalk.c | 38 ++--- scripts/ci/memory_requirements.py | 18 +-- tests/manual/simple_bootloader/CMakeLists.txt | 4 +- tests/manual/simple_bootloader/README.rst | 6 +- tests/unit_tests/sid_dut_shell/CMakeLists.txt | 4 +- 33 files changed, 432 insertions(+), 342 deletions(-) delete mode 100644 doc/images/unify_sample_new.png create mode 100644 doc/images/unify_sample_new.svg delete mode 100644 doc/images/unify_sample_old.png create mode 100644 doc/images/unify_sample_old.svg rename doc/samples/{template.rst => sid_end_device.rst} (61%) delete mode 100644 doc/samples/template_testing/sensor_monitoring.rst create mode 100644 doc/samples/variants/demo.rst create mode 100644 doc/samples/variants/dut.rst rename doc/samples/{template_testing/hello_sidewalk.rst => variants/hello.rst} (87%) create mode 100644 doc/samples/variants/include_building_and_running.txt rename doc/samples/{template_testing/testing_nordic_dfu_include.txt => variants/include_testing_nordic_dfu.txt} (61%) create mode 100644 doc/samples/variants/include_user_interface_common.txt diff --git a/doc/images/unify_sample_new.png b/doc/images/unify_sample_new.png deleted file mode 100644 index 65a4aa940134ed4553bd1e78a17067ba30e4a893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24986 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 diff --git a/doc/images/unify_sample_new.svg b/doc/images/unify_sample_new.svg new file mode 100644 index 0000000000..45a5085e3b --- /dev/null +++ b/doc/images/unify_sample_new.svg @@ -0,0 +1,4 @@ + + + +
demo app
hello app
sidewalk end device
main
cli
ble only
sidewalk
...
app
echo
app
sensor
buttons
buttons
AWS
demo app
AWS
MQTT
\ No newline at end of file diff --git a/doc/images/unify_sample_old.png b/doc/images/unify_sample_old.png deleted file mode 100644 index 054301d6ed2b80ecff339a609f6dfc623e25de98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35393 zcmeFZ1yq&awl)rkgh;ChNDGKcmo!L;v?wUuxd~y@ARrb3l9CciiC3D<}6|PHskS30~+ICl?zx zC%@)Ve*-fUo8y5LZQU$jFat&|8D2IHFw_+d3maowX9w_6=`Q%i$pMh12qzPJ2MZt!lxR){hQ2U?8<-un-jv|HYp7u$&1uUeXK4U)G*FU}I1&cj)z0Lo zkFkl9g%MZ@^rVB40qnS$^Qgtp*525}{-`G>5EU0Aw=^RM7z7d|T2z3fS&yH$I6fX1Lp_+G9`8MsyE4wQmbPZL>ehDuINHgW)-JO426pC(w#Ftf zFtD-9@$~$>Kt9kija`pgxNd;6LA99KpGP|p`kEIJYv9^O5z)kcFfx4o; zbbz~_Xs*4jqm41jEI@bI+1vtdqGo3RRGeGN8R!*gGlyHl!2dYGM+2CJ8FYn=z)B%K zzX@&?+yb1K#PJt!Tj&W>TN}9A@f6Twz(~O)ZDF?1&9Jex0b>JWfm$SZ+~h=IkDBZZ z{w4;LWd8lL_}hudngA04w|515KOT|$L?4bX0N=4#o&TmxoF{GOzbev6qrtHPoBcI3 zwCMlLA%i~0I`Z!?A2Qtkpi11oou9RV#jz3pzdg7A7HLD0f#h>6ZGnG7+9zFpmG(*7 z|A?@U4dO4C#Q-=gpwV#PEA-&z_9h0#N4xryL=U{=(V~CV^pm!K8QJq5Yvtbzl>_iM z&IT|mJz!B_h6YAf0AfHI^+(D6#6A5>%N}4bl>Pmi>n85BJXhDEhw?|6kfe z9EGoc7f1Yw?)f+2{}Jw)^Ef8_Mf3kG|NNWS{|Nug2{6$=z#^dYdd7}`yZUEv=%3}7 zdHDa{Rh&e_znZI)wqJvZzwFxoNF)bn%zr$)Kf^QgoCL~$Qryh>d*J++clcAH=6@9Y zU;6v2qW{Z9&7A*6*ldm>BmWr-b$oaJpVD!^$@|Z6#lMHj4kk7ZfXjq(DmE5y=+i$V z`ajD#u%0;bKPqbD{5|siGn@nKiKG3aoWt)yGTgx7PayODQQUusOZYub{(}hA-(>zr zxP=p3@N0zT2#4F+0P>W>zy>4@IAA8me*lyEoA^%*{J%5`;`%*6me5dRj)Up8#WKXDAdk`5pmvEkG62UpeiQ*-i#_uywRIGCA%9Y5sp)8}Qfg;KRQ$!wKzr zG6OgWGZXm##SGk_vwojKkE5g#RAvwWWfKb*}q#s^nX%bdT!3PkZxe6Ue zTSpDY&C2$b^ksDo&y7s4dxxbZC2o~FJ3DUG=oqwUzx?ROeSX9-)E7-JNrZ;}w;v)* zeFPom-~JE2yY&LC#p$Mg2rG^^+TVUY!z54r-GISF=ut~gKGSRc-NW9%(ZKloY?N7R~1g&Sw}i<^|;AUzX;L z*22g0>t4|?aEZNYg#u3ZSIuO^C@cvfFXy1v=(OWi(TvRD35!gA)pdeNmGiOeJ-{~ z7YFZ>Lu%k#qJ$uD*?UFwdEm>dKHk_ssFD=l{MjoK$+=BCL^i)lmO3w|(j0Ep!}}hX zb%KdmS_&Fh<}-6h2*<9ee@HZGj_9nyrcs!QbEe*(WEOkN-FBnq^0nk6LFOu;O_ZA? zHV|Nn>(c-^p&Oj>RLr?nIMQ^fCc36Ve6D&mvUW3oykySWyTP;l~ zMYr57W#mjw<$>U^(~vcMbJ!U#Nl!x~((UXOB1k!3ila?<5^It>Vxm{#oEw21j+0f= z>JD-`f7iA|eoX1^b6qOvH~(7naD8|5Q1>g^`XW+ID4tMkFIaSYl5}Tpt=*z>|7Vg+ zAcbF?>K4tVBjuL5xcn9aTn94DGuDWl((i%>pTN1P<~ela2`xL( z6Y_Ppi|$^}(kys+uuys6zjaz+Wcx{Eg2$4TUJ{UA`250xMSr%Aq18>LcA@kis~2@C zYJ`&Db6vGt(#m=Rv;@$#OMik^w|hJN+a>THO3X7>2-hqgcB*eWH)D7#41H62g7kcd8r7nnK$hBSjC`ytwSy#bC%n?Q=6` zNimksZ$I00d9hnbsC7Yo#$T%P(f;hXKYJ=3TakC0z|5QXW+|?j*Z7wFFR;EFJ@{D& zZ)A+@`0R74-0Yj9B;5_L33golvU->06b|CMZ*k6b!8VtMB9(4@!z?-2S-|TZFnB$T zu%>K{;q^~dh`t#oj*XLc(q~JYa`iQ zJ%vzf`Qe9F=kA{6vob<0KZ%K9fXQWx7Vqq6V~+1DbBX&N;$de?h=k+_d#)46oG} zc~86x*Aqv|-MhDE5|oEaozo-<1TeEKLp~?Vg?-6pEIUni^t1$cTCj(6B&~)#7@|4OPl?thi|l-*Rx3)koXPeW#TTsY`PtMRTdKU*yxAM?IZOPABmI zt58k+*<~5g$T?Cv71XsROG|1RD|S2AVMb}CpvIR_^oCbfunz^$V%c%&Ze_9kbInd% z9lAKgm>+Kg%eEU)&QFw!S^M1jsQlRqD9yd%iC03iQ;~WKNtL-B-kNdU#yo0b0Q&lvl$9x0V>H;Zi&Dyu` z7uz!iQVB&2BCO?&>H^+EhN`kPnp<|!pmk_|#cRzKOng3n3)Zu(`krU8qG7`an>x{b zxm;rr)Atl)Az?s}K`SE>5y6BwTem)I<+sYfmj(-}U+lQ#vQTpxV&YQ?-dzl+9wJ`7 z&f9Lh=Cy{6F(8~zCpHzXW`3}@ox%hAu&vL{ieJhz)0NAvSD_vCkZ-2q5>S9Q=?nSo zq6_l3UVxcsv4LAODr@%%P(4lb;__G)Qgna4+mFV`acQu(d3pjl2V9aLIjmQBjrj>O z_~$}@kR}55V8`~LiLw7_rA?#l;93iB`+$QeWDXAYciqjheaFBJd-#yF>aY%lf)F_R zWrfmRx}q1Cm-3{PXvb2J(~ed3RL*Y(e7^Mink6HJ^9`nvFkRa#k$w%1LrX)2?E7(M zbI3Pqc;dngqL21mIM-USDdBu$+-7a(4wo}mDwYsKvm5<-WX~v%4v7{VQoG-UfK9%h zKw)uxc69dEpCyh9vt9D+j0c55&$TtmjT=MnxRf!)IxBojxoqDT+qwn(*%y0aiw5@M zNs=AtIJu?`Ht@7G$4_C8Je_=u$7cS6D~<3W9Tw2+MUu}hm7Bvfjx28pv;0;@o~w(W zb)^Ga(akpv+&WvDQyTo^W5`&Hb^@v;;UK{X!zX24RNQ)L1cw_60l)ZLHhk-GET~iYcIT0ctwnsPyWwM26J|3h$x?tR^q)Im= zV7v9r+#Z510xwEr5do}4CVB&lg_aFdZq^n>y`BiXpmw5M?NkHb<7&E_8f!y8;(Q*Zua_aW5DHIPt8-a?CUlz>%SR!~+UCro zFSSDOPnNwevG6IRphMRSxUiZSv4vDOQ3f#oF*n@RQ!H{<-IwpsyEoS zbA!bWGk2Wk`?9J=d$+vh>%a~kd2ov8A zI;9cRZnJbNs!@TI{9T9pqlfo~)j5V%aJGrr*{`_*hfqt#_z((7#Jeyr(5$@+~!|V33YY6m8`Az+PbunzwAcBp}diExRbM9jmO^c(WJRW zxsDtXvHq>keJ(j_9|RG6wj*Uc5o;Iszdfe`W~%&h-H2&xjNj;E<(o-N)*sCg(PVY* zRK2wLIN{8}0{P`;?bJInUI%7wQ?E6?w4k%oWlWEu+ks$+o;_aVTfI+N?-+n$1NyXq zx9er1@Hu1Q)Bykj>FvOFBUrV*Of<}Or{UGK%vFmvQ|^6Cz7+l(pR$kEwoUm_dFVom z>zcg3@W6A=ypI%Y4`*~;r(S;o(CE1+MxYQ`C2+Xj-UR4F6XiZx}PAYeGgj?X*`<9Oh4pXB8uZLE<1+%^3W0~(yE!d*T15IgDdMFH2n2p zJ=ML!%s0K?hYE9|8r2UIxM!+V+f19$qp;O`Rn};m=QIm#SX*2y@!5OFB-D93RZZPj#%n)$Y_EnQ)dPzJN#C)Vgq)vBf!R75iHAMurbx*?XiruZ$)^Zrw&FhjgbVWM_ZG# zx5Kf`5IW`hHOdq&lrp+OuZ{o%(JjNW{=jQn@KC)kqX4F_BxAF)hbt5Lg0Q68Hw^TO=_7D9_nyFMJAxrh=f&pH_u;|4oKAu>;=CnOeJ}?>zEOJ}L|Y5udyF;j zGvL=>`ou&QG(=m!iVoZtS}x0PkFkD~+&I^*o6jmB`g6c&+?T&y>`-{;0)&_D(*^gq zc-twij=N$HOsQM=fO4Ov!^bg(o9==D^E`X% z53?a_nyTSjF3*YCt`$-Gl?*-q-h%jAEX5}4Hy9|zX7=EtvEKmF7@*$q+BdkQOe#7$ zaV{C5&br@x^+v+;Ru~jUmSddns5;B%wO(Np8=2T!Djcm-_kNi8LkL)w>yU99sP>~M zb5>JR>mIB9nLFiHRsP9UcshD}Omx_lW2l92qWsm%U@S}ul7=rpHl3F9JsH*B7v^x- z98?#m3l4@((^N!{QTi@>9qzKdl!d&g0KH1jis&`P7vLA`(;J@j!MOSRrK9^wi*%l& zo}1fW*jDa;G(@;kjRIuK7LS8c3m;3IbB<*>&mP3g7?vrA@ijH!0T-~uoZxZi!&CS9 zjI`Bi5si&8#_M|qR0sU1U?BY&aIBWIj9zSYyOZQePxgo#z_kl%d*e2ru|6YqDB#5! z>`PH#*?apd&dR|I>Lw&o02i0}Hgd1{;&PZ-0Ldx}lIJBj4O)!j+qT5-Fjhm%M@ppb z%W}lNLKJ;)+k4UM0c);tTr$lsIjU%+1qGX_FQ&fZ`M2b zC|)3Q54hn_i1m;wc|8-jQep3OBYyys%Lq{%EeM~bt+?O7opIwUY0+An(A>`jN8mz-I4C4U!hbHLb0Hs&MurEEC@QQN!W-YTX@}`>uD={$I#=w`=fGqM*eE z&xIvgMljd8bL-y1hk`pZL@~+X3eBO!UbH=*I|#PfH2D}Y_ACq!&QMgA@mO?S7TlRl zQoBlC3uZp|8iXADtN@kcJBP<8V?^@|eLc7Laq_%|wgg~UQaHSCgwp*GJ6sc6|9pzD z<7=_Q+=AYrAU-8uz`-|~1G?zy;A_wYc>>6ngjd%&PJ%kqRzCh-uua*1Z3p};t-@FH z^YiJ>%OkZ`RadR{fX;ONTpF573KD&{IqH=#@@Ut3XM*PNR!-UKnH4@|US8g6?ZXMN z1BMkdHR1{7vv-7rcJvC#dG=mcQU1=@)S! znkn#s7@HxR(m+cqD@Wy4;}Q@fM+-VF-U8rDjLN=&4nAP;yfZ|WTCO#gKdo{*wvw18 zO<*oLYk;g5cF?5D;uzBvT7Hl}c89AKs=VJc{S`k8EI+PJe}!Npyi=M?6);H_)lYCozC0C2`6os&2-{o|jOYp$U~ykK zO_Q-jUVlLE^lhunxgyMhS9q<38@@disdjj)%x~#|n2?YcXb?b;rln^gG}O@$ z!Z7zr=zC(q!Frk;LekK6)MX;jkjWjGbofdw8M8V87ZxO?>wvCHnCg>Uq#ff2Q%3## z_TU@jr4~mxL3kzjy=Y?3rn6FJ6WqO*l&42bp7g(6qi{T)xD&*Pl2l;(azx(9zT~E6 zc7Ws6^Ah-%ms)p~cU^wqy#lgNAVbZwBnpc9z`@=*j6SRfTvAc?EEtJrWC^=$ycQq`12UbhJ@T;Dm^ ztW*Z)U$T+H4_7dyz~*sW;E)$k)tLt&#rAR+f59-On7 zWlU)K)_JZGfKlChjPIpjwlUueANON^8Ewl~4GY-57Eyo6;VhM7k1BlY+w<nl82JX%I-kAeyvx zHst&fx6KChsU#U-2ywt{)8Xg(9PBT9DGO8XgO!GixGk_6ByO)2!_o_FN0k!14g@@b zZb9(QpZz|y(}2M^gP<&pCy(d;f?k^KqqSIgH7@fD&kALMsdFn+^2bW>2%>g0+-WI@ zegvYmAZ%G5yFj{p@?$Rvrsh}ldkNX-lbekFG-`P0ze9+jpAG{I&@(Dm;){=2Zs*REyShQ%E2Xj%K3G3 z#GQTRf)Am{dhmkjtt<~4+YuIjz3S-9K=VDFr#mt1J0MLe0w@}eZ5;5*u=OyS2}~}UEH-s z92bB=PX-hnV3 zy6%cSari)8Q?KL?m4zn*GV7C3{i{3s&P#)gHiD2npQsPoyq%AOh1qo(oB)$`_-W`w z1eiWI-*VfSXFSVKnMKb^r)pMULP}=sq{YVgjS|1&8$^BHmw9{&^Q987ItF)HcWkj$d-&kTolr`f zB8ltFnz{NuMJsL~=9_!t(6%DxB87v2O9B!`L~I{Xwu+u8SVoH?lV*Qb7R16=HOt)` z>2zOBJXn%vD}F*Cwr3|e{(|AlotLayh!>QvKq97NtzAqHlbopXaSkFf?7>=%>tq6@Q0oP?Vo+{3YfbFdxYc^m>qXH3*pUSFj%!+Yt%#8og!tfNa%hpC@f9df!A!8!0I z9<6-xlYuHLE3j^wQSaqHdG0!u05*5-d+G88s~wa%6_3FEd_%gBy2Xiya+ayNoH|bf zT)0vSx0spLomxLq=B^*#YV!KinYb^X0=gcCc2;fM$p^{Sj=i&zugCD-7+7HD=13Ry zSTU{U1h#4AfmO2r&eAvzxG^D!`*F}Ornr0n0eL`Tl8el(5O%N>+(PDd%Qeb5ukB{N z7h*cXumO%18|IcvNMP{>n9+Qb>(7~L1(B{N*W+faf;^H?mD63IJDgF&N<=rHlf3l= zEg(cxJ<8fsz2mj$wd58)ATZ3Koa}6+#nPtyK|lpupb;EHE?H$4r+&h=cwEb11<5i! z2JLJJ`OPS6ZrzSZa`xmlCh**o!9cSDkkq@Xz(=_VytX$u9VL)WyO8P*O!EEGI3jl_ zkEs6~Eg)DxHp<$;v?E%8`%MTWRNMlxcJm+#-rFtuhkG+(WP0Z_b8^xk$m3GyzBrI) zc+4Vh-9p1k|ETVR%nqPjS10Fx^BNyK%~BA?GsJTKxglh)5)CmpM9(KNL@hNTC7fU9 z*F--8RzNAkQy-y*5eRj8Pmflkc3w1UY5oWCx(1{8o9~QZ`Qb6AO@$acu3#MvA$UIN zTHK51rFrt3&wIJ02p&NR(+rWn2DwU)=Bq}G@Kkz?MAQ(weX1cY-hxD&;spBP^1K9w zk%I}%$SC0YDrS_m`}Mc-?$<-Yw4l|lJpZc)J({G^lWTmOEl$_zlQ28dh}kax3JA!NHdI;;Ir_z7A)}0O^B5D1`~#9ymxneMyzY zAo}qXnwk~;WNMWNv;e1%7(Pg)2==qiA3Z|cxxkoV-%6CT!8UwkIKfQ`!PNg0Muy$u zv>ISg1O+gQz)&EXxw-iNnpg#cV{i`Vl&KI^8^_l@b}<$Y+VT@pl2}g~NhK4LeLwW+R zdHV9>tGldIzAr^QWrqu%zo-tO5$!84vPmY+Qp^tPr2ru^d*y_^0OfAn#S;0q8;iGw)X<95io{HVll2c1EWq`>;$K@l8F+M7EHSJDeKP{%@W zES)PHK2U~Ek$+eUN<5#&yPyIg|43f_*iVzv54+@;JFRlcWl%uhZT9Uakf?bNoKT8< zq@lWy>)v=>XyIw&;r_n9E|8zN1wt$;kk#OO+NFvKI4R&mLT?^xY~p83h_;E~&TTZx zFSPr1vt;(2{~3kLPdmH5aqN4r4pK}hWKvb~CCe4NPdY^>gC%Ey?PmT? zXj`#uT9uKwBMK0vQpWj{VG}U{@R0=+#0B|_TlzKSR{d;-HTCl3ObSsdDqM5-wAySO z`~oR>-vQrEl0V2YMgz=y`FfYU;oLcgNPb~pVp7jvQ&#~1L+u5Iw6{19q}n|vI(V9q zHZpi`irtHacuaN<;4p7gs$W&2FSk6G9$&N5jGwViVU;EZ z23g9Ih*x^w@Sp_;cjp>dHzoxX)*kg zWNm-lacpoj>0~6Z2#>9sxd+0S6iIBQ^7BkjwF#X*3nFHlqHoVI@WSsa3OC&`Pi(`b^j+Ib|GX!vhayB^Vrv&z|eR| z(~9VNkk&1h%x5VfuXZ8|Gw2k|iHe;ltqRn<1L^+)x#FK0AQQ`j)o!ErXnP7OY%t1l zI#UMj!(Woz0*GTMGD7?qHXkj$m;ngAlu7#O--bfN^Z-D3NnZY_mf#4Yp!s|So}f)9 z?A^^@cU}S3`ZI-*2$efHo=N;W5c*8EoGKmUGf#f>K;v!~36$D9LFVGL&R{ ze_N%uH#=zbw7~s>qGFCG3l;*~E4I3G7w4D9Ka*h$n!1B}i#0~mFRCgS8yg!VeV6uY zhEiD+^!awN*R?MqU9?oGL?qKj`1A}gx;t5FIJkyNqAxt-x*9`)PJP$2FJXBlrBCHb z11|c|PJUbh>6I%y`IzvHv{<%$TB4$UOoesq{3S;<`WteerFz)Xx2Y5Gn67Y(U?4Wk zgeuo>B_<0Kb@V3Kln8T3Q0+13zY~kHJ{%+@eoDkaT!80YQ9tt-w@D$$+j<|_#x6o~ zg@y2Fa6$zY>_eQWSwhpH%AbyBKAxCEu>TcMxLv@$xzvI_Z8Dj7*%! zHT|7mx=v63=9V^xMD!eSZkE{4c8V+pQ!w6jrPQLMW0ak<4)_J&CXGE@(wb1B+9bFhM(50QDkB}UzmLRQ18WDefcVi|M8 zvn7^42nzV2Y6p;VG1usxEc>*Z;KWFxWDd>{T+^C+Kbgo*X>i7bThUvFd03}7l8*vQ z@if}FTgZO$me#$Oyd8q3Ln#EAEJ9XTb%+DlOys94^?{VkOk@MJTgC|M_0}8QuX(fP z%_WW}wxS^I{=mf{z`k@aBd--b%ie9OrK`{n0_cIve3(7jcqJg$%6V{_E8E`)gqgNP zNq7KT>>$srcRd$GcQ5vO*0v6ln!>!6`?4rmbxOjO#P-*_7P%70)TamXjHJmy-O)RQ z^$=gtLcq0|kIigJjPemLyl&9&-JkbvIULQ=6I&6Y;ZoGDP+i%jg^{Y3zUaT_@p1S; zyT|(SsGhkk$m1JM3#1zfc(0zNO`GygbTgfF}Z)q{=)OMiD>H#tM3bzu9jY7m1}CWt~K;)Qx!Fy z;e-N8=|=tm52z$p6U8*#vY*7g`Z-xpWqh5WTiovYYh}g9M%Na;F^g^c%}SPda=-un zF=*juZMu~nBTOeQ2~xrAd4p1Iz5;vUP$Tk4VvqN%-7EL6*NeqPFQu)1}TC3JWw&vHDM$$_K+ciNs1t5o+{c+7gVTGv|PY4 zYwRf%W%-iW7*VZ)ZOvDGr$d;w*p}-eR)txM-uL&$WmG84GSn=l zr(Ba{gHi$8hr15TO91A+(olt_pS)Ru zeT{jVy?PxJ=@V~yl!{F*a~|HlgU;UUO{QE1ba$S{i)KJJkDS**8~F zYKdMqa^-ZZlfXW^Zdp;)j!19vt)v#;G@c=Qv>CjDm>eF~`R?Rg@`W))y&n%54iBeW zV=0Ak&ma;6tuDTi=;Iu+=aVUypyAL*TOp-KMm|2y6i@Elt9uyUK<%AGX3=A z<#3r-JyjgZ^+5Q=+oH&@QEA#rv0$o2aq+ts;6&1h8DwyHF%x<)X)@&-F(a*>%CWrH zQ@27))iN}}n*BBH-UQdZH0pH~j$t|8_Y2eWswPy)U&0WQ4NTBq>2b zP$TorqfO?&Vls6HfG?z9G%Ru=)F!8B&k=HW*=5)FsI|EoIM=q$y)nmg!--m&)a;k? zisl<4d0VEkI;cXevi-ts7xA_B0abu;$(69saAaRJlAyHoON)~|)oo_8Fr~Dx1i6@^ zXlve_+*tYTt)T8kGFC-X#5M-|8jfgnP%M%!BhAe>%VDi$u6Ov>)oA1^uA%wWQ#4My zd5~v{M&w)U*mDnA>N1hilyDDCo%QH|El|+#nv&*Iy+QI#&C0t$$FY{8ix>}9?sa)* z_;V3yI7dPwTvcVN#b#uvoRlfxxUKf1Z0tV8qO6MqSA_|;6{5LSYVL#CnbH?nX64QJ zV^h?5n0c{he+XJ3u5k`QzmfE;x`s}7wnWoQ0@~rN2sZ|b!hk1{77z787BXx4V3}kt z$mf%4sfqE|9^~uT=o7k&NoFgDlf5ts5^+jkG`5e>$wp33@s>r16qyRa-r!6x)J(Xd z5Jj9Stsq%9?~uU~ML~d+<%5c4BJKR)3eVjxMIE~cA#+6LgZ!*+vSyv#TvH*7^GvZ` zJ)vnwDMXz{*z@w(J4-Q3>C8MIX{uoLg`OZMqrtj`RaD}{H6OSLMC~}t68Sbe@QhYi zy|ed2t$^q#Yic6LW)`r1qe$Co>_EaCIgL?@SN>wUGL30J_Q#h6MFqOAMjEFFb@iH1 zyl#QbZo6A*?$TzXdODO#W zWo8#;NKBhtqP;zKb+76bQp;_eLn+^#jficm{`{s`$zoC^JAM*yXb6XUb}e@!pa1AS zr>mJvL9E+%v7bNb;?pG=l3p^`;@dq1>~nm%(UlO?K?by%=)P~8BJAm_1BzP!3cxb?eAh1ew?{dZ@@aH3ueN`I-SH*30VW2@J_=OIt? zLC+3rq|jwz9HmjUwaXLBRdOUWMlDtfB|F`Uks30 z3fE#&kp%85vURbO6D!>{+Y8+M2sqHm%&uP@{9|xo=H<<>hku!j6!I%cpw$R(Mi+dM8fJV zoJ9&y=tea!7eI7@S83&*;SNAxi7Vj3TcIOFNATX89#0&F=uQ(!QNK3_?rdY@KZ*a& z(CLHjXr4jsr%A)3sZj`8&+W3x9crA}d1Zbb>ZnA517c`32(P8*FZ2;_0Xamk&o#SX z3=2nXzQ1W2&rd?H$22dtF=RYYuRUCBC9c|X#gDontWgQ14k}d|H&{c79=ulTb zV>;RK2$po-GB{*ut3&MUm>Ew-`~E4nw)FH%&z5escVyIH zwVQXc!JE?G#8}6^ZZj{P;aj|nC6Tak=hM!#dJ)UL7U%LUYQ5X7PYii*i@N+X?RoQP zqs=h2=TDmsadS>GUW$C@RF!MK;aGJ;*<>f1Y;>YI?82%FnTFfLdp6XAA6_`xWspTJ z(O+eIDp-2X@l5Yf+KYF+{ii2{U(c25dIYg6Yc@#gXwTK&D|R){r|+vu(bY%zrx%@@ zU%b=9au>uIrzbDHo^wC^AyRQkj*jf!!xS=&sp)r}XYS)hy7?fTE*HJNrqKo5x%n|h zmsP#2@j+gdStE1yjlcS6GI^3$6!A|TFT@0Q(u64QI;;eni2~c+bJ`+|S-;fNKSFPn^$CdrPEl7vroG|-ZI&2H z45b)Uuz_43nILLKDj}!jx028A0CL0vkQF?jNLKTsF)mcND)Z_Ri~Y1vZCjjBy0qE*}d>T(` z5Gt4tXHlcra|Ud$`AC^7D7dlDgBt_XjNih?9N|U7V;p4g2yPY7h*OAJJorY7ie}xWdVu-m1CNIgVxDM6m!hV7vWA1%sHVOBr zME-~D=VxM;*mO#8CUn2=ow@1g^im$EI=pk9(hSilrjNLXf!LLe@qD9rc6~7|-g=?Q z=~0J84CZ+A$KeX5ZOCINrz1_dMXU#TEC)YjMCAd8E4;uO`P@!se|M8G4hdB|-Pgs) zry8MUdY7FjmnmB7qwlkYF{Vhp zBv@w2_FSrePSwac#9B9Nzl`84PyD;3pS+EPra~2-AEK5(^Z~_=4cB0;d@Xz}h})l& zNi}G{NhxO-cgP;5XUoABYB%@ZCz&|$tzT+yeyywhno{}l{<#hdVFyUFU)d(SY;^*4 z_D`$g1sqZb@{C)eIC;DdJo5I8L9rpeZtxT2GbCFKQs(e;i__^E+xfKFn2WOlo+70@ z${Bc^sp7Ld71Gc}1?vfZhk?N+ts_x%F9F@3Y{m@~rsMj!F+Pd!y-R2kgX9#pc}qq9=pS? z)aoQmk=(%Lv$L~a_}ISonxE3*d$ue5R2ZV0gtG!v_>&pu$lRVOttBVI=f`iRX>*$a zV*JAuMs`dX;d?~!7InhX4!v0AkvZOb_te~j8RgL``pH&IfR_f&As<=y)PE4rFk_(i z|I#oJDfC~UVS>{fF__*VbcAsf1`5M5^vIHaO||%30iFv` zF1$L|tKBH&ivJY+yaeSU*E&q4KlsX*e}<8%K4j@ZrlhN-kBCYGYtD9YCPM)=v}@N* z>iKbK#%^d8-p;_g(%B)}t4BqY2h)qXj6I!U-!qjwgB zMWyU7h2C+V(~c zyjPb3rC{<+TfYpCgfhxYDS-_A`Fw4UTyfbzir%s1DxZXI*htxfuLX+W6|#hNtZ%Nb zd!(KS`V6%xrzwQ-08r2xWJW0n-jh4yTKn?6Vd}lMn;=#F1R~i$Apvtd3n(HW*0kx* zrh<~(Q1S#60-V=m#W_#NL;f^A%K_!FQJmBTW&-0if7hH9NpBVco85 zujhHt_S#J3&VwGcWc`HjDXCtoA7fSYw$sg*03$;}ft~hkbQh#Hx|$E#9;Tc8TpmpT z)ZUZmrKmOx5y^JBfV9+-m;O~UkLI^NPc=Tg7e_o@DbG%PNwT_5Mkz;BRm05PM0c;} z2Y3ta>;{9XQHgM&wEqRhQ4-_iSH9Yj;N49>@||?6CXmsgFC*5Yak&(+G3hbI>w73P zACq!WH(^s~Gi(kpOBC`Iscp|PpOlUTviA)cpMM|7TZPJf^WO&W;fu7k=%blcP`c$d z-=C9kMU#!eAdK{;eyAKAQp@(h!xo<`jC49e(wPRE6f$D32%8;>uI~)WDUZyqt=%JMT zB3E_8rZ}0FGLw3Rr?5r53ht`@q?{EfBil-Mr{R7u)JMqDa zwv&)Ge0UXakD6zwN|tVZVtQWJI3=dVV>*WS6BbS|7EXjzp`!#e% zsy1e1!|Y8psEQtgYHYtL@cv!QkFe-mGW4V!@o*%8u1eEzvbrV0r2HM*4g1EICF{>7 zLiaV=uB?V~y8a-^1G!^97djGCt(?N>pM4qFkIMkh(S#zHFqg~BtW zYD6+4|9Lza% z0E3nBiW$O{b}F*N#d8+CD|veXQ55zh3ppK}d@-rZsP*T_vo#%dXu--b0-Ocyzsn>N$4Zm{yU2 zkVu0p^16p>;WZkq=5qUBaOcO)N4D!j?RR|Wlt8` zZT;4ouUFN_J+#f154`Q0!RB>l;nY_R1t$hh-XY6`vk_|F^MtrnM)x!#y)%NuT?@m} zPhoYCDht!GIfYX7zjj?6tOsds!-OTSxHE2j3CL&h8_XIC@D%Rpp$7IM5Bj2j%Qk2I zD8gn!zl28n$Ra*O zXN4s>)3!mYllH>c=1V{)sidI|ZO?^Ugw}yDXw_eHIpTTBZKkCOElsVZYYX?n_Y%!U z!^`-oHFg~CWhZ2Lr;nqs`0?`qTuY;CxQ6CzwE7C*w!KPMOlgzRKt9Qc|DLJq!N1($ z@Sdxet>tyR&g)EkCI(zz_To%~%u#~ITaNTKa45k4kXhfor32tb=zk%)w@sjbsjf#B zuy!{U1vG>$=m;H;0{pkFFYjYRVG!H9@jL1H@~UYnB2m_4!49D7e$D2V{pF|HcWa@b zDb`=+nm!{G=ahOsmQQM8la7=}hO`IrGL%nUf*~G$d&dXTsW<+YPWyjLr#YA+1a4j0W*VE9S7b|%feXd~whMm6 zL?{r&b|DbjQp*tA$S?I{B6j#mESMdO*B@iV&plYM*g*Vwpep zzEGL?zYru)w;=Eu1g>^(9(;565D2}=_WmeBkWMmOah)fi-k=)u zeP(77Am{IZeDl?o?aXfVY;Bg+IAK>VUI6#!_qtj>r=)j(NW0#gw)1`v2I7TNm%xi| zNmI>{%&8eVrB0o}bdpju=AgBZDzdi194O*BVV&sMWa|NFG}G$_759!OY%IMjUt1aRE={`6kV*fVN3VNmr*i$^NZEZLPV< zu!=8 zG?gdtjZ({%p=sv*%F_*t4H+L>9%HcuP>z?8lezI?yxsH0_YRBEBH^CVwP2d{OT%7? zW>MC0E3{3NxAxOXuL?h`H>$iu>D%wa5#(!f8DFc)`0G<76TRcGS#d$%dtv~Drk=j( zPUrTqxZ3je4V{KixDqxzqz-Iy1$h!2b~m!mcj_0D*T;y ztSaVku3_+}M4sm0loF&be;x3^u9FeD)>;Emudik6@BDwwTzNRuUEgPreVuSq8e7Ub zWzE`-poI zKhJgMoZofk{N{Yl_p=0RTGq?_b1!QMID2>L3~>H+S^E329gd#wAL*3C8{Q54KGa{% zQ2OfQ8u~i#g_T5)=t!9Ois%Y7zp9Q{Ya}@@)#zu!19$$6aL`0c=j**AhMXcPw@r<1 zu?a|ccVbn4s9j$yyqbzx1h<0zo|CaVgG<}8cgg^ZzB?q-Wvs^iA)3h5dd&9ui)DnPoqt1%ZptOY5K z-Hc9|=|_zE-*%$E7JAxGt(7mRD7u4GQYKt3v)6T==o_=`ECTWyHG{ZpG(ZtM zzR7Rx+h$jG*vyUH+vIHZE>7@3Z;hz_$N_XL+8emb-1mf~P>yKKE074$I<9#EZdckF zcpTX_r>e~_ZmfbbQB&Ek$zs8mkU)C#yoc8Q*5h#$fW0GMwOXyM@ z{`-t7eaS6sx;+}>rOUd~OYI!@TyxJz@n}VrEo7kvd0bhh&~)Qj&1BX7vl^nl^+X8p zdWM6{r#k@}xa%8}kV=B>Z#8@IPkCQ${tjT!5v16 zGd0DaE+%xhC)TOz248Rk?O*=-H7moK61($w-H!{N6>b5L>lxwyMy@LRIxnM7IX&CIT3a|yN-0|)t|Xv1kz6WQyf~lFMomJe zCRG{Cwj^#N(Fv5*|Gt7!W?L*D(XcH_uo(fjDggY9R4-v;9A1-?fMYXxzFk*rUedgXpNb1<^KUs z{6~w9>6U1xo;De)Tmpg6fcqGE<{8f?7rABu*wSs0Y1-Iz*l1XHYrgiH<1(MhBEJ%%tsO+X(50hr+I1377vL;k`<~J z2ROD@1Cb3R^FPgty0-m;yr@k}N@`2wq<*03a>j$S@zUf41 z34jU=cp03*5|?HAm`VS>8$~pk?jm#6HQY6X-Ar#h{nl}5k1W*I&#QkqsWi65h zfDSP|7uHMbRjEgzicc}-n~}oC<;$}(u!J#C-D!SxSeS6 zfVox-WpYMihh4xBZ!#D5JFyhqAkF)}YgF#70k3q1tTm*wGs>?mB1L=5I}5?ZizG9| z-lo~{I;$im2HP~DEkDW(QtK9gFXoa^8hCwX99oEC!bK3T6*5qM8vV(h6*-P64EYAIaCzzuS@OvCWmdF(Trj5K^3m($t@Xac?r6d!>Yr=rvam)AqRF z{rXr{mS7kN^&yMXjq;?*Nue5ia{y$Tf#@>eYi`_8DpgoIymkylDlq@Bv;k=DO_1!v zr-hLtE_u=(|BltLZ}HIt5=*Y=y8@~tikfv<81e`fl76>KMi`q#}>!*eEkl$q@gLoDz4_$ z=Cs{oSnLKhDxUaVD+)kvZhOy{QNZU5G@U%E=mtOMy(++lmXp*&d9!8@&2IXZdN30l zfM!;5mj=(?F-_R{=107=;Yj{<&E)_Xf`ka9lm_hC%+o<|(7_hGx5#ynRmC(`JtDuM z;~b|ggHfzXx7U4rHrkiYWpsbKBoJI@SdD3lGf7%K84x(c=D%^FXefKX`ZBa6ck#vk zJ>K}EAYT&@1S1;A59(lTrfMPH#q{`p(c}6GTg_kHcE2^BmOT0aywj!Na%Hg2<){30PlKGHL@=)=(Mmunw zg!Bz>)(j!W3#>2$yV4zZZyXeMR*2TJ+t#rcta&~(*2Km<97kZ=VkEX`s8wlY1KM!R zudY*jkNNtw?VpTby--Y7c=2~-V}9PEx=&j~v34n(RTJb2-uT8?lfQda1Iu(iO6;i|wXohL)~aVbiP7J4L4fPFrC&_dGU zac{9c9{cNFm8hT|r9mr@eNlZ=Z4aIrw&hf7z6)4a!+#;rEUOqrb!{&l4^ zVNP%TgTIjnRLW8TZVuNvhG}!G6&_mB+a#IffnmC{#a|ob$|P5G_Unv<7cq$=<)UyC zaKbKYkxPxp#FJX?#wwz`zEf!bD+A1J^~+3hy$jBREHdWb4i_xgamV3~?N4{^qidb4 zx6xOzfx%;Cdktm16W{xE#*8M0p*x2-RfbXY+SfaWh_dStpbA_WjtmyFN8$5^6#teM z0rk_&B5~Vdgi|BeVV9p;vfPxLcQLlf)7wGAk6rGd7jGEBDpkc^wBa|O+nOGs5U~)3 zwwazWE<5~PW?+4_&7swgTRBERekymwKYvQ-=E3Iqfs>blUTo_6)>v9SWcKSQ!Gov4 zt%x9%u8xNFJxLu6+dp+r;pL}w>>xYsEQ9By|8~*Zx4zryr~fi1=q*fME$waa#zYq2 z*TKby=F-X5ua+4B;MEp(&aC=8+~$}d0ZT!@KWB%=5WG{6&QHGO!y7mG!{f~@_`?;? zUO@|d^m?6uoqVG^B0Q82OHry=A;x#`I5?S{cCq*5--@GY&8j9eEyS?NHh?^mb)}N3 zSn(@w>oqhjf|{){^!X+_AR6Ve^o0KpoYKzcQU6QWb5prae8D^nhY`jNA3vL7p7+{n z?B#W3(?&tEv%2RW1cCU~*>+sX@HSvgO%OVMtdn>!2!R64nY_IwYlKK8oFqwYZ{ ztuey|xhXMCVQGd>-M^;9R$~4Q>qwHr?R1_;n<%QCr5I)*4NLF@mHqd=GEz^|y8x*3 z!RM^J0tH8nBg)DgITDXT-`}miLGl!b4$@M34QY#r4Bnwg{v;azGLaIcUT(UFDJ2;8 z`7d=wZ(Ayp2OG-bGJ9~2Qh;sYXD9$;8T$wY@BqKg)$&{pk$sI{#8WWQoFK}4v158` z{?NoDf2dA;BS02ifz&xoIz2yofytyrP{iDuGNCLpPm-z-)j!I;nOabit6R{~GaxJR zM+%VX;gO8<^CA?(P1Z2SgIBa=7ZawAWm^MNeisN-ko1Cdvv-4IVuIk zODvJQ?VCgVxOB<*@U{&NH54-XkWsn<0|BNisTMBx{y!k$475d%*J zwbw7E18Z;RbGn~_98CwVh#1~LSYKf#Ja><)I^=yCw6W@HK5=YEP zLPlZZ_ek428u`9tVt~9xp%TnigeHo$#^)@@Ij}~BqgsLM_m->Q@?jyyo~=e<<*Qi`Lf`@th`2Vu!5iGN; V=Rw`^l(SUeW1wTA-Kgc7{9j3kGkpL6 diff --git a/doc/images/unify_sample_old.svg b/doc/images/unify_sample_old.svg new file mode 100644 index 0000000000..01c4c621b6 --- /dev/null +++ b/doc/images/unify_sample_old.svg @@ -0,0 +1,4 @@ + + + +
template_ble
main
application_thread
sidewalk_callbacks
board_events
template_subghz
main
application_thread
sidewalk_callbacks
board_events
sid_dut
main
sidewalk_thread
shell
sensor monitor
main
tasks
callbacks
buttons and leds
AWS
demo app
AWS
MQTT
\ No newline at end of file diff --git a/doc/migration_guide.rst b/doc/migration_guide.rst index 5c8f3245a5..e57a449c02 100644 --- a/doc/migration_guide.rst +++ b/doc/migration_guide.rst @@ -20,14 +20,14 @@ The samples' model was changed to allow users to easily: * Understand how the application works. The old Amazon Sidewalk samples model in the nRF Connect SDK was divided into four different samples: Template sub-GHz, Template Bluetooth® LE, Sensor monitor and Device under test (dut). -The new approach allows to present the same functionalities through one, unified, and configurable :ref:`Sidewalk_Template`. +The new approach allows to present the same functionalities through one, unified, and configurable :ref:`sidewalk_end_device`. .. tabs:: .. tab:: New model for samples Introduces common, configurable code base: - .. figure:: images/unify_sample_new.png + .. figure:: images/unify_sample_new.svg :scale: 100 % :alt: New samples model @@ -35,7 +35,7 @@ The new approach allows to present the same functionalities through one, unified Samples are separate for each configuration: - .. figure:: images/unify_sample_old.png + .. figure:: images/unify_sample_old.svg :scale: 100 % :alt: Old samples model @@ -54,17 +54,64 @@ Building The following table is an example of the new commands used for the `nRF52840 DK`_ with the :file:`{NCS_PATH}/sidewalk/samples` path. -+---------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ -| Sample | Old commands | New commands | -+===========================+=========================================================+==============================================================================================+ -| Template sub-GHz | ``west build -b nrf52840dk_nrf52840 template_subghz`` | ``west build -b nrf52840dk_nrf52840 template`` | -+---------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ -| Template Bluetooth LE only| ``west build -b nrf52840dk_nrf52840 template_ble`` | ``west build -b nrf52840dk_nrf52840 template -- -DCONFIG_SIDEWALK_SUBGHZ_SUPPORT=y`` | -+---------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ -| Sensor monitoring demo | ``west build -b nrf52840dk_nrf52840 sensor_monitoring`` | ``west build -b nrf52840dk_nrf52840 template -- -DCONFIG_TEMPLATE_APP_SENSOR_MONITORING=y`` | -+---------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ -| Device under test (CLI) |``west build -b nrf52840dk_nrf52840 sid_dut`` | ``west build -b nrf52840dk_nrf52840 template -- -DOVERLAY_CONFIG="overlay-dut.conf"`` | -+---------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ ++----------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ +| Sample | Old commands | New commands | ++============================+=========================================================+==============================================================================================+ +| Template sub-GHz | ``west build -b nrf52840dk_nrf52840 template_subghz`` | ``west build -b nrf52840dk_nrf52840 sid_end_device`` | ++----------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ +| Template Bluetooth LE only | ``west build -b nrf52840dk_nrf52840 template_ble`` | ``west build -b nrf52840dk_nrf52840 sid_end_device -- -DCONFIG_SIDEWALK_SUBGHZ_SUPPORT=y`` | ++----------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ +| Sensor monitoring demo | ``west build -b nrf52840dk_nrf52840 sensor_monitoring`` | ``west build -b nrf52840dk_nrf52840 sid_end_device -- -DOVERLAY_CONFIG="overlay-demo.conf"`` | ++----------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ +| Device under test | ``west build -b nrf52840dk_nrf52840 sid_dut`` | ``west build -b nrf52840dk_nrf52840 sid_end_device -- -DOVERLAY_CONFIG="overlay-dut.conf"`` | ++----------------------------+---------------------------------------------------------+----------------------------------------------------------------------------------------------+ + +User interface +-------------- + +The user interface was changed to better support boards with a smaller amount of buttons and LEDs. + +The following table shows button action differences between the old template samples and new :ref:`sidewalk_end_device` application in the :ref:`sidewalk_hello` variant: + ++--------------------------------+--------------------------+-------------------------+ +| Button action | Old mapping | New mapping | ++================================+==========================+=========================+ +| Send Hello | ``Button 3 (short)`` | ``Button 1 (short)`` | ++--------------------------------+--------------------------+-------------------------+ +| Enter DFU mode | ``Button4 (long)`` | ``Button 1 (long)`` | ++--------------------------------+--------------------------+-------------------------+ +| Factory Reset | ``Button1 (long)`` | ``Button 2 (long)`` | ++--------------------------------+--------------------------+-------------------------+ +| Board support | ``board_events.c`` | N/A (use CLI command) | ++--------------------------------+--------------------------+-------------------------+ +| Set fake battery level | ``Button 4 (short)`` | N/A (use CLI command) | ++--------------------------------+--------------------------+-------------------------+ +| Get current Device Profiles | ``Button 2 (short)`` | N/A (use CLI command) | ++--------------------------------+--------------------------+-------------------------+ +| Switch between Device Profiles | ``Button 2 (long)`` | N/A (use CLI command) | ++--------------------------------+--------------------------+-------------------------+ +| Switch Link Mask | N/A | ``Buttons 3 (long)`` | ++--------------------------------+--------------------------+-------------------------+ + +The following table shows LED assignment differences between the old template samples and new :ref:`sidewalk_end_device` application in the :ref:`sidewalk_hello` variant: + ++--------------------------------+--------------+--------------+ +| LED status | Old | New | ++================================+==============+==============+ +| Application Link and Connected | ``LED 1``, | ``LED 1`` | +| | ``LED 4`` | | ++--------------------------------+--------------+--------------+ +| Application time sync | ``LED 3`` | ``LED 2`` | ++--------------------------------+--------------+--------------+ +| Application Registered | ``LED 2`` | ``LED 3`` | ++--------------------------------+--------------+--------------+ +| Application woke up | N/A | ``LED 4`` | ++--------------------------------+--------------+--------------+ + +Additionally, the following CLI changes have been made: + +* All Sidewalk Device Under Test application (``sid_dut``) commands are available when the ``CONFIG_SID_END_DEVICE_CLI`` option is enabled. +* The old ``CONFIG_SIDEWALK_CLI`` option was removed. Source files ------------ @@ -73,7 +120,7 @@ The file structure was refactored for the sample unification purposes. The following table shows the relocation of most of the components: +--------------------------------+------------------------------+------------------------+ -| Sample | Old location | New location | +| Component | Old location | New location | +================================+==============================+========================+ | Sidewalk thread implementation | :file:`application_thread.c` | :file:`sidewalk.c` | +--------------------------------+------------------------------+------------------------+ @@ -305,7 +352,7 @@ The following examples show code differences for selected events: Sidewalk and custom Bluetooth Service ------------------------------------- -:ref:`Sidewalk_Template` uses the `Zephyr State Machine Framework`_. +:ref:`sidewalk_end_device` uses the `Zephyr State Machine Framework`_. The :file:`sidewalk.c` file uses the state machine to demonstrate how the application can switch between Sidewalk and the `Zephyr SMP Server sample`_. You can use this as a reference design for switching between Sidewalk mode and another Bluetooth LE service-based application. @@ -321,7 +368,7 @@ To use the deprecated functionalities, you have to enable the relevant Kconfig o * ``DEPRECATED_SIDEWALK_BLE_MAC_ADDR_TYPE`` -- The option switches the Bluetooth LE Mac address type for the Sidewalk application. These configurations are redundant to the nRF Connect SDK Bluetooth configurations. * ``DEPRECATED_DFU_FLAG_SETTINGS_KEY`` -- The option saves the DFU mode after reset. - The new template uses the :ref:`migration_guide_dfu_mode`. + The new sample uses the :ref:`migration_guide_dfu_mode`. * ``CONFIG_SIDEWALK_LINK_MASK`` -- The option chooses sidewalk link mask to start with. New Sidewalk libraries support link switch in runtime. To switch between the full link mask support libraries and Bluetooth LE only libraries, use the ``CONFIG_SIDEWALK_SUBGHZ_SUPPORT`` option. diff --git a/doc/samples/samples_list.rst b/doc/samples/samples_list.rst index 59da9204f2..34c38cdbba 100644 --- a/doc/samples/samples_list.rst +++ b/doc/samples/samples_list.rst @@ -7,14 +7,18 @@ In the Sidewalk repository, all samples are placed in the :file:`samples` direct The following table demonstrates configuration for the supported development kits: -+-----------------------------+-----------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-------------------------------+-----------------------+--------------+-------------+-------------+ -| Development kit | Sample | Additional hardware | Bootloader (in release and debug configs) | Application overlays | Bluetooth® LE support | LoRa support | FSK support | DFU support | -+=============================+=============================+==========================================================================+===============================================+===============================+=======================+==============+=============+=============+ -| * `nRF52840 DK`_ | :ref:`sidewalk_template` | * External flash (included in the DK) | * MCUboot - DFU partition in external flash | * ``overlay-dut.conf`` | Supported | Supported | Supported | Supported | -| * `nRF5340 DK`_ | | * `Semtech SX1262MB2CAS`_ (only for the configurations with LoRa or FSK) | * Application partition size = 956 kB | * ``overlay-demo.conf`` | | | | | -| | | | | * ``overlay-hello.conf`` | | | | | -+-----------------------------+-----------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-------------------------------+-----------------------+--------------+-------------+-------------+ - ++-----------------------------+------------------------------------------+-----------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-------------------------------+ +| Sample variant | Description | Development kit | Additional hardware | Bootloader (in release and debug configs) | Application overlays | ++=============================+==========================================+=============================+==========================================================================+===============================================+===============================+ +| :ref:`sidewalk_hello` | Sample application showing communication | * `nRF52840 DK`_ | * External flash (included in the DK) | * MCUboot - DFU partition in external flash | * ``overlay-hello.conf`` | +| | over Sidewalk network. | * `nRF5340 DK`_ | * `Semtech SX1262MB2CAS`_ (only for the configurations with LoRa or FSK) | * Application partition size = 956 kB | | ++-----------------------------+------------------------------------------+-----------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-------------------------------+ +| :ref:`sidewalk_demo` | Demo application of Sidewalk protocol | * `nRF52840 DK`_ | * External flash (included in the DK) | * MCUboot - DFU partition in external flash | * ``overlay-demo.conf`` | +| | with temperature sensor monitoring. | * `nRF5340 DK`_ | * `Semtech SX1262MB2CAS`_ (only for the configurations with LoRa or FSK) | * Application partition size = 956 kB | | ++-----------------------------+------------------------------------------+-----------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-------------------------------+ +| :ref:`sidewalk_dut` | Device under test generic application | * `nRF52840 DK`_ | * External flash (included in the DK) | * MCUboot - DFU partition in external flash | * ``overlay-dut.conf`` | +| | having activated CLI. | * `nRF5340 DK`_ | * `Semtech SX1262MB2CAS`_ (only for the configurations with LoRa or FSK) | * Application partition size = 956 kB | | ++-----------------------------+------------------------------------------+-----------------------------+--------------------------------------------------------------------------+-----------------------------------------------+-------------------------------+ .. note:: @@ -26,7 +30,7 @@ The following table demonstrates configuration for the supported development kit :glob: :caption: List of samples: - template.rst + sid_end_device.rst .. include:: ../ncs_links.rst diff --git a/doc/samples/template.rst b/doc/samples/sid_end_device.rst similarity index 61% rename from doc/samples/template.rst rename to doc/samples/sid_end_device.rst index 5cac18dc46..60dd08e12b 100644 --- a/doc/samples/template.rst +++ b/doc/samples/sid_end_device.rst @@ -1,9 +1,9 @@ -.. _sidewalk_template: +.. _sidewalk_end_device: -Sidewalk Template -################# +Sidewalk end device +################### -This sample demonstrates a template for the Sidewalk End Node application. +This sample demonstrates how to implement an end device for the Sidewalk End Device application. It supports Bluetooth LE, LoRa, and FSK link modes. External QSPI Flash is used for firmware updates. @@ -38,38 +38,51 @@ Overview ******** You can use this sample as a starting point to implement a Sidewalk device. -The Sidewalk Template demonstrates a simple Sidewalk application that allows you to send and receive messages, as well as update firmware. +The Sidewalk end device demonstrates a simple Sidewalk application that allows you to send and receive messages, as well as update firmware. -.. _sidewalk_template_user_interface: +Sample variants +*************** -User Interface -************** - -Common button actions for all template configurations: - -Button 1 (short press): - Sends a message to the cloud. The type of message depends on sample configuration. +Testing application scenarios are different dependent of the Sidewalk configuration was chosen. -Button 1 (long press): - Enter DFU state - This action disables the Sidewalk stack and starts the Bluetooth LE SMP Server. - You can update the firmware image using the nRF Connect for mobile application. - To exit the DFU state, long press **Button 1**. +.. toctree:: + :maxdepth: 1 + :glob: -Button 2 (long press): - Factory reset - The application informs the Sidewalk stack about the factory reset event. - The Sidewalk library clears its configuration from the non-volatile storage. - After a successful reset, the device needs to be registered with the cloud services again. + variants/hello.rst + variants/demo.rst + variants/dut.rst -Button 3 (long press): - Toggles the Sidewalk link mask - This action switches from Bluetooth LE to FSK, from FSK to LoRa, and from LoRa to Bluetooth LE. - A log message informs about the link mask switch and the status of the operation. +.. _sidewalk_end_device_configuration: Configuration ************* When running the sample, you can use different configuration files depending on the supported features. -.. _sidewalk_template_build_type: +Configuration overlays +====================== + +* ``overlay-hello`` -- Configuration for the Hello Sidewalk variant. + It is also a default configuration. +* ``overlay-demo`` -- Configuration for the Sensor monitoring variant. +* ``overlay-dut`` -- Configuration for the Device under test (DUT) variant. + The overlay enables CLI and disables sample automation. + +You can build the end device application with the Sidewalk DUT configuration overlay by running the following command in the project directory: + +.. parsed-literal:: + :class: highlight + + $ west build -b *build_target* -- -DOVERLAY_CONFIG="overlay-dut.conf" + +For example: + +.. code-block:: console + + $ west build -b nrf52840dk_nrf52840 -- -DOVERLAY_CONFIG="overlay-dut.conf" + + Configuration files =================== @@ -109,7 +122,7 @@ For example: Selecting a build type is optional. However, if the build type is not selected, the ``debug`` build type is used by default. -.. _sidewalk_template_config_options: +.. _sidewalk_end_device_config_options: Configuration options for Sidewalk ================================== @@ -120,50 +133,36 @@ Configuration options for Sidewalk * ``CONFIG_SIDEWALK_DFU`` -- Enables the nRF Connect SDK bootloader and DFU service over Bluetooth LE. -* ``CONFIG_TEMPLATE_APP`` -- Switch between different application types. - - * ``CONFIG_TEMPLATE_APP_HELLO`` -- Enables simple Sidewalk hello world application. This is default option. See :ref:`sidewalk_hello` for more information. - * ``CONFIG_TEMPLATE_APP_SENSOR_MONITORING`` -- Enables Sidewalk Sensor monitoring application. See :ref:`sensor_monitoring` for more information. - -* ``CONFIG_TEMPLATE_APP_CLI`` -- Enables Sidewalk CLI. To see the list of available commands, flash sample and type ``sid help``. - -* ``CONFIG_SIDEWALK_AUTO_START`` -- Enable automatic Sidewalk initialization and start. - -* ``CONFIG_SIDEWALK_AUTO_CONN_REQ`` -- Enable automatic connection request before message send. The Bluetooth LE connection request action is performed automatically if needed. - -You can build the ``sensor_monitoring`` template application, with Bluetooth LE only libraries for ``build_target`` by running the following command in the project directory: - -.. parsed-literal:: - :class: highlight - - $ west build -b *build_target* -- -DCONFIG_TEMPLATE_APP_SENSOR_MONITORING=y -DCONFIG_SIDEWALK_SUBGHZ_SUPPORT=n - -For example: +* ``CONFIG_SID_END_DEVICE`` -- Switches between the application variants. -.. code-block:: console + * ``CONFIG_SID_END_DEVICE_HELLO`` -- Enables the Hello Sidewalk application. + This is the default option. + For more details, see the :ref:`sidewalk_hello` page. + * ``CONFIG_SID_END_DEVICE_SENSOR_MONITORING`` -- Enables the Sidewalk Sensor monitoring application. + For more details, see the :ref:`sidewalk_demo` page. + * ``CONFIG_SID_END_DEVICE_DUT`` -- Enables the Sidewalk device under test application. + For more details, see the :ref:`sidewalk_dut` page. - $ west build -b nrf5340dk_nrf5340_cpuapp -- -DCONFIG_TEMPLATE_APP_SENSOR_MONITORING=y -DCONFIG_SIDEWALK_SUBGHZ_SUPPORT=n +* ``CONFIG_SID_END_DEVICE_CLI`` -- Enables Sidewalk CLI. + To see the list of available commands, flash the sample and type ``sid help``. -Configuration overlays -====================== +* ``CONFIG_SID_END_DEVICE_AUTO_START`` -- Enables an automatic Sidewalk initialization and start. -* ``overlay-dut`` -- Sidewalk Device Under Test configuration. Enables CLI, disables sample automation. -* ``overlay-demo`` -- Sidewalk sensor monitoring configuration. -* ``overlay-hello`` -- Sidewalk hello sample configuration. This is default configuration. +* ``CONFIG_SID_END_DEVICE_AUTO_CONN_REQ`` -- Enables an automatic connection request before sending a message. + If needed, the Bluetooth LE connection request is sent automatically. -You can build the template application with Sidewalk DUT configuration overlay for ``build_target`` by running the following command in the project directory: +You can build the ``sensor_monitoring`` end device application with Bluetooth LE only libraries by running the following command in the project directory: .. parsed-literal:: :class: highlight - $ west build -b *build_target* -- -DOVERLAY_CONFIG="overlay-dut.conf" + $ west build -b *build_target* -- -DCONFIG_SID_END_DEVICE_SENSOR_MONITORING=y -DCONFIG_SIDEWALK_SUBGHZ_SUPPORT=n For example: .. code-block:: console - $ west build -b nrf52840dk_nrf52840 -- -DOVERLAY_CONFIG="overlay-dut.conf" - + $ west build -b nrf5340dk_nrf5340_cpuapp -- -DCONFIG_SID_END_DEVICE_SENSOR_MONITORING=y -DCONFIG_SIDEWALK_SUBGHZ_SUPPORT=n Source file setup ***************** @@ -188,24 +187,6 @@ The application consists of two source files: Sidewalk --> FirmwareUpdate : event_dfu FirmwareUpdate --> Sidewalk : event_dfu -.. _sidewalk_template_building_and_running: - -Building and Running -******************** - -This sample can be found under :file:`samples/template`. - -.. note:: - Before you flash your Sidewalk sample, make sure you have completed the following: - - * You downloaded the Sidewalk repository and updated west according to the :ref:`dk_building_sample_app` section. - * You provisioned your device during the :ref:`setting_up_sidewalk_product`. - - This step needs to be completed only once. - You do not have to repeat it for every sample rebuild. - -To build the sample, follow the steps in the `Building and programming an application`_ documentation. - .. _registering_sidewalk: Registering Sidewalk Endpoint @@ -228,22 +209,6 @@ For the exact instructions on both of these methods, refer to the `Registering a .. _Registering and testing your Sidewalk endpoint: https://docs.sidewalk.amazon/provisioning/iot-sidewalk-register-endpoint.html -.. _sidewalk_template_testing: - -Testing -******* - -Testing application scenarios are different dependent of the Sidewalk configuration was chosen. - -.. toctree:: - :maxdepth: 1 - :glob: - - template_testing/hello_sidewalk.rst - template_testing/sensor_monitoring.rst .. include:: ../ncs_links.rst - -.. _Semtech SX1262MB2CAS: https://www.semtech.com/products/wireless-rf/lora-transceivers/sx1262mb2cas - .. _SX1262: https://os.mbed.com/components/SX126xMB2xAS/ diff --git a/doc/samples/template_testing/sensor_monitoring.rst b/doc/samples/template_testing/sensor_monitoring.rst deleted file mode 100644 index 813d732576..0000000000 --- a/doc/samples/template_testing/sensor_monitoring.rst +++ /dev/null @@ -1,67 +0,0 @@ -.. _sensor_monitoring: - -Sensor monitoring -################# - -This sample demonstrates how a temperature sensor communicates over the secure Sidewalk network, which is a simple Sidewalk-based IOT use case. -It consists of an edge device (a sensor). -An application server (cloud backend with web UI) compatible with this sample is provided in `Amazon Sidewalk Sample IoT App`_ repository. - - -User Interface -************** - -Button 1-4 (short press): - Send button action message. This action works after application successfully sends capability message. - -LED 1-4: - Notify LED action message. This action works after application successfully sends capability message. - -For common sidewalk template user interface description see ::ref:`sidewalk_template_user_interface` - -Configuration -************* - -.. note:: - To build Sidewalk template as sensor monitoring application - the ``CONFIG_TEMPLATE_APP_SENSOR_MONITORING`` must be enabled in sample configuration. - -The Sidewalk sensor monitoring demo application supports the following configurations: - -* ``CONFIG_TEMPLATE_APP_NOTIFY_DATA_PERIOD_MS`` -- Notify period of sensor monitoring template app in milliseconds. - - -Testing -******* - -See `Testing and debugging an application`_ for information on testing and debugging in the nRF Connect SDK. - -After successfully building the sample and flashing manufacturing data, the sample is ready to use. -To refresh the logs, restart the program by pressing the :guilabel:`RESET` button on your development kit. -You should see the following output: - - .. code-block:: console - - *** Booting Zephyr OS build v3.2.99-ncs2 *** - ---------------------------------------------------------------- - sidewalk v1.14.3-1-g1232aabb - nrf v2.3.0 - zephyr v3.2.99-ncs2 - ---------------------------------------------------------------- - sidewalk_fork_point = af5d608303eb03465f35e369ef22ad6c02564ac6 - build time = 2023-03-14 15:00:00.000000+00:00 - ---------------------------------------------------------------- - - [00:00:00.006,225] sid_template: Sidewalk example started! - -Wait for the device to complete the automatic registration. - -.. note:: - For the full installation guidelines and the application overview, refer to the `Amazon Sidewalk Sample IoT App`_ repository. - -.. include:: testing_nordic_dfu_include.txt - -.. include:: ../../ncs_links.rst - -.. _SX1262: https://os.mbed.com/components/SX126xMB2xAS/ -.. _Amazon Sidewalk Sample IoT App: https://github.com/aws-samples/aws-iot-core-for-amazon-sidewalk-sample-app diff --git a/doc/samples/variants/demo.rst b/doc/samples/variants/demo.rst new file mode 100644 index 0000000000..00a6195587 --- /dev/null +++ b/doc/samples/variants/demo.rst @@ -0,0 +1,94 @@ +.. _sidewalk_demo: + +Sensor monitoring +################# + +This sample demonstrates how a temperature sensor communicates over the secure Sidewalk network, which is a simple Sidewalk-based IoT use case. +It requires an edge device (a sensor). +An application server (cloud backend with web UI) compatible with this sample is provided in `Amazon Sidewalk Sample IoT App`_ repository. + + +User Interface +************** + +.. include:: include_user_interface_common.txt + +Button 1-4 (short press): + Send button action message - This action works after the application successfully sends capability message. + +LED 1-4: + Notify LED action message - This action works after the application successfully sends capability message. + +Configuration +************* + +.. note:: + To build the Sensor monitoring application variant of the Sidewalk end device, use the ``OVERLAY_CONFIG="overlay-demo.conf"`` configuration. + +The Sidewalk sensor monitoring demo application supports the following configurations: + +* ``CONFIG_SID_END_DEVICE_NOTIFY_DATA_PERIOD_MS`` -- Enables the notify period of the sensor monitoring end device app in milliseconds. + +For more configuration options, see :ref:`sidewalk_end_device_configuration`. + +Source file setup +***************** + +The application consists of two source files: + +* :file:`app.c` (:file:`app.h`) -- The main application file starts the TX and RX thread, assigns button actions to the board's buttons, and adds received messages to the received message queue. +* :file:`app_sensor.c`, :file:`app_button.c`, :file:`app_led.c` -- The files implement interface between the hardware and sample application. +* :file:`app_rx.c` (:file:`app.h`) -- RX thread reads messages form the received messages queue, deserializes them, and triggers actions. +* :file:`app_tx.c` (:file:`app.h`) -- TX thread sends messages from the device to cloud. + Depending on the actual state of the device, it sends capability messages or sensor data notifications. + + .. uml:: + :caption: Application TX thread state machine + + [*] -> Init + Init --> Notify_Capacity : time_syc_success + Notify_Capacity --> Notify_Data : capacity_success + Notify_Data --> Notify_Capacity : time_syc_fail + Notify_Data --> Notify_Data : action_response + Notify_Data --> Notify_Data : action_notify + +Building and running +******************** + +.. include:: include_building_and_running.txt + +Testing +******* + +.. note:: + For the full installation guidelines and the application overview, refer to the `Amazon Sidewalk Sample IoT App`_ repository. + Flash the Nordic device with the end device sensor monitoring application instead of the prebuilt HEX file provided in the cloud application repository. + +See `Testing and debugging an application`_ for information on testing and debugging in the nRF Connect SDK. + +After successfully building the sample and flashing manufacturing data, the sample is ready to use. +To refresh the logs, restart the program by pressing the :guilabel:`RESET` button on your development kit. +You should see the following output: + + .. code-block:: console + + *** Booting nRF Connect SDK 883c3709f9c8 *** + ---------------------------------------------------------------- + sidewalk v2.5.0-3-g1232aabb + nrf v2.5.0-g271e80422 + zephyr 883c3709f9 + ---------------------------------------------------------------- + sidewalk_fork_point = af5d608303eb03465f35e369ef22ad6c02564ac6 + build time = 2023-03-14 15:00:00.000000+00:00 + board = nrf52840dk_nrf52840 + ---------------------------------------------------------------- + [00:00:00.001,373] application_state: working = true + [00:00:00.055,480] sidewalk_app: Sidewalk link switch to BLE + +Wait for the device to complete the automatic registration. + +.. include:: include_testing_nordic_dfu.txt + +.. include:: ../../ncs_links.rst +.. _SX1262: https://os.mbed.com/components/SX126xMB2xAS/ +.. _Amazon Sidewalk Sample IoT App: https://github.com/aws-samples/aws-iot-core-for-amazon-sidewalk-sample-app diff --git a/doc/samples/variants/dut.rst b/doc/samples/variants/dut.rst new file mode 100644 index 0000000000..6679ac29e1 --- /dev/null +++ b/doc/samples/variants/dut.rst @@ -0,0 +1,33 @@ +.. _sidewalk_dut: + +Device Under Test +################# + +This sample demonstrates how to use Sidewalk Device Under Test for the testing and evaluation purposes. + +Configuration +************* + +.. note:: + To build the Device under test application variant of the Sidewalk end device, use the ``OVERLAY_CONFIG="overlay-dut.conf"`` configuration. + +For more configuration option see :ref:`sidewalk_end_device_configuration`. + +Building and running +******************** + +.. include:: include_building_and_running.txt + +Testing +******* + +#. After successfully building and flashing the sample is ready to use. You should see the following command-line prompt: + + .. code-block:: console + + uart$ + +#. To start testing the application, use the Sidewalk CLI (DUT). + Type ``sid help`` and press enter to get the list of supported commands. + +.. include:: ../../ncs_links.rst diff --git a/doc/samples/template_testing/hello_sidewalk.rst b/doc/samples/variants/hello.rst similarity index 87% rename from doc/samples/template_testing/hello_sidewalk.rst rename to doc/samples/variants/hello.rst index 899e781999..9adccef25b 100644 --- a/doc/samples/template_testing/hello_sidewalk.rst +++ b/doc/samples/variants/hello.rst @@ -5,21 +5,14 @@ Hello Sidewalk This sample demonstrates a simple Sidewalk End Node application. It can send Hello message to Sidewalk cloud on button press, as well as represent the Sidewalk status by LED state. -It supports Bluetooth LE, LoRa, and FSK link modes. -External QSPI Flash is used for firmware updates. - -Overview -******** - -The Sidewalk status is indicated by LEDs state and is also printed in the device logs. -It supports actions, such as sending messages, performing factory reset, and entering the DFU state. - .. _sidewalk_hello_user_interface: User Interface ************** +.. include:: include_user_interface_common.txt + Button 1 (short press): Send Hello - This action queues a message to the cloud. If Sidewalk is not ready, it displays an error without sending the message. @@ -46,19 +39,22 @@ LED 3: LED 4: Application woke up successfully. -For common sidewalk template user interface description see ::ref:`sidewalk_template_user_interface` - Configuration ************* The hello Sidewalk application supports the following configurations: -* ``CONFIG_TEMPLATE_APP_ECHO_MSGS`` -- The sample echoes received Sidewalk messages of type GET and SET to the Sidewalk cloud. +* ``CONFIG_SID_END_DEVICE_ECHO_MSGS`` -- The sample echoes the received Sidewalk messages (``GET`` and ``SET`` type) to the Sidewalk cloud. + +For more configuration options, see :ref:`sidewalk_end_device_configuration`. -.. _sidewalk_template_source_files: +Building and running +******************** + +.. include:: include_building_and_running.txt Testing -======= +******* See `Testing and debugging an application`_ for information on testing and debugging in the nRF Connect SDK. @@ -148,7 +144,7 @@ Follow the outlined steps: .. code-block:: console # Logs from DK after pressing "Button 1" - [00:04:57.461,029] sid_template: Pressed button 1 + [00:04:57.461,029] sid_end device: Pressed button 1 [00:04:57.461,120] sid_thread: sending counter update: 0 [00:04:57.461,456] sid_thread: queued data message id:3 @@ -246,8 +242,14 @@ Receiving message from AWS MQTT 21 |! -.. include:: testing_nordic_dfu_include.txt - -.. include:: ../ncs_links.rst +.. include:: include_testing_nordic_dfu.txt +.. include:: ../../ncs_links.rst .. _SX1262: https://os.mbed.com/components/SX126xMB2xAS/ +.. _AWS IoT MQTT client: https://docs.aws.amazon.com/iot/latest/developerguide/view-mqtt-messages.html +.. _Installing or updating the latest version of the AWS CLI: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html +.. _ID users change permissions: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html +.. _Sidewalk Protocol Specification: https://docs.sidewalk.amazon/specifications/ +.. _Sidewalk_Handler CloudWatch log group: https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:log-groups/log-group/$252Faws$252Flambda$252FSidewalk_Handler +.. _AWS IoT MQTT client: https://docs.aws.amazon.com/iot/latest/developerguide/view-mqtt-messages.html +.. _CloudShell: https://console.aws.amazon.com/cloudshell diff --git a/doc/samples/variants/include_building_and_running.txt b/doc/samples/variants/include_building_and_running.txt new file mode 100644 index 0000000000..3d40092c63 --- /dev/null +++ b/doc/samples/variants/include_building_and_running.txt @@ -0,0 +1,12 @@ +This sample can be found under :file:`samples/sid_end_device`. + +.. note:: + Before you flash your Sidewalk sample, make sure you have completed the following: + + * You downloaded the Sidewalk repository and updated west according to the :ref:`dk_building_sample_app` section. + * You provisioned your device during the :ref:`setting_up_sidewalk_product`. + + This step needs to be completed only once. + You do not have to repeat it for every sample rebuild. + +To build the sample, follow the steps in the `Building and programming an application`_ documentation. diff --git a/doc/samples/template_testing/testing_nordic_dfu_include.txt b/doc/samples/variants/include_testing_nordic_dfu.txt similarity index 61% rename from doc/samples/template_testing/testing_nordic_dfu_include.txt rename to doc/samples/variants/include_testing_nordic_dfu.txt index f437db0e4d..0342c0dca6 100644 --- a/doc/samples/template_testing/testing_nordic_dfu_include.txt +++ b/doc/samples/variants/include_testing_nordic_dfu.txt @@ -18,11 +18,4 @@ Testing Device Firmware Update (DFU) .. include:: ../../ncs_links.rst -.. _AWS IoT MQTT client: https://docs.aws.amazon.com/iot/latest/developerguide/view-mqtt-messages.html -.. _Installing or updating the latest version of the AWS CLI: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html -.. _ID users change permissions: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html .. _DevZone DFU guide: https://devzone.nordicsemi.com/guides/nrf-connect-sdk-guides/b/software/posts/ncs-dfu#ble_testing -.. _Sidewalk Protocol Specification: https://docs.sidewalk.amazon/specifications/ -.. _Sidewalk_Handler CloudWatch log group: https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:log-groups/log-group/$252Faws$252Flambda$252FSidewalk_Handler -.. _AWS IoT MQTT client: https://docs.aws.amazon.com/iot/latest/developerguide/view-mqtt-messages.html -.. _CloudShell: https://console.aws.amazon.com/cloudshell diff --git a/doc/samples/variants/include_user_interface_common.txt b/doc/samples/variants/include_user_interface_common.txt new file mode 100644 index 0000000000..84d6910cd2 --- /dev/null +++ b/doc/samples/variants/include_user_interface_common.txt @@ -0,0 +1,13 @@ +Button 1 (long press): + Enter DFU state - This action disables the Sidewalk stack and starts the Bluetooth LE SMP Server. + You can update the firmware image using the nRF Connect for mobile application. + To exit the DFU state, long press **Button 1**. + +Button 2 (long press): + Factory reset - The application informs the Sidewalk stack about the factory reset event. + The Sidewalk library clears its configuration from the non-volatile storage. + After a successful reset, the device needs to be registered with the cloud services again. + +Button 3 (long press): + Toggles the Sidewalk link mask - This action switches from Bluetooth LE to FSK, from FSK to LoRa, and from LoRa to Bluetooth LE. + A log message informs about the link mask switch and the status of the operation. diff --git a/doc/setting_up_sidewalk_environment/requirements.rst b/doc/setting_up_sidewalk_environment/requirements.rst index b7705de0e9..0cb6469582 100644 --- a/doc/setting_up_sidewalk_environment/requirements.rst +++ b/doc/setting_up_sidewalk_environment/requirements.rst @@ -49,49 +49,41 @@ All values are provided in kilobytes (KB). .. tabs:: - .. tab:: nRF52840 DK + .. tab:: `nRF52840 DK`_ The following table lists memory requirements for samples running on the `nRF52840 DK`_. - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | Sample | MCUboot ROM | Application ROM | Sidewalk Settings | Total ROM | Total RAM | - +=====================================================================+===============+===================+=====================+=============+=============+ - | :ref:`Sensor monitoring ` (Bluetooth LE Debug) | 0 | 364 | 32 | 396 | 78 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sensor monitoring ` (FSK Debug) | 0 | 517 | 32 | 549 | 98 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sensor monitoring ` (LoRa Debug) | 0 | 464 | 32 | 496 | 97 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sidewalk template ` (Debug) | 36 | 478 | 28 | 542 | 109 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sidewalk template ` (Bluetooth LE Debug) | 36 | 378 | 28 | 442 | 91 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sidewalk template ` (Bluetooth LE Release) | 36 | 313 | 28 | 377 | 86 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sidewalk template ` (Release) | 36 | 407 | 28 | 471 | 104 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - - .. tab:: nRF5340 DK + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | Sample | MCUboot ROM | Application ROM | Sidewalk Settings | Total ROM | Total RAM | + +=======================================================================+===============+===================+=====================+=============+=============+ + | :ref:`Sensor monitoring ` (Debug) | 36 | 494 | 28 | 558 | 119 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | :ref:`End device Bluetooth LE and sub-GHz ` (Debug) | 36 | 494 | 28 | 558 | 109 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | :ref:`End device Bluetooth LE ` (Debug) | 36 | 409 | 28 | 473 | 89 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | :ref:`End device Bluetooth LE ` (Release) | 36 | 350 | 28 | 414 | 84 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | :ref:`End device Bluetooth LE and sub-GHz ` (Release) | 36 | 431 | 28 | 495 | 104 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + + .. tab:: `nRF5340 DK`_ The following table lists memory requirements for samples running on the `nRF5340 DK`_. - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | Sample | MCUboot ROM | Application ROM | Sidewalk Settings | Total ROM | Total RAM | - +=====================================================================+===============+===================+=====================+=============+=============+ - | :ref:`Sensor monitoring ` (Bluetooth LE Debug) | 0 | 309 | 32 | 341 | 67 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sensor monitoring ` (FSK Debug) | 0 | 449 | 32 | 481 | 87 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sensor monitoring ` (LoRa Debug) | 0 | 405 | 32 | 437 | 86 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sidewalk template ` (Debug) | 40 | 419 | 28 | 487 | 98 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sidewalk template ` (Bluetooth LE Debug) | 40 | 324 | 28 | 392 | 81 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sidewalk template ` (Bluetooth LE Release) | 40 | 255 | 28 | 323 | 76 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ - | :ref:`Sidewalk template ` (Release) | 40 | 346 | 28 | 414 | 93 | - +---------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | Sample | MCUboot ROM | Application ROM | Sidewalk Settings | Total ROM | Total RAM | + +=======================================================================+===============+===================+=====================+=============+=============+ + | :ref:`Sensor monitoring ` (Debug) | 40 | 430 | 28 | 498 | 109 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | :ref:`End device Bluetooth LE and sub-GHz ` (Debug) | 40 | 429 | 28 | 497 | 99 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | :ref:`End device Bluetooth LE ` (Debug) | 40 | 348 | 28 | 416 | 80 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | :ref:`End device Bluetooth LE ` (Release) | 40 | 286 | 28 | 354 | 75 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ + | :ref:`End device Bluetooth LE and sub-GHz ` (Release) | 40 | 364 | 28 | 432 | 94 | + +-----------------------------------------------------------------------+---------------+-------------------+---------------------+-------------+-------------+ .. include:: ../ncs_links.rst diff --git a/samples/sid_end_device/CMakeLists.txt b/samples/sid_end_device/CMakeLists.txt index f3aab54821..a0e718199a 100644 --- a/samples/sid_end_device/CMakeLists.txt +++ b/samples/sid_end_device/CMakeLists.txt @@ -26,7 +26,7 @@ endif() # Zephyr CMake project find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) -project(sidewalk_template) +project(sidewalk_sid_end_device) # Source files target_include_directories(app PRIVATE include) @@ -35,7 +35,7 @@ target_sources(app PRIVATE src/sidewalk.c ) -if(CONFIG_TEMPLATE_APP_SENSOR_MONITORING) +if(CONFIG_SID_END_DEVICE_SENSOR_MONITORING) target_sources(app PRIVATE src/sensor_monitoring/app_buttons.c src/sensor_monitoring/app_leds.c @@ -44,7 +44,7 @@ if(CONFIG_TEMPLATE_APP_SENSOR_MONITORING) src/sensor_monitoring/app_rx.c src/sensor_monitoring/app.c ) -elseif(CONFIG_TEMPLATE_APP_DUT) +elseif(CONFIG_SID_END_DEVICE_DUT) target_sources(app PRIVATE src/cli/app.c ) @@ -54,7 +54,7 @@ else() ) endif() -if(CONFIG_TEMPLATE_APP_CLI) +if(CONFIG_SID_END_DEVICE_CLI) target_sources(app PRIVATE src/cli/app_dut.c src/cli/app_shell.c diff --git a/samples/sid_end_device/Kconfig b/samples/sid_end_device/Kconfig index f36542fb2d..4f14a7f8a0 100644 --- a/samples/sid_end_device/Kconfig +++ b/samples/sid_end_device/Kconfig @@ -4,55 +4,55 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -mainmenu "Sidewalk nRF Connect Application" +mainmenu "Sidewalk End Device nRF Connect Application" -choice TEMPLATE_APP - prompt "Select template application to run" - default TEMPLATE_APP_HELLO -config TEMPLATE_APP_HELLO +choice SID_END_DEVICE + prompt "Select application variant to run" + default SID_END_DEVICE_HELLO +config SID_END_DEVICE_HELLO bool "Sidewalk hello world application" -config TEMPLATE_APP_SENSOR_MONITORING +config SID_END_DEVICE_SENSOR_MONITORING bool "Demo sensor monitoring application" imply SIDEWALK_DEMO_PARSER imply SENSOR imply TEMP_NRF5 -config TEMPLATE_APP_DUT +config SID_END_DEVICE_DUT bool "Device under test application" -endchoice #TEMPLATE_APP +endchoice #SID_END_DEVICE -if TEMPLATE_APP_HELLO +if SID_END_DEVICE_HELLO -config TEMPLATE_APP_ECHO_MSGS +config SID_END_DEVICE_ECHO_MSGS bool "Eable message echo feature" default y help Echo received messages back to Sidewlak cloud. Works with GET and SET messages types. -endif #TEMPLATE_APP_HELLO +endif #SID_END_DEVICE_HELLO -if TEMPLATE_APP_SENSOR_MONITORING +if SID_END_DEVICE_SENSOR_MONITORING rsource "Kconfig.sensor_monitoring" -endif #TEMPLATE_APP_SENSOR_MONITORING +endif #SID_END_DEVICE_SENSOR_MONITORING -config TEMPLATE_APP_CLI +config SID_END_DEVICE_CLI bool "Enable Sidewalk CLI (DUT)" imply SHELL help Enables Sidewalk command line interface. The interface commands are compatilbe with former dut sample. -config SIDEWALK_AUTO_START +config SID_END_DEVICE_AUTO_START default y bool "Enable automatic Sidewalk initlization and start" -config SIDEWALK_AUTO_CONN_REQ +config SID_END_DEVICE_AUTO_CONN_REQ default y bool "Enable automatic connection request before message send" -config SIDEWALK_PERSISTENT_LINK_MASK +config SID_END_DEVICE_PERSISTENT_LINK_MASK select EXPERIMENTAL bool "Enable persitent link mask" help @@ -60,7 +60,7 @@ config SIDEWALK_PERSISTENT_LINK_MASK but defaults after a factory reset. This could affect the flash lifespan. -config TEMPLATE_APP_EVENT_HEAP_SIZE +config SID_END_DEVICE_EVENT_HEAP_SIZE int "Heap for Sidewalk event contexts" default 2048 diff --git a/samples/sid_end_device/Kconfig.defconfig b/samples/sid_end_device/Kconfig.defconfig index ca586ccd81..56afef8627 100644 --- a/samples/sid_end_device/Kconfig.defconfig +++ b/samples/sid_end_device/Kconfig.defconfig @@ -57,7 +57,7 @@ config LOG_PROCESS_THREAD_STARTUP_DELAY_MS default 50 if SHELL config SHELL_STACK_SIZE - default 8192 if TEMPLATE_APP_CLI + default 8192 if SID_END_DEVICE_CLI config HEAP_MEM_POOL_SIZE default 8192 if SIDEWALK_ON_DEV_CERT @@ -67,7 +67,7 @@ config SPI_NRFX_RAM_BUFFER_SIZE default 0 # CLI -if TEMPLATE_APP_CLI +if SID_END_DEVICE_CLI config SHELL_CMD_BUFF_SIZE default 1024 @@ -78,7 +78,7 @@ config SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE config SHELL_BACKEND_SERIAL_RX_RING_BUFFER_SIZE default 1024 -endif # TEMPLATE_APP_CLI +endif # SID_END_DEVICE_CLI # Others config SPIN_VALIDATE diff --git a/samples/sid_end_device/Kconfig.sensor_monitoring b/samples/sid_end_device/Kconfig.sensor_monitoring index 67d40ca1ba..9bc079a68d 100644 --- a/samples/sid_end_device/Kconfig.sensor_monitoring +++ b/samples/sid_end_device/Kconfig.sensor_monitoring @@ -4,33 +4,33 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -config TEMPLATE_APP_NOTIFY_DATA_PERIOD_MS - int "Notify period of sensor monitoring template app" +config SID_END_DEVICE_NOTIFY_DATA_PERIOD_MS + int "Notify period of sensor monitoring demo app" default 10000 config SIDEWALK_THREAD_PRIORITY default 12 -config TEMPLATE_APP_TX_THREAD_PRIORITY +config SID_END_DEVICE_TX_THREAD_PRIORITY int default 13 -config TEMPLATE_APP_RX_THREAD_PRIORITY +config SID_END_DEVICE_RX_THREAD_PRIORITY int default 14 -config TEMPLATE_APP_TX_THREAD_STACK_SIZE +config SID_END_DEVICE_TX_THREAD_STACK_SIZE int default 4096 -config TEMPLATE_APP_RX_THREAD_STACK_SIZE +config SID_END_DEVICE_RX_THREAD_STACK_SIZE int default 4096 -config TEMPLATE_APP_TX_THREAD_QUEUE_SIZE +config SID_END_DEVICE_TX_THREAD_QUEUE_SIZE int default 10 -config TEMPLATE_APP_RX_THREAD_QUEUE_SIZE +config SID_END_DEVICE_RX_THREAD_QUEUE_SIZE int default 4 diff --git a/samples/sid_end_device/include/app.h b/samples/sid_end_device/include/app.h index 4f26832f1b..077f3caf5e 100644 --- a/samples/sid_end_device/include/app.h +++ b/samples/sid_end_device/include/app.h @@ -5,7 +5,7 @@ */ /** - * @brief Start template application + * @brief Start Sidewalk end device application. * * @note This function should never return. */ diff --git a/samples/sid_end_device/overlay-demo.conf b/samples/sid_end_device/overlay-demo.conf index 8ecfb20576..35fd400a51 100644 --- a/samples/sid_end_device/overlay-demo.conf +++ b/samples/sid_end_device/overlay-demo.conf @@ -4,4 +4,4 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -CONFIG_TEMPLATE_APP_SENSOR_MONITORING=y +CONFIG_SID_END_DEVICE_SENSOR_MONITORING=y diff --git a/samples/sid_end_device/overlay-dut.conf b/samples/sid_end_device/overlay-dut.conf index 99cc6de08f..d33149b7c9 100644 --- a/samples/sid_end_device/overlay-dut.conf +++ b/samples/sid_end_device/overlay-dut.conf @@ -3,13 +3,13 @@ # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -CONFIG_TEMPLATE_APP_DUT=y +CONFIG_SID_END_DEVICE_DUT=y -CONFIG_TEMPLATE_APP_CLI=y +CONFIG_SID_END_DEVICE_CLI=y CONFIG_SIDEWALK_ON_DEV_CERT=y CONFIG_SIDEWALK_BLE_ADAPTER_LOG_LEVEL_DBG=y -CONFIG_SIDEWALK_AUTO_START=n -CONFIG_SIDEWALK_AUTO_CONN_REQ=n -CONFIG_TEMPLATE_APP_ECHO_MSGS=n +CONFIG_SID_END_DEVICE_AUTO_START=n +CONFIG_SID_END_DEVICE_AUTO_CONN_REQ=n +CONFIG_SID_END_DEVICE_ECHO_MSGS=n diff --git a/samples/sid_end_device/overlay-hello.conf b/samples/sid_end_device/overlay-hello.conf index 6941882b88..9989cb8a10 100644 --- a/samples/sid_end_device/overlay-hello.conf +++ b/samples/sid_end_device/overlay-hello.conf @@ -4,4 +4,4 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -CONFIG_TEMPLATE_APP_HELLO=y +CONFIG_SID_END_DEVICE_HELLO=y diff --git a/samples/sid_end_device/sample.yaml b/samples/sid_end_device/sample.yaml index a3d3c46949..4fbfc7e5df 100644 --- a/samples/sid_end_device/sample.yaml +++ b/samples/sid_end_device/sample.yaml @@ -5,7 +5,7 @@ tests: sample.sidewalk.hello: build_only: true platform_allow: nrf52840dk_nrf52840 nrf5340dk_nrf5340_cpuapp - extra_args: CONFIG_SIDEWALK_PERSISTENT_LINK_MASK=y + extra_args: CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK=y integration_platforms: - nrf52840dk_nrf52840 - nrf5340dk_nrf5340_cpuapp @@ -16,7 +16,7 @@ tests: platform_allow: nrf52840dk_nrf52840 nrf5340dk_nrf5340_cpuapp extra_args: CONF_FILE=prj_release.conf - CONFIG_SIDEWALK_PERSISTENT_LINK_MASK=y + CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK=y integration_platforms: - nrf52840dk_nrf52840 - nrf5340dk_nrf5340_cpuapp @@ -27,7 +27,7 @@ tests: platform_allow: nrf52840dk_nrf52840 nrf5340dk_nrf5340_cpuapp extra_args: CONF_FILE=prj_no_dfu.conf - CONFIG_SIDEWALK_PERSISTENT_LINK_MASK=y + CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK=y integration_platforms: - nrf52840dk_nrf52840 - nrf5340dk_nrf5340_cpuapp @@ -58,7 +58,7 @@ tests: platform_allow: nrf52840dk_nrf52840 nrf5340dk_nrf5340_cpuapp extra_args: OVERLAY_CONFIG="overlay-demo.conf" - CONFIG_SIDEWALK_PERSISTENT_LINK_MASK=y + CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK=y integration_platforms: - nrf52840dk_nrf52840 - nrf5340dk_nrf5340_cpuapp diff --git a/samples/sid_end_device/src/hello/app.c b/samples/sid_end_device/src/hello/app.c index 939597f89f..7145e56dac 100644 --- a/samples/sid_end_device/src/hello/app.c +++ b/samples/sid_end_device/src/hello/app.c @@ -45,7 +45,7 @@ static void on_sidewalk_msg_received(const struct sid_msg_desc *msg_desc, const application_state_receiving(&global_state_notifier, true); application_state_receiving(&global_state_notifier, false); -#ifdef CONFIG_TEMPLATE_APP_ECHO_MSGS +#ifdef CONFIG_SID_END_DEVICE_ECHO_MSGS if (msg_desc->type == SID_MSG_TYPE_GET || msg_desc->type == SID_MSG_TYPE_SET) { LOG_INF("Send echo message"); sidewalk_msg_t *echo = sidewalk_data_alloc(sizeof(sidewalk_msg_t)); @@ -70,7 +70,7 @@ static void on_sidewalk_msg_received(const struct sid_msg_desc *msg_desc, const application_state_sending(&global_state_notifier, true); } }; -#endif /* CONFIG_TEMPLATE_APP_ECHO_MSGS */ +#endif /* CONFIG_SID_END_DEVICE_ECHO_MSGS */ } static void on_sidewalk_msg_sent(const struct sid_msg_desc *msg_desc, void *context) @@ -97,7 +97,7 @@ static void on_sidewalk_send_error(sid_error_t error, const struct sid_msg_desc static void on_sidewalk_factory_reset(void *context) { ARG_UNUSED(context); -#ifndef CONFIG_TEMPLATE_APP_CLI +#ifndef CONFIG_SID_END_DEVICE_CLI LOG_INF("Factory reset notification received from sid api"); if (sid_hal_reset(SID_HAL_RESET_NORMAL)) { LOG_WRN("Cannot reboot"); diff --git a/samples/sid_end_device/src/sensor_monitoring/app.c b/samples/sid_end_device/src/sensor_monitoring/app.c index c182f6e30e..a165aabb0a 100644 --- a/samples/sid_end_device/src/sensor_monitoring/app.c +++ b/samples/sid_end_device/src/sensor_monitoring/app.c @@ -22,8 +22,8 @@ LOG_MODULE_REGISTER(app, CONFIG_SIDEWALK_LOG_LEVEL); #define NOTIFY_TIMER_DURATION_MS (500) -K_THREAD_STACK_DEFINE(app_tx_stack, CONFIG_TEMPLATE_APP_TX_THREAD_STACK_SIZE); -K_THREAD_STACK_DEFINE(app_rx_stack, CONFIG_TEMPLATE_APP_RX_THREAD_STACK_SIZE); +K_THREAD_STACK_DEFINE(app_tx_stack, CONFIG_SID_END_DEVICE_TX_THREAD_STACK_SIZE); +K_THREAD_STACK_DEFINE(app_rx_stack, CONFIG_SID_END_DEVICE_RX_THREAD_STACK_SIZE); static struct k_thread app_main; static struct k_thread app_rx; @@ -169,12 +169,12 @@ static int app_buttons_init(void) void app_start_tasks(void) { (void)k_thread_create(&app_main, app_tx_stack, K_THREAD_STACK_SIZEOF(app_tx_stack), - app_tx_task, NULL, NULL, NULL, CONFIG_TEMPLATE_APP_TX_THREAD_PRIORITY, - 0, K_NO_WAIT); + app_tx_task, NULL, NULL, NULL, + CONFIG_SID_END_DEVICE_TX_THREAD_PRIORITY, 0, K_NO_WAIT); (void)k_thread_create(&app_rx, app_rx_stack, K_THREAD_STACK_SIZEOF(app_rx_stack), - app_rx_task, NULL, NULL, NULL, CONFIG_TEMPLATE_APP_RX_THREAD_PRIORITY, - 0, K_NO_WAIT); + app_rx_task, NULL, NULL, NULL, + CONFIG_SID_END_DEVICE_RX_THREAD_PRIORITY, 0, K_NO_WAIT); k_thread_name_set(&app_main, "app_main"); k_thread_name_set(&app_rx, "app_rx"); @@ -211,5 +211,5 @@ void app_start(void) app_start_tasks(); k_timer_start(¬ify_timer, K_MSEC(NOTIFY_TIMER_DURATION_MS), - K_MSEC(CONFIG_TEMPLATE_APP_NOTIFY_DATA_PERIOD_MS)); + K_MSEC(CONFIG_SID_END_DEVICE_NOTIFY_DATA_PERIOD_MS)); } diff --git a/samples/sid_end_device/src/sensor_monitoring/app_rx.c b/samples/sid_end_device/src/sensor_monitoring/app_rx.c index 6e90421da0..13e0028d02 100644 --- a/samples/sid_end_device/src/sensor_monitoring/app_rx.c +++ b/samples/sid_end_device/src/sensor_monitoring/app_rx.c @@ -17,7 +17,7 @@ LOG_MODULE_REGISTER(app_rx, CONFIG_SIDEWALK_LOG_LEVEL); #define ACTION_RESP_BTN_ALL (0xFF) #define ACTION_REQ_LED_ALL (0xFF) -K_MSGQ_DEFINE(rx_msgq, sizeof(struct app_rx_msg), CONFIG_TEMPLATE_APP_RX_THREAD_QUEUE_SIZE, 4); +K_MSGQ_DEFINE(rx_msgq, sizeof(struct app_rx_msg), CONFIG_SID_END_DEVICE_RX_THREAD_QUEUE_SIZE, 4); static void app_rx_button_resp_process(struct sid_demo_msg *msg) { diff --git a/samples/sid_end_device/src/sensor_monitoring/app_tx.c b/samples/sid_end_device/src/sensor_monitoring/app_tx.c index 5b3fb05e75..21ba5c430e 100644 --- a/samples/sid_end_device/src/sensor_monitoring/app_tx.c +++ b/samples/sid_end_device/src/sensor_monitoring/app_tx.c @@ -50,8 +50,8 @@ static const struct smf_state app_states[] = { [STATE_APP_NOTIFY_DATA] = SMF_CREATE_STATE(NULL, state_notify_data, NULL), }; -static uint8_t - __aligned(4) app_msgq_buff[CONFIG_TEMPLATE_APP_TX_THREAD_QUEUE_SIZE * sizeof(app_event_t)]; +static uint8_t __aligned(4) + app_msgq_buff[CONFIG_SID_END_DEVICE_TX_THREAD_QUEUE_SIZE * sizeof(app_event_t)]; K_TIMER_DEFINE(button_timer, button_timer_cb, NULL); @@ -421,7 +421,7 @@ void app_tx_task(void *dummy1, void *dummy2, void *dummy3) K_MSEC(APP_NOTIFY_BUTTON_PERIOD_MS)); k_msgq_init(&app_sm.msgq, app_msgq_buff, sizeof(app_event_t), - CONFIG_TEMPLATE_APP_TX_THREAD_QUEUE_SIZE); + CONFIG_SID_END_DEVICE_TX_THREAD_QUEUE_SIZE); smf_set_initial(SMF_CTX(&app_sm), &app_states[STATE_APP_INIT]); while (1) { diff --git a/samples/sid_end_device/src/sidewalk.c b/samples/sid_end_device/src/sidewalk.c index 461597e86e..77d38a93dc 100644 --- a/samples/sid_end_device/src/sidewalk.c +++ b/samples/sid_end_device/src/sidewalk.c @@ -8,10 +8,10 @@ #include #include #include -#ifdef CONFIG_TEMPLATE_APP_CLI +#ifdef CONFIG_SID_END_DEVICE_CLI #include #endif -#ifdef CONFIG_SIDEWALK_PERSISTENT_LINK_MASK +#ifdef CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK #include #endif #include @@ -35,7 +35,7 @@ LOG_MODULE_REGISTER(sidewalk_app, CONFIG_SIDEWALK_LOG_LEVEL); static struct k_thread sid_thread; K_THREAD_STACK_DEFINE(sid_thread_stack, CONFIG_SIDEWALK_THREAD_STACK_SIZE); -K_HEAP_DEFINE(data_heap, CONFIG_TEMPLATE_APP_EVENT_HEAP_SIZE); +K_HEAP_DEFINE(data_heap, CONFIG_SID_END_DEVICE_EVENT_HEAP_SIZE); typedef struct sm_s { struct smf_ctx ctx; @@ -49,7 +49,7 @@ enum state { STATE_DFU, }; -#ifdef CONFIG_SIDEWALK_AUTO_CONN_REQ +#ifdef CONFIG_SID_END_DEVICE_AUTO_CONN_REQ static void *pending_msg_ctx; #endif @@ -92,17 +92,17 @@ static void state_sidewalk_entry(void *o) return; } -#ifdef CONFIG_SIDEWALK_AUTO_START +#ifdef CONFIG_SID_END_DEVICE_AUTO_START sm_t *sm = (sm_t *)o; -#ifdef CONFIG_SIDEWALK_PERSISTENT_LINK_MASK +#ifdef CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK int err = settings_utils_link_mask_get(&sm->sid->config.link_mask); if (err) { LOG_WRN("Link mask get failed %d", err); sm->sid->config.link_mask = 0; settings_utils_link_mask_set(DEFAULT_LM); } -#endif /* CONFIG_SIDEWALK_PERSISTENT_LINK_MASK */ +#endif /* CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK */ if (!sm->sid->config.link_mask) { sm->sid->config.link_mask = DEFAULT_LM; @@ -121,7 +121,7 @@ static void state_sidewalk_entry(void *o) if (e) { LOG_ERR("sid start err %d", (int)e); } -#endif /* CONFIG_SIDEWALK_AUTO_START */ +#endif /* CONFIG_SID_END_DEVICE_AUTO_START */ } static void state_sidewalk_run(void *o) @@ -137,7 +137,7 @@ static void state_sidewalk_run(void *o) } break; case SID_EVENT_FACTORY_RESET: -#ifdef CONFIG_SIDEWALK_PERSISTENT_LINK_MASK +#ifdef CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK (void)settings_utils_link_mask_set(0); #endif e = sid_set_factory_reset(sm->sid->handle); @@ -164,12 +164,12 @@ static void state_sidewalk_run(void *o) LOG_INF("Sidewalk link switch to %s", (SID_LINK_TYPE_3 & new_link_mask) ? "LoRa" : (SID_LINK_TYPE_2 & new_link_mask) ? "FSK" : "BLE"); -#ifdef CONFIG_SIDEWALK_PERSISTENT_LINK_MASK +#ifdef CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK int err = settings_utils_link_mask_set(new_link_mask); if (err) { LOG_ERR("New link mask set err %d", err); } -#endif /* CONFIG_SIDEWALK_PERSISTENT_LINK_MASK */ +#endif /* CONFIG_SID_END_DEVICE_PERSISTENT_LINK_MASK */ if (sm->sid->handle != NULL) { e = sid_deinit(sm->sid->handle); @@ -205,11 +205,11 @@ static void state_sidewalk_run(void *o) memcpy(&sm->sid->last_status, p_status, sizeof(struct sid_status)); sidewalk_data_free(p_status); -#ifdef CONFIG_SIDEWALK_AUTO_CONN_REQ +#ifdef CONFIG_SID_END_DEVICE_AUTO_CONN_REQ if (pending_msg_ctx) { sidewalk_event_send(SID_EVENT_SEND_MSG, pending_msg_ctx); } -#endif /* CONFIG_SIDEWALK_AUTO_CONN_REQ */ +#endif /* CONFIG_SID_END_DEVICE_AUTO_CONN_REQ */ break; case SID_EVENT_SEND_MSG: sidewalk_msg_t *p_msg = (sidewalk_msg_t *)sm->event.ctx; @@ -218,14 +218,14 @@ static void state_sidewalk_run(void *o) break; } -#ifdef CONFIG_SIDEWALK_AUTO_CONN_REQ +#ifdef CONFIG_SID_END_DEVICE_AUTO_CONN_REQ bool is_link_up = sm->sid->last_status.detail.link_status_mask & SID_LINK_TYPE_ANY; if (!is_link_up && !pending_msg_ctx) { pending_msg_ctx = p_msg; sidewalk_event_send(SID_EVENT_CONNECT, NULL); break; } -#endif /* CONFIG_SIDEWALK_AUTO_CONN_REQ */ +#endif /* CONFIG_SID_END_DEVICE_AUTO_CONN_REQ */ e = sid_put_msg(sm->sid->handle, &p_msg->msg, &p_msg->desc); if (e) { @@ -235,11 +235,11 @@ static void state_sidewalk_run(void *o) sidewalk_data_free(p_msg->msg.data); sidewalk_data_free(p_msg); -#ifdef CONFIG_SIDEWALK_AUTO_CONN_REQ +#ifdef CONFIG_SID_END_DEVICE_AUTO_CONN_REQ if (is_link_up && pending_msg_ctx) { pending_msg_ctx = NULL; } -#endif /* CONFIG_SIDEWALK_AUTO_CONN_REQ */ +#endif /* CONFIG_SID_END_DEVICE_AUTO_CONN_REQ */ break; case SID_EVENT_CONNECT: sid_error_t e = sid_ble_bcn_connection_request(sm->sid->handle, true); @@ -251,11 +251,11 @@ static void state_sidewalk_run(void *o) break; } -#ifdef CONFIG_TEMPLATE_APP_CLI +#ifdef CONFIG_SID_END_DEVICE_CLI if (sm->event.id >= SID_EVENT_LAST) { app_dut_event_process(sm->event, sm->sid); } -#endif /* CONFIG_TEMPLATE_APP_CLI */ +#endif /* CONFIG_SID_END_DEVICE_CLI */ } static void state_dfu_entry(void *o) diff --git a/scripts/ci/memory_requirements.py b/scripts/ci/memory_requirements.py index 70cfe59d51..f358ff1e50 100755 --- a/scripts/ci/memory_requirements.py +++ b/scripts/ci/memory_requirements.py @@ -70,23 +70,17 @@ def full_title(self) -> str: SAMPLES = [ - Sample('sensor_monitoring', 'sample.sidewalk.demo', - ':ref:`Sensor monitoring `'), - Sample('template_subghz', 'sample.sidewalk.template', - ':ref:`Template sub-GHz `'), - Sample('template_ble', 'sample.sidewalk.template_ble', - ':ref:`Template Bluetooth LE `'), + Sample('sid_end_device', 'sample.sidewalk.demo', + ':ref:`Sensor monitoring `'), + Sample('sid_end_device', 'sample.sidewalk.hello', + ':ref:`End device Bluetooth LE and sub-GHz `'), + Sample('sid_end_device', 'sample.sidewalk.hello.ble_only', + ':ref:`End device Bluetooth LE `'), ] VARIANTS = { '': 'Debug', '.release': 'Release', - '.ble': 'Bluetooth LE Debug', - '.fsk': 'FSK Debug', - '.lora': 'LoRa Debug', - '.ble.release': 'Bluetooth LE Release', - '.fsk.release': 'FSK Release', - '.lora.release': 'LoRa Release', } diff --git a/tests/manual/simple_bootloader/CMakeLists.txt b/tests/manual/simple_bootloader/CMakeLists.txt index ccb22c950a..9652145b85 100644 --- a/tests/manual/simple_bootloader/CMakeLists.txt +++ b/tests/manual/simple_bootloader/CMakeLists.txt @@ -6,9 +6,9 @@ cmake_minimum_required(VERSION 3.20.0) -include($ENV{ZEPHYR_BASE}/../sidewalk/samples/template/bootloader_version.cmake) +include($ENV{ZEPHYR_BASE}/../sidewalk/samples/sid_end_device/bootloader_version.cmake) -set(mcuboot_KCONFIG_ROOT $ENV{ZEPHYR_BASE}/../sidewalk/samples/template/child_image/mcuboot/Kconfig.root) +set(mcuboot_KCONFIG_ROOT $ENV{ZEPHYR_BASE}/../sidewalk/samples/sid_end_device/child_image/mcuboot/Kconfig.root) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(simple_bootloader) diff --git a/tests/manual/simple_bootloader/README.rst b/tests/manual/simple_bootloader/README.rst index 7d68305f4a..266a30ad33 100644 --- a/tests/manual/simple_bootloader/README.rst +++ b/tests/manual/simple_bootloader/README.rst @@ -10,11 +10,11 @@ It is significantly smaller then any Sidewalk sample. Maintenance notes ================ .. note:: - This appclication is designed to work with sidewalk template_ble sample + This appclication is designed to work with sidewalk sid_end_device sample Configuration: * prj.conf - From Kconfig.dependencies config SIDEWALK_DFU_BOOTLOADER - * pm_static.yaml - copied from template_ble. Setting storage added as static partition (values from ninja partition_manager_report) to keep application footprint small. + * pm_static.yaml - copied from sid_end_device. Setting storage added as static partition (values from ninja partition_manager_report) to keep application footprint small. Requirements ************ @@ -32,7 +32,7 @@ Testing ======= Precondition -#. Build and flash Sidewalk template_ble sample +#. Build and flash Sidewalk sid_end_device sample #. Flash MFG.hex (provisioning data) #. Enter DFU mode (button action) diff --git a/tests/unit_tests/sid_dut_shell/CMakeLists.txt b/tests/unit_tests/sid_dut_shell/CMakeLists.txt index dc7fbea356..97f838c57e 100644 --- a/tests/unit_tests/sid_dut_shell/CMakeLists.txt +++ b/tests/unit_tests/sid_dut_shell/CMakeLists.txt @@ -16,7 +16,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3 -O0") target_sources(testbinary PRIVATE src/main.c - ${SIDEWALK_BASE}/samples/template/src/cli/app_shell.c + ${SIDEWALK_BASE}/samples/sid_end_device/src/cli/app_shell.c $ENV{ZEPHYR_BASE}/lib/os/hex.c mock/sidewalk_version.c ) @@ -24,7 +24,7 @@ target_sources(testbinary PRIVATE add_definitions(--include ztest.h) target_include_directories(testbinary PRIVATE - ${SIDEWALK_BASE}/samples/template/include + ${SIDEWALK_BASE}/samples/sid_end_device/include ${SIDEWALK_BASE}/subsys/sal/common/sid_ifc ${SIDEWALK_BASE}/subsys/sal/common/sid_time_ops ${SIDEWALK_BASE}/subsys/sal/common/sid_pal_ifc