Strona 1 z 5

Radiomodem "za grosze"

: czwartek 31 maja 2012, 11:34
autor: mkrawcz1
Przepisuję z sąsiedniego forum ;-)
Nie wiem, czy we właściwym dziale, ale...
Panowie z 3DRobotics wypuścili takie coś:
http://diydrones.com/profiles/blogs/ann ... try-system
jako alternatywę dla XBee.
Pracuje toto w oparciu o moduły radiomodemów firmy Hope:
http://www.hoperf.com/rf_fsk/fsk/HM-TRP.htm
http://www.hoperf.com/upload/rf_app/hm-trp.pdf
oraz zmodyfikowany firmware:
https://github.com/tridge/SiK
Po skonfigurowaniu dwóch modułów mamy dwukierunkowe łącze RS-232 TTL z prędkościami dochodzącymi do 250kbps, z korekcją błędów (ECC), konfiguracją komendami AT/RT oraz konfiguratorem, dodatkowymi funkcjami dla ArduPilot Mega etc.

Życzą sobie za to cudo $85.99 za zestaw "ziemia" plus "powietrze".
Są też dostępne komponenty luzem. Niestety koszt wysyłki z USA jest znaczny...

Jako że "Polak potrafi", postanowiłem wejść w posiadanie taniej.
Jako że kradzież odpada (za daleko ;-) ), zacząłem kombinować.
Moduły HM-TRP na 433 i 868MHz są dostępne tu:
http://www.maritex.com.pl/pl/shop/produ ... pid/18588/ (433)
http://www.maritex.com.pl/pl/shop/produ ... pid/21958/ (868)
w cenie trochę ponad 50 PLN/szt.
Firmware pod linkiem powyżej, ale ma wadę - do kompilacji wymaga maszyny pod Linuxem (niby można pod Win, ale mi się nie udało). Jakby ktoś nie chciał walczyć z samodzielną kompilacją - PW/mail do mnie.
Wystarczy do modułu wgrać bootloader, sam firmware można potem załadować z poziomu konfiguratora.
Następny problem - programator C2. Tridge (twórca firmware) poleca "SiLabs USB debug adapter":
http://www.silabs.com/products/mcu/Pages/USBDebug.aspx
ale cena $35 + wysyłka ( http://www.supplier-direct.com/silabs/C ... %20Adapter ) czyni to przedsięwzięcie średnio opłacalnym...
Poszukałem i znalazłem taką stronkę:
http://silabs.org.ua/sp_en.htm
Jest na niej soft do programowania:
http://silabs.org.ua/slabprog.zip
który współpracuje m. in. z programatorem FlashBlaster2:
http://dilogic.hr/Downloads/Documents/FLashBlaster2.pdf
Kupić go - też drogo, ale Chorwaci to taki miły naród, że publikują też schemat:
http://dilogic.hr/Downloads/Documents/flblastsch2.pdf
Programator ten obsługuje zarówno JTAG (nam zbędny), jak i C2 (linie C2DAT, C2CK). Do tego zasilanie (3,3V MAKSYMALNIE) i masa i można jechać :-)
Problemem okazał się soft do programowania - nie czytał plików HEX spod Linuxa (inne znaki końca wiersza) oraz plików ponad 32kB. Krótka korespondencja z twórcą (Roma - bardzo miły człowiek, pozdrawiam :-) ) i udało się to przezwyciężyć - aktualna wersja śmiga, aż miło.
Na module HM-TRP oprócz pinów/pól lutowniczych na krawędzi (opisane na PCB) mamy 4 pola, służące do przyłączenia interfejsu C2. Trzymając PCB stroną elementów do siebie, ze złączem anteny na górze po lewej, od prawej na małych polach lutowniczych mamy:
- masa,
- +Vcc (3,3V),
- C2D
- C2CK

