CC2652P jako koordynator zigbee

Dzień dobry,

sprzedaje CC2652P, wystawiam FVAT. Kontakt ze mną poprzez FB lub e-mail zigbee@sternicz.uk.

1 polubienie

@jolka, @araczkowski trochę popisałem z Grzegorzem na PW i Grzegorz sugeruje żeby dodać flagę CONFIG_USB_SERIAL_CH341=m podczas budowania kernela, to pozwoli na uruchomienie CC2538 którego posiadam) na bramce AIS.
Zapewne CC2652P też jest oparty o ten konwerter.

Potwierdzam, cc2538+cc2592 oraz cc2652p, które sprzedaje wymagają obsługi ch340 w kernelu Linuxa. Szukałem też źródeł państwa kernel’a ale nie znalazłem. Czy mogę prosić o udostępnienie źródeł kernela urządzenia AI-Speaker?

Cześć @Grzegorz_Sterniczuk Hej @Stravi

Na początek niestety zła wiadomość :frowning:

Nie możemy udostępnić źródeł kernela, to wymaga podpisania NDA z Amlogic i uzyskania u nich dostępu. Wg nas jest to chyba co najmniej naciąganie GPL… ale taka jest niestety rzeczywistość. Tak robią wszyscy producenci SoC (Allwiner i inni też). Albo nie dostarczają w ogóle jądra (Linux / Android) lub źródła u-boot, albo dostarczając drzewa z gotowymi plikami binarnymi i bez pasującego kodu źródłowego. Albo stary kod bez łatek i kompletnego toolchain, zbudowanie jądra będzie trwało miesiącami a w konsekwencji i tak nie zadziała prawidłowo.
Czyli producenci SoC, niby udostępniają źródła (żeby nie być pozwanym o naruszenie GPL) ale w rzeczywistości migają się jak mogą i nie ułatwiają życia tym co chcieli by to zrobić.
My w DEV1/BT/2 używamy skompilowane jądro które mamy od Amlogic i które jest stabilnie, nie mamy w planie dodawać do niego żadnych sterowników.

A teraz dwie dobre wiadomości :slight_smile:

  1. W przypadku PRO przed zamówieniem płyt, wynegocjowaliśmy od producenta dostęp do SDK i toolchain z możliwością legalnego udostępnienia dla naszych klientów. Nie jest proste znalezienie producenta który w rozsądnej cenie sprzeda płytę w ilości nie miliony sztuk i udostępni źródła które da się skompilować. Nam się to udało - ten etap mamy za sobą :+1:
    W przypadku PRO będą udostępnione źródła i będzie można dodawać do jądra sterowniki… ale to nie jest dobra droga - patrz punkt 2.

  2. Implementacja sterownika w przestrzeni użytkownika
    Android normalnie nie pozwala na bezpośredni dostęp do urządzeń USB. Kompilacja jądra żeby dodać obsługę komunikacji szeregowej nie jest prosta. Nie da się skompilować wszystkich jąder Android-a :wink: - jeżeli to zrobimy na naszej bramce to i tak będziemy ograniczeni do tylko tego modelu i będziemy musieli to robić z każdym innym jądrem (w przypadku zmiany modelu itd…).
    Dlatego postanowiliśmy nie iść tą drogą, a zrobić coś co zadziała na każdym urządzeniu z Android - dodajemy komunikację ze sprzętem w przestrzeni użytkownika (w naszej aplikacji).
    Pracujemy nad tym żeby zbudować w aplikacji AIS dom, który połączy port szeregowy USB z TCP socket w systemie Android.
    To będzie nasze rekomendowane rozwiązanie w tym temacie.

AisUartBridgeX

Mamy już prototyp, opiszę jak to działa:

  1. tworzymy serwer TCP w aplikacji - otwieramy input i output stream na jakimś porcie np. 1234
  2. łączymy urządzenie USB za pomocą kabla OTG
  3. wykrywamy urządzenie dodane po USB, ustawiamy parametry transmisji i czytamy z niego dane które napływają z urządzenia, i publikujemy je na serwerze TCP. Dane które przychodzą z TCP piszemy do USB.
  4. w aplikacji łączymy się z portem TCP. Np. zigbee2mqtt łączymy się nie do port: /dev/tty... ale do port: 'tcp://localhost:1234'

Proof of concept

komunikacja szeregowa z adapterem zigbee2mqtt z telefonu, bez root-a bez kompilowania jądra :wink:

DEBUG=zigbee-herdsman* npm start

@Grzegorz_Sterniczuk czy ty sam robisz te adaptery?

