AVR97: Teletaipinis USB printeris

Pratesiant teletaipo temą, kilo mintis padaryti tikrą USB printerį, kad tiesiai iš kompiuterio būtų galima telegrafuoti tekstą. Kadangi su V-USB man nepavyko priversti veikti printerį, tai pasinaudojau kiek naujesnę mikroschemą iš aliekspreso, ATMEGA32U4. Su mažyte plokštele, už kokius 2€. Ši mikroschema turi šiokį tokį hardwarinį USB ir jai tinka kiek naujesnis softas- LUFA paketas.

atmega32u4 AVR USB printer TTY teletype
Elektriniai lygiai suderinami su mano PCB kurią jau aprašiau ankstesniam straipsnyje. Kadangi čia jau 16MHz ir dar USB neleidžia stabdyti procesoriuką, teko 50 bodų UARTą parašyti (tiksliau pasiskolinti iš interneto) programiškai. Tai taip vadinamas softuart.

Testavau “firmwarę” ant trijų kompiuterinių šeimų: Windows 10, Linux Mint, Apple MacOS rodos X:
TTY kompiuteriai
Viską derinau ir programavau ant didžiausio- o ten Windows 10 Pro. Ir viskas kaip ir veikia, “printerį” pamato, draiverius susiinstaliuoja. Bet kažkodėl spausdina tik kelis šimtus pirmų raidžių. Poto viskas pastringa- per teletaipą nebeeina informacija. Po kažkiek laiko, print spooleris praneša apie spausdinimo klaidą. Ir šiaip viskas pastringa. Pašalinus pastrigusi failą, po kažkiek laiko vėl viskas veikia.
Labai ilgai kankinausi, bet problemos neišsprendžiau- kažkaip windows 10 print spūleris užsišoka ant “time-out”. Todėl nutariau pasitikrinti ant kitokio kompo- pirmas pasitaikė apple air, su kiek senoviška OS, rodos 10.6. Printerį pamatė, tačiau pas obuolį automatiškai draiverio nesuinstaliavo. Pažaidžius su CUPS, lygtai suinstaliavau RAW draiverį. Paleidžiu kažkokį teksto redaktorių ir pabandžiau spausdinti. Tačiau debilnas Mac OS net per generic raw printerį paleido kažką panašaus į PDF (ar post scriptą)- headeryje buvo tekstas “PDF-1.3”. Obuolys stipriai subiesino, bet pastebėjau, kad printeris neužstringa- jis toliau transliuoja tą binarinį kodą į rašymo mašinėlę. Tai leido suprasti, kad dėl strigimo su Windows, vis dėlto kalti patys windowsai.
Toliau pasiėmiau trečią kompiuterį, su senais Linux Mint. Čia irgi pamatė printerį, automatiškai nesuinstaliavo, tačiau nereikėjo kankintis ir grafinėje aplinkoje instaliavau text only printerį. Atsidariau tekstinį failą apie Ktulchu ir pabandžiau spausdinti. Tačiau iš aparato niekas neišlindo. Perjungus printerio draiverius į RAW režimą, teletaipas pradėjo spausdinti chaosą. O ten pamačiau kiek matytą signatūrą: “PDF-1.5”. Vėl tas sušiktas PDF. Nu kam man reikalingas tas pdf, kai aš noriu spausdinti gryną TXT per gryno TXT printerį? Kam tas “dezainas”?

Gerai, kad linuxe dar liko oldskūlinis shellas. Ir po kelių komandų iš telegrafo aparato pasipylė kraupusis tekstas:
The Call of Cthulhu ir kitos telegramos

Aišku visas source kodas pasiekiamas. Ir sukompiliuotas hex failas. Kad sukompiliuoti programą, reikia nusikrauti naujausią LUFĄ iš githubo. Nes oficialiam puslapyje nusikraunama labai jau sena versija. Rodos su ja irgi veikia ir kompiliuojasi, tik labai jau daug warningų. Gali kilti klausimas, kodėl printerio draiveris, o ne koks serial adapteris. Todėl, kad taip norėjau. O dar, kad buvo tokia fantazija, kad veiks be jokių ten nustatymų, tikras plug and peilis. Tačiau nelabai ir gavosi. O ir internete nelabai ir yra kaip suprogramuoti ant AVR spausdintuvą (printer device). Daug teorijos, bet nei vieno veikiančio pavyzdžio. Va dabar internete bus veikiantis AVR printeris.

USB printer device on AVR ATMEGA32U4 source code LUFA. Ir kaip bonusas, source archyve yra ir ‘The Call of Cthulhu’ tekstas, kuris buvo naudojamas testavimui. Manau autorius neužpyks.

One reply

Leave a Reply

Your email address will not be published. Required fields are marked *