Hakujemy kasownik autobusowy - reverse engineering elektroniki (film, 6 minut)
W najnowszym odcinku kanału ELEKTRON, twórca podjął wyzwanie związane z kasownikiem, aby poprawić jego fabryczne błędy. Autor zachęca widzów do przyjrzenia się temu filmowi z przymrużeniem oka, co ma na celu zainspirowanie do nauki programowania. Przebieg działań został podzielony na jasne kroki. W pierwszej fazie postanowiono zdobyć kasownik, dzięki któremu można przystąpić do nowoczesnej inżynierii odwrotnej. Kasowniki, mimo że wydają się przestarzałe, wciąż są stosowane w niektórych miastach, w tym w Częstochowie, gdzie spotyka się je w zielonych R-kach.
Po zdobyciu kasownika, autor otworzył urządzenie, aby zajrzeć do jego wnętrza. Wnętrze okazało się zaskakująco estetyczne, z wieloma scalakami i PCB, a kluczowym elementem był mikrokontroler AT89 bazujący na architekturze 8051. To odkrycie przyniosło wiele możliwości modyfikacji oprogramowania, co było celem autora. Projektowanie nowych funkcji zaczęło od napisania prostego programu, który powodowałby miganie diody LED, co jest znane wielu entuzjastom programowania.
W dalszej części filmu autor koncentruje się na wyświetlaczu siedmiosegmentowym. Użytkownicy dowiadują się, że aby programować te układy efektywnie, potrzebne są różne techniki, takie jak In System Programming (ISP), które niestety w tym przypadku napotykają pewne ograniczenia. Niepowodzenie to nie zniechęciło autora; podjął wyzwanie i edukował widzów, jak obejść trudności związane z programowaniem kontrolera 8051 bez dedykowanych peryferiów.
W miarę postępu projektu autor analizuje różne podzespoły kasownika, takie jak RTC, termostat i elementy drukarki. W przyszłości planuje również przeanalizować oryginalne oprogramowanie kasownika, aby lepiej zrozumieć, jak jego komunikacja z bazą danych działała. Projekt zajmuje autorowi już sześć miesięcy, a widzowie mogą się spodziewać kolejnych odcinków, w których z pewnością pojawią się nowe, ekscytujące odkrycia.
Pod względem statystycznym, aktualnie odcinek zgromadził 190022 wyświetleń oraz 5928 polubień, co pokazuje duże zainteresowanie społeczności tym niezwykłym projektem. Zachęcamy do subskrybowania kanału ELEKTRON, aby być na bieżąco z nowymi odcinkami i projektami! Czekamy na Was w następnym filmie.
Toggle timeline summary
-
Wprowadzenie do hakowania walidatora biletów i naprawiania błędów fabrycznych.
-
Uznanie dla wsparcia sprzętowego i ich mieszane przyjęcie.
-
Zachęta do oglądania filmu z humorem i skupieniem na nauce programowania.
-
Zarys planu działania: pozyskanie walidatora i inżynieria odwrotna.
-
Opis powszechnego błędu fabrycznego prowadzącego do blokowania, gdy jest to potrzebne.
-
Zakup starego modelu walidatora biletów.
-
Otwarcie walidatora biletów w celu ujawnienia wewnętrznych komponentów.
-
Identyfikacja kluczowych komponentów, takich jak główny kontroler i driver wyświetlacza.
-
Odkrycie programowalnego mikrokontrolera umożliwiającego modyfikacje.
-
Początkowe badanie oprogramowania układowego i znalezienie unikalnego programu do migania.
-
Początkowe próby napisania niestandardowego programu do migania LED.
-
Problemy z programowaniem wyświetlacza i konieczność sterowania za pomocą oprogramowania.
-
Sukces w wyświetlaniu znaków i tekstu za pomocą programowania.
-
Pozostałe komponenty do zbadania, w tym RTC i komunikacja z bazą danych.
-
Podsumowanie bieżącej pracy z walidatorem przez ostatnie sześć miesięcy.
-
Obietnica więcej treści wkrótce.
Transcription
Witajcie moi drodzy, w dzisiejszym odcinku schakujemy kasownik i postaramy się poprawić fabryczne błędy. Zapraszam do oglądania. Firewerki na kanale elektron zapewnia firma avicam oraz msalamon. Urządzenia te mają tyle zwolenników co przeciwników. Chciałbym Was prosić byście na ten film patrzeli raczej z przymrużeniem oka. Tworzę go po to by zachęcić ludzi do nauki programowania. Plan działania i cel. Wszystkie kasowniki jakie by nie były mają jeden bardzo poważny błąd fabryczny. Ulegam zablokowaniu wtedy kiedy są najbardziej potrzebne. Będąc dobrym człowiekiem postanowiłem charytatywnie to naprawić. Plan działania jest dosyć prosty. 1. Zdobyć kasownik. 2. Reverse engineering. 3. Wprowadzenie zmian które zlikwidują błąd. 4. Update oprogramowania do wszystkich kasowników. Nie wchodząc zbytnio w szczegóły. Wszedłem w posiadanie takiego to modelu. Jest to już relikt przeszłości choć zdarzają się miasta gdzie można go jeszcze spotkać. U nas w Częstochowie jest jeszcze montowany w zielonych R-kach. Jak będę miał okazję to zdobędę też te nowsze. Charakteryzuje go metalowa skrupa. Bardzo szczelna. By móc się nim pobawić trzeba było go najpierw otworzyć. Siadło do niego czterech mózgowców. Po prostu nie miał szans. Można było szlifierką. Ale byłoby to mało eleganckie i psuje zabytkowy kasownik. Wystarczyło mu odkręcić zawiasy od środka i rozłożył się jak książka. Pokaż kotku co masz w środku. Po otwarciu ujrzemy kilka... Po otwarciu ujrzemy kilka scalaków i dosyć estetyczną płytkę PCB. Od razu rzuca się w oczy główny kontroler, RTC od Philipsa, złącze DB9, sterownik elektromagnetów. Trochę wyżej mamy płytę drukarki igłowej. Znajdują się tam rezystory jako element grzejny, cyfrowy termostat jak i sama głowica. W górnej klapie znajdziemy także moduł wyświetlacza i optyczny sygnalizator. Znaczek trójkąta. Byłem przeszczęśliwy gdy odlepiona nalepka ukaza mikrokontroler AT89. Oznacza to, że mamy do czynienia z nieśmiertelnym 8051 opartym o pamięć flash. Czyli można go wielokrotnie modyfikować i wbrew temu co sugeruje nalepka nie jest to OTP. Mamy pierwszy cud. Drugi cud by się dokonał gdyby mikrokontroler ten nie był zablokowany i można było z niego odczytać flash. Zamontowałem układ w programatorze uniwersalnym. Prawdziwy flash. Początek zaczyna się od instrukcji skoku. Ma sens. Przejrzałem cały wsad. Natrafiłem tam na taką perełkę. Blink kasownikiem. Dla pewności czy wszystko zostało poprawnie odczytane wgrałem wsad w trochę mniejszy mikrokontroler tej samej rodziny. Zadziałało bez problemu. Tak więc kopia oprogramowania jest bezpieczna. Teraz trzeba poznać co jest z czym podłączone. Na dobry początek spróbujmy napisać samodzielnie oprogramowanie, które będzie migało LED. Tak zwany blink. Potem zawierzymy się za inne podzespoły. Program blink napisany w C już znacie do pożygu z moich poprzednich odcinków. To co chciałbym dodać to pina od samego 8051. Po pierwsze musimy wiedzieć pod którym pinem jest podłączony LED. Dokonamy tego za pomocą miernika ustawionego na test ciągłości. Musimy pamiętać, że w przeciwieństwie do ATMEK 8051 nie miał wyjścia push-pull. Mikrokontroler mógł jedynie twardo podciągnąć pin pod GND lub pod rezystor. Ma to swoje zady i walety. W kolejny czysty mikrokontroler AT89 wgrałem naszego blinka i podłączyłem kasownik. Macie tutaj dwie prędkości mrugania. Wyświetlacz. Blink był prosty. Co jednak powiecie na wyświetlacz siedmiosegmentowy? By nie trzeba było cały czas wyjmować stalaka i go wkładać za każdym razem do programatora można użyć takiego w wersji ISP czyli In System Programming. To były czasy, gdy takie rozwiązania dopiero wprowadzano. Dziś jest absolutnym standardem złącze do programowania i debugowania kontrolera. Niestety w tym przypadku piny są za bardzo obciążone i TL866 ma z tym problem. No trudno, będziemy wkładać i wyjmować. Wracając do wyświetlacza. Jest on sterowany pośrednio przez układ ze stajni Philipsa, a dzisiejszego NXP. 8051 steruje nim przez magistralę I2C, a ten zajmuje się resztą. Ale uwaga! 8051 nie ma czegoś takiego jak I2C. We współczesnych NCU są specjalne wydzielone do tego celu peryferia. No tutaj po prostu tego luksusu nie mamy. Musimy napisać jego obsługę software'owo. Uwzględniając notę katalogową tego układu, ostatecznie udało mi się wyświetlić dowolne znaki i napisy ograniczone wyłącznie budową wyświetlacza. Reszta podzespołów. Pozostało nam jeszcze do rozpracowania. RTC, drukarka igłowa, termostat, komunikacja z bazą. Prędzej czy później będę musiał zabrać się za dezasemblację oryginalnego wsadu. Choćby po to by dowiedzieć się w jaki sposób kasownik gadał sobie z bazą. Jak nim sterowała. Zakończenie. Kasownik leży u mnie już od 6 miesięcy. Część rzeczy do niego napisałem, za inne nie zdążyłem się jeszcze zabrać. Im szybciej dodam ten odcinek, tym szybciej pojawią się kolejne. Do zobaczenia w następnym odcinku. Cześć.