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

19 lines
2.3 KiB
JavaScript

var searchData=
[
['operator_21_3d',['operator!=',['../classDW1000Time.html#ad08ea1b3f6c3fa2335ab63984466e545',1,'DW1000Time']]],
['operator_2a',['operator*',['../classDW1000Time.html#a92b44c8b2c06c88c94ddfa6c2539bec1',1,'DW1000Time::operator*(float factor) const '],['../classDW1000Time.html#af737fd1f0ff83f908378825d587ad1cd',1,'DW1000Time::operator*(const DW1000Time &factor) const ']]],
['operator_2a_3d',['operator*=',['../classDW1000Time.html#ac3562b57ab3d0c479b66c26a3fd0a7f3',1,'DW1000Time::operator*=(float factor)'],['../classDW1000Time.html#a0cfa2da040e8a77d90eb54089046fa63',1,'DW1000Time::operator*=(const DW1000Time &factor)']]],
['operator_2b',['operator+',['../classDW1000Time.html#a76dd3c6d912715606277e7e3087a27bc',1,'DW1000Time']]],
['operator_2b_3d',['operator+=',['../classDW1000Time.html#a126d890f0d990cd709263120adbacaa7',1,'DW1000Time']]],
['operator_2d',['operator-',['../classDW1000Time.html#afc45ac7153b9da36779e69debff37613',1,'DW1000Time']]],
['operator_2d_3d',['operator-=',['../classDW1000Time.html#ac913f1cc477518c809ea385503d0a112',1,'DW1000Time']]],
['operator_2f',['operator/',['../classDW1000Time.html#aec82f0b23003228e811f819e36e73e6c',1,'DW1000Time::operator/(float factor) const '],['../classDW1000Time.html#a834fb23b1722ec6e2001f9ea286c3886',1,'DW1000Time::operator/(const DW1000Time &factor) const ']]],
['operator_2f_3d',['operator/=',['../classDW1000Time.html#a62a21be8dbf1efa8ee449db63472be95',1,'DW1000Time::operator/=(float factor)'],['../classDW1000Time.html#a2221b97c148a19c9782213a0d644d8e9',1,'DW1000Time::operator/=(const DW1000Time &factor)']]],
['operator_3d',['operator=',['../classDW1000Time.html#ac43e0dd01a13ec7470029f12402ded2d',1,'DW1000Time']]],
['operator_3d_3d',['operator==',['../classDW1000Time.html#ae9d97a2772d6070df80578f6d1a171d2',1,'DW1000Time']]],
['otp_5faddr_5fsub',['OTP_ADDR_SUB',['../DW1000Constants_8h.html#a27a3ecaef2c113aedc13542642a627f0',1,'DW1000Constants.h']]],
['otp_5fctrl_5fsub',['OTP_CTRL_SUB',['../DW1000Constants_8h.html#a801aa01656591ec1847aac455c3fb910',1,'DW1000Constants.h']]],
['otp_5fif',['OTP_IF',['../DW1000Constants_8h.html#ad2c8d73ec0d95a964e6ffad894529fd6',1,'DW1000Constants.h']]],
['otp_5frdat_5fsub',['OTP_RDAT_SUB',['../DW1000Constants_8h.html#ac88818654b5a3f9998cb413f962d9a8e',1,'DW1000Constants.h']]]
];