В этой статье рассмотрим наиболее популярные оценочные платы, которые помогут разработчикам в изучении технологии UWB, а также быстро приступить к разработке собственных устройств на базе модуля DWM1000 таких как метки, маяки, шлюзы и т.д.
Плата EVB1000
В первую очередь обратим внимание на оценочную плату от производителя чипов DW1000 фирмы Decawave (которая теперь является частью Qorvo).

Документацию по данной плате можно найти на официальном сайте (EVK1000). Там же можно найти принципиальную схему платы EVB1000.
Основные компоненты платы:
- Модуль DWM1000
- Хост-контроллер STM32F105RC
- Строчный LCD-экран 16х2 DOGM162W-A
- Светодиоды, индицирующее режимы работы модуля DWM1000 и состояние питания платы
- Стабилизатор напряжения 3.3 В, позволяющий питать плату от USB
- 20-пиновый JTAG-разъем для подключения отладчика, такого как J-Link
- Dip-свитч для выбора режима работы платы и скорости передачи данных по UWB
- Разъем для подключения внешней антенны
- Разъем для подключения внешнего хост-контроллера к SPI-интерфейсу DWM1000
В данный момент производство плат прекращено. Ранее можно было приобрести набор EVK1000, состоящий из двух плат EVB1000, двух внешних антенн и двух кабелей USB. Кроме того, компания Decawave предоставляла готовое решение для демонстрации Real-Time Location System (RTLS) — набор TREK1000.
Комплектация набора TREK1000:
- 4 платы EVB1000 (для создания анкеров и меток)
- 4 антенны, стойки для крепления, блоки питания
- Предустановленное ПО для трех режимов: Tracking (отслеживание объектов), Geo-Fencing (виртуальные границы опасных зон), Navigation (навигация в помещении).
Данный набор позволял запустить готовую RTLS «из коробки» без разработки ПО, произвести тестирование точности позиционирования используя методы TWR и TDoA. Т.к. документация на данный набор уже недоступна, то приведу здесь ссылки на документы TREK1000 User Manual и TREK1000 — Quick Start Guide
Здесь можно посмотреть видео о распаковке набора TREK1000:
Плата UWB-Feather
UWB-Feather – это любительский проект, автором которого является Jed Hodson. Плата представлена в форм-факторе Adafruit Feather и включает в себя модуль DWM1000 и микроконтроллер ATSAMD21 Arm Cortex-M0.

Основные компоненты платы:
- Модуль DWM1000
- Хост-контроллер ATSAMD21
- Контроллер заряда батареи MCP73831
- Разъем для программирования и отладки через интерфейс SWD
- Стабилизатор напряжения 3.3 В, позволяющий питать плату от USB
- Светодиоды, индицирующее режимы работы модуля DWM1000
Распиновка платы совместима с Adafruit M0 Feather. Питание может осуществляться как от батареи, так и от USB-разъема. Программирование выполняется с помощью программатора через SWD или через USB, если используется соответствующий загрузчик (например uf2-samdx1 от Microsoft).
Для данной платы не существует ПО, с помощью которого можно запускать готовую RTLS-систему. Максимум, что можно быстро протестировать на ней – это Arduino-проекты на базе библиотеки arduino-dw1000 от автора thotro. Jed Hodson в своей статье «UWB Localization Feather» приводит полную инструкцию по изготовлению печатной платы, программированию загрузчика bootloader-feather_m0-v3.7.0 с помощью J-Link и запуске тестового проекта DW1000-Anchor. Программа DW1000-Anchor позволяет измерять расстояние между двумя устройствами UWB-Feather, одно из которых работает в режиме маяка, а второе – в режиме метки. В официальном репозитории проекта UWB-Feather можно найти всю необходимую документацию и файлы для самостоятельного изготовления платы.
На мой взгляд проект UWB-Feather является бесперспективным по ряду причин. Во-первых, это использование низко производительного хост-контроллера ATSAMD21 семейства Cortex-M0+, значительная часть ресурсов которого расходуется на работу с USB-стеком в проектах на Arduino. Вторым существенным ограничением является максимальная скорость передачи данных по SPI равная 12 МГц, что значительно замедляет взаимодействие с модулем DW1000, а значит и вносит ограничения в работу UWB-сети. В третьих, возникает необходимость в использовании платных программаторов вроде J-Link либо их клонов, работа с которыми вызывает массу неудобств и ограничений. Также для программирования Flash-памяти, как минимум для зашивки загрузчика, придется установить Atmel Studio или ее современный вариант — Microchip Studio. Конечно, можно найти бесплатные решения и стороннее ПО с открытым исходным кодом, но все это требует неоправданных временных затрат. К тому же есть трудности с покупкой микросхем фирмы Microchip.
Плата NodeMCU-BU01
Это китайская плата от производителя Ai-Thinker. Она содержит UWB-модуль BU01, который является бюджетным аналогом модуля DWM1000.

