background image

maniek86

Blog:

2023

2022

Modyfikowanie nawigacji aby dodać port szeregowy



W ostatnim czasie zainteresowały mnie nawigacje z Windows CE. Jak dobrze wiadomo ten system był zaprojektowany dla starych urządzeń przenośnych a później jego podstawa została użyta w Windows Mobile. Sporo nawigacji działa właśnie na Windows CE ale z nakładkami producenta. W zależności od urządzenia jest się trudniej lub łatwiej dostać do właściwego systemu ale to już temat na inny artykuł, który będzie skupiony na dostosowywaniu takiej nawigacji. Niestety moje dwie nawigacje nie obsługują OTG albo nie mają innych portów do komunikacji niż Active Sync. Wpadłem na dziwny pomysł i postanowiłem zmodyfikować jedno z nich dodając port szeregowy aby np. za pomocą Arduino/Raspberry Pi Pico dodać klawiaturę PS/2 czy użyć emulatora dial-up modem aby udostępnić internet czy nawet wbudować ESP8266 aby dodać WiFi także przez emulator dial-up.


Nawigacja, którą będę modyfikować to GOCLEVER Navio 520 z 128 MB RAM i 800 MHz Cortex-A7 CPU. Urządzenie także posiada wbudowane 4 GB pamięci flash dzięki czemu nie jest potrzebna mi żadna karta MicroSD. Postanowiłem usunąć oryginalną aplikacje do nawigacji (nie nakładkę tylko sam program nawigacyjny) aby zaoszczędzić pamięć, gdyż to o to oprogramowanie i mapy zabierały większość pamięci. Bateria trzyma z 2-3 godziny przy niedużym obciążeniu.



Otwarcie urządzenia było łatwe: wystarczyło odkręcić 2 wkręty na lewej ściance i wyciągnąć ekran z zatrzasków. Zaskoczyła mnie wielkość płytki w przypadku mojego modelu. Oczywiście przed testami na wypadek odlutowałem baterie na wypadek przypadkowego oderwania się kabla i zwarciem. Następnie musiałem znaleźć piny odpowiadające dowolnemu portowi COM w Windows. Na zdjęciu powyżej widać parę pinów zaklejonych taśmą. Dwa piny były opisane TX i RX. Dla testu postanowiłem użyć programu PuTTY i zrobić loopback. Test tych pinów się nie udał na żadnym porcie COM. Odkręciłem płytkę od obudowy i spojrzałem na drugą stronę. Tam ukazały się kolejne piny: RX0 TX0 i RX1 TX1. Ponownie zrobiłem test z loopback i się tym razem udało. Te piny (RX0 i TX0, tych drugich nie testowałem) okazały się znajdować na porcie COM8.








Teraz tylko muszę dorobić prosty port z złącza goldpin żeńskiego. Zdecydowałem to zrobić na dole, gdyż było tam miejsce. Używając lutownicy wytopiłem dziurę na złącze z 5 pinami (GND, TX, RX, NC – wolny pin na przyszłość, USB 5v – złączone bezpośrednio z portem USB więc można albo pobierać energie z kabla lub ładować urządzenie tym). Następnie polutowałem wszystko i skleiłem klejem na gorąco.



Tak wygląda rezultat przed ostatecznym skręceniem:



Zakleiłem jeszcze taśmą piny aby uziemiony tył ekranu nie zwierał z nieznanymi mi połączeniami. Ostatecznie po skręceniu to zadziałało! Modyfikacja nie wyszła aż tak źle jak myślałem.



Sprawdziłem napięcie portu za pomocą woltomierzu i poziomy logiczne są równe 3.3v. Użyłem do testów Raspberry Pi Pico gdyż działa na logice 3.3v. Nawigacja odbierała dane od mikrokontrolera lecz już nie wysyłane dane do Pico nie. Eksperymentując znalazłem, że Pico powoduje spadek napięcia na TX do 1-2v przez co nie było to wykrywane jako dane. Miałem pod ręką układ CD4049BE – Hex inverter. Z ciekawości spróbowałem co się stanie gdy zrobię prosty układ: GPS -> inwerter -> inwerter -> mikrokontroler i… zadziałało! Nie będę tłumaczyć o co dokładniej chodzi, ponieważ sam do końca nie wiem jak to działa ale podejrzewam, że układ nie robi spadku tak jak piny Raspberry Pi Pico. Dodałem jeszcze rezystor 3.3KΩ aby podnieść trochę poziom z nawigacji dla układu 4049. Schemat wygląda tak:



Teraz pozostaje pytanie co z tym można zrobić? Pewnie sporo rzeczy programując własne programy do obsługiwania portu szeregowego i urządzeń po drugiej stronie (np. komputera czy mikrokontrolera). Mi się udało zrobić: sterownik klawiatury używając Rasbperry Pi Pico i programu napisanego w Visual Basic i po małej modyfikacji rejestru aby dodać port COM8 jako modem dial-up (Pico także było użyte jako mostek między komputerem z emulatorem modemu dial-up a nawigacją). Moja strona w Iris Browser 1.0.14 wyrenderowała się nawet dobrze lecz podczas robienia tego artykułu dodałem HTTPS na stronę, więc już raczej bez proxy raczej nie odpalę moją stronę.







Comments

No comments yet. Be the first!

Add Comment

* Required information
500
Captcha Image

02/08/2022 maniek86
Pytania i komentarze można również kierować na [email protected]