element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Ben Heck Featured Content
  • Challenges & Projects
  • element14 presents
  • element14's The Ben Heck Show
  • Ben Heck Featured Content
  • More
  • Cancel
Ben Heck Featured Content
Documents Ben Heck's Reverse Engineered Game Boy Printer Episode -- Episode 263
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Ben Heck Featured Content requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Engagement
  • Author Author: randogless
  • Date Created: 10 Nov 2016 9:53 PM Date Created
  • Last Updated Last Updated: 4 Nov 2016 8:24 AM
  • Views 1021 views
  • Likes 3 likes
  • Comments 2 comments
Related
Recommended

Ben Heck's Reverse Engineered Game Boy Printer Episode -- Episode 263

image

element14's The Ben Heck Show

Join the Ben Heck team every week for amazing hacks! Watch them build and mod community-inspired projects using electronics!

Back to The Ben Heck Show homepage image

Connect with TBHS
Featured Bonus Content
See All Episodes

 

 

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

A Game Boy printer is used to teach reverse engineering and how data transmission works. The printer is taken apart and hooked up to a Tektronix oscilloscope. Signals are captured, reverse engineered, and replaced with new signals.

 

Supporting Files

Click Here

for access to all the supporting files you will need to replicate this build!

 

Using the Game Boy Camera, Ben manages to capture a solid white frame and a solid black frame for testing purposes. This allows him to see how the data is organized. He then hooks up the gamelink cable to the printer and made some test prints.  The printer uses thermal paper so it doesn’t have any ink as that would have dried out by now. He discovers that even if you unplug the game boy half way through the print it still finishes the print. This means that the printer has local RAM that stores the image after it starts printing.

Ben proceeds to do a teardown of the Game Boy printer. It contains 8 KB RAM to capture images and print it. There’s also an 8 Bit microcontroller. There are no other major IC’s so the code must be inside the MCU, not on an external ROM. There are two optocouplers, also called “opto isolators” because they’re used to isolate signals from each other.  The optocoupler has a pair of LEDS inside of it, one emits light, while the other detects light and uses it to trigger a circuit.  It’s like a buffer but it’s completely electrically isolated from one side to the other.  This is most likely to prevent spikes of current on the print head from affecting the microcontroller.

There are 18 pins going to the print head. It sends 5 V to the print head and only syncs to ground, turns on, when something is printing. This gives you power, ground, and 16 bits of data. The communication cable interfaces with the microcontroller, taking the 16 bit connection going into it and using it to send out all 16 pixels vertically and send out more data for every horizontal line. When data is sent over, the Microcontroller puts it into the RAM, once completed, the Microcontroller prints it itself from the RAM.

A Tektronix scope is used to capture all the data lines together and figure out how it works. The game boy sends out data vertically rather than horizontally to make it easier for the microcontroller to actually use it. The Game Boy stores the data in 2 bit, 4 shade grey scale, it sends the data to the printer also in 2 bit, 4 shade grey scale and most likely throws out half the data. Commands into the printer’s MCU are likely interrupt-driven, just like the Power Glove. Finally, an Arduino microcontroller is used to simulate how data is sent to the printer and how that data is organized.

  • hack
  • game_boy_printer
  • game boy
  • episode 263: ben heck's reverse engineered game boy
  • game boy printer
  • heck
  • ben
  • tbhs_ep
  • Share
  • History
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • DAB
    DAB over 8 years ago +1
    Great episode. I have reversed engineered a lot of devices, but over the last three years I have been reverse engineering the Universe. See my book "I Killed Schrodinger's Cat!" for details, but we are…
Parents
  • atarifanboi
    atarifanboi over 8 years ago

    Because of TBHS, I am getting much more interested in electronics as a hobby, and my first ever reverse engineered project was a real time clock for the Atari ST. There was a wealth of information on the web, but it never worked, so I took the data sheets of the modern chip replacement, and printed out photos of the original device, a Forget Me Clock II and manually traced both sides of the PCB so I could work out what went to where, in terms of the tracks.

     

    After breadboarding, then protoboarding I now have several working units, and I'm working with several like minded folks on the internet to get a workable PCB, and hopefully will get the first built this weekend.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • atarifanboi
    atarifanboi over 8 years ago

    Because of TBHS, I am getting much more interested in electronics as a hobby, and my first ever reverse engineered project was a real time clock for the Atari ST. There was a wealth of information on the web, but it never worked, so I took the data sheets of the modern chip replacement, and printed out photos of the original device, a Forget Me Clock II and manually traced both sides of the PCB so I could work out what went to where, in terms of the tracks.

     

    After breadboarding, then protoboarding I now have several working units, and I'm working with several like minded folks on the internet to get a workable PCB, and hopefully will get the first built this weekend.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube