OrangeRX LRS - wgrywamy oprogramowanie OpenLRSng

Moderatorzy: marbalon, moderatorzy2014, moderatorzy

Awatar użytkownika
inzkulozik
Posty: 308
Rejestracja: sobota 03 lis 2012, 00:20
Lokalizacja: Kraków

OrangeRX LRS - wgrywamy oprogramowanie OpenLRSng

Post autor: inzkulozik »

Witam,

Przedstawiam poniżej instrukcję dla początkujących użytkowników OrangeRx LRS. :-)

1) Na początek wykaz co będzie nam potrzebne
Odbiornik
Obrazek

Nadajnik
Obrazek

Dobrze jest wykonać własną kontrolę jakości lutów, zarówno nadajnika jak i odbiornika. Kiedyś (zeszły rok, 2012) było pod tym względem nie za ciekawie. Mam jednak nadajnik zamówiony w zeszłym miesiącu (czerwiec'13) i muszę przyznać, że zrobili duży postęp. Albo po prostu tak mi się tylko trafiło, że lutował bardziej kumaty chińczyk?... :D

Programator
Obrazek

Program Arduino - dalej będę używał wersji 1.5.2 (beta).

Źródła OpenLRSng v2.1 - po otwarciu wciśnij Ctrl+S aby zapisać plik

Źródło napięcia 5V

Uwaga:
- pominę tutaj instalację sterowników USBasp i programu Arduino.

2) Przygotowanie źródeł
- wypakowujemy archiwum openLRSng-master.zip
- otwieramy w programie Arduino plik openLRSng.ino
- w pliku binding.h modyfikujemy wartość stałej DEFAULT_RF_MAGIC zmieniając domyślną wartość DEADFEED na inny ciąg 8 znaków, gdzie każdy znak jest ze zbioru 0123456789ABCDEF. Ma zostać "0x" na początku.

Kod: Zaznacz cały

DEFAULT_RF_MAGIC 0xDEADFEED
- w pliku binding.h modyfikujemy wartość stałej tablicy DEFAULT_HOPLIST zmieniając domyślne liczby swoimi "losowymi". Mają być w przedziale 0-49. Standardowo jest ich 6, może być do 8.

Kod: Zaznacz cały

DEFAULT_HOPLIST 22,10,19,34,49,41
- w pliku binding.h modyfikujemy wartość stałej DEFAULT_FLAGS celem uzyskania dodatkowych opcji. Kolejne wartości oddzielamy pionową kreską. Poniżej przykład dla: 8 kanałów, szybkiego failsafe (0.5s), braku sygnału PPM w trybie failsafe i z włączoną telemetrią (nadajnik będzie piszczał po utraceniu łączności z odbiornikiem)

Kod: Zaznacz cały

#define DEFAULT_FLAGS CHANNELS_8 | FAILSAFE_FAST | FAILSAFE_NOPPM | TELEMETRY_ENABLED
- w pliku openLRSng.h odkomentowujemy (usuwamy "//" z początku wiersza) stałą FORCED_PPM_OUTPUT jeśli chcemy mieć na pierwszym kanale sygnał PPM

Kod: Zaznacz cały

#define FORCED_PPM_OUTPUT 
3) Podłączenie do komputera
Na początek odpinamy zworkę z USBasp.
Następnie podłączamy wg obrazków
a) nadajnik
Obrazek
Dla pewności robimy wszystko z podłączoną anteną. Zasilanie (5V) podłączamy do pinów jak na obrazku (kabelki żółty-5V i niebieski-masa).

b) odbiornik
Obrazek
Tutaj podpinanie anteny nie jest konieczne. Zasilanie (5V) podłączamy do pinów dowolnego kanału jak na obrazku (czerwony-5V i czarny-masa).

4) Wgrywamy program
- mając wszystko podpięte jak na obrazkach powyżej, podpinamy USBasp do komputera
- otwieramy w programie Arduino plik openLRSng.ino
- ustawiamy w programie Arduino w menu Narzędzia : procesor ATmega 328 (5V, 16MHz); płytka Arduino Pro or ProMini; programator USBasp
- za pierwszym razem (czy to nadajnika czy odbiornika) zaczynamy od wybrania opcji Wypal Bootloader z menu Narzędzia, i czekamy, aż program skończy "wypalanie". W zasadzie to nie jestem do końca pewien czy jest to w ogóle potrzebne jeśli będziemy zawsze używać programatora USBasp...
- w pliku openLRSng.h odkomentowujemy (usuwamy "//" z początku wiersza) stałą COMPILE_TX jeśli wgrywamy do nadajnika i pamiętamy o zakomentowaniu jeśli do odbiornika

