A cseles Hercules
A probléma - a hibásan működő navigátor gomb
Nemrégiben szert tettem egy használt Hercules DJControl Inpulse 500 DJ-controllerre a Vinteden (opens in new tab). Az eszköz épségben megérkezett és külsőre remek állapotban volt. Hogy leteszteljem működés közben, gyorsan a gépre kötöttem, a Mixxx DJ szoftverben hozzátársítottam a beépített mappelést és végigtekergettem és nyomkodtam rajta mindent.
Amikor a dalok közötti váltásra szolgáló forgójeladóhoz (rotary encoder) (opens in new tab) értem, úgy éreztem, a vezérlő trollkodik velem.
Jobbra tekertem: lefelé ment a kurzor. Balra tekertem: lefelé ment a kurzor. Megint jobbra tekertem: helyben maradt. Balra tekertem: le-fel ugrált. A dobozon láttam, hogy van benne valami asszisztens meg a hivatalos szoftverben "AI", ami kitalálja a dalok "energiaszintjét" de azt nem gondoltam, hogy ilyen élesen fogja bírálni a zenei ízlésemet.
Nem a leglényegesebb kezelőszerv, hiszen a dalokat a laptopon is könnyen ki lehet választani, de azért nem szerettem volna annyiban hagyni.
Hibakeresés - a MIDI-kommunikáció vizsgálata
Első körben szerettem volna kideríteni, hogy a Mixxx mappelésen vagy a hardverben van-e a probléma.
Ezeknek a DJ-pultoknak a vezérlő része valójában egyszerű MIDI-controller. Olyan, mint egy egyszerű MIDI-billentyűzet vagy pad, csak billentyűk helyett főleg potméterek vannak rajta.
Hogy belehallgassak a háttérben zajló MIDI-kommunikációba, bevetettem az alsa-utils (opens in new tab) csomagban található aseqdump (opens in new tab) Linux parancsot.
Ő azt tudja, hogy az ALSA hangrendszerhez érkező eseményeket nyers formában kiírja a képernyőre. Így meg lehet nézni vele, hogy a tekerés hatására a Hercules milyen CC üzeneteket küld.
Ahhoz, hogy ezt meg lehessen kérdezni tőle, előbb meg kellett tudni, hogy milyen porton jelenik meg a controller a rendszerben. Ezt az aseqdump -l paraméterével tudjuk megtenni, ami kilistázza, milyen porton milyen virtuális vagy valós eszköz figyel:
[learnforeffect]$ aseqdump -l
Port Client name Port name
0:0 System Timer
0:1 System Announce
14:0 Midi Through Midi Through Port-0
36:0 DJControl Inpulse 500 DJControl Inpulse 500 MIDI 1
Most, hogy kiderült, hogy ez 36:0 a címe, végre megvizsgálhatjuk az általa küldött eseményeket az aseqdump -p 36:0 paraméterezéssel.
[learnforeffect]$ aseqdump -p 36:0
Waiting for data. Press Ctrl+C to end.
Source Event Ch Data
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 127
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 127
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 127
36:0 Control change 0, controller 1, value 127
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 127
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
...
Ami ebből a kimenetből kiderül: a "36:0 porton levő eszköz MIDI CC üzenetet küld a nullás csatornán. Az egyes CC üzenettel kapott érték néha 1, néha 127". Az 1 jelentése: 1 egységgel növelni, a 127-é pedig, hogy 1 egységgel csökkenteni (A 127 valószínűéeg a -1 előjeles bináris ábrázolása miatt lesz 127). Ezzel világossá vált, hogy a Mixxx ártatlan, az eszköz a ludas, ugyanis én csak szépen lassan egy irányba, az óramutató járása szerint tekertem, mégis mindkét irányba jelzett.
Ilyen működési elvű rotary encoderrel leggyakrabban a számítógépes egerünk görgőjénél találkozunk. Azoknál is gyakran előfordul, hogy egy mozdulattal tudunk fel és le is görgetni. Ezt többnyire nem az alkatrész hibája okozza. Egyszerűen csak idővel oxidálódik illetve begyűlik annyi por és szösz az érzékelők közé, hogy megzavarja a jel ütemezését. Egy egyszerű takarítás szinte mindig megoldja a problémát.
Gondoltam, itt is teszek vele egy próbát. Hátha elég lesz ennyi és nem kell forrasztani.
Szétszedés és javítás
Fogtam hát ezt a "rezsót" és feltettem a műtőasztalra.
Akármit is akarok vele kezdeni, biztos, hogy le kell venni az encoder kupakját. Így is tettem. Ha szerencsém lett volna, az encoder tengelye és a ház között lett volna annyi hely, hogy ott be tudjak fújni egy kis levegőt és kontakttisztítót. Mint ahogy a feltételes módból már sejthető, nem volt.
Leszedtem minden kupakot és kihajtottam a középső panel két szélén jól látható 4-4 torx csavart. Ehhez egy T9 méretű csavarhúzót használtam.
Ezzel egyből le is jött ez a középső panel, ami egyébként egy vékony festett acéllap.

Első pillantásra úgy tűnt, nem lettem sokkal előrébb, mert a fémlap alatt egy ugyanakkora műanyag van, de egy apróság azért változott: most már el tudtam távolítani a navigálógombot körülvevő diffúzorgyűrűt.
Így már teljesen jól hozzáférhetővé vált a gomb alatti encoder. Megfújtam a környékét sűrített levegővel és egy kis kontaktspray-t is tüsszentettem a belsejébe, majd jó alaposan megtekertem-megnyomkodtam. (Ha valaki hasonló javításra adja a fejét, ügyeljen rá, hogy csak olyan spray-t használjon, ami elektronikához való, nem oldja a műanyagot és maradéktalanul elpárolog.)
Ellenőrzés és összeszerelés
Hogy kiderüljön, változott-e valami, ismét feldugtam a laptopra, lefuttattam a már ismert parancsot és láss csodát: szép konzisztens egyesek jöttek jobbra csavarva.
[learnforeffect]$ aseqdump -p 36:0
Waiting for data. Press Ctrl+C to end.
Source Event Ch Data
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
36:0 Control change 0, controller 1, value 1
...
(A másik irányba tekerve pedig csak 127-ek jöttek, de senkit nem untatnék hosszú logokkal. El tudjátok képzelni.)
A műtét sikeres volt, úgyhogy gyorsan összeraktam. Nem volt benne semmi érdekes, csak fordított sorrendben kellett végighaladni a szétszedésen: gyűrű a helyére, lap a helyére, csavarok vissza és már kész is volt.
Végszó
Azóta már jó pár órát gyakoroltam vele, minden kezelőszervét alaposan teszteltem, kiválóan, megbízhatóan biztosította a talpalávalót.
Összességében egy masszív, strapabíró eszköznek tűnik és az elérhető funkciók számára sem lehet panasz. Ideális választás lehet kezdő és középhaladó DJ-k számára is..



