LED-matriisinäyttön korjausta

(0 comments)

Lednäyttö toiminnassa
Jokin aika sitten hacklabille ilmestyi iso ledinäyttö. Nyt näyttö on korjattu ja otettu käyttöön.

Kyseisen led näytön tutkiminen alkoi purkamisella, sillä näytöstä ei juurikaan ollut valmiiksi tietoa saatavilla internetistä. Näytön valmistaja on Mobitec ja näyttö on tarkoitettu käytettäväksi mm. joukkoliikenteessä. Liitäntöinä näytössä oli 2 paksua kaapelia ja 4 signaalijohdinta, mutta näistä ei vielä pystytty paljoa päättelemään. Myöskin mitatessa resistanssia virransyötöksi olettettujen paksujen johtimien välillä saatiin tulokseksi 0ohm joka viittasi oikosulkuun. Tätä tuki myös näytön taakse spraymaalilla kirjoitettu teksti "Rikki/Romu". 

Kun näyttö saatiin auki lukuisien Torx-ruuvien poistamisen jälkeen, paljastui takapaneelin alta suuri määrä piirilevyjä ja johtoja. Piirilevyt tunnistettiin neljäksi hakkurimoduuliksi, kontrolleriksi ja kahdeksaksi LED-näyttöpaneeliksi. Hakkurimoduuleiden datalehtiä ei ollut suoraan saatavilla, mutta mallimerkinnöistä voitiin päätellä syöttöjännitteen olevan 24V, lähtöjännitteen 3.3V ja tehon 65W. Kaikki hakkurimoduulit oli kytketty rinnakkain, ja moduuleita testatessa toisistaan irroitettuna selvisi että vain yksi näistä oli toimiva, loput olivat joko oikosulussa tai täysin mykkiä. Koska korvaavia moduuleita ei ollut saatavilla ja näyttöä haluttiin käyttää 24V ajoneuvojärjestelmän ulkopuolella, päätettiin näyttöä syöttää suoraan verkkovirtahakkurilla. 

Hakkurimoduulien yhteistehoksi muodostui 260W. Olettaen näytön ottaen täysi teho, saatiin kokonaisvirraksi laskettua 260W/3.3V=78.8A, eli varsin hurja lukema. Suoraan tälläisillä spekseillä olevaa virtalähdettä ei löytynyt tarvikehyllyistä, mutta tehokas 40A 5V Meanwell hakkuri sen sijaan löytyi. Johtuen hakkurien tyypillisestä toteutustavasta, on varsin helppoa muuttaa niiden jännitettä ja kyseisessä hakkurissa olikin valmiiksi trimmeri jännitteen säätämiseen. Säätöalue ei kuitenkaan ollut aivan riittävä, mutta lisäämällä ylimääräinen vastus ennen potentiometriä saatiin lähteen sisäistä jännitteenjakajaa muutettua niin, että 3.3V lähtöjännite vastaa lähteen 2.5V referenssijännitettä. Jostain syystä hakkuri ei kuitenkaan suostunut laskemaan jännitettä alle 3.6V, mutta todettiin että tämä on todenäköisesti juuri ja juuri elektroniikan toleranssien sisällä. Myöskin alhaisella jännitteellä ja isoilla virroilla johdoissa tapahtuu häviöitä, joten korkeampi lähtöjännite kompensoi häviöitä.

Uusi hakkuri ei mahtunut enää näytön sisään, mutta tälle laserleikattiin ja 3D tulostettiin ulkoinen puoliavoin kotelointi. Näytöstä vedettiin ulos riittävän paksut kaapelit. Kun käyttöjännitepuoli oltiin saatu kuntoon, voitiin siirtyä näytön ohjauselektroniikan tutkimiseen.

Ohjainkorttia tarkastellessa havaittiin että näytön älynä toimii AVR mikrokontrolleri. Ohjainkortilla on myös pieni hakkuri, joka nostaa näytön 3.3V syöttöjännitteen AVR:n käyttämäksi 5 voltiksi. Kontrolleri kortilla on myös koodikytkin sekä punainen nappi jota painamalla näytölle ilmestyi firmware versio sekä koodikytkimestä valittu osoite. Itse LED-paneelit ovat näytössä ketjutettu leveillä lattakaapeleilla, ja ensimmäinen paneeli kytkeytyy kontrolleriin. LED-paneeleissa on ledien tarvitsemat driver piirit ja siirtorekisterit joilla yksittäiset LEDit voidaan ohjata päälle tai pois. Viimeisessä paneelissa on myös valovastus joka säätää LED-ajureiden virtaa. Kontrollerikortin ulkoiseksi väyläksi paljastui RS485, sillä kortilla oli MAX485 piiri joka kytkeytyi suoraan ulkoisen datakaapelin johtimiin. RS485 on paljon teollisuudessa ja automaatiossa käytetty sarjaväylästandardi, jossa kahdella virtasilmukkaparilla voidaan siirtää sarjadataa pitkiäkin matkoja häiriöttömästi. RS485 ohjaus kuitenkin vaatii kumpaankin päähän väyläajurit ja sopivan vuono-ohjauksen. Näyttö kokeiltiin kytkeä itsetehtyyn RS422 - TTL uart adapteriin, mutta dataa ei tällä saatu liikkumaan, joten joko kaapeloinnissa tai jommassa kummassa väyläajurissa oli vikaa. Tätä tarkemmin tutkimatta päätettiin poistaa MAX485 piiri, ja kytkeä johtimet suoraan AVR mikrokontrollerin UART nastoihin, jolloin saatiin suoraan TTL yhteensopiva sarjaväylä käyttöön. Näyttö myös vaati 24V herätevirran kytkemisen yhteen ohjausjohdoista, jotta näytölle saataisiin kuvaa. Tämä ohitettiin juottamalla hyppylanka 5V jännitekiskosta suoraan herätevirran jännitteenjakajan keskelle.

