Cześć
Dzisiaj opiszę wam jak z potrzeby chwili i z irytacji żółtą lampką opracowałem emulator czujników TPMS w moim aucie.
Pacjent:
Opel Astra J 2015r standardowo wyposażony w czujniki TPMS.
Jako, że nie lubię przekładać opon to do każdego auta jakie posiadałem zawsze miałem drugi zestaw kół.
Po wymianie kół na zimowe okazało się, że po kilku km zaświeciła się żółta kontrolka o braku ciśnienia a na wyświetlaczu komunikat o awarii układu TPMS.
Troszkę zacząłem szukać co to za czujnik itp. i doszedłem że montowane są czujnik pracujące na częstotliwości 433,92 Mhz typu:
Ze zdjęć odczytałem oznaczenie FCC ID: MRXGME4
a ze strony https://fccid.io/MRXGME4 dowiedziałem się więcej na temat jego budowy wewnętrznej i kodowania co pozwoliło przejść do kolejnego etapu czyli do podsłuchu tego co czujniki wysyłały w eter.
Do podsłuchu idealnie nadawał się odbiornik SDR-RTL z oprogramowaniem Universal Radio Hacker
Na odludnym parkingu wzbudzałem poszczególne czujniki poprzez upuszczanie powietrza z kół i nagrywałem ich odpowiedź.
Mając sygnał z czujników już w postaci cyfrowej zacząłem się zastanawiać czym to wysłać. Radio musiało pracować na częstotliwości 433,92 Mhz z modulacją ASK i kodowaniem Manchester.
Mój wybór padł na CC1101 i komunikację z UC po SPI.
Jako UC użyłem BluePill z STM32F1
Dużo namęczyłem się , żeby dobrać odpowiednie parametry transmisji.
Po sukcesie na stole tzn wysłałem i odebrałem identyczny sygnał z tym który nagrałem jakiś czas wcześniej pobiegłem do auta podłączam i wielkie nic.
Lampka jak świeciła tak świeciła i błąd tez się wyświetlał.
Szukając weny w internecie trafiłem na forum subaru gdzie też próbowali się do tego zabrać i tam doczytałem, że nadawane jest kilka rodzajów ramek:
- Awaryjna - w chwili nagłego spadku ciśnienia
- Normalna - podczas normalnej jazdy
Stwierdziłem że trzeba się przejechać z podłączonym SDR i nagrać sygnał podczas jazdy i to był sukces
Po wprowadzeniu nowych ramek do programu UC i załączeniu ustrojstwa w aucie na kołach bez czujników lampka zgasła od razu czyli sukces wszystko działa jak należy.
Piszę to w dziale DIY w budowie ponieważ wszystko na tą chwilę jest podłączone na pająka, a dodatkowo oprogramowanie nie jest dokończone w sensie idealnie by było żeby określić co jest czym w ramce tj. mam preambułę , wiem gdzie jest adres ale nie dałem rady skorelować pozostałych danych tak , żeby można było wprowadzić dowolne adresy , parametry ciśnienia i temperatury i wyliczyć dla tego sumę kontrolną bo w tej chwili adaptacja tego do innego auta jest mocno problematyczna.
Opcją jest dorobić kawałek kodu, który będzie w stanie nagrać sygnał z eteru, zapamiętać go i następnie nadawać.
Co o tym myślicie??
Archiwum z kodem wstawię jak będę w domu
Aktualny projekt:
Dzisiaj opiszę wam jak z potrzeby chwili i z irytacji żółtą lampką opracowałem emulator czujników TPMS w moim aucie.
Pacjent:
Opel Astra J 2015r standardowo wyposażony w czujniki TPMS.
Jako, że nie lubię przekładać opon to do każdego auta jakie posiadałem zawsze miałem drugi zestaw kół.
Po wymianie kół na zimowe okazało się, że po kilku km zaświeciła się żółta kontrolka o braku ciśnienia a na wyświetlaczu komunikat o awarii układu TPMS.
Troszkę zacząłem szukać co to za czujnik itp. i doszedłem że montowane są czujnik pracujące na częstotliwości 433,92 Mhz typu:
Ze zdjęć odczytałem oznaczenie FCC ID: MRXGME4
a ze strony https://fccid.io/MRXGME4 dowiedziałem się więcej na temat jego budowy wewnętrznej i kodowania co pozwoliło przejść do kolejnego etapu czyli do podsłuchu tego co czujniki wysyłały w eter.
Do podsłuchu idealnie nadawał się odbiornik SDR-RTL z oprogramowaniem Universal Radio Hacker

Na odludnym parkingu wzbudzałem poszczególne czujniki poprzez upuszczanie powietrza z kół i nagrywałem ich odpowiedź.
Mając sygnał z czujników już w postaci cyfrowej zacząłem się zastanawiać czym to wysłać. Radio musiało pracować na częstotliwości 433,92 Mhz z modulacją ASK i kodowaniem Manchester.
Mój wybór padł na CC1101 i komunikację z UC po SPI.
Jako UC użyłem BluePill z STM32F1
Dużo namęczyłem się , żeby dobrać odpowiednie parametry transmisji.
Po sukcesie na stole tzn wysłałem i odebrałem identyczny sygnał z tym który nagrałem jakiś czas wcześniej pobiegłem do auta podłączam i wielkie nic.
Lampka jak świeciła tak świeciła i błąd tez się wyświetlał.
Szukając weny w internecie trafiłem na forum subaru gdzie też próbowali się do tego zabrać i tam doczytałem, że nadawane jest kilka rodzajów ramek:
- Awaryjna - w chwili nagłego spadku ciśnienia
- Normalna - podczas normalnej jazdy
Stwierdziłem że trzeba się przejechać z podłączonym SDR i nagrać sygnał podczas jazdy i to był sukces
Po wprowadzeniu nowych ramek do programu UC i załączeniu ustrojstwa w aucie na kołach bez czujników lampka zgasła od razu czyli sukces wszystko działa jak należy.
Piszę to w dziale DIY w budowie ponieważ wszystko na tą chwilę jest podłączone na pająka, a dodatkowo oprogramowanie nie jest dokończone w sensie idealnie by było żeby określić co jest czym w ramce tj. mam preambułę , wiem gdzie jest adres ale nie dałem rady skorelować pozostałych danych tak , żeby można było wprowadzić dowolne adresy , parametry ciśnienia i temperatury i wyliczyć dla tego sumę kontrolną bo w tej chwili adaptacja tego do innego auta jest mocno problematyczna.
Opcją jest dorobić kawałek kodu, który będzie w stanie nagrać sygnał z eteru, zapamiętać go i następnie nadawać.
Co o tym myślicie??
Archiwum z kodem wstawię jak będę w domu
Aktualny projekt:
Cool? Ranking DIY