• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Мост BLE-Wi-fi

fps

Active member
Это видел. Но у неё форм-фактор какой-то совсем кривой.
Док вы тоже не нашли, как я понял. А реверсить такие китайские поделия - это должна быть сильная мотивация.. )

Памяти сколько там? 4 флеш, 32 озу? (как в A5-V11)
 

pvvx

Активный участник сообщества
Вот что сохранил:
1707546635451.png
Код:
U-Boot 1.1.3 (Nov  6 2012 - 19:35:17)

Board: Ralink APSoC DRAM:  16 MB
relocate_code Pointer at: 80fb4000
spi_wait_nsec: 42
spi device id: ef 40 17 0 0 (40170000)
find flash: W25Q64BV
raspi_read: from:30000 len:1000
.*** Warning - bad CRC, using default environment

============================================
Ralink UBoot Version: 3.6.0.0
--------------------------------------------
ASIC 5350_MP (Port5<->None)
DRAM_CONF_FROM: Boot-Strapping
DRAM_TYPE: SDRAM
DRAM_SIZE: 128 Mbits
DRAM_WIDTH: 16 bits
DRAM_TOTAL_WIDTH: 16 bits
TOTAL_MEMORY_SIZE: 16 MBytes
Flash component: SPI Flash
Date:Nov  6 2012  Time:19:35:17
============================================
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384

##### The CPU freq = 360 MHZ ####
estimate memory size =16 Mbytes

Please choose the operation:
   1: Load system code to SDRAM via TFTP.
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.
0

3: System Boot system code via Flash.
## Booting image at bc050000 ...
raspi_read: from:50000 len:40
.   Image Name:   Linux Kernel Image
   Created:      2013-11-27  11:12:02 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    5918970 Bytes =  5.6 MB
   Load Address: 80000000
   Entry Point:  803c6000
raspi_read: from:50040 len:5a50fa
...........................................................................................   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 803c6000) ...
## Giving linux memsize in MB, 16

Starting kernel ...


LINUX started...

THIS IS ASIC


---------------------------

U-Boot 1.1.3 (Nov  6 2012 - 19:35:17)
RT5350 # ?

?       - alias for 'help'
bootm   - boot application image from memory
cp      - memory copy
erase   - erase SPI FLASH memory
go      - start application at address 'addr'
help    - print online help
loadb   - load binary file over serial line (kermit mode)
md      - memory display
mdio   - Ralink PHY register R/W command !!
mm      - memory modify (auto-incrementing)
mw      - memory write (fill)
nm      - memory modify (constant address)
printenv- print environment variables
reg      - read/write rf register
reset   - Perform RESET of the CPU
rf      - read/write rf register
saveenv - save environment variables to persistent storage
setenv  - set environment variables
tftpboot- boot image via network using TFTP protocol
version - print monitor version
Док вы тоже не нашли, как я понял. А реверсить такие китайские поделия - это должна быть сильная мотивация.. )
Что там реверсить?
Загрузка с tftp работает, закатываете древнюю OpenWRT/CyberWRT и т.д.
Отличий от MiFi вроде нет.
 

aloika

Active member
А дальше, после накатывания OpenWRT - что делать? В каком виде всё это будет? Как к умному дому подключать? Просто никогда в эту сторону не ковырял...

А я тут всё же решил до какого-то логического завершения дойти с ESP32 в этом вопросе. Сделал в ESPHome такую конфигурацию:

esp32_ble_tracker:
scan_parameters:
interval: 1300ms
window: 1300ms
active: true

ble_client:
- mac_address: A4:C1:38:3D:E2:FF
id: SWBDdrv_mc5
on_connect:
then:
- lambda: |-
ESP_LOGD("ble_client_lambda", "Connected to BLE device");
on_disconnect:
then:
- lambda: |-
ESP_LOGD("ble_client_lambda", "Disconnected from BLE device");

text_sensor:
- platform: template
name: "SWBD data"
id: SWBD_data

