saltylab-firmware/lib/DW1000/adapterBoard/adapterBoard pdf/DWM1000_AdapterBoard_Breadboard.svg
salty ed1542ae11 feat: rewrite UWB firmware for DW1000 (all 3 boards)
Anchor (esp32/uwb_anchor):
- DW1000Ranging library (200m range, MODE_LONGDATA_RANGE_ACCURACY)
- Unique addresses per anchor (anchor0/anchor1 build envs)
- +RANGE output: anchor_id, tag_addr, range_mm, rssi
- ESP-NOW receiver: forwards tag packets + priority E-STOP to Jetson
- AT+ID? command

Tag with Display (esp32/uwb_tag):
- DW1000Ranging as tag, auto-discovers anchors
- SSD1306 OLED: big distance, per-anchor ranges, RSSI bars, link status
- ESP-NOW broadcast: range/heartbeat/estop packets
- E-Stop on GPIO 0 (BOOT button), 10Hz TX while held
- Display at 5Hz, ranging driven by DW1000Ranging.loop()

Shared:
- lib/DW1000/ extracted from mf_DW1000.zip (Makerfabs fork)
- lib_extra_dirs for PlatformIO to find local library
2026-03-14 12:30:26 -04:00

360 lines
16 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="_x30_"
x="0px"
y="0px"
width="114.60302"
height="96.560883"
viewBox="-0.023 0 114.60302 96.560885"
xml:space="preserve"
inkscape:version="0.48.4 r9939"
sodipodi:docname="DWM1000_AdapterBoard_Breadboard.svg"><metadata
id="metadata42"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs40" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="848"
id="namedview38"
showgrid="false"
inkscape:zoom="4.675669"
inkscape:cx="44.82082"
inkscape:cy="59.635354"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="_x30_"
showguides="false"
inkscape:snap-global="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"><inkscape:grid
type="xygrid"
id="grid6437"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
units="in"
spacingx="0.1in"
spacingy="0.1in"
originx="0.18466378in"
originy="-0.80813387in" /></sodipodi:namedview><desc
id="0.0"><referenceFile
id="0.0.0">ADXL327_Breadboard.svg</referenceFile></desc><path
id="_x30_.1"
d="M 0.64285112,0.66585219 V 43.518181 53.045897 95.895029 H 113.91417 V 0.66585219 H 0.64285112 l 0,0 z"
inkscape:connector-curvature="0"
style="fill:#f9f9f9;stroke:#f9f9f9;stroke-width:1.33170438" /><text
xml:space="preserve"
style="font-size:3.16164279px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
x="6.8096652"
y="-85.265022"
id="text6444-9"
sodipodi:linespacing="125%"
transform="matrix(0,1,-1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan6446-9"
x="6.8096652"
y="-85.265022">1</tspan></text>
<circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-6-7"
transform="matrix(1.1710985,0,0,1.1710985,65.322414,84.21127)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin"
transform="matrix(1.1710985,0,0,1.1710985,2.4256301,2.9888922)" /><g
id="g9902"
transform="matrix(1.1811969,0,0,1.1811969,9.4993777,131.52725)"><path
style="fill:#237b3d"
inkscape:connector-curvature="0"
d="m 20.044827,-89.395066 v 16.465375 3.660885 16.464146 H 86.739159 V -89.395066 H 20.044827 l 0,0 z"
id="_x30_.1-2" /><a
transform="matrix(1.4022727,0,0,1.4573843,-16.337479,-103.34463)"
id="a13620"><path
sodipodi:nodetypes="ccccccc"
inkscape:connector-curvature="0"
id="rect13618"
d="m 30.151871,11.335799 20.964258,0 0,18.737412 c -2.801983,2.66493 -0.188424,0.01525 -2.813027,2.737411 l -20.627801,0 0,-18.737412 c 2.118974,-2.516187 0.145645,-0.246361 2.47657,-2.737411 z"
style="fill:#cccccc;stroke:#999999"
transform="translate(-0.02300107,0)" /></a><rect
y="-81.664757"
x="59.538132"
height="20.524864"
width="25.21303"
id="rect13626"
style="fill:#ececec;stroke:#cccccc;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none" /><text
sodipodi:linespacing="125%"
id="text6438"
y="-69.209473"
x="66.028358"
style="font-size:4.90661716px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
xml:space="preserve"><tspan
y="-69.209473"
x="66.028358"
id="tspan6440"
sodipodi:role="line">UWB42</tspan></text>
<path
inkscape:transform-center-x="0.56727608"
transform="matrix(0.87210022,0,0,0.87210022,7.824491,-89.616491)"
d="m 65.271715,18.912532 0,2.253293 0,2.253293 -1.951409,-1.126647 -1.951409,-1.126646 1.951409,-1.126647 z"
inkscape:randomized="0"
inkscape:rounded="0"
inkscape:flatsided="false"
sodipodi:arg2="0"
sodipodi:arg1="-1.0471976"
sodipodi:r2="1.3009394"
sodipodi:r1="2.6018789"
sodipodi:cy="21.165825"
sodipodi:cx="63.970776"
sodipodi:sides="3"
id="path6442"
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:type="star" /></g><text
xml:space="preserve"
style="font-size:3.82296562px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
x="2.6755021"
y="-108.76115"
id="text6444"
sodipodi:linespacing="125%"
transform="matrix(0,1,-1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan6446"
x="2.6755021"
y="-108.76115">DWM1000</tspan></text>
<text
xml:space="preserve"
style="font-size:3.82296562px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
x="2.7408555"
y="-104.57258"
id="text6444-1"
sodipodi:linespacing="125%"
transform="matrix(0,1,-1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan6446-6"
x="2.7408555"
y="-104.57258">Adapter</tspan></text>
<text
xml:space="preserve"
style="font-size:3.16164279px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:OCRA;-inkscape-font-specification:OCRA"
x="86.593353"
y="-85.158089"
id="text6444-9-2"
sodipodi:linespacing="125%"
transform="matrix(0,1,-1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan6446-9-9"
x="86.593353"
y="-85.158089">18</tspan></text>
<circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-4"
transform="matrix(1.1710985,0,0,1.1710985,11.393493,3.1141622)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-5"
transform="matrix(1.1710985,0,0,1.1710985,20.316131,3.1897722)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44"
transform="matrix(1.1710985,0,0,1.1710985,29.314384,3.1897722)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-2"
transform="matrix(1.1710985,0,0,1.1710985,38.403448,3.1649422)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-4-6"
transform="matrix(1.1710985,0,0,1.1710985,47.371311,3.2145922)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-5-9"
transform="matrix(1.1710985,0,0,1.1710985,56.369565,3.2145822)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-6"
transform="matrix(1.1710985,0,0,1.1710985,65.367819,3.2145822)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-7"
transform="matrix(1.1710985,0,0,1.1710985,2.3046089,84.212428)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-4-5"
transform="matrix(1.1710985,0,0,1.1710985,11.348088,84.262082)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-5-7"
transform="matrix(1.1710985,0,0,1.1710985,20.346342,84.262076)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-5"
transform="matrix(1.1710985,0,0,1.1710985,29.344596,84.262076)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-2-6"
transform="matrix(1.1710985,0,0,1.1710985,38.358043,84.237246)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-4-6-9"
transform="matrix(1.1710985,0,0,1.1710985,47.325906,84.21128)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-5-9-8"
transform="matrix(1.1710985,0,0,1.1710985,56.399776,84.21127)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-6-7-1"
transform="matrix(1.1710985,0,0,1.1710985,74.197554,84.151865)" /><circle
style="fill:#403619;stroke:#9a916c;stroke-width:1.5"
sodipodi:ry="1.75"
sodipodi:rx="1.75"
sodipodi:cy="4.0910001"
sodipodi:cx="3.4920001"
d="m 5.2420001,4.0910001 c 0,0.9664983 -0.7835017,1.75 -1.75,1.75 -0.9664983,0 -1.75,-0.7835017 -1.75,-1.75 0,-0.9664983 0.7835017,-1.75 1.75,-1.75 0.9664983,0 1.75,0.7835017 1.75,1.75 z"
r="1.75"
cy="4.0910001"
cx="3.4920001"
id="connector16pin-44-6-4"
transform="matrix(1.1710985,0,0,1.1710985,74.242959,3.1551722)" /></svg>