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 Portable N64 Part 2 Episode -- Episode 276
  • 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: pchan
  • Date Created: 9 Feb 2017 10:04 PM Date Created
  • Last Updated Last Updated: 3 Feb 2017 8:24 AM
  • Views 2130 views
  • Likes 5 likes
  • Comments 14 comments
Related
Recommended

Ben Heck's Portable N64 Part 2 Episode -- Episode 276

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

Community Feedback
Featured Bonus Content
See All Episodes

 

 

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

In this episode, Ben miniaturizes the controller using an Arduino Pro Micro and Playstation Vita analog stick, embeds the RAM expansion, and works on a case design with a nod to the Nintendo Switch. The N64 is notorious for being difficult to hack as it's easily damaged due to all the rewiring required to make it smaller!

 

Episode 275: Ben Heck's Portable N64 Part 1 Episode

 

The Ben Heck Team continues working on the N64 portable.  In a previous episode, they worked on the memory and the power.  In today's episode they are going to try to shrink down the controller so it will fit in the case, and then they'll also add the memory expansion that goes into the controller inside the system.  Once all that is done they'll have an idea how the system will be shaped so they can begin designing a case for it. The N64 is difficult to hack because it's easy to damage and there are a lot of things you have to rewire in order to make it remotely smaller.

The N64 is notorious for its analog stick because it tends to wear out quickly and has a huge analog stick package.  It doesn't work the same way as any other console analog stick, such as the Playstation or the Xbox.  It uses optical encoders, like a mouse would, and the stick wears out quickly. It also has a hug e analog stick package.  The position of the analog stick is determined by change so it's basically like 2 mice wheels controlling X and Y.

After taking apart the controller, Ben hooks the controller board to an oscilloscope.  He applies 3V to the analog stick which powers up the optical encoders.  It's not really an encoder, it's more like two optics! Like an old school mouse, when they change, you know what direction the sticks going in. The order in which they change tells the controller which way the stick is being moved.  You're moving an encoder wheel back and forth waiting, opening little slits for light to go through, in a certain order. All other analog sticks get voltages off a pair of potentiometers.

So what you'd have to do with an analog stick encode is keep track of where it is, its position, and you would only send the pulses when it changes position.  You'd also have to have some dead space as there is only 160 steps in each direction for the Nintendo. That's 160 steps in either direction perpendicular with 80 steps coming in both directions from center.  Ben uses this information to replicate the N64 analog stick with a more traditional analog stick and an Arduino Pro Mini.  They can run this Atmel chip off the same 3.3 V line powering the N64 controller. Next, he wires the microcontroller into the N64 controller to see if he can reproduce the kind of pulses coming off the N64 analog stick.

He attaches some disconnects to the Arduino board as the board he's using can run at 5V but the N64 controller runs at 3V. That way it's only sending 3V signals to the Nintendo Chip so as not to damage anything. MCU's can run at multiple voltages, but this can affect their max speed so check your datasheets.  He experiments with various analog sticks attached with a microcontroller to see if he can fine an adequate replacement for the N64 analog stick. He finds a suitable analog stick from a PSP.

Next, Ben desolders the connector for expansion memory card to find out what the pinout is, and make a decision on what to do with the controller board. He removes the memory chip from the memory card as well as the controller's microprocessor and creates his own custom board that will house these chips. Using Felix's help Ben creates a smaller replacement for the controller. The Nintendo chip is put on its very own breakout board.  He then combines the Nintendo controller chip with the memory card chip.

Ben rewires everything from the memory pack to the controller's integrated circuit and he moves most of the passives off the original controller's circuit board onto the circuit board that Felix etched.  He's able to get it to write and read the memory card correctly.  Ben's able to rebuild an N64 controller that's much smaller.  He then goes to work on the system itself by first designing and 3D printing a cartridge slot assembly.  He also creates a custom heat sink from copper to use on the GPU and CPU.  Ben goes to work on the case itself and the buttons used for the system.  Meanwhile, Felix goes to work on getting the battery packs wired up. They use 4 Lithium Ion cells that go to regulators that will give him the 12V and 3V that they'll need. They're just about ready to test but as they begin running the system they begin running into heat problems. Ben attempts to build a better heat dissipation system without breaking anything in the process.

  • episode 276: ben heck's portable n64 part 2 episode
  • hack
  • potentiometers
  • n64
  • portable_n64
  • microcontroller
  • tbhs_n64
  • heck
  • ben
  • arduino
  • pcb design
  • tbhs_ep
  • Share
  • History
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • DAB
    DAB over 8 years ago +1
    Nice episode with good lessons for anyone looking to modify legacy equipment. DAB
  • gafanhotz
    gafanhotz over 8 years ago in reply to caioark +1
    +1 to that! I want to "fix" an old controller by improving it using that code and an Arduino Nano. Maybe both iterations of the code could be shared? I don't have a Vita analog handy but have a PS2 one…
  • makerkaren
    makerkaren over 8 years ago in reply to caioark +1
    We'll do what we can to get those posted in a timely manner. Keep your eyes peeled for updates to our GitHub with those build files.
  • onilx
    onilx over 4 years ago in reply to makerkaren

    hey!

     

    sorry to bug you about this but i'm really interested in finding the Arduino code to spoof the N64 optical controller. any chance you can point me in the right direction?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • simonadam
    simonadam over 5 years ago

    I have recently built a N64 portable but used the console as the case, nice!!

    I am wanting to make a new one, but use a pot analog stick for the next one with an Arduino, would you please be able to post your code for either connecting the analog stick into the original controller board, or an Arduino code for attaching all the buttons and pots to the N64 mother board, so I don't have to use the board inside the controller?

    Kind regards

     

    image

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

    Hi Ben, look on what this guy did with the n64 analog for a portable version:

     

     

     

     

    http://modretro.com/xen/index.php?threads/how-to-wire-up-a-3ds-analog-stick.8256/

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • simonadam
    simonadam over 8 years ago in reply to gafanhotz

    Dito, I would love to have the code for an Arduino, I am at the point where I will be looking to put the joystick in, but really dont want to use the old Nintendo 64 joystick and have an xbox one ready to go if I can figure the code out.

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

    Hi Ben, I think you might be missing one other analog stick and the zune buttons for each stick, if you are going with the Switch look. Nintendo purpose having three grips was to use the controllerest in three positions. I just want to bring this to your attention, I didn't see or hear it mentioned in the video. Neat build though.....

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • makerkaren
    makerkaren over 8 years ago in reply to caioark

    We try to keep this page updated. You can find all currently available build files here >Ben Heck's Build Kits

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • biomedicaltom
    biomedicaltom over 8 years ago

    I've been trying to buy the Xbox one laptop off ebay and who ever is selling it keep canceling it refunding my money and calling me a scammer. Who else can I talk to

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • caioark
    caioark over 8 years ago in reply to lakias12

    You can download the video.
    Search on google by youtube multi downloader online.

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

    Could you please convert the video to anything other than YouTube.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • caioark
    caioark over 8 years ago in reply to makerkaren

    Nice!
    I'm kind of new here so, where can I found the link to the GitHub page of the Ben Heck show?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
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