aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/fig-architecture.svg2
-rw-r--r--confui/main.c (renamed from bts/main.c)0
-rw-r--r--confui/makefile (renamed from bts/makefile)0
-rw-r--r--fig.drawio2
-rw-r--r--nrf528xx/makefile24
-rw-r--r--nrf528xx/readme.md2
-rw-r--r--readme.md33
7 files changed, 9 insertions, 54 deletions
diff --git a/assets/fig-architecture.svg b/assets/fig-architecture.svg
index 07b3b12..8b65f9f 100644
--- a/assets/fig-architecture.svg
+++ b/assets/fig-architecture.svg
@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1881px" height="1163px" viewBox="-0.5 -0.5 1881 1163" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="24" y="24" width="930" height="1050" rx="36" ry="36" fill="none" stroke="#000000" stroke-opacity="0.7" stroke-width="3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 308px; height: 1px; padding-top: 365px; margin-left: 10px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">bluetooth mesh network</div></div></div></foreignObject><text x="10" y="377" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">bluetooth mesh network</text></switch></g><path d="M 384 969 L 594 969" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 219 894 L 219 714" fill="none" stroke="rgb(0, 0, 0)" stroke-opacity="0.7" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9 9" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 268px; margin-left: 73px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">bluetooth</div></div></div></foreignObject><text x="73" y="271" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">bluetooth</text></switch></g><rect x="54" y="894" width="330" height="150" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 323px; margin-left: 19px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">node</div></div></div></foreignObject><text x="73" y="327" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">node</text></switch></g><path d="M 219 564 L 219 354" fill="none" stroke="rgb(0, 0, 0)" stroke-opacity="0.7" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9 9" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 153px; margin-left: 73px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">bluetooth</div></div></div></foreignObject><text x="73" y="156" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">bluetooth</text></switch></g><path d="M 384 639 L 594 639" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="54" y="564" width="330" height="150" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 213px; margin-left: 19px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">node</div></div></div></foreignObject><text x="73" y="217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">node</text></switch></g><rect x="984" y="24" width="870" height="840" rx="36" ry="36" fill="none" stroke="#000000" stroke-opacity="0.7" stroke-width="3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 288px; height: 1px; padding-top: 295px; margin-left: 330px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">desktop computer<br />(on ip network)</div></div></div></foreignObject><text x="330" y="307" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">desktop computer...</text></switch></g><rect x="594" y="894" width="330" height="150" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 323px; margin-left: 199px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">usb power source (no data)</div></div></div></foreignObject><text x="253" y="327" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">usb power source (...</text></switch></g><rect x="594" y="564" width="330" height="150" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 213px; margin-left: 199px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">usb power source (no data)</div></div></div></foreignObject><text x="253" y="217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">usb power source (...</text></switch></g><rect x="1014" y="354" width="390" height="390" rx="36" ry="36" fill-opacity="0.7" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-opacity="0.7" stroke-width="3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-end; width: 128px; height: 1px; padding-top: 255px; margin-left: 338px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Border Transport Server</div></div></div></foreignObject><text x="466" y="267" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="end">Border Transport Serv...</text></switch></g><rect x="54" y="54" width="630" height="300" rx="36" ry="36" fill-opacity="0.7" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-opacity="0.7" stroke-width="3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-end; width: 208px; height: 1px; padding-top: 125px; margin-left: 18px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">node (as border router)</div></div></div></foreignObject><text x="226" y="137" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="end">node (as border router)</text></switch></g><path d="M 294 234 L 294 174" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="234" y="234" width="120" height="90" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 93px; margin-left: 79px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">light</div></div></div></foreignObject><text x="98" y="97" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">light</text></switch></g><rect x="84" y="234" width="120" height="90" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 93px; margin-left: 29px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">button</div></div></div></foreignObject><text x="48" y="97" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">button</text></switch></g><rect x="84" y="84" width="570" height="90" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 43px; margin-left: 29px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">nRF528xx</div></div></div></foreignObject><text x="123" y="47" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">nRF528xx</text></switch></g><path d="M 144 234 L 144 174" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 519 234 L 519 174" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="384" y="234" width="270" height="90" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 93px; margin-left: 129px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">usb controller</div></div></div></foreignObject><text x="173" y="97" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">usb controller</text></switch></g><rect x="1044" y="384" width="330" height="150" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 153px; margin-left: 349px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">serial port communication</div></div></div></foreignObject><text x="403" y="157" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">serial port commun...</text></switch></g><path d="M 1374 639 L 1554 639 L 1554 354" fill="none" stroke="rgb(0, 0, 0)" stroke-opacity="0.7" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 168px; margin-left: 518px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">TCP socket</div></div></div></foreignObject><text x="518" y="172" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">TCP socket</text></switch></g><rect x="1044" y="564" width="330" height="150" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 213px; margin-left: 349px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">TCP socket API</div></div></div></foreignObject><text x="403" y="217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">TCP socket API</text></switch></g><rect x="1434" y="54" width="390" height="300" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 68px; margin-left: 479px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Configuration UI / Action handler server<br /><br />(Home Assistant or custom HTML/QT GUI)</div></div></div></foreignObject><text x="543" y="72" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Configuration UI / Ac...</text></switch></g><path d="M 654 279.01 L 1209 279 L 1209 384" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 93px; margin-left: 403px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">USB serial</div></div></div></foreignObject><text x="403" y="96" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">USB serial</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1251px" height="803px" viewBox="-0.5 -0.5 1251 803" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="24" y="24" width="780" height="690" rx="36" ry="36" fill="none" stroke="#000000" stroke-opacity="0.7" stroke-width="3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 258px; height: 1px; padding-top: 245px; margin-left: 10px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">bluetooth mesh network</div></div></div></foreignObject><text x="10" y="257" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">bluetooth mesh network</text></switch></g><path d="M 219 534 L 219 474 L 219 504 L 219 444" fill="none" stroke="rgb(0, 0, 0)" stroke-opacity="0.7" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9 9" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 163px; margin-left: 73px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">BT mesh</div></div></div></foreignObject><text x="73" y="166" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">BT mesh</text></switch></g><rect x="54" y="534" width="330" height="150" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 203px; margin-left: 19px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">node</div></div></div></foreignObject><text x="73" y="207" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">node</text></switch></g><path d="M 219 294 L 219 204 L 444 204" fill="none" stroke="rgb(0, 0, 0)" stroke-opacity="0.7" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9 9" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 68px; margin-left: 73px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">BT mesh</div></div></div></foreignObject><text x="73" y="71" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">BT mesh</text></switch></g><rect x="54" y="294" width="330" height="150" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 123px; margin-left: 19px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">node</div></div></div></foreignObject><text x="73" y="127" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">node</text></switch></g><rect x="834" y="294" width="390" height="330" rx="36" ry="36" fill-opacity="0.7" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-opacity="0.7" stroke-width="3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-end; width: 128px; height: 1px; padding-top: 215px; margin-left: 278px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Configuration utility<br />(on desktop computer)</div></div></div></foreignObject><text x="406" y="227" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="end">Configuration utility...</text></switch></g><rect x="444" y="54" width="330" height="300" rx="36" ry="36" fill="none" stroke="rgb(0, 0, 0)" stroke-opacity="0.7" stroke-width="3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-end; width: 108px; height: 1px; padding-top: 125px; margin-left: 148px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">node<br />(as border router)</div></div></div></foreignObject><text x="256" y="137" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="end">node...</text></switch></g><path d="M 684 234 L 684 174" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="624" y="234" width="120" height="90" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 93px; margin-left: 209px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">light</div></div></div></foreignObject><text x="228" y="97" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">light</text></switch></g><rect x="474" y="234" width="120" height="90" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 93px; margin-left: 159px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">button</div></div></div></foreignObject><text x="178" y="97" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">button</text></switch></g><rect x="474" y="84" width="270" height="90" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 43px; margin-left: 159px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">nRF528xx</div></div></div></foreignObject><text x="203" y="47" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">nRF528xx</text></switch></g><path d="M 534 234 L 534 174" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1029 324 L 1029 174" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 83px; margin-left: 343px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">USB serial</div></div></div></foreignObject><text x="343" y="86" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">USB serial</text></switch></g><rect x="864" y="324" width="330" height="150" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 133px; margin-left: 289px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">serial port communication</div></div></div></foreignObject><text x="343" y="137" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">serial port commun...</text></switch></g><rect x="864" y="504" width="330" height="90" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 183px; margin-left: 289px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">configuration GUI</div></div></div></foreignObject><text x="343" y="187" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">configuration GUI</text></switch></g><path d="M 864 129 L 744 129" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><rect x="864" y="84" width="330" height="90" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(3)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 43px; margin-left: 289px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">J-Link debugger</div></div></div></foreignObject><text x="343" y="47" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">J-Link debugger</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
diff --git a/bts/main.c b/confui/main.c
index 1be969b..1be969b 100644
--- a/bts/main.c
+++ b/confui/main.c
diff --git a/bts/makefile b/confui/makefile
index e646524..e646524 100644
--- a/bts/makefile
+++ b/confui/makefile
diff --git a/fig.drawio b/fig.drawio
index 2262598..3170ced 100644
--- a/fig.drawio
+++ b/fig.drawio
@@ -1 +1 @@
-<mxfile host="Electron" modified="2022-11-08T15:32:32.743Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="W1gYIlReRMomEB-ILrDb" version="20.3.0" type="device"><diagram id="TQBjHMX74tOWVntnVVwY" name="architecture">7Vvfc6o4FP5rnOk+bAeIoD621v6YuXe2e9vO3j5GiMptJE4IVfev3xMIIAQpVqw6d/vQJocQknO+852cA+2g4Xx1x/Fi9p15hHYsw1t10E3HsvqWDb+lYJ0IbGOQCKbc9xKRmQue/H+JEhpKGvkeCQsDBWNU+Iui0GVBQFxRkGHO2bI4bMJo8akLPCWa4MnFVJf+43tiprZlG7n8nvjTWfpk01BX5jgdrAThDHtsuSFCow4acsZE0pqvhoRK3aV6Se673XI1WxgngWhyw2LQ+/W6GD2MXHvMl3+9kB8j8afZT6Z5xzRSOx5DC1QMq4dNkFD+CYhYMv6m9iHWqXI4iwKPyPnNDrpeznxBnhbYlVeXgAaQzcScqsuY+tMA2pRMYL3XFI8JfWShL3wmxS5sg3C48E648MEA30oDxkwINt8YcKUmFEw+aeJTOmSUwRQ3AQtgDdeh4OyNpMKOhYz4B64wWKUvJCR7sou5q5BndWV3HDIaCXKVieX6PRzOsr3KziMWsOIglliGlOomUVaSSyarDZEy0R1hcyL4GoakVxVa1sXuMsceSmWzDdyhFJBY4X2azZxDAhoKFTsgJN3ChtmJBy6iuoyLGZuyANNRLr3OgRFrOxvzjUlbxRr8RYRYK/XiSLAiWECBfP1T3R93XmXn0k67N6vNizfrrOddSa/PQQCSW19u+abC0lsNFrKIu6RGLY7iIsynRNSpT9lF6qzW/pxQLPz3Iu20bk3Uq/P3Y9i53l6EjuOLqc+X/bDekQ9v3t5JWdfRjBtAPK6hbaMBbTfhxhaIzyoSHzJ05jOrmO9gxGfq2jyuq6x88TMnQei9pk4C7ZwPZacpHdb5UoXrteZevYbuZbbtXurWR+bDkjPs9exS0C1hKlmnuimHFagWrzeGLeSAsPljyge2nYZDI3l+jvBMIXtEe3RMaJubwM5gvg3aJ35CaIpxOeqEYoh+QDjbGGIOjh5DBpo2IZt9kxmLTFnni0jmPJZDZUY0lq2pbF1AwgMzL/LU648aA/yfe7UEH4Q+TL6sQQV8rP7Bki9Dw08UjuU+2VICJ2Uhy7gImKyyYIHroHJSvnpqB76UiH8DZR+fGWG/ZWXDycGL9fzMcRAu4BwB7SfC36VwH/b7PN2lvMkTjWyhv5IVywR3TEbrluxuVdgdVdg9E7YfErecL4wLeJRljFMQgIVBH3vGvd/X8qWjUIXdrSp/11Kf9uxua6Y806S5tQxBUeDHGULnEFnwrtmrWeKSbn32Wj/8MNmrHlNoDO2ziNH9or76usd2Kxz2YDyNNF2OI+DG4DyUiU5LmfrJMvhxa1v91eos1YkqThFVidHhDhE6OvXootH4huKKWv5UlPgweLUWJ1DLcWLDbHbNmX/PoqrtXFrFCqZTgkOyca2sqocS07l0Cj+Fac3StC1Va01zt3hXO/xA1VpHR/1JvrP7jIO15j4pCo90ztKRUirsdw+E3/5u+K0dfiD82hqNJxUXlwWCM0prM/8Tio/mx+eNL42PSFdsSLiP5Y2qsOKy+TwKwD/jzPcstJx95LIuaf1oVSyk1/efh48xKblvRE88ToCdv/AtL2r6FQXqN2ReBQTjEtnd/mdOKbuSqF1+paTKGNtYtDw+hV4ljeZ3p8thk0lIhAbLFqgW6V8zFJFqXD0+nCkNHL2YjfSvKIcsmPjTiCt6NV5AuYZ8CijaVbIZDjyavFlQVe7yi8CKV4P3sGY5SRj6ocAxepicwo1CWbm0jPvn79/gQX8/Q/vu5WHPNxQ7V1Dnvucl6Y+qlGp3pCXUfOQXAadbOuI0LoYfrChq6W/bX56uE0DE0fr04sceAePjOGDvGgecvvklcaBrFM/sA7tk+0paT2vxpaAwsC8No+vYkNdavYHh9IuLbZoWl3nQrp92S1rRThCCbv4lezI8/3cANPoP</diagram></mxfile> \ No newline at end of file
+<mxfile host="Electron" modified="2022-11-13T13:58:34.256Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="OwWKeLn4bQT1b5sQeqAh" version="20.3.0" type="device"><diagram id="TQBjHMX74tOWVntnVVwY" name="architecture">5Vldc6M2FP01nmkfkgFhjPMYO066nXSaXTfT7qMAGbSWERUitvfXrwTiU9ghMUnWbR4S6UoI6dxz7z0iI2u+2d0xGId/UB+RETD83ci6GQHgGKb4LQ373DC2rNwQMOznJrMyLPF3pIyGsqbYR0ljIqeUcBw3jR6NIuTxhg0yRrfNaStKmm+NYYA0w9KDRLf+jX0e5tapbVT23xAOwuLNpqFGNrCYrAxJCH26rZmsxciaM0p53trs5ohI7Apc8uduD4yWG2Mo4n0eiK+cb1/jxaeFZ7ts++cj+rLgF+Y0X+YJklSd2BUtAbHYvTgESuSfCPEtZWt1Dr4vwGE0jXwk1zdH1mwbYo6WMfTk6FawQdhCviFqGBIcRKJN0Ersd0agi8gDTTDHVJo9cQzExMATYhwLB9y3JriUc7qpTbhWC3Iq37TChMwpoWKJm4hGYg+zhDO6RoVxBCwj+xEjVOwSc0lJR3Yh8xTzwFh23YSSlKPr0iz378MkLM8qOw+Qix1HmQUY0qq7RHlJbhntaiblojtEN4izvZhSjCq27JvdbcU9MFG2sMY7cTbFecX3oFy5ooRoKFa8gCGWozFk9ldJjRYhkC+CR3Up4yENaATJorLOKspkfijn3FPpxQzbb4jzvQIeppw2aYQi/1rGdeVmYbnF8lDZkoi42WDBkrbnjrv+oAcTmjIPHcFpopITZAHiR+YpOCVSR/nAEIEcPzXT0ODenWjOjUQGPxLoRo9A7xNNA4QKaIXKVI8V0+yIFfutQsXU0fypQ+VYXHSE0WCh4vQMFbNnqCg+XBiXYzBVPugdPmq5B4rFMcq1xnYrDbc4k+9dPVTRRsAN97VpsZyQHH6N03yNY7Q4mK/XerZYnK5WCeKjNmtLYF5PZD3ln29WMD46K4jjttGc02iFg5TBTNoAI+WYyNgDEyKlkctEK5CtX7JhIYDXUuRIlbuJBWjs19Ok2Ou1VyHiWA7cAS3W8nW75H6gvALTHvSwOuhRcmb4qnEg2DQuiDcDw6XMF64SCY7+f4nQofWzk8ygtw4yAIpRH61gmgE5AHlMu0ke0DO1aNVjOO7YH6Irdpj/Ix+/tFXvayG+RftmV+/si84zWmQwcTHuKS5AT3HxMiHxUgFQ3tuKzyNHFMBQ1V2vRyTj6nmU99YFuUP0jztC8O2uxxqYbipSZHQeaJqTnwtNoNfCL7c2mO5254mnpeN59Z54mjo99YKhZeYacE2UX5X4n61Hg6V+a+DUX/OafeTGcOJV05xOLkHzHjhp8SE/uXbb1KvJeHI5qf9YjWXbEnagS2yZIjpr2Aunn1zypsgMnpbzzWdj6pifg3+/j+dXHSXvcTmTlEIMQ/IhGuoZPdRJ0VeGha3HRSdK4EQFdFohtTUfFd4xYgFwfvvdpJG4ZeTX5nMoCGW6L0Kw44P+m32O6HSyft30Wl8j7h4/vRu4GpIdePcH1+kJ7hD1thNc67+TSg5niL4V9h0yybFN1hj++8U9jtYj+SXNTYNAfj85R353qMmh6C261X+i86pb/TvfWvwA</diagram></mxfile> \ No newline at end of file
diff --git a/nrf528xx/makefile b/nrf528xx/makefile
deleted file mode 100644
index 78d52e2..0000000
--- a/nrf528xx/makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-CC = gcc
-LD = gcc
-RM = rm -f
-CFLAGS =
-LFLAGS =
-TARGET = main
-
-SRCS := $(wildcard *.c)
-OBJS := $(patsubst %.c,%.o, $(SRCS))
-
-all: $(TARGET)
-
-%.o: %.c
- $(CC) -c $(CFLAGS) $< -o $@
-
-$(TARGET): $(OBJS)
- $(LD) $^ $(LFLAGS) -o $@
-
-clean:
- $(RM) $(TARGET) $(OBJS)
-
-compile_commands: clean
- compiledb make
-
diff --git a/nrf528xx/readme.md b/nrf528xx/readme.md
index fcebcf8..77ea509 100644
--- a/nrf528xx/readme.md
+++ b/nrf528xx/readme.md
@@ -1,4 +1,4 @@
# nrf528xx subdirectory
- compatible with nrf52833 and nrf52840
-- make for compiling and building
+- west for building and flashing
diff --git a/readme.md b/readme.md
index 330b623..bf8ff2a 100644
--- a/readme.md
+++ b/readme.md
@@ -2,15 +2,6 @@
still WIP
-## terminology
-
-|verb/acronym|description|
-|-|-|
-|dongle|USB stick with a nRF52833 or nRF52840 module|
-|bts|Border Transport Server|
-|node|A dongle running in node mode|
-|border router|A dongle running in border router mode|
-
## architecture
<div align="center">
@@ -19,26 +10,14 @@ still WIP
Above is a draft version of the system architecture.
-- Each node runs the same firmware, and is capable of being a border router.
-- Each dongle starts in "node mode" by default, and only turns into border
- router mode once it receives a special command over the USB serial bus.
+- Each node runs the same firmware, and is capable of being a border router
+ over the serial interface exposed by the J-Link debugger.
- A node can turn into a border router, but will still keep functioning as a
normal node as well.
-- All blocks in the desktop computer zone can be run on different computers
- over the network.
-- The BTS creates a TCP socket which sends data to the client on incoming
- events from the mesh network, and broadcasts any data received from the
- client back to the mesh network.
-- The configuration UI / action handler server sends and receives events
- to/from the TCP socket API, and will decide which actions should be taken for
- each event.
+- The configuration UI can do the following:
+ - Change which buttons toggle which led(s)
+ - Manually set/reset leds of nodes
+ - List all connected nodes in the bluetooth mesh network
- The protocol used for communicating between network nodes is preferably in a
binary format to save on bandwidth.
-- The protocol used by the TCP socket API is text-based, as it's used to
- communicate between userspace services on desktop computers.
-- Each node sends a button event to the border router when it's button is
- pressed.
-- Each node sets it's LED's status upon receiving an LED event.
-- Each node has it's own ID (this is probably going to be it's bluetooth MAC
- address for simplicity).