sensor:
- platform: ble_client
type: characteristic
ble_client_id: SWBDdrv_mc5
id: device_name
service_uuid: 'ffe0'
characteristic_uuid: 'ffe1'
update_interval: 5s
notify: true
lambda: |-
std::string data_string(x.begin(), x.end());
id(SWBD_data).publish_state(data_string.c_str());
return (float)x.size();

И оно типа как-то даже работает, только в случайные моменты времени отсоединяется от wi-fi, потом снова соединяется и так много раз. Почитал вот здесь - оказалось, это обычное дело, у всех так. Решения не нашел никто пока что. Но пишут, что вот этот проект работает вроде как стабильно. Как думаете, стоит пробовать? Или уж не мучать ESP32 больше?
 

aloika

Active member
По поводу ОpenWRT - вот лежит у меня Onion Omega2 уже много лет, даже работает, если включить. Какой к ней BLE-адаптер можно приставить? Хм, в принципе я могу сделать из TB-04 мост от UART до BLE прямо с нужными мне командами и функционалом... да, вот так можно. А как OpenWRT в умный дом затолкать?
 

pvvx

Активный участник сообщества
ESP32 пропускает все пакеты BLE. Принимает только часть. Устройству, работающему с ESP32 приходится дублировать десятки раз передачу, ожидая подтверждения от ESP32. Батарейка у BLE устройств садится влет, если они связываются с ESP32.
 

pvvx

Активный участник сообщества
Самое простое - берете нормальную современную платку с Linux. Пихаете в её USB BT адаптер за 78 руб CSR8510A10 или RTL8761BU (если нужна дальняя связь) с али.
Туда на Python пишите что вам нужно с отсылкой в MQTT в Home Assistant.
Пример маленькой нормальной платки с Linux и Ethernet - Luckfox Pico-M-256MB - ARM Cortex-A7, 256MB Memory, USB работает в две стороны, SD карта в неё вставляется. Есть без разъема Eth. но выводы для подключения есть.
Далее вариантов море и тут надо уже конкретизировать.
 

pvvx

Активный участник сообщества
Но я бы слепил на CH32V208W. Он стоит копейки и в его SDK для этого всё есть...
На али у отладочной платы слишком завышена цена. Не ясно по чему. Но уже давно пришли...
 

pvvx

Активный участник сообщества

pvvx

Активный участник сообщества
Есть ещё варианты для примитивного моста BLE-Wifi.
Берете "вумную розетку" с чипом BK7231(N) он BLE+WiFi.
За инфой в https://github.com/openshwprojects и https://www.elektroda.com
Там уже давно налепили WiFi и MQTT, но BLE вроде не освоили. SDK к чипам есть.
Но есть опасность взять розетку с ESP826x - тогда только в помойку...
 

pvvx

Активный участник сообщества
"Вумные розетки" Tuya с чипом BK7231(N) конфигурируются со смартфона по BLE. Потом работают по WiFi и BLE. Но никто так и не освоил их работу по BLE в HA или куда ещё... :p
 

pvvx

Активный участник сообщества
В принципе там всё есть https://github.com/openshwprojects/OpenBK7231T_App/tree/main/sdk
И https://www.bekencorp.com/ доступен, но там ничего нет.
Если недоступен - запустите psiphon3.exe. Найдет какой другой выход на DNS... и его ещё не заблокировали :)
А то вдруг вам потребуется зарегистрироваться на Ti или ещё где....
 

pvvx

Активный участник сообщества
Ныне операторы по заказу рос. депутатов согласно приказу из недружественных стран ввели санкций и порезали половину DNS, что только через VPN можно получить ip по имени 🤪
 

aloika

Active member
А смысл? Туда надо ещё 2 роутера (ретранслятора) ставить?
LE Long Range бьет раза в два дальше WiFi.
Зачем еще 2 роутера?
А с LE Long Range я пробовал возиться - написано, что телефон мой (Samsung A71) его поддерживает, а на самом деле оказалось - нет. Сейчас я уже деталей точно не помню, давно это было, но как-то я разочаровался. Может, с тех пор изменилось что, не знаю.
 

aloika