Jeżeli jesteś programistą to chętnie dołączymy Cię do projektu. Jeżeli nie masz naszej bramki to możemy się wymienić adapter za bramkę i doprowadzić to do działania razem.
Napisz proszę na info@ai-speaker.com wiadomość z kontaktem do siebie i opisem tego co robisz.
Szukamy stabilnej i mocniejszej alternatywy dla naszego CC2531, może razem to dodamy.

PS
W zbudowaniu tej funkcjonalności pomaga nam kolega, programista z Meksyku :mexico: :+1:
Pisząc to opieramy się na jego kodach i doświadczeniach z projektu który powstał do komunikacji pomiędzy Android a Arduino. Jak będziemy mieli więcej czasu to opiszemy całą historię kiedyś i przedstawimy naszego Amigo na forum.

Oczywiście jak wyjdziemy z fazy prototypu to włączymy tą funkcjonalność do projektu - wg nas to jest najlepsze droga (a nie dodawanie sterowników do jądra). Zalet jest wiele i docelowo, dzięki temu podejściu będzie można adapter podłączyć do tabletu itd… nie koniecznie do bramki która może nie znajdować się w centralnym miejscu w domu, może mieć włączone wifi, blutooth co nie pomaga zigbee.

5 polubień

Dzień dobry.

Tak ja sam robię CC2652P. Zajmuję się także Linux’em od 93’ i skompilowałem nie jeden kernel :wink: w tym takie pod AmLogic S905 (niestety są to stare kernele oparte o to co AMLogic udostępniło - działają i to stabilnie ;)) - wiem że ten producent nie wypełnia postanowień GPLv3 i rozumiem problemy z tym związane


Bardzo chętnie wymienię się sprzętem w celu doprowadzenia do lepszej współpracy naszych urządzeń.

PS. Napisałem prawie to samo na podany adres e-mail.

7 polubień

Nie ma chyba obecnie lepszego dongla Zigbee niż CC2652P. Posiadam ten sprzęt od Grzegorza. Gdy uda się to uruchomić na bramce AIS to w 100% przechodzę na Jolke. Czekam z niecierpliwością. W razie czego zgłaszam się do testów. Ten cały cc2531 już mnie powoli wykańcza…

4 polubienia

Jestem w kontakcie z producentem bramek. Czekam na dostawę ich bramki i dziś nadam im mój CC2652P. Pracujemy wspólnie nad tym by nasze produkty współpracowały jak najlepiej.

6 polubień

WItamy @Grzegorz_Sterniczuk w AI-Speaker :wave:

Brameczka wysłana, zaraz dodamy Cię do projektu AI-Speaker w Github.

Bardzo się cieszymy z nawiązania współpracy - taki specjalista, który potrafi zrobić bramkę Zigbee na CC2652P i kompilować jądro Linuxa to dla nas skarb :+1:

PS
dodajemy kody SDK z PRO do Github, mamy nadzieję że uda się wysłać do Github 62 Giga :slight_smile:
jak nie to znajdziemy inne miejsce i damy znać

5 polubień

W końcu jakąś dobra wiadomość z zigbee.

1 polubienie

Cześć @Celina wiemy coś co z tym kontrolerem mqtt

Sprzętami już się wymieniliśmy. Grzegorz i nasi technicy-magicy są w stałym kontakcie. Myślę, że jak będą już mieli jakieś konkretne wieści, to na pewno się podzielą na forum.

Prędzej czy później będziemy mieli mocny koordynator Zigbee, ale nie robimy małpich ruchów (poza działaniem musimy mieć kody, certyfikacje i pewność, że to działa z naszą bramką).

Jak zawsze będziemy informować o postępach :slight_smile:
Brak informacji może znaczyć tylko jedno- praca w toku :slight_smile:

2 polubienia

@Grzegorz_Sterniczuk

Doszliśmy do wniosku, że to co dał nam Amlogic to w sumie kody Linuxa (nie ma tam tajnych/zastrzeżony kodów Amlogic), dlatego możemy to legalnie opublikować - na dobrą sprawę czujemy się wręcz zobligowani do publikacji :wink:

Udostępniamy całość w formie kontenera Dockera wraz z instrukcją kompilacji.
Są to kody jądra (tego które jest w bramkach DEV1, DEV-BT, DEV2) + toolchain