Kod: Zaznacz cały

#define COMPILE_TX
- ładujemy program opcją Załaduj używając programatora z menu Plik

5) Bindowanie
- podłączamy pudełeczko z nadajnikiem do aparatury pamiętając wcześniej o podpięciu anteny
- trzymając przycisk opisany fail safe na nadajniku, włączamy aparaturę i puszczamy przycisk nadajnika - z brzęczka powinniśmy słyszeć ciągłe pikanie
- teraz podpinamy zasilanie do odbiornika (jak na obrazkach powyżej) - bindowanie trwa dosłownie ułamek sekundy i powinniśmy prawie od razu zobaczyć na odbiorniku dwie zapalone czerwone diody
- odłączamy zasilanie odbiornika
- wyłączamy aparaturę
- koniec, zbindowaliśmy odbiornik z nadajnikiem - teraz można włączyć normalnie aparaturę i podłączyć zasilanie do odbiornika (powinien po chwili zacząć mrugać jedną diodą sygnalizując tym samym odbieranie danych z nadajnika)
- jeśli w pkt 2 ustawiliśmy flagę do telemetrii, to wyłączając teraz odbiornik powinniśmy usłyszeć piszczenie z brzęczka nadajnika

6) Dodatkowa lektura do poczytania w wolnym czasie :)
- "oficjalny" wątek na rcgroups.com, w którym autor informuje o nowościach i prowadzi historię zmian
- Orange OpenLRS - mały teścik
- OrangeLRS vs alternatywy...
- najlepsza antena do TX na 430MHz czyli do LRSów
- instrukcja wgrywania przez FTDI - UWAGA: opis dotyczy FTDI 3.3V (czyli nie to, które można kupić na HK), więc jeśli masz FTDI-5V to musisz pamiętać, aby połączyć płytki z pominięciem zasilania z FTDI czyli trzeba je zorganizować w taki sposób jak pokazuję na zdjęciach
- opis wyprowadzeń odbiornika

//TODO
- aktualizacja opisu do v3.0
- clear epprom
- menu
- beacon mode
- spectrum analizer

Dotarliśmy do końca. Dziękuję za uwagę.
Ostatnio zmieniony niedziela 14 lip 2013, 10:38 przez inzkulozik, łącznie zmieniany 13 razy.
Syma S032G :)
KDS 450SV / PhoenixRC
QC w budowie...
skazi
Posty: 1438
Rejestracja: sobota 19 sty 2013, 10:25
Lokalizacja: Cieszyn

Post autor: skazi »

Dobry opis ale nie napisałeś z czego zasilamy TX i RX :) (TXa też z beca zasiliłeś?)
kondiz
Posty: 1731
Rejestracja: poniedziałek 13 cze 2011, 09:14
Lokalizacja: Jelenia Góra / Wrocław

Post autor: kondiz »

Dzięki za opis :D
Da się to zrobić takim czymś? bo tylko to zamówiłem... Ten programator co masz niestety jest na BK :-/
Konrad
Awatar użytkownika
inzkulozik
Posty: 308
Rejestracja: sobota 03 lis 2012, 00:20
Lokalizacja: Kraków

Post autor: inzkulozik »

skazi, nie napisałem, bo w pierwszym punkcie mówię, że potrzebujemy "źródło napięcia 5V" ;) To dokładnie "z czego" jest obojętne. Wiadomo, że każdy znajdzie jakiegoś wolnego BEC-a. Natomiast ja sam, co widać dokładnie na jednym zdjęciu, podpinam po prostu koszyczek z 4 paluszkami AA.
Syma S032G :)
KDS 450SV / PhoenixRC
QC w budowie...
Capo
Posty: 592
Rejestracja: czwartek 09 lut 2012, 17:47
Lokalizacja: Warszawa

Post autor: Capo »

Super opis, myślę że niejednemu się przyda.
Mam pytanie co do samej telemetrii w OpenLRSng, datarate ustawiony na 2, a telemetria nie chce działać, nic nie piszczy. Co ciekawe w OpenLRS 1.12 telemetria działa normalnie.