Active member
Самое простое - берете нормальную современную платку с Linux. Пихаете в её USB BT адаптер за 78 руб CSR8510A10 или RTL8761BU (если нужна дальняя связь) с али.
Туда на Python пишите что вам нужно с отсылкой в MQTT в Home Assistant.
Пример маленькой нормальной платки с Linux и Ethernet - Luckfox Pico-M-256MB - ARM Cortex-A7, 256MB Memory, USB работает в две стороны, SD карта в неё вставляется. Есть без разъема Eth. но выводы для подключения есть.
Далее вариантов море и тут надо уже конкретизировать.
Кто-нибудь знает, какой USB BT точно заработает в openWRT? Вот у меня два есть, ни один не работает. Первый выдает вот такое:

[ 4002.437467] usb 2-1: new full-speed USB device number 5 using ohci-platform
[ 4002.702285] usb 2-1: Duplicate descriptor for config 1 interface 1 altsetting 5, skipping
[ 4002.731389] Bluetooth: hci0: CSR: Setting up dongle with HCI ver=9 rev=0001; LMP ver=9 subver=0001; manufacturer=2279
[ 4002.742275] Bluetooth: hci0: CSR: Unbranded CSR clone detected; adding workarounds and force-suspending once...
[ 4002.752526] Bluetooth: hci0: CSR: Failed to suspend the device for our Barrot 8041a02 receive-issue workaround
[ 4005.277515] Bluetooth: hci0: command 0x0c01 tx timeout
[ 4007.357493] Bluetooth: hci0: command 0x080f tx timeout
[ 4009.437509] Bluetooth: hci0: command 0x0c1b tx timeout
[ 4011.517512] Bluetooth: hci0: command 0x0c46 tx timeout
[ 4013.597570] Bluetooth: hci0: command 0x0c63 tx timeout
[ 4015.677543] Bluetooth: hci0: command 0x100b tx timeout
[ 4017.757557] Bluetooth: hci0: command 0x0c77 tx timeout
[ 4019.837629] Bluetooth: hci0: command 0x2024 tx timeout

А второй - вот это:

[ 5525.044457] Bluetooth: hci1: CSR: Setting up dongle with HCI ver=9 rev=0810; LMP ver=9 subver=2312; manufacturer=10
[ 5525.055180] Bluetooth: hci1: CSR: Unbranded CSR clone detected; adding workarounds and force-suspending once...
[ 5525.065524] Bluetooth: hci1: CSR: Failed to suspend the device for our Barrot 8041a02 receive-issue workaround
[ 5565.213254] Bluetooth: hci1: CSR: Setting up dongle with HCI ver=9 rev=0810; LMP ver=9 subver=2312; manufacturer=10
[ 5565.223949] Bluetooth: hci1: CSR: Unbranded CSR clone detected; adding workarounds and force-suspending once...
[ 5565.234203] Bluetooth: hci1: CSR: Failed to suspend the device for our Barrot 8041a02 receive-issue workaround
[ 5565.266270] debugfs: File 'dut_mode' in directory 'hci1' already present!

И ни тот, ни тот на команду hciconfig hciX up не реагируют нормально... В инете ничего адекватного не нашел.
 

pvvx

Активный участник сообщества
Это древний OpenWRT. В нем ничего из USB-BT не работает.
Нужен с новым ядром.
 

pvvx

Активный участник сообщества
Наверно заработает USB\VID_0BDA&PID_8771&REV_0200 (RTL8761BU), если поменяете загружаемые бинарные файлы firmware к нему.
И CSR8510A10, если не поддельный, имеющий BT4.2, не выше.
Больше наверно на вашем OpenWRT ничего не заработает.
Ныне ядро 6.8 https://www.kernel.org/
 

aloika

Active member
Наверно заработает USB\VID_0BDA&PID_8771&REV_0200 (RTL8761BU), если поменяете загружаемые бинарные файлы firmware к нему.
И CSR8510A10, если не поддельный, имеющий BT4.2, не выше.
Больше наверно на вашем OpenWRT ничего не заработает.
Ныне ядро 6.8 https://www.kernel.org/
Ядро у этой сборки 5.15.134
 
Сверху Снизу