:warning: UWAGA - nie mamy w planach dostarczać zmienionego jądra na bramki DEV1, DEV2 i DEV-BT ani żadnych dodatkowych sterowników. Nie mamy czasu na testy, nie chcemy ryzykować destabilizacji dobrze działających bramek. Po kilku latach zamykamy ten rozdział i przechodzimy na nowsze jądro Linux-a (w DEV3 i PRO1 mamy jądro 4.9…).
Kompilowanie modułów jądra to procedura dla bardzo zaawansowanych użytkowników. Bardzo prawdopodobne jest, że coś nie zadziała od razu tak jak powinno… i do poprawnego działania, będzie wymagało wiele dni/tygodni pracy, prób i błędów.
Ostrzegamy, że ze względu na brak zasobów, nie będziemy w stanie tego wspierać - jedyne co możemy zrobić to opublikować dla zainteresowanych: te kody i opis.

:tipping_hand_woman: Tak jak pisaliśmy - pracujmy nad projektem który umożliwi działanie mocengo koordynatora zigbee2mqtt z każdą bramką DEV (oraz z maszynami typu NAS, czy systemami działającymi na wirtualnych maszynach).
Na tą chwilę jeżeli ktoś chce mieć inny sprzęt do zigbee który wymaga do działania dodatkowych sterowników to radzimy postawić go na innym dedykowanym (przez producenta adaptera) sprzęcie i łączyć się z naszej bramki za pomocą socket:// - tak jak to zostało opisane tu Zigbee w Asystencie domowym - inne możliwości


Cała instrukcja kros-kompilacji zarówno modułów jak i jądra dla arm64 jest tu:

https://hub.docker.com/repository/docker/aispro/kernel_dev2

Zanim ktoś przejdzie dalej - ostatnie ostrzeżenie - zastanów się proszę, czy nie szkoda czasu… życie jest jedno :wink: Bez ogromnej determinacji i równie ogromnej ilości czasu, na 99% coś się nie uda… i będzie jakiś problem…

OK, czyli wiesz co robisz - zostałeś ostrzeżony

Device Drivers

USB Support

USB Serial Converter Support

Select modules

Save

2 polubienia

Ruchy są widzę w dobrą stronę, czy ten koordynator kiedyś doczeka się wsparcia out of the box na bramce DEV2? Zabawy w kernelu to już wyższa szkoła jazdy. Niestety ale CC2531 za grosz nie można ufać.

Czyli mój zakup CC2652P nietrafiony :frowning: A myślałem, że dacie radę.

@draki
mamy pewien plan… potrzebujemy trochę czasu i rozwiążemy to kompleksowo (także dla tych co mają DEV1 itd…)

@Goral64
jak nie chcesz kompilować sterowników w jądrze… i brać odpowiedzialność na siebie za stabilność urządzenia… nie rozumiem jak można nie chcieć :wink:
to możesz zawsze połączyć się przez socket://

Myślenie o rozwiązaniu a nie o problemie pomaga :wink:

1 polubienie

Chciałbym w końcu zacząć czerpać z życia a nie ciągle do niego dokładać :smiley:

Czy można już kupić CC2652P działający z Dev3?

Już teraz możesz używać każdy adapter z2m z każdą bramką AIS DEV 1/2/3
wystarczy, że połączysz się z adapterem nie po USB → /dev/ttyUSB…
a zdalnie po tcp → tcp://

tak jak jest to opisane w dokumentacji zigbee2mqtt

https://www.zigbee2mqtt.io/how_tos/how_to_connect_to_a_remote_adapter.html#3-configure

serial:
    port: 'tcp://192.168.2.13:20108'

i tak jak to opisałem tu:

od czasu kiedy to opisałem, cały czas mam podłączone te urządzenia i od tego czasu to działa bez problemu. Wg mnie to jest dobra droga.

Wiem, że to może nie być proste jeszcze, żeby to dało się zrobić prościej (tak jak nasz adapter który wystarczy włożyć i wszystko się dzieje samo) jest w trakcie opracowywania - będzie prościej.

Dzięki za odpowiedź, mnie jednak właśnie chodziło o to “prościej”, czyli plug & play. Boje się że ten aktualnie przez was oferowany nie da u mnie rady z zasięgiem (mały domek, ale grube mury z kamienia). Tym bardziej że jest on bez anteny, a i ludzie z zgłaszają z nim różne problemy. Czekam więc na 265P. Może chociaż jakaś przybliżona data?

wszystko jest rzeczą względną, u mnie ten aktualnie oferowany CC2531 opędza 100 metrowy dom. Od kąd go mam nie mam z nim problemów, po za początkowymi problemami z urządzeniami. Podpięte na tą chwilę 20 urządzeń, oczywiście przy założeniu że na każde pomieszczenie w domu musi być przynajmniej jedno urządzenie z funkcją routera, i sprawdza mi się to super :wink:
Do celowo i tak planuję Conbee II ale nie ma presji :wink: