Make:NYC Badge Contest Entry From an Old GameBoy Printer

by phar in Circuits > Art

14095 Views, 12 Favorites, 0 Comments

Make:NYC Badge Contest Entry From an Old GameBoy Printer

1869418012_acbd895abb.jpg
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.

video

Get Ahold of a Gameboy Printer and Some Paper!

1868905822_448a439fcc.jpg
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*.

Disassembly!

1868907554_2f653d5d9b.jpg
1868909762_19aa22fed1.jpg
1868086895_dc7a90bd9d.jpg
1868083985_8341c06244.jpg
1868916562_b8840e197b.jpg

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..

Removing the Thermal Printer, Salvaging the Sockets

1868092997_87ebd96166.jpg
1868912352_0ec5926e14.jpg
1868087927_fd19ed4a73.jpg
1868089971_565bf443b5.jpg
1868086895_dc7a90bd9d.jpg
1869009816_94c5ba1370.jpg
1868923762_0bb5578524.jpg
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.

Makin' Some Cables

1868099091_1ca89f6680.jpg
1868927480_d7845e5ed1.jpg
1868102263_017ad306d5.jpg
1868105527_a54da3db66.jpg
1868104187_193d8ebc88.jpg
1868097739_3a25675716.jpg
1868922088_70c28cd700.jpg
1868106581_8fd4b3a146.jpg
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..

Mounting the Printer

1868109649_76006205ff.jpg
1868938680_3848819ef0.jpg
1868134599_ae9f932477.jpg
1868941210_a4d44af2ce.jpg
1868115811_0a0099a81d.jpg
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.

Breadboard Prototype

1868962750_ebbc6426a4.jpg
1868965570_cf55201710.jpg
1868136903_774850bd69.jpg
C:\Users\phar\Desktop\badge_sch.png
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.


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:
nametag.c

heres the code currently running in my badge:
nametag2.bsx

Assembly

1868134599_ae9f932477.jpg
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?)

Base Board Assembly

1868982088_d4213a690d.jpg
1868163007_4bbf8e003e.jpg
1868988794_f81bc26160.jpg
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..

Sticking on Some Parts, Darlington Shift Register

1868179273_2c503b2a8c.jpg
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.

Make the Cover Board and Seperator Screws

1868129861_3efa74206b.jpg
1868211319_08c66bb217.jpg
1868958352_d3eb39e502.jpg
1868959384_722db58412.jpg
1868960474_41514b6e85.jpg
1869048154_46dea474b6.jpg
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.

Chips and Interconnects

1868190647_2300f20d92.jpg
1869009816_94c5ba1370.jpg
1869014730_6a31ea1d41.jpg
1869012700_6a28eb0f81.jpg
1868179273_2c503b2a8c.jpg
1868196069_3153fef043.jpg
1868190647_2300f20d92.jpg
1869009816_94c5ba1370.jpg
1868223037_d4f50b21d0.jpg
1869021922_8fc1707016.jpg
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.

Final Assembly

1868215409_7524d79d20.jpg
1869048154_46dea474b6.jpg
1868224979_97c5679516.jpg
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..

Done

1868232087_ac04bbd556.jpg
1868239665_fc854fe562.jpg
1869062118_e97423e9c6.jpg
1868237601_51158abb87.jpg
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