DIY NES Controller - Full Build

Sdílet
Vložit
  • čas přidán 16. 06. 2024
  • In this video I make a NES compatible controller from scratch, it ended up us a very long video but I couldn't find a place to split it that felt right. I've added a timeline at various points so you can skip bits you are not so interested in.
    Making a small project from beginning to end like this was very rewarding, feels good to have a finished product.
    Breadboard Build 0:00
    PCB Design 6:40
    Soldering 15:08
    Case 3D Printing 23:18
    Assemble And Test 39:22
  • Věda a technologie

Komentáře • 66

  • @stevengreen9263
    @stevengreen9263 Před 4 lety +6

    Awesome! It's cool to see the whole process from beginning to end in one video, and the addition of the timeline is a nice touch.

    • @weirdboyjim
      @weirdboyjim  Před 4 lety +1

      Thanks Steven! I made the timeline because I was worried it was too long to let people skip to the bits they wanted to see. Particularly the 3d design / print was quite big (I'm no 3d artist so it take a while), i'll have a think about doing it again on longer videos.

  • @alexunderwood4679
    @alexunderwood4679 Před 4 lety +1

    It’s really useful seeing the full design process, even if speed up. Great video!

    • @weirdboyjim
      @weirdboyjim  Před 4 lety +1

      Glad you like it! Anything particular you would like to see at normal speed? This one needed a lot of fast forward, it was many yours of footage (not including the actualy 3d printing) before I started editing.

  • @geonik4253
    @geonik4253 Před 4 lety +2

    Bravo! You actually developed and prototyped a full product from the ground up!

    • @weirdboyjim
      @weirdboyjim  Před 4 lety +1

      Thanks Geo Nik! I did enjoy this one.

  • @enriquephan7729
    @enriquephan7729 Před 4 lety +1

    It looks really neat!

  • @HenryLoenwind
    @HenryLoenwind Před 2 lety +1

    For the strain relief, a cable tie around the cable works quite well.

    • @weirdboyjim
      @weirdboyjim  Před 2 lety +1

      I've used that on some other things now.

  • @mikepetrou8914
    @mikepetrou8914 Před 3 lety +2

    Thank you very much, i replicated your project for an esp32 project and it worked like a charm!

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +1

      Nice one Mike! I'm glad is was useful!

    • @rebranded1248
      @rebranded1248 Před rokem

      Is it possible to make a custom NES controller that looks like a normal OEM controller shell, however it has a hidden turbo feature/Macro that is self contained, and runs on original NES console. Where you could set a direction on the DPAD to have turbo as well as B button with Turbo function? Also would it be possible to do this while "hiding" the turbo/macro switch from plain view?

  • @LeoBerardino
    @LeoBerardino Před 4 lety +1

    Very nice James. For a computer built from scratch, a controller was also built from scratch.
    The cut-off timeline is very useful for these long videos.
    Thank you.

    • @weirdboyjim
      @weirdboyjim  Před 4 lety +1

      It does feel right! Needing a controller still feels a long way off though, there will be new cpu build videos soon. Waiting on some parts at the moment.

    • @weirdboyjim
      @weirdboyjim  Před 4 lety +2

      On the analytics page for videos there is a timeline graph that shows the parts of the video that got the most view, I’ll be interested to compare that to the timeline on this one once it’s collected enough data.

  • @frazer26
    @frazer26 Před 2 lety +2

    I realise this video is 2 years old but you can use a soldering iron to push the screw inserts in, the heat in the brass will melt the PLA and hold in place

    • @weirdboyjim
      @weirdboyjim  Před 2 lety +1

      Yeah, a few people have commented that. I've seen it done many times since I made this.

  • @cosmicrdt
    @cosmicrdt Před 4 lety +1

    Great video I've always wanted to do something like this.
    You should invest in some solder flux!
    Also - you can push down the threaded inserts using a Soldering iron.

    • @weirdboyjim
      @weirdboyjim  Před 4 lety +1

      Thanks! I was using a flux pen, but it tended to go past in a flash as I was using a lot of fast forward to try and keep the length down. One thing I would add though is temperature, I was running the iron at 320 for most of this. I could tell the solder wasn’t flowing as well as it should onto the button legs (Far higher thermal mass than the other components) but I realised the problem towards the end, turned it up to 350 and the joins got better.

  • @shadymaint1
    @shadymaint1 Před 8 měsíci

    I built a arcade stick controller for my NES. Should have built one years ago. Completly changes gameplay.

    • @weirdboyjim
      @weirdboyjim  Před 8 měsíci +1

      Nice work! I've been thinking of doing something similar for the SNES controller, I've updated my interface circuit to have the extra buttons of the SNES.

  • @nglamahmad2463
    @nglamahmad2463 Před 4 lety +2

    Very good design for both pcb and cover it might best from the original can i have the design plz

    • @weirdboyjim
      @weirdboyjim  Před 4 lety +3

      The schematic, pcb and stl files for 3d printing can be found here: easyeda.com/weirdboyjim/Nes-Controller

  • @jaythomas3180
    @jaythomas3180 Před 4 lety +2

    I really thought you were going to go for the nes dogbone controller look for awhile there.

    • @weirdboyjim
      @weirdboyjim  Před 4 lety +1

      To be honest, I was heading in that direction. But it turns out that Me planning in my head for 5 minutes isn't as good as the industries most experienced controller designers carefully designing something for years. You would have expected that?

  • @martink.7497
    @martink.7497 Před rokem

    Those bevels all around the places are so damn hot. Shame those screw holes were not symmetrically placed :D Anyway great work.

    • @weirdboyjim
      @weirdboyjim  Před rokem

      The button configuration on a NES controller makes symmetric screw positioning, if I do a SNES version in the future it will be easier to balance it out.

  • @rebranded1248
    @rebranded1248 Před rokem

    subbed

  • @Merlin_Shaw
    @Merlin_Shaw Před 2 lety +1

    What uF of Capacitor did you use for the Shift Registor?

    • @weirdboyjim
      @weirdboyjim  Před 2 lety +2

      For the decoupling caps I always use 100nf unless the data sheet says differently.

    • @rebranded1248
      @rebranded1248 Před rokem

      Is it possible to make a custom NES controller that looks like a normal OEM controller shell, however it has a hidden turbo feature/Macro that is self contained, and runs on original NES console. Where you could set a direction on the DPAD to have turbo as well as B button with Turbo function? Also would it be possible to do this while "hiding" the turbo/macro switch from plain view?

  • @timothymccully795
    @timothymccully795 Před 2 lety +1

    James, is it possible to make a NES keyboard from scratch that could use Family Basic?

    • @weirdboyjim
      @weirdboyjim  Před 2 lety +2

      In theory you could. I haven’t got any experience with the Nintendo keyboard myself. Don’t rely on this but some quick web searches lead me to believe it’s for the Famicom and plugs into the Ext port. To make a keyboard using the techniques I show here is possible but might be a bit much, would definitely be better to use real keyboard switches. If you just want a Nintendo keyboard replacement it might be a better idea to use a microcontroller to build an adapter from a ps2 keyboard to their protocol.

    • @timothymccully795
      @timothymccully795 Před 2 lety +1

      @@weirdboyjim I just googled PS2 keyboard to NES and some one at Atari age has already done it!!! Thank you for the suggestion 😊

    • @rebranded1248
      @rebranded1248 Před rokem

      Is it possible to make a custom NES controller that looks like a normal OEM controller shell, however it has a hidden turbo feature/Macro that is self contained, and runs on original NES console. Where you could set a direction on the DPAD to have turbo as well as B button with Turbo function? Also would it be possible to do this while "hiding" the turbo/macro switch from plain view?

  • @sillymel
    @sillymel Před rokem

    (3:36) If you want to exactly match the behavior of official Nintendo controllers, it actually *does* matter whether you pull the "serial in" line high or low. To properly match the exact behavior of an official Nintendo controller, the "serial in" line should be pulled high, not low like you have it here.
    (9:06) And the same point applies here.
    (16:15) They changed the colors from the official colors, and they didn't even change them into something sensible! (The official colors are white for Vcc, brown for ground, red for clock, orange for latch, and yellow for data.)
    So, the controller you designed looks quite similar to a "dogbone"-style NES controller, which came with the newer top-loader NES. (There were two styles of official NESes: the old-style one, which loaded cartridges in from the front, and the new-style one, which had the cartridge slot on top instead.
    I did some thinking, and I realized that there's a potential race condition if the internal controller clock updates the output latches at the same time the CPU tries to read them. The fix for this is simple: just wire the data assert line to the reset line of the 555 that handles clocking the controller. Since the reset line on the 555 and the data assert line are both active low, that will mean that the output latches for the controller will be updated by the controller read circuitry if and only if it's not being told to assert to the bus.

    • @weirdboyjim
      @weirdboyjim  Před rokem

      I don't see how it can matter. The NES only ever reads 8-bits in so it wouldn't matter there.

    • @sillymel
      @sillymel Před rokem

      ​@@weirdboyjim Controller reads on the NES are done in software, not hardware, so a controller read routine might potentiall read more than eight bits. However, it turns out I was wrong about how that pin is connected, anyway. I was looking at an article about reading from the CPU side of things. I just looked at an article on the controller side of things (as well as a picture of the PCB in an official controller), and it turns out that pin *is* connected to ground normally. Oops.

    • @sillymel
      @sillymel Před rokem

      To answer your question about how it could matter though, inside the NES, the controller port pins have pullup resistors on them. By tying the serial in pin within the controller to ground, it allows you to tell a controller port where the plugged in controller has no buttons pushed apart from a controller port that has no controller plugged in.

  • @rebranded1248
    @rebranded1248 Před rokem

    Is it possible to make a custom NES controller that looks like a normal OEM controller shell, however it has a hidden turbo feature/Macro that is self contained, and runs on original NES console. Where you could set a direction on the DPAD to have turbo as well as B button with Turbo function? Also would it be possible to do this while "hiding" the turbo/macro switch from plain view?

    • @weirdboyjim
      @weirdboyjim  Před rokem

      Probably, but that depends on what you mean by "turbo feature". If you mean changing a constant hold to rapid button presses then that would definitely be possible. If I were to do that I'd replace the circuit in an OEM controller replacing (or supplementing) the shift registers with a micro-controller. There would be lots of ways to hide the functionality, that's a whole other subject.

    • @rebranded1248
      @rebranded1248 Před rokem

      @@weirdboyjim A D-pad direction like Down Direction can be set to turbo at same time as a button, to create a repeated auto-fire input like Down+B correct? The reason I ask is, I am recently very suspicious of a certain speed runner who is the only person in the world (he has current WR in a game) who can mash Down direction on dpad + press B button at a lighting speed (14hz-16hz) 100% perfectly (no mistakes EVER). Its suspicous because he never ever messes up, never. By messing up I mean he always presses Down Direction + B button in perfect unison. If they are not pressed simultaneusly, the attack cancel he is doing does not work in the game (NES) He streams and plays the game 5 days a week, and his hand, wrist, forearm, shoulders never get tired ever. The mashing has to be so fast to get quick kills on the bosses, the only way to do it is by tensing your arm and shaking your forearm, which becomes very tiring very quickly. He has a body cam and hand cam on him while playing, but you can see he is obviously not even moving his entire arm that controls the mash input. Even the hand cam clearly show him just simply pressing Down+ B button and holding it their, without vibrating any part of his hand or arm to get a human produced realistict optimal mash speed. However for each press that he does (which he holds for a brief time) he gets 4-5 individual Down+B inputs in game. Which is IMPOSSIBLE unless he has a Turbo auto-fire set up and activated.

    • @rebranded1248
      @rebranded1248 Před rokem

      @@weirdboyjim Is there a company/ online forum/ or just a general source of information on these "micro controller PCB circuit boards"? The funny thing is he already admitted that he does not have a fast mash speed. (which makes what he is doing in the game impossible actually) He also mentioned that he builds his own custom NES controllers and regularly switches out the PCB circuit boards which to me seems like a red flag. As long as the turbo function can run within the controller itself, on original console hardware without the need of any external PC programs like Joy2key, Rewasd..etc then it is very possible he is indeed cheating. Collecting money, donations and fame for WR speed runs which is fraud really.

    • @weirdboyjim
      @weirdboyjim  Před rokem

      @@rebranded1248 Interesting. What game. NES Controllers are sampled in software, usually as part of the main update loop. I'm guessing that's a full frame game (so 29.97hz), assuming it needs to see alternate up/down's then perfect response would involve pressing at 14.985hz. I would say though that since we are dealing with a harmonic of most cameras video update rate you would expect that kind of action to look odd on camera even if it’s legitimate. I.e. it’s not impossible but you are not unjustified in wondering.

    • @weirdboyjim
      @weirdboyjim  Před rokem

      @@rebranded1248 I'm not aware of any specific sources of information on this stuff but I imagine a wide range of electronics hobbyists could help out. If you are doing a serious investigation on this stuff I could maybe help out.

  • @bradygreensides6495
    @bradygreensides6495 Před 2 lety

    Cool can you do a full build of the NES controller that looks like the Famicom controller pretty please with sugar lumps on top 💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖

    • @weirdboyjim
      @weirdboyjim  Před 2 lety +1

      That would be a very small change from this circuit.

    • @bradygreensides6495
      @bradygreensides6495 Před 2 lety

      @@weirdboyjim Please do it for God sake I believe in you 💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖 cause I've give your video a thumbs up 👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍

  • @d3adplaysvr
    @d3adplaysvr Před 4 lety +4

    first
    also keep making those vids

    • @weirdboyjim
      @weirdboyjim  Před 4 lety +3

      Thanks! And congratulations, not sure there is a vast amount of competition for first post on my videos though ;-)

  • @toxic1428
    @toxic1428 Před 2 lety +1

    Ee

    • @weirdboyjim
      @weirdboyjim  Před 2 lety +2

      Everyone loves an insightful comment!

  • @unclemil
    @unclemil Před 2 měsíci

    Incidentally I have done the same project some time ago, but on a perf board with close dimensions to the original controller. I was fascinated by the simple yet effective engineering/design of the original, like the strain relief.
    Btw. I wonder if the extension cable you got was a good fit for original hardware connectors? I had to wrap some electrical tape around mine else it would slip out (random Aliexpress purchase).

    • @weirdboyjim
      @weirdboyjim  Před 2 měsíci +1

      Nice project! Not sure about the connector in that regard, The "real" NES controller connects into the other end fine but I've not plugged this into a classic NES.