Make:NYC Badge Contest Entry From an Old GameBoy Printer




Introduction: Make:NYC Badge Contest Entry From an Old GameBoy Printer

Hello all, heres my second shot at an Instructable.. be kind..

So the local Make:NYC meeting had had a badge contest for its second meeting.. (link here), the gist of the competition is to make a wearable nametag/badge of some sort, of some materials, that could be reasonably accepted as a "badge"..

this Instructable is how I built mine for the contest.. pretty much everything that went into the badge was something I had around my workshop from previous projects, and obviously the design can be pushed to do more interesting things.

but I'll leave that up to you.


Step 1: Get Ahold of a Gameboy Printer and Some Paper!

So while i had a printer sitting around in my junk toy box from a failed project a couple years ago, you probably don't you'll need to get one of these from ebay, chances are you can find one for about 10-15 bucks..

the real trick is getting the paper, while you can also find this on ebay, your looking for something that has never been opened, hasnt been exposed to light ect... as it turns out the fancy thermal printing paper the gameboy uses doesnt survive well with time.. and some colors of paper seem to last better then others, but almost every roll will give you *something*.

Step 2: Disassembly!

taking stuff apart as a kid was always my favorite part of electronics ownership.. this toy was no different...

the gameboy printer itself has 6 or 7 security screws that have to be removed to seperate the main board from the plastic.. you'll need to open the battery door to see the last couple screws..

now.. while you might have a better security bit set then i have, i couldnt get the damn bits to fit in the gameboy plastic screw area.. so i turned to my next favorite disassembly tool.. the drill press..

i popped in a bit that had a diameter that was somewhere between the screw-heads diameter, and the screw shafts diameter.. then just drill out the heads which should come away from the threaded shaft pretty easily..

Step 3: Removing the Thermal Printer, Salvaging the Sockets

once youve got the case open you'll see theres just one main board with everything on it, two screws will remove quickly, then once you flip the board over theres two more screws holding the printer to the pcb; remove these and carefully remove the two ribbon cables attched to the printer from their sockes connecting it to the main board.

once thats done we'll want to recover the sockets that connected the ribbon cables, otherwise its a pain in the ass to work with these type of cables, though it is possible with a low temperature soldering iron.. too high and you will rip the trace right off the the plastic backing.

the the black and the white socket can be removed pretty easily with desoldering braid and/or a desoldering bulb.. just try not to overheat the sockets when removing them so that you dont destroy them.

Step 4: Makin' Some Cables

so, while you dont /really/ need to go through this, i did it because it made my life a little easier in prototyping..

to make some cables to use my printer (and make using it with my breadboard easier) i sacrificed an old 40 pin ide cable.. and soldered a pin header to one end, and a socket to the other end.. this is something i repeat a couple times in this project, so i'll only do this once..

for the print head cable, you'll need 8 conductors seperated from the rest of the cable, strip and tin all the conductors on either end with solder.

once your done that, you might want to use a meter to figure out how the printer is wired.. in the case the two pins all the way at the one end of the connector is a common lead.. and every other pin (there should be 16 others) is a 100 ohm resistor.. later on when we attach our wires to this, we will be attaching one wire for every two pins on this socket.. we lose resolution in the pinter, but it makes the circuit easy..

if you start soldering your tinned ribbon cable to your socket you'll notice that theres two pins left at the end that we didnt create a lead for... yep.. we just dont connect it..

when your done i find it makes things last longer if i create a plastic casing for the connectors pins using hot glue.. i just make sure to work it arround all the pins, covering up any exposed conductor.

you'll do the exact same thing for the motor/sensor connector, except here we're only interested in 4 of the pins.. of which two are grounded..

Step 5: Mounting the Printer

before i can work with the printer i need to mount it in something thats usable..

so i took a small piece of perf board and hotglued the bottom of the printer to it, making sure that no glue squeezed out of the sides will gunk anything up, i then soldered the motor control socket to this board since the lead on this cable is very short, and only really fits well in one position

next up is mounting the print head connector, this one is a little more tricky.. you need to make sure that the ribbon cable isnt going to be stressed as the head moves.. angles seem to work well, as i have my connector mounted at 45 degrees..

and when i say "mount" i mean hot glue the piss out of it.

when your done you'll have a printer module ready for play.

Step 6: Breadboard Prototype

as simple as this build is.. i dont want to solder more then i have to.. and more importantly, i dont want to desolder if i dont have to...

so to save some of the pain we prototype the circuit using a breadboard, and get all the code working.

Step 7: Code

so again i wanted to make this *fast*, so like a good coder, i reused some old code..

first we need a font.. i know it might not seem obvious, but this little printer is just too dumb to have a font of its own..
so i borrowed a font image from DOS ive kept around since 97-98, and started right in coding..

the principle is simple, run through the rows of each character at a partiular timing and tada, letters appear!.. but sadly when i first tried this, i instantly found i couldnt fit the full font in the damn basic stamp, so i wrote a little C program to help me generate the needed pbasic code. it takes a representation of what i want my badge to look like, and builds a list of the characters used, then builds a jump table of just those letters (taking pbasics-select-only-allows-16-cases-limit into account)

c program:

heres the code currently running in my badge:

Step 8: Assembly

alright, at this point everything seems to work, code cause things to print.. but now you need to assemble it into something that you can wear around your neck..

first we'll start with a standard radio shack perf board, we'll glue the tab you left on the printer assembly to the new perf board(you did remember to leave a tab right?)

Step 9: Base Board Assembly

once youve got the pinter attached to the larger perf board, you'll need to cut a hole that will be a place to mount the paper roll..

to do this i traced out a square that was reasonably larger then a full paper roll, then cutt the square out of the perf board using a dremmel, the cut for this ends up cutting both of the perfboards that are glued together.. file the sides a little to remove any rough spots left from the perf board holes.. these will just catch the paper.