Lutujemy sobie programator (ja 'na pająka'), podlutowujemy HM-TRP, podłączamy zasilanie i...........
...........i zaczynamy szukać komputera z portem LPT. Jak już znajdziemy (a może to być najtrudniejsze z całego tego przedsięwzięcia), odpalamy SlabProg, wybieramy właściwy port LPT i jego prędkość (bez szaleństwa, ale i nie za wolno), kasujemy pamięć (ALLMEM ERASE), ładujemy plik (OPEN, wybieramy właściwy plik dla radia, ja miałem \bootloader.hm_trp\bootloader.hm_trp.433, dla 868MHz będzie odpowiednio \bootloader.hm_trp\bootloader.hm_trp.868), programujemy (ALLMEM PROGRAM) i po zakończonym sukcesem programowaniu resetujemy (DEVICE RESET). Teraz na module powinna się zaświecić czerwona dioda - znak, że moduł ma sprawny bootloader i jest gotowy na przyjęcie firmware.
Firmware można wgrać na dwa sposoby: albo tak samo jak bootloader, albo programem do konfiguracji.
Wariant 1: otwieramy plik \radio.hm_trp\radio.hm_trp.hex i wybieramy CHANGED PROGRAM. Twórca SlabProg tego nie zaleca, bo warunek powodzenia jest taki, że bootloder i firmware nie dzielą żadnego bloku pamięci. Jako że jestem krnąbrny, to spróbowałem i mam SOA#1. Niemniej czujcie się ostrzeżeni ;-)
Wariant 1 poprawiony: można obydwa pliki HEX połączyć w jeden i zaprogramować tak jak bootloader (ALLMEM PROGRAM) - tak zalecał Roma.
Wariant 2: jak już mamy bootloader i czerwony LED świeci, odlutowujemy programator (nie wyrzucać - w końcu potrzebujemy co najmniej dwóch modułów :-)) i podłączamy przejściówkę USB-RS TTL 3,3V (piny GND, DRX i DTX - chyba jasne) oraz wciąż jakieś zasilanie (przypominam - 3,3V). Ja przylutowałem scalony stabilizator LM1085-3.3 i kondensator tantalowy 10uF/10V. W szereg z RX i TX dałem dławiki SMD jak na oryginalnym schemacie z 3DR. Zapinamy toto do PC i lokalizujemy port COM, na którym się wykryło. Potem ściągamy 3DR Radio config tool:
http://vps.oborne.me/3drradioconfig.zip
Wypakowujemy i odpalamy, wybieramy port COM oraz prędkość (57600), a następnie Upload firmware (Local). Konfigurator sam sobie ściąga najnowszy firmware (na dziś jest to 1.5) i wgrywa do modułu. Teraz tylko reset i można przez Load Settings zobaczyć, jak mamy domyślnie skonfigurowany moduł.
Teoretycznie przez ten sam soft możemy też skonfigurować moduł, ale mnie się coś nie chce zapisywać... Zamiast tego używam komend AT ze strony http://code.google.com/p/ardupilot-mega/wiki/3DRadio i one działają.

Wg powyższego konfigurujemy również drugi moduł, ustawiamy w nim ten sam NET ID i w tym momencie mamy parę połączonych modemów - jeżeli obydwa są włączone, to zielony LED świeci ciągle, czerwony miga przy transmisji.
Użytkownicy APM/APM2 i Mission Plannera mogą konfigurować bezpośrednio z APM.

Na dziś tyle, dopiero odpaliłem to cudo, zobaczymy, jak daleko słychać 100mW ;-)

W razie pytań - zapraszam do kontaktu.

I NA KONIEC WAŻNA UWAGA: to, że zadziałało u mnie nie oznacza, że musi zadziałać u Ciebie - wszystko powyższe to wskazówki, wszelkie działania podejmujesz na własne ryzyko i sam musisz ponieść ich ewentualne konsekwencje :-)

PS. Zapomniałem o antenie, ale to było tak oczywiste... Do wyprowadzeń "na górze" HM-TRP podlutowałem kawałek koncentryka (ekran do GND, żyła środkowa do ANT) z zaciśniętym na końcu złączem żeńskim SMA, do którego wkręcam antenę na 433MHz.

: piątek 01 cze 2012, 10:57
autor: mkrawcz1
Przydałaby mi się pomoc któregoś z kolegów z Wawy (szczególnie Ursynów) przy testowaniu zasięgu. Niezbędny laptop z Win XP lub nowszym, idealnie, gdyby był samochód (zakładam zasięgi większe niż 200m ;-)) i przejściówka USB - TTL z zasilaniem 5V 500mA (mam jedną, druga na 3,3V nie pozwala osiągnąć mocy maksymalnej). Jakby nie było przejściówki - będziem kombinować z BEC :-)
Chętnego do pomocy proszę o kontakt na PW lub mail.

: piątek 01 cze 2012, 11:22
autor: Rurek
Na zlocie mamy mieć pole o długości 2000m i laptopów tak z pięćdziesiąt :-)