По схемотехнике плата чем-то отдаленно напоминает EVB1000, но в отличие от последней не содержит «лишних» компонентов вроде LCD-экрана, Dip-свитчей и т.д и имеет относительно недорогую стоимость на Aliexpress. В качестве хост-контроллера используется широко известный и бюджетный микроконтроллер STM32F103C8T6.
Основные компоненты платы:
- Модуль BU01
- Хост-контроллер STM32F103C8T6
- Датчик температуры и влажности SHT20
- Трех-осевой датчик ускорения
- Светодиоды, индицирующее режимы работы модуля BU01 и состояние питания платы
- Стабилизатор напряжения 3.3 В, позволяющий питать плату от USB
- Пользовательские кнопки RESET и BTN
- Разъем для подключения программатора ST-Link
- Перемычки, позволяющие выбрать режим загрузки STM32
На сайте производителя можно найти руководство пользователя NodeMCU-BU01 SPECIFICATION и электрическую принципиальную схему NodeMCU-BU01 schematic. Кроме того, плата поставляется с тестовой заводской прошивкой. С помощью данной программы можно измерять расстояние между устройствами, влажность и температуру окружающей среды, а также считывать показания датчика трех-осевого ускорения. Управление устройством осуществляется через UART посредством AT-команд. Набор AT-команд с описанием на английском языке можно скачать здесь NodeMCU-BU01 development board AT command set. Разработчик щедро поделился исходниками тестового ПО, которое можно скачать по ссылке SDK_1.0.0. Если ссылки на китайские ресурсы окажутся нерабочими, то все необходимые файлы можно скачать здесь. Программа ничего серьезного из себя не представляет, но что-то полезное все же можно из нее извлечь, например готовый код определения местоположения с помощью метода трилатерации (trilateration.c), а также фильтра Калмана (kalman.c).
При своей относительно невысокой стоимости данная плата – неплохой вариант для старта, к тому же работа с популярным микроконтроллером STM32 не доставляет никаких трудностей и не требует дорогих отладочных средств. При необходимости программу из проекта TREK1000 можно адаптировать под эту плату с минимальными доработками. NodeMCU-01 можно использовать в качестве UWB-маяка или метки (если требования к энергопотреблению не высокие), но для работы в роли шлюза на мой взгляд ее производительности будет недостаточно. Хотелось бы так же заметить, что для подключения к UART пользователю понадобится внешний переходник USB-UART на CH340, CP2104 и т.д. Разъем USB, установленный на плате, подключен непосредственно к USB-интерфейсу контроллеру.
Плата ESP32 UWB
Плата ESP32 UWB от производителя Makerfabs – это компактное решение для разработки UWB-приложений на базе связки высокопроизводительного хост-контроллера ESP32 и модуля BU01.

Основные компоненты платы:
- Модуль BU01
- Хост-контроллер ESP32
- Светодиоды, индицирующее режимы работы модуля BU01 и состояние питания платы
- Стабилизатор напряжения 3.3 В, позволяющий питать плату от USB
- Преобразователь USB-UART на микросхеме CP2104
- Пользовательские кнопки RST и FLASH для перевода в режим программирования
- Разъемы для подключения внешней периферии
Плата выделяется среди аналогов несколькими ключевыми преимуществами:
- Высокопроизводительный хост-контроллер
- Возможность передачи данных по WiFi или Bluetooth, что в свою очередь сильно расширяет возможности устройства. Например, данные о местоположении можно отправлять на MQTT-сервер для дальнейшей обработки.
- Не требуется наличие внешнего программатора – прошивка осуществляется через встроенный преобразователь USB-UART. Схема автоматического перевода в режим программирования с помощью служебных линий RTS и DTR избавляет пользователя от ручного взаимодействия с платой.
- Поддержка платы в Arduino IDE. Это значительно снижает порог входа в разработку. Библиотека arduino-dw1000 от автора thotro и все открытые проекты, построенные на ней будут прекрасно работать на данной плате. В каком-то смысле это более лучшая альтернатива плате UWB-Feather.
Однако, казалось бы при невысокой стоимости основных компонентов, данная плата на Aliexpress имеет необоснованно высокую цену (около 70$ на июль 2025). При том, что по отдельности модуль BU01 и плата ESP32-WROOM-32D (или ей подобные) будут стоить гораздо дешевле. Вероятно, это связано с растущей популярностью технологии UWB и ограниченным ассортиментом модулей доступных для широкого применения. Кстати, предлагаю рассмотреть альтернативное решение: изготовить самостоятельно бюджетный клон платы Makerfabs-ESP32-UWB на основе модулей ESP32-WROOM-32D и BU01.
Всю техническую документацию, примеры, а так же файлы для самостоятельного изготовления платы можно найти в официальном репозитории проекта Makerfabs-ESP32-UWB. Схему в формате PDF можно скачать здесь ESP32_UWB_Schematic_V1.0 Хочется также отметить, что данное решение не совсем подойдет для разработки UWB-меток, так как плата имеет достаточно высокое энергопотребление. Зато она может быть использована в роли UWB-маяка. В роли шлюза данная плата может быть использована разве что условиях малонагруженной сети UWB, так как «тяжеловесные» библиотеки, входящие в SDK ESP-IDF, построенные на базе FreeRTOS, сильно ограничивают быстродействие программы при казалось бы высокой частоте работы ядра 240 МГц и навороченной периферии. Еще одним важным недостатком ESP32 является отсутствие защиты программы от копирования, что исключает использование микроконтроллера в коммерческих проектах. Если быть более точным, то защита все же есть в виде шифрования программы, но она имеет низкую надежность и подвержена взлому, о чем говорят многочисленные статьи и исследования в сети интернет. Использование в модулях ESP32 внешней флеш-памяти для хранения программы позволяет получить к ней прямой доступ с помощью специального оборудования.