Pozdrawiam.
skazi
Posty: 1438
Rejestracja: sobota 19 sty 2013, 10:25
Lokalizacja: Cieszyn

Post autor: skazi »

kondiz pisze:Dzięki za opis :D
Da się to zrobić takim czymś? bo tylko to zamówiłem... Ten programator co masz niestety jest na BK :-/
Mogłeś kupić na ebayu taki ftdi co ma zworkę 3.3V/5V, z tego twojego też się da zaprogramować ale zasilić musisz np. z BECa.
Ostatnio zmieniony środa 03 lip 2013, 21:28 przez skazi, łącznie zmieniany 1 raz.
kondiz
Posty: 1731
Rejestracja: poniedziałek 13 cze 2011, 09:14
Lokalizacja: Jelenia Góra / Wrocław

Post autor: kondiz »

eee no to damy rade ;-)
Konrad
Awatar użytkownika
Rurek
Posty: 16419
Rejestracja: środa 10 mar 2010, 15:21
Lokalizacja: AIP ENR 5.5 - AAA 153 :-)

Post autor: Rurek »

skazi pisze:
kondiz pisze:Dzięki za opis :D
Da się to zrobić takim czymś? bo tylko to zamówiłem... Ten programator co masz niestety jest na BK :-/
Mogłeś kupić na ebayu taki ftdi co ma zworkę 3.3V/5V, z tego twojego też się da zaprogramować ale zasilić musisz np. z BECa.
To jakaś herezja :roll: bo programator ISP to zupełnie co innego niż interfejs USB/TTL-USART...tak więc nie da się...
infekcja FPV postępuje w zastraszającym tempie...
Awatar użytkownika
inzkulozik
Posty: 308
Rejestracja: sobota 03 lis 2012, 00:20
Lokalizacja: Kraków

Post autor: inzkulozik »

kondiz, niestety nie mam kolejnego dziewiczego nadajnika/odbiornika, żeby Ci powiedzieć dokładnie jak mając FTDI zabrać się do tego od zera, ale na pewno jak już wspomniał skazi, musisz uważać aby nie zrobić sobie krzywdy podpinając zasilanie wprost z tego FTDI (a więc tylko TX/RX na krzyż i masa, a zasilanie jak na obrazkach wyżej).
No i chyba bootloader będzie obowiązkowy i do wgrania z linii poleceń wg tego co pisał Marceli w wątku "mały teścik" (trzeba zmienić com3 na właściwy nr portu):

Kod: Zaznacz cały

avrdude -p m328p -c stk500 -P com3 -b 115200 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m efuse:w:0x05:m
avrdude -p m328p -c stk500 -P com3 -b 115200 -U flash:w:"bootload_M328@16MHz.hex":i -U lock:w:0x0f:m -y -v
Aczkolwiek, to jest bootloader (plik bootload_M328@16MHz.hex) z wątku eLeReSowego, więc nie wiem czy można go wykorzystać... :)
Tak czy siak, w katalogu z Arduino też są.
Np.
arduino-1.5.2\hardware\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex

Następnie mając wgrany bootloader, w Arduino trzeba będzie:
- wybrać menu Narzędzia odpowiedni numer portu szeregowego
- ładować program przez Załaduj, zamiast Załaduj używając programatora


Capo pisze:Mam pytanie co do samej telemetrii w OpenLRSng, datarate ustawiony na 2, a telemetria nie chce działać, nic nie piszczy. Co ciekawe w OpenLRS 1.12 telemetria działa normalnie.
Na razie sprawdzałem z datarate na 0 i normalne 8 kanałów. Może nie wgrałeś kodu z włączoną telemetrią do nadajnika i do odbiornika, a tylko do jednego?
Ostatnio zmieniony środa 03 lip 2013, 21:52 przez inzkulozik, łącznie zmieniany 1 raz.
Syma S032G :)
KDS 450SV / PhoenixRC
QC w budowie...
skazi
Posty: 1438
Rejestracja: sobota 19 sty 2013, 10:25
Lokalizacja: Cieszyn

Post autor: skazi »

inzkulozik pisze:kondiz, niestety nie mam kolejnego dziewiczego nadajnika/odbiornika, żeby Ci powiedzieć dokładnie jak mając FTDI zabrać się do tego od zera, ale na pewno jak już wspomniał skazi, musisz uważać aby nie zrobić sobie krzywdy podpinając zasilanie wprost z tego FTDI (a więc tylko TX/RX na krzyż i masa, a zasilanie jak na obrazkach wyżej).
No i chyba bootloader będzie obowiązkowy i do wgrania z linii poleceń wg tego co pisał Marceli w wątku "mały teścik" (trzeba zmienić com3 na właściwy nr portu):