when im done i add some more hot glue around the edges of the joined boards just to add a little more strength..

the last construction step before we start getting electronic is to add a woooden dowel for our roll to sit on.. to do this take a couple 5 inch pieces of stripped copper wire and wrap it around the dowel a frew times, you'll have a coil left that you can solder to the board that will act like a dowel holder..

Step 10: Sticking on Some Parts, Darlington Shift Register

this is one of those "shortcut" moments.. i found that a lot of this project can be done on perf-board without running a bajillion wires... one of the ways i did this was by placing the darligton array and the shift register together on the board in such a way as adjacent pins can connect with a solder bridge..

after that the print-head cable can be attached right next to the darlington array leaving pins 9 and 10 empty for the motor control pin, which is then positioned close by.

Step 11: Make the Cover Board and Seperator Screws

the cover board is an identical type of perf-board board as the base board, the only components on here are a single resistor, led, and a switch.. this switch will be our "omfg print!" button.. which are used to start the print, and you know.. an led.. because its an LED..

next well need some rubber tubing, i bought my at the local home depot.. its nothing special, just large enough to fit over the screw threads to act as a seperater between boards, i cut mine to slightly longer then 1/2 inch, but the "right size" is whatever lets the paper roll spin freely enough to not jam during printing.

while i'm here i might as well cut my screws to length using the screw cutter on my crimpers, of course you can cut the screws with a dremmel or something, but remember to thread the nut on before cutting otherwise getting those things on there will suck.

next wire the cover board up and add a 3 pin connector for it on the base board, just a ground line, and two pins that go straight back to the basic stamp.

Step 12: Chips and Interconnects

ok, nothing fancy here, just wire up the rest of the circuit as given in the schematic..

your biggest challeng here is running the ground and power lines around the board.

Step 13: Final Assembly

so now everything is wire up, we stick the two layers together like a sandwich, now might be a good time to put your paper roll on..

generally threading the paper into the slot is a bit of a pain, just keep pushing the print button and eventually it catches..

also make sure the roll come from the under side of the badge into the printer such that the paper gets dragged over the bottom edge of the perf-board and right into the printer..

if everything is good put screw the nuts down untill the tube squishes a bit and gives you a slightly flexible but rigid body..

i ended up just attaching the lanyard that i got from blackhat, it had a clip on both ends and worked pretty well handling the uneven weight of the printer around my neck..

Step 14: Done

done! so now your printing right? oh.. your just reading this.. ahh well..

some obvious improvements that you could make to this design:

1) use the full 16 bits of the head rather then just 7
2) use pwm to to adjust the darkness of the print with software
3) add a serial eeprom to hold the full characterset, and custom glyphs
4) using the speed sensor on the printer for better print quality

Be the First to Share


    • Raspberry Pi Contest

      Raspberry Pi Contest
    • Fix It Speed Challenge

      Fix It Speed Challenge
    • Jewelry Challenge

      Jewelry Challenge



    7 years ago on Introduction

    Hi, I started playing with a game boy printer a few days ago trying to get it working with Arudino. I have the easy part done, making the head go back and forth, advancing the paper, and making sure the head is set back at the start again. I am afraid to start working on the print head part because I don't fully understand how it works. On the longer ribbon cable, in that wider pin at the very end ground and will powering the other 16 pins print at a location? Also, what is the voltage you used on the print head?


    11 years ago on Introduction

    found my old printer the other day, but lost my camera, but this gives it a chance to shine again may i ask why you did not try and fit it back into the printer case


    14 years ago on Step 1

    I found an old GB printer at a yard sale but it only had a few inches of paper. I of course checked ebay and at the time packs were selling for way too much. So, after a little experimentation I found out that regular old thermal paper will work. Just go to any office supply store and pick out a standard role for adding machines. The hard part is that you will have to shave off about a 1/4 inch, depending on width (a blade style paper cutter works well for this). While it won't have the adhesive backing, it will print and you'll have saved a couple bucks.


    i work in an electronics store (they carry EVERYTHING!) and we use thermal paper in our debit machine. Whenever I buy something from a name brand type store (best buy, future shop etc.) I get a thermal paper receipt. If you can find any thermal paper, if it is too wide just take a really sharp knife and cut the entire roll down to the right width...


    Reply 14 years ago on Introduction

    its also probably worth mentioning that i found you can buy thermal printers and paper from mouser electronics... though most of the printers i saw have their own chargen rom, it should make thing easier to someone who wanted to whip up something like this.


    14 years ago on Introduction

    awesome, I didn't even know make nyc existed (I guess they just started anyway), I'll show up for the next meeting


    14 years ago on Introduction

    ok, I must decry the destruction of functional, antique computer hardware... But at the same time, OMFG! on-the spot Businesscard printing, and a nametag noone will EVER forget! You can sometimes still find that "fancy thermal printing paper" in the right sizes, at office supply stores. cash register machines, credit card recipt printers, and adding machines still use them sometimes. Might consider adding an H-shaped piece of plexi to the top? to help hold your printed tag in place. you can always tear off your first tag, after printing the second, thus avoiding having to "rethread" the paper under the plexi. ?


    Reply 14 years ago on Introduction

    yep, it prints onto sticky badge paper, that itself could be the whole name tag... im not sure why but i get a big kick out of the absurdity.

    fungus amungus

    Nice! A buddy of mine was at MAKE: NYC and told me about your badge printer. Thanks for posting it here.


    14 years ago on Introduction

    Wow, I have been waiting for a while now for some kind of hack involving the gameboy printer to come along, mine's been sat in a drawer with 4 spare rolls of paper for 3 years ;-)