Some background informations
The Nintendo64 revolutionised the industry in a way that seemingly only Nintendo are able to do. Not only was it one of the first 64bit systems to market offering a full 3D gaming experience, it refined and introduced arguably one of the most important features in its controller which is the base feature of every console today: The analog stick.
The N64 analog stick was incredibly complex because it’s not based on potentiometers like modern sticks but was instead built similarly to optical mice. In order to work properly the stick module included many small plastic parts like gears and optical wheels which allowed for an amazing precision and reliability for the time
Unfortunately, despite these amazing features, the stick module suffer from one major issue: durability
Being made entirely out of plastic and lacking any type of lubrication, the bowl sitting below the stick quickly wears out introducing a massive deadzone and a serious loss of precision. The stick keep wearing out quickly during use and it’s not uncommon that it becomes completely unusable after only a year of intensive playing
As Nintendo 64 games are very common in both speedrunning and competitive scenes, finding a reliable, durable and high quality stick replacement is vital in order to keep this fantastic console alive after more than 20 years from its release date
The ProStick64 concept
The ProStick64 is my attempt at addressing the durability issue without affecting overall feel and quality of the original stick. The fundamental points i had in mind while designing it are the following:
- Match as close as possible the OEM stick
- Improve adaptability to different playing styles
- Possibility of large scale production
Even if those three basic concepts might seem easy to do individually, joining them in the same final product is not an easy task.
The brain of the stick: STM32G0
In order to finely reproduce every aspect of the OEM stick i decided to give the ProStick64 plenty of computational power. Packed in every module there are two independent STM32G0 processors running at 64MHz. Each processor is responsible for reading and operate a single axis of the stick and thanks to a state of the art 12 bit embedded ADC each axis value is read more than one million times each second!
The printed circuit board
Obtaining reliable reading from an ADC circuitry requires not only top quality potentiometers and processors, but also well designed circuit boards. In order to achieve the best performances possible i designed a custom 4 layers PCB that ensures every single reading is accurate and precise
Using OEM enclosures would have been the best way to go here but it would have highly impacted the possibility to bring this project to large scale production. With that in mind I spent lot of time modelling the OEM enclosure in a 3d modeling software and thru a tedious trial-and-error approach I was finally able to obtain a faithful reproduction of the OEM enclosure, allowing me to customize the internal part to better fit my board and allowing a future low cost large scale production
Top quality parts only
One of the main issues with low quality replacement sticks is the inconsistency of the performances and feel. In my opinion the most effective way to ensure high reliability in a large scale production is to use top quality parts. My goal here is that every single ProStick64 module is exactly the same to every other and you can seamlessly switch from one to another without having to get used to the new one.
The brands i trust for my components are:
- ALPS for the 2-axis potentiometer (aka Joystick)
- Vishay Dale for resistors and capacitors
- JLCPCB for PCB manufacturing
- STMicroelectronics for processors
Entirely open source
Designing, prototyping and addressing every problem found so far has been (and will be) an immense work for me, requiring both time and money in order to take this project come to life. Nonetheless I firmly believe that every step in research and developing solutions to existing problems should be a collective effort rather than a single mind work. That’s why every single part of this project, from 3D models to firmware running on the CPUs, are released with Open Source Licenses. The hardware part is released under CERN-OHL-S-v2 while the software part is released under GPL v3
“Open source isn’t about saving money, it’s about doing more stuff, and getting incremental innovation with the finite budget you have.”Jim Whitehurst