: piątek 01 cze 2012, 11:23
autor: mkrawcz1
No ja niestety w weekend czasowy nie jestem :-( Choć mocno się przymierzałem...
Dopiero niedziela po południu będzie luźniej.

: czwartek 07 cze 2012, 20:17
autor: mkrawcz1
Pierwsze testy (z pomocą Tomka "Cobry" - niniejszym dziękuję):
- jeden z modułów na statywie z anteną Dragonlink,
- drugi z modułów "w łapie" z domowej produkcji dipolem 1/2 fali.
Maksymalny zasięg na ziemi - 435m (jeden z modułów tuż za dość gęstą kępą drzew), RSSI ok. 50%. Prędkość transmisji "air" 64kbps. Prawdopodobnie trzymanie anteny w ręku nie pomaga... Na razie nie było jak sprawdzić przy wolniejszej transmisji.
Co ciekawe, pracujący tuż obok eLeReS nieznacznie wpływa na RSSI.
Być może wkrótce testy w powietrzu.

: sobota 16 cze 2012, 12:51
autor: bartwaw
Można wiedzieć jak postępy ?

: niedziela 17 cze 2012, 21:41
autor: mkrawcz1
Niestety z przyczyn zawodowo-rodzinnych nie było na razie czasu na dalsze testy.
Odwlecze się zapewne do wakacji.
Jeżeli któryś z kolegów chce się samodzielnie pobawić i podeśle mi 2 szt. HM-TRP, mogę zflashować i będzie co testować (trzeba będzie uzupełnić paroma elementami, szczegóły na PW).

: niedziela 04 lis 2012, 19:56
autor: mkrawcz1
Dziś po raz kolejny dzięki pomocy Tomka "Cobry" udało się coś potestować.
1. Na ziemi chińska antenka chińska magnesowa, przyczepiona do samochodu. W powietrzu chińska antenka "rubber duck" - generalnie bez szału...
RSSI w momencie utraty zasięgu - 36%, odległość 540m, wysokość 160m
Obrazek


2. Na ziemi Nagoya trzymana poziomo "w łapce", w powietrzu "domorobny" dipol, przylepiony poziomo do wierzchu latającego skrzydła.
RSSI w momencie utraty zasięgu - 25%, odlgłość 1400m, wysokość ok. 240m
W tym miejscu były też problemy z linkiem video i zasięgiem RC.
Obrazek

Prędkość "air" - 64kbps
Prędkość UART - 57kbps
Video 1,2GHz, LRS 433MHz 1 W.
Modemy na pełnym paśmie, maks ilość jednoczesnych kanałów, 100mW.

: niedziela 04 lis 2012, 21:08
autor: --mi--
Rozumiem że w tych testach występowała częstotliwość 868Mhz?

: niedziela 04 lis 2012, 21:12
autor: mkrawcz1
Nie, 433MHz :-) Jakoś sobie z LRS nie wchodzą w drogę, choć Tomek twierdzi, że w czasie lotu kilka razy "szarpnęło" sterami.

: niedziela 04 lis 2012, 23:21
autor: cobra
Potwierdzam. Potem latałem jeszcze bez Twojego "ustrojstwa" na pokładzie i feilsejfów nie doświadczyłem. Z wizją w tamtym miejscu problemy nadal były.

: czwartek 15 lis 2012, 13:01
autor: elektron
jak tam idą testy ?;)

: czwartek 15 lis 2012, 13:02
autor: mkrawcz1
U mnie na razie cisza. Został mi tylko 1 moduł, czekam na zamówione 433 i 868.

: piątek 16 lis 2012, 14:46
autor: grzesiek312
Można prosić o jakieś szczegóły dzialania modułu po wgraniu nowego firmware ?
Interesuje mnie przede wszystkim baudrate, który na fabrycznym oprogramowaniu dochodził do 57600 (a producent podaje, że moduł ma pracować na max 115200). Dodatkowo interesuje mnie kwestia usypiania modułów, tzn. jaki jest czas usypiania i wybudzania modułu. Jeśli ktoś przeprowadził takie testy na modułach z nowym oprogramowaniem, będę bardzo wdzięczny za podzielenie się wynikami ów testów.

: piątek 16 lis 2012, 14:53
autor: mkrawcz1
http://code.google.com/p/ardupilot-mega/wiki/3DRadio
Baud rate "air" do 250k, na UART - do 115k.
Z tego, co wiem, usypianie nie jest obsługiwane.