Utskrifter på termoskrivare

I ett gammalt mätinstrument jag skrotat hittade jag en termoskrivare, med beteckningen MTP201-20B, som skriver på 57 mm brett termopapper. Jag har inte hittat några datablad eller annat på modulen, men jag tror den går att använda ändå.


Den här bilden visar undersidan av skrivarmodulen. Den konstiga grejen som finns i springan (strax ovanför mitten av modulen) är en "vriden stav" som gör att pappret bara matas frammåt när skrivarhuvudet åker tillbaks. Detta gör at utskriven text blir rak.

Detta är ovansidan. Man ser motorn nere till vänster, "Spiralen" som driver skrivarhuvudet längst upp, och själva skrivarhuvudet står längst till höger efter spiralen.

Enhetens kretskort är väldigt litet, och innehåller inga "riktiga" komponenter. Där finns fem anslutningar märkta "M+", "M-", "T", "TR" samt "R".

Efter lite undersökande kom jag fram till att modulen kan beskrivas på detta sätt:

Helt klart är att motorns drivspänning kopplas in till M+ och M-. 5 Volt ger en "behaglig" hastighet på skrivaren, och är också vad elfakatalogen säger att den liknande skrivaren MTP201/24B skall drivas med. OBSERVERA dock att skrivarhuvudet inte kan matas med 5 volt! (mer om skrivarhuvudet senare)

Mellan T och TR sitter något som ger pulser allteftersom motorn snurrar. Jag har inte ritat ut någon strömbrytare eftersom jag inte vet vad det är. Den normala resistansen mellan dessa anslutningar är 288 Ohm, och när jag vrider för hand på motorn syns det inte vad som händer. När motorn går så ger min kontinuitetstestare ljudpulser c:a 100 ggr per sekund (vid 3V till motorn. 5V ger c:a 200 pulser per sekund), så man kan på något sätt använda detta som "pixelklocka". Hade jag ett oscilloskop hade jag snabbt sett vad som sker.

Switchen mellan TR och R är en vanlig strömbrytare som öppnas när skrivarhuvudet står längst till vänster.

Sladden som går till skrivarhuvudet har en gemensam (common) anslutning till alla värmeellement. Den gemensamma anslutningen identifieras lättast genom att se vilken ledning i kabeln som är tjockast. En normal inkoppling är att koppla common till en matningsspänning eller till jord, och låta transistorer driva elementens ingångar (märkta D0 till D6 av mig). 5 V var faktiskt oanvändbart vid inkoppling till skrivarhuvudet, och troligen måste mindre än 3 volt användas.


Provade saker:

  • Provat köra motorn på olika spänningar, och har bestämt mig för att 5 volt är bra.
  • Provat driva huvudet med olika spänningar. Nedan kommer förstoringar (alla i samma förstoring) av linjer ritade med skrivaren. Observera att kvittot jag skrev på inte var helt vitt, utan har lite irriterande fläckar på sig. Jag köper en ny rulle när jag börjar bli klar med bygget.


5 V till skrivarhuvudet är alldeles för mycket när man bara ger motorn 3 volt. Man ser att linjen är svartast runt kanterna och att mitten helt har bränts bort.


När man ger ökar motorns spänning till 5 volt ger 5 volt till skrivarhuvudet fortfarande för mycket värme. Det ser något bättre ut då motorns snabbare hastighet gör att samma värmen inte hinner bränna lika mycket som i fallet ovan.


3 V är ganska bra till skrivarhuvudet när man ger motorn 3 volt. Nu ser man att hela linjen är jämnsvart. Man ser också att detta är svartare än vad man brukar få på kvitton, så tre volt är kanske också för mycket (eller så kör man motorn med 5 volt och skrivarhuvudet med 3 volt. Jag har inget variabelt spänningsagregat hemma, så jag får testa ut rätt spänningar senare.

  • Drivit några intilliggande huvuden samtidigt. Nu håller jag ledningar mot kontakterna till skrivarhuvudet, så det är lite bökigt. Ska fixa en ordentlig kontakt innan jag fortsätter experimentera.


Man ser att svärtan från två intilliggande linjer går ihop, samt att två linjer med ett mellanrum syns tydligt.

  • Kontrollerade om skrivaren kan skriva ut sammanhängande grafik, men det går inte. Skrivaren matar fram papperet så långt när den börjar på ny rad att man skulle få stora vita horisontella streck om man försöker skriva ut stora bilder. Skrivaren passar däremot utmärkt för textutskrifter.

Saker att prova:

  • Ta reda på vad som händer mellan T och TR-anslutningarna när motorn är igång. Min första gissning är att dess resistans (på 288 Ohm) går ned mot noll Ohm periodiskt när motorn är påslagen. Jag behöver ett oscilloskop.
  • Bygga en drivare för skrivarhuvudet. Jag har några darlingtondrivare i IC-kapsel (ULN2803A), som säkert blir bra för detta. Den kretsen driver dessutom åtta kanaler, så då kopplar jag in en extra effekttransistor på en av utgångarna så får jag en motordrivning också (Med separat drivspänning). Viktigt är att inte låsa sig vid en specifik drivspänning till motorn eller skrivhuvudet innan vi vet vad som är optimalt.
  • Ta reda på mer om skrivarens prestanda. Ett sätt är att driva skrivarhuvudet med en signal från en oscillator, och se hur nära man kan sätta två vertikala linjer. Det kan också vara bra att testa svärtningen vid olika drivspänningar, prova PWM av drivspänningen och liknande för att kunna skriva ut i gråskala. Sen kan man också ta reda på om ett element påverkar elementen ovan och under sig själv, för då kan man kanske fixa något snyggare utskrifter.
  • Sen behöver man också ta emot data från själva skrivaren, och för att göra detta enkelt så jordar man anslutningen TR, och sätter pullupp-motstånd på T samt R-anslutningarna. Det kan behövas någon extra ellektronik till T-anslutningen... Sen är dessa signaler redo att kopplas till skrivarporten eller en mikrokontroller.
  • Skriva mjukvara som kontrollerar skrivaren. Ska bara skifta ut sju pixlar ( i en lodrät linje) i taget av en sju pixlar hög bild, och låta signalen man får från T och TR avgöra när nästa sju pixlar ska skiftas ut. Kan vara trevligt att skriva ut både och annat, eventuellt med gråskala. En grundfont att prova är en 7x5-pixlars font. Går säkert att hitta gratis / rippa från grafikkortet / ripa från linux... Den stora frågan är om fonten och styrprogrammet kan klämmas ihop till < 2kb så den ryms i min favorit-AVR.
  • Sen kan man göra roliga saker som att internt dubbla pixelklockan i mjukvaran och skriva ut med dubbla upplösningen horisontellt. Är skrivarhuvudena tillräckligt små i bredd (vilket dom verkar vara) så kommer man att få bättre utskrifter (om motorn inte går extremt ojämnt eller skrivarhuvudenas termiska tröghet är stor).
  • Försöka komma på när man över huvud taget behöver ha en sån här skrivare.
    Skrivaren kommer att bli enkel att koppla ihop med en mikrokontroller, så jag kan kanske bygga en logikanalysator med inbyggd skrivare, eller ett enkelt oscilloskop med inbyggd skrivare, eller pulsmätare med inbyggd skrivare. Sen kan man ha den kopplad till datorn (via serieport eller paralellport) för att logga vad som händer (t.ex tid och datum varje gång datorn slås på eller av), eller skriva ut saker.
OBS! Du bygger alltid på egen risk, jag garanterar inte att något fungerar för dig.
Du ansvarar själv för risken att skada dig själv/andra/saker/datorer/eller annat!