Kod: Zaznacz cały

avrdude -p m328p -c stk500 -P com3 -b 115200 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m efuse:w:0x05:m
avrdude -p m328p -c stk500 -P com3 -b 115200 -U flash:w:"bootload_M328@16MHz.hex":i -U lock:w:0x0f:m -y -v
Aczkolwiek, to jest bootloader (plik bootload_M328@16MHz.hex) z wątku eLeReSowego, więc nie wiem czy można go wykorzystać... :)
Tak czy siak, w katalogu z Arduino też są.
Np.
arduino-1.5.2\hardware\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex

Następnie mając wgrany bootloader, w Arduino trzeba będzie:
- wybrać menu Narzędzia odpowiedni numer portu szeregowego
- ładować program przez Załaduj, zamiast Załaduj używając programatora
Nie trzeba wgrywać bootloadera, robi się to praktycznie tak samo jak przy użyciu usbasp. Tutaj instrukcja
Capo
Posty: 592
Rejestracja: czwartek 09 lut 2012, 17:47
Lokalizacja: Warszawa

Post autor: Capo »

inzkulozik pisze:
Capo pisze:Mam pytanie co do samej telemetrii w OpenLRSng, datarate ustawiony na 2, a telemetria nie chce działać, nic nie piszczy. Co ciekawe w OpenLRS 1.12 telemetria działa normalnie.
Na razie sprawdzałem z datarate na 0 i normalne 8 kanałów. Może nie wgrałeś kodu z włączoną telemetrią do nadajnika i do odbiornika, a tylko do jednego?
Datarate na 2 i ppmsum włączony, nic po za tym nie włączałem - wgrany ten sam plik to TX i RX, próbowałem też wszystkich możliwych kombinacji bindowania - bez skutku.

Telemetria działa z innym datarate niż 2?
Awatar użytkownika
inzkulozik
Posty: 308
Rejestracja: sobota 03 lis 2012, 00:20
Lokalizacja: Kraków

Post autor: inzkulozik »

Capo pisze:Telemetria działa z innym datarate niż 2?
Był kiedyś w źródłach taki komentarz "2 -- 19200bps, medium range, 50Hz update rate + telemetry backlink" co by sugerowało, że tylko dla 2-ki jest telemetria, ale teraz już tego nie ma. Ja mam ustawione 0, domyślne. Może w tym haczyk, dla 2-ki nie działa? :) Niestety, nie wiem co by można tu jeszcze wymyśleć. Wersja softu?
Syma S032G :)
KDS 450SV / PhoenixRC
QC w budowie...
Awatar użytkownika
shaggee
Posty: 2718
Rejestracja: piątek 03 lut 2012, 00:32
Lokalizacja: Poznań/Kalisz

Post autor: shaggee »

Dobry opis aczkolwiek OpenLRSng posiada MENU w którym możemy sobie wybrać losowo klucz bindowania, właczyć lub wyłaczyć telemetrię itd. Nie trzeba grzebać w kodzie.

Miałem już w łapach 5 zestawów orange. Za każdym razem wgrywam najpierw bootloader, potem clear eeprom i na końcu dopiero soft. Jak wrzucałem sam soft to po kilku uruchomieniach wszystko się kaszaniło.

Telemetria z sygnałem dźwiękowym działa bardzo fajno. Kolejnym plusem jest możliwość upgrade do 1W. Wystarczy wlutować stabilizator 5V zamiast 3.3V, nowy RFM i na openlrsng śmiga aż miło.

Capo, musisz w menu openlrsng włączyć telemetrię żeby działało pikanie.
skazi
Posty: 1438
Rejestracja: sobota 19 sty 2013, 10:25
Lokalizacja: Cieszyn

Post autor: skazi »

A jak wejść do MENU jest napisane w instrukcji wgrywania przez FTDI (Rozdział SETTINGS), która już jest w pierwszym poście :-)
Capo
Posty: 592
Rejestracja: czwartek 09 lut 2012, 17:47
Lokalizacja: Warszawa

Post autor: Capo »

A gdzie jest to menu?
Bardzo chętnie też dowiem się w jaki sposób czyścisz eeprom?
ODPOWIEDZ