Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Modyfikacja chińskiego głośnika BT Feegar dance lub podobnych

Karol966 24 Oct 2022 12:45 1851 3
  • Cześć,
    Razu pewnego, mając zlecenie w terenie gdzie długie dnie spędzałem w ciszy kupiłem głośnik BT z wbudowanym radiem na alledrogo za ok 200zł. Od początku wnerwiało mnie to, że włączając go głównym włącznikiem zasialnia zawsze uruchamiał się w trybie BT na 2/3 głośności (czytaj, bardzo głośno) a do tego jeszcze takim wrednym, krzykliwym "titu titu" witał całe otoczenie na dzień dobry. Teraz patrząc na te głośnik, widzę również identyczne pod inną nazwą ale z dokładnie takim samym problemem:
    Modyfikacja chińskiego głośnika BT Feegar dance lub podobnych
    Już raz się do tego przymierzałem ale nie specjalnie wpadłem na pomysł jak go zmodyfikować (wyciszyć chociażby cały start (dźwięk powitania + informację o "bluetooth mode"). Popatrzyłem na końcówki mocy (małe cyfrowe wzmacniacze MIX2018a)
    Modyfikacja chińskiego głośnika BT Feegar dance lub podobnych
    Bałem się uszkodzić główny procesor, który ma w sobie zintegrowane wszelkie układy/ systemy (odbiornik BT, radio FM, obsługę USB/ kart pamięci, interface...) wiec wnikliwie analizowałem malutką chińską płyteczkę zrobioną przez jeszcze mniejsze malutkie chińskie rączki. Okazało się, że linia SD jest podciągana do VCC rezystorem 100k a aktywacja końcówek obywa się poprzez ściągniecie tej linii do GND tranzystorem. Baza tego tranzystora była połączona z głównym CPU rezystorem 10k oraz ściągnięta do GND również 100k. Rozwiązanie polegało na wymuszeniu stanu niskiego na bazie tranzystora na wymagany czas rozruchu urządzenia - podłączyłem jeden z pinów mojego małego procka do bazy tego tranzystora poprzez pierwszy lepszy rezystor (330 w zasadzie nie potrzebnie ale akurat leżał na biurku) a program ustawia ten pin jako wyjście z domyślną wartością PORTx=0 (ściągam do masy a główny CPU próbując włączyć końcówki ma za obciążenie rezystor 10k więc nic mu się nie powinno stać bo płynie tam jedynie 330uA).
    OK, udało się wyciszyć cholernie głośne i tandetne powitanie, zostało wolnych pinów wiec czas zmniejszyć głośność z domyślnych 20/30 na 2 (wystarczy by w warsztacie spokojnie słuchać muzyki - na zewnątrz to za cicho ale praca w terenie się skończyła a głośnik używam na co dzień do radia). No to kolejne 2 piny i na tej samej zasadzie, manipulując jedynie rejestrem kierunku DDRx wygenerowałem interesującą mnie ilość impulsów. Trochę dziwne przebiegi obserwowałem (również na fabrycznym enkoderze - były 3 poziomy napięć: GND, 1/2VCC, VCC). No ale działa.
    Kolejna modyfikacja to przełączenie trybu BT na radio FM - znów prosta sprawa - zwieram na krótką chwilę linię podłączoną do przycisku MODE kolejnym pinem procesora.
    Modyfikacja chińskiego głośnika BT Feegar dance lub podobnych Modyfikacja chińskiego głośnika BT Feegar dance lub podobnych
    Robiąc to na ATtiny10 i chcąc wykorzystać wszystkie w/w funkcje trzeba pozbyć się pinu RESET (zmienić fusebit wyłączający tą funkcję) wiec bez adaptera HV blokujemy procesor przed dalszą modyfikacją. Program krótki napisałem, wgrałem, przetestowałem jeszcze z normalnym resetem (ale bez podłączonego fizycznie enkodera - panel był odpięty) no i wszystko działało OK. Złożyłem całość a tu zonk. Nie działa. W sumie nie jestem pewien dlaczego ale skoro miałem pod ręką również wersję na ATtiny13 to znudzony na szybko przełożyłem płyteczki:
    Modyfikacja chińskiego głośnika BT Feegar dance lub podobnych
    I ponownie - test bez panelu OK, skręciłem całość, posprzątałem i znów zonk - Ostatecznie mam wrażenie, że enkoder musi w losowych pozycjach wymuszać zwarcie kanału A/B do masy choć usilnie chciałem zobaczyć to na oscyloskopie bez skutku. Sprawdziłem kolejne 10 razy było zawsze OK więc zostało na pająku. Nieco większy procesor ma jeszcze jedną zaletę - można dopisać obsługę pilota IR i wyciszać również durne komunikaty przy jego obsłudze.
    Code: c
    Log in, to see the code


    Może komuś się przyda pomysł lub całość ;)

    PS. Zastanawiam się czy można by to zrobić lepiej, zapewne tak. Np wykorzystać wyłącznie 2 piny procesora (ew 3). Wyciszenie oraz wpiąć się do odbiornika podczerwieni (nie wiem jaki typ wyjścia posiada, jeśli nie jest to otwarty dren to trzeba by wykorzystać kolejny pin procka by z robić z niego most). Sprzętowe wyciszenie jest konieczne ponieważ przez czas startu sprzęt nie reaguje na żadne przyciski/ na pilota. Możliwe, że wyszło by to elegancko i lepiej ale zdecydowanie więcej pracy wymaga - trzeba sprawdzić jaki jest protokół (ok, to może być chwila, na arduino są gotowce IR decode) no ale obsługa w C nadajnika sama się nie napisze ;)

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    Karol966
    Level 30  
    Offline 
    Karol966 wrote 1920 posts with rating 607, helped 82 times. Live in city Ciechocinek. Been with us since 2006 year.
  • #2
    metalMANiu
    Level 19  
    Musisz być bardzo odważny publikując swoje rozwiązanie tu na forum.
    Aż dziwne, że jeszcze się nie znalazła osoba, która wytknęłaby Ci użycie procesora do tak prostej rzeczy :)

    Ode mnie +
    Lubię proste i szybkie rozwiązania problemów (na Księżyc ten głośniczek nie będzie leciał).
  • #3
    Karol966
    Level 30  
    metalMANiu wrote:
    która wytknęłaby Ci użycie procesora do tak prostej rzeczy

    Zaproponujesz "lepsze" rozwiązanie? Użyłem dwóch elementów - mały procesor + kondensator a urządzenie realizuje 3 funkcje (4 linie I/O).

    metalMANiu wrote:
    na Księżyc ten głośniczek nie będzie leciał
    Chyba nie miałeś do czynienia z podobnym natrętnym powitaniem chińskiego urządzenia audio. Nie wyobrażasz sobie jak jestem bardzo zadowolony z tej modyfikacji.
  • #4
    metalMANiu
    Level 19  
    Absolutnie nie. Ciężko o prostsze i efektywniejsze rozwiązanie niż to Twoje.
    Ja Cię pochwaliłem a nie skrytykowałem :)