Hacking a Bus Ticket Validator - Reverse Engineering Electronics (film, 6 minutes)
In the latest episode of the ELEKTRON channel, the creator took on the challenge of modifying a ticket machine to fix its factory errors. The author encourages viewers to look at this video with a sense of humor, aiming to inspire interest in programming. The action plan is clearly segmented into steps, where the first stage includes acquiring the ticket machine needed for the modern reverse engineering process. Although these devices may seem obsolete, they are still used in some cities, including Częstochowa, where they can be found in green R models.
After acquiring the ticket machine, the author opened the device to explore its interior. What he found was surprisingly aesthetic, with various chips and a PCB, with the key component being the AT89 microcontroller based on the 8051 architecture. This discovery opened up many software modification possibilities, which was the author’s goal. The design of new functions started with writing a simple program to blink an LED, a familiar task for many programming enthusiasts.
As the episode progresses, the author focuses on the seven-segment display. Viewers learn that to efficiently program these circuits, various techniques such as In System Programming (ISP) are necessary, which unfortunately encounter certain limitations in this instance. This setback did not deter the creator; he faced the challenge and educated viewers on how to overcome difficulties in programming the 8051 controller without dedicated peripherals.
As the project continues, the author analyzes various components of the ticket machine, including the RTC, thermostat, and printer elements. He also plans to review the original firmware of the machine to better understand its communication with the database. The project has occupied the author for six months, and viewers can look forward to future episodes that will certainly feature new and exciting discoveries.
Statistically, the episode has currently amassed 190022 views and 5928 likes, indicating significant community interest in this unique project. Viewers are encouraged to subscribe to the ELEKTRON channel to stay up to date with new episodes and projects! We look forward to seeing you in the next video.
Toggle timeline summary
-
Introduction to hacking a ticket validator and fixing factory errors.
-
Acknowledgement of equipment supporters and their mixed reception.
-
Encouragement to view the video with a humorous perspective and a focus on learning programming.
-
Action plan outlined: acquiring a validator and reverse engineering.
-
Description of a common factory error leading to blocking when needed.
-
Acquisition of an old model ticket validator.
-
Opening the ticket validator to reveal internal components.
-
Identification of key components like the main controller and display driver inside.
-
Discovery of a programmable microcontroller allowing modifications.
-
Beginning examination of the firmware and finding a unique program for blinking.
-
Initial attempts to write a custom LED blinking program.
-
Challenges with programming the display and the necessity for software control.
-
Success in displaying characters and text through software programming.
-
Remaining components to explore, including RTC and communication with a database.
-
Conclusion on ongoing work with the validator over the past six months.
-
Promise for more content to follow soon.
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ść.