Kontrolleri kytkettiin tietokoneeseen USB - TTL uart adapterilla, ja näytölle kokeiltiin ajaa suuri määrä satunnaista bittivirtaa, mutta sarjaportista ei saatu vastausta eikä näytölle ilmestynyt kuvaa. Tämä tarkoitti sitä, että joko kontrollerissa on jotain vikaa (epätodennäköistä sillä nappia painamalla saatiin näyttö heräämään), tai että näyttö käyttää edistyneempää protokollaa. Koska näytön mukana ei tullut alkuperäistä ohjausyksikköä, ei voitu näytön protokollaa haistella sarjaväylästä esille. Myöskään kyseisellä näytölle ei suoraan ollut tarjolla tietoa mistä oltaisiin protokolla voitu päätellä. Protokollan reverse-engineeraaminen olisi ollut mahdollista myös lukemalla AVR:n ohjelmamuisti tietokoneelle käyttäen ISP tai JTAG väylää olettaen että suojaus-fuseja ei ole asetettu, mutta internet hakukoneen käyttö teki tämän tarpeettomaksi.

Pienen hakusession jälkeen paljastui että samalla valmistajalla on ollut myös vanhempia FlipDot matriisinäyttöjä samaan käyttötarkoitukseen. Näiden käyttämä protokolla oli saatu selville, joten tätä päätettiin testa myös ledinäytölle. Protokollan perusteella laadittiin sopiva datapaketti sisältäen vaadittavan komennon ja tarkastussumman, ja kun tämä syötettiin näytölle, ilmestyi annettu teksti!
Hakusessiota jatkamalla löytyi lopulta valmist python toteutus flipdot näyttöjen ohjaukseen githubista: https://github.com/bjarnekvae/pymobitec-flipdot, ja tätä soveltaen saatiin tietokone juttelemaan näytölle haluttua sisältöä. 

 

Koska näyttöä ohjaamaan ei haluttu jättää pysyvästi tietokonetta, hankittiin tätä varten Raspberry Pi Zero W. Zero W:ssä on sisäänrakennettu langaton verkko sekä yllinkyllin tehoa muuttamaan haluttua informaatiota näytölle sopiviksi sarjamerkeiksi. Zero W haluttiin integroida osaksi näyttöä niin että ulkopuolisia kytkentöjä tai laitteita ei tarvita näytön käyttämiseksi. Koska näytön alkuperäinen kontrolleri oli kiinnitetty pieneen irrotettavaan huoltoluukkuun, asennettiin myös raspberry pi samalle alustalle. Tämä kuitenkin tarkoitti sitä että langattoman verkon kuuluvuus vaimentuisi huomattavasti metallikotelon sisällä. Zero W levyllä on sopivasti testausta varten tarkoitettu kohta pienellä RF liittimelle, ja liittimen asentamalla ja yhtä vastusta siirtämällä saadaan ulkoinen antenni liitettyä integroidun tilalle. Tällöin antenni voidaan viedä ulos kotelosta. Liittimen asentamisen ja johdon kytkemisen jälkeen porattiin reikä näytön yläreunaan johon johdossa oleva SMA liitin kiinnitettiin. Ohjainkorttia muokattiin hieman lisäämällä yksinkertainen jännitteenalennin sarjaväylään jolloin saatiin suojattua raspberry pi:n GPIO/UART, sillä nämä eivät kestä 3.3V suurempaa jännitettä. Myös virransyöttö otettiin näytön 3.3V lähteestä ja reitiettiin kontrollerin liittimeen hyppylangalla.  

Kun antenni oli liitetty, raspbian asennettu muistikortille ja näyttöön kytketty virrat, olikin varsin helppoa asentaa tarvittavat python kirjastot ja luoda pieni testiohjelma joka näyttää kelloa ja tekstiä näytöllä käyttäen pymobitec-flipdot ja pyserial kirjastoja. Näyttö on kytketty hacklabin verkkoon ja löytyy lähiverkosta trehacklab@trehacklabled.local osoitteesta, mihin voidaan SSH:lla kytkeytyä. Näyttö kuitenkin kaipaa jatkokehitystä erilaisen informaation näyttämiseksi, ja sovellusideoita ollaan jo ehdotettu kuten näytölle tekstin lähettäminen Matrix keskustelukanavabotin kautta. Myös näytön lopullinen asennuspaikka on vielä hakusessa, mutta eiköhän se ennemmin tai myöhemmin nosteta seinälle ja muodostu pysyväksi osaksi hacklabin kalustoa. 

Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required