NES & SNES controller modding circuit board (iCade-like)

Discussion in 'General Game Discussion and Questions' started by janekm, Feb 14, 2012.

?

How much would you be prepared to pay for a NES modding circuit board?

Poll closed Feb 19, 2012.
  1. Not interested

    0 vote(s)
    0.0%
  2. <15$

    1 vote(s)
    100.0%
  3. $15-20

    0 vote(s)
    0.0%
  4. $20+

    0 vote(s)
    0.0%
  1. janekm

    janekm Member

    Apr 1, 2009
    17
    0
    0
    Hey everyone,

    with the recent news items on the front page it seems like it'd be a good time to talk about a weekend project I was working on last summer... a circuit board that can be used to mod a NES or SNES controller for use with an iPad.

    Unlike the 8-bitty it uses a USB cable to connect to the iPad (using the camera connection kit, there are now cheap clones of that on ebay). This has the advantages of quick response time, easy connection (no pairing necessary), infinite battery life and lower cost (somewhat), with the obvious disadvantage of having a wire and not being supported on the iPhone.

    (BTW for anyone thinking of taking the circuit board from the 8-bitty and using it for modding a NES controller I don't believe that will work for 2 reasons, one that the Bluetooth pairing requires 10+ buttons and the NES only has 8, the other that the chip in the NES controller requires 5V and the iCade bluetooth module is likely to only supply 3.3V or less. Modern knock-off SNES controllers do seem to work at 3.3V but the one I bought on eBay was pretty cruddy ;))
    BTW it is very fun to play iPad games with a NES controller, I'm sure the same will be true with the 8-bitty and the price is hard to beat :)

    Basically it involves opening up the original controller, cutting the ends of the connector cable, soldering them to my PCB, and soldering a USB cable to the other end of the PCB. The final assembly looks like this:
    [​IMG]

    Everything is done using low-profile components (the reset button is particularly cute) so no modification to the plastic casing of the NES controller is required. Other boards than my design could be used (like one of the many USB-compatible Arduino variants) but those would either require cutting some of the plastic standoffs inside or an external case.

    [​IMG]

    Soldering the wires onto it is obviously very easy, soldering the surface mount components probably isn't for everyone but the whole thing is pretty cheap to get manufactured in China (I've got factory quotes for that... practical from 100 units but gets a lot cheaper for 1000).

    I'm thinking of releasing the design under an Open Hardware license (and the firmware), but am also considering getting some made if there is interest.

    I'd be curiously if anyone would be interested in buying something like this to see whether a Kickstarter-like project (no Kickstarter in Europe but there are some alternatives...) would make sense. I also have a small number of original NES controllers I bought for modding and may be able to do that for anyone interested in a completed unit (if anyone at TA is interested in a review unit let me know :D).
     
  2. drelbs

    drelbs Well-Known Member

    Jun 25, 2009
    11,200
    7
    38
    Why Apple doesn't let someone make a decent controller is beyond me.

    I can understand not wanting to support X/Y/Z USB device, but you think they'd pick one thing like an XBox controller and support that. My dream would be a reincarnation of the Hori Gamecube SNES controller for the iPhone/iPad.

    [​IMG]

    As for the circuit board - I wouldn't be interested in a NES controller card because of the ergonomics. At the very least I'd want a dogbone controller - SNES would be better IMHO.

    I'll be buying the new iCade controller because it works with my iPhone and is small. Otherwise, I would like something more comfortable. Have no qualms with DIY kit - in fact I might be gutting a new iCade controller and another Hori pad if I can find one to see if I can make that work.
     
  3. janekm

    janekm Member

    Apr 1, 2009
    17
    0
    0
    I think the people in control at Apple still have some philosophical hangups regarding add-on human interface controls... But at least they did enable keyboards and hence by extension the strange workaround of game controllers that we got :)

    The circuit board does work equally well with a SNES controller (well, it did with the shoddy copy of one I bought on eBay anyway, real SNES controllers are surprisingly hard to find), sorry I didn't make that clear enough :)
    The wires are the same (maybe different colours) and the software on the microcontroller supports both. The additional buttons help with supporting more games too of course.
     
  4. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    Does it work the same as the iCade? that is, two keypresses per button, one for button down, one for button up? If it works the same, with the same keypresses, it would be great to play all the iCade compatible games with a SNES pad.

    iCade press,release
    up: w,e
    down: x,z
    left: a,q
    right: d,c
    button o,g
    button h,r
    button l,v
    button j,n
    button u,f
    button y,t
    button k,p
    button i,m
     
  5. earthclaw

    earthclaw Well-Known Member

    Nov 29, 2010
    245
    1
    18
    Freakin Space Alien
    Alienville
    #5 earthclaw, Mar 16, 2012
    Last edited: Mar 16, 2012
    The Icade 8-bitty even out yet? Its not for sale at ThinkGeek.
     
  6. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    Yeah, because Apple would officially support a controller made exclusively by and for their main competitor in the home computer market. :rolleyes:

    Anyone wanting a proper size controller for their iOS or Android should look at the iControlPad, I have one and am very happy with it. However, I would like a wired controller for situations where wireless would not be an option (iControlPad is bluetooth). This DIY option seems just right.
     
  7. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    No comments from the OP after the first day? What was the point of mentioning this project if there was to be no follow up at all :(
     
  8. genaawky

    genaawky New Member

    Mar 26, 2012
    4
    0
    0
    What was the point of mentioning this project if there was to be no follow up at all
     
  9. janekm

    janekm Member

    Apr 1, 2009
    17
    0
    0
    Sorry everyone I haven't had a chance to reply lately... Busy week at work!

    Yes, I'm using the same key codes as the iCade (though of course a NES controller doesn't have all the buttons, but most games I've tried worked fine with the buttons available).

    A quick update on the project... It doesn't look like there's enough interest to justify a Kickstarter-like project so the most sensible thing for me to do is to release it as an open hardware project so anyone can use it if interested. I do need to make a little change to the firmware to allow easy update of the firmware on the device. Unfortunately I can't realistically make any promises on how much time I can devote to this project so an open source approach makes the most sense to allow others to help out.

    I have a small number of the PCBs and components on hand, as well as a few NES controllers, so if anyone is interested in participating in the project (keeping in mind the firmware isn't perfect yet) let me know. I'd have to ask for my components costs and shipping naturally.
     
  10. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    How much would it cost for a ready assembled board without the controller? I doubt I could solder those components with my skill level, but the wires wouldn't be a problem, plus I already have a spare SNES controller sitting waiting for such a mod.
     
  11. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    How difficult would it be to add a bitton to disable/re-enable the onscreen keyboard while using this gamepad? could it be as simple as adding a switch to the USB +5v line, so that the controller could be "switched off" without unplugging it, causing the iDevice to revert to the virtual keyboard?
    Also, does the button layout match that of the iCP/Gametel layout or is it different? would it be possible to remap these buttons at a later date to match the 8-bitty (once released)?
     
  12. janekm

    janekm Member

    Apr 1, 2009
    17
    0
    0
    Enabling the on-screen keyboard should be even easier than that, the apple Bluetooth keyboard has a button that does that (same as eject button normally) so sending that keycode should do it. Of course you'd have to dedicate some button combination to that, maybe START+UP or something like that.
    I've modified the firmware now so that it allows reprogramming over USB (currently button combination START+SELECT is used for that but I'd be open to changing that if it conflicts with any games). I haven't looked at what button mapping the icp uses so it's likely that the one I'm using currently is different but it's easy to change now that firmware upgrading is supported.

    I've put up the firmware source code on GitHub (it's based on the USB keyboard example in the LUFA library and only one file is actually changed): https://github.com/janekm/LUFA---iPAD-gamepad

    Build requirements are the same as for LUFA and http://dfu-programmer.sourceforge.net/ is used for uploading new firmware.

    BTW I've had a look at what I paid for the components and since I only bought enough components for 5 boards it was pretty expensive... I'd have to charge $20 with shipping to break even, pretty expensive I know! But if you're willing to act as a "beta-tester" for the project I'd be happy to offer a discount anyway.

    Sorry for the slow updates lately, the dayjob's been keeping me busy!
     
  13. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    #13 spinal, Mar 31, 2012
    Last edited: Apr 16, 2012
    I have no problems with testing at all :)

    The following is the layout of my iCP in iCade mode. I don't know what version of the firmware I have on it, or if has changed in any version after mine.

    [​IMG]

    although I assume the 8bitty would be something like this --
    Code:
           _4__                 __8_
        _="""""""""""""""""""""""""""=_
      ,'   _    SUPER  NINTENDO     _ X'.
     /    | |                      (2)   \
    |   __| |__                 _      _ A|
    |  |__   __|   1/     5/   (6)    (3) |
    |     | |     //     //   Y    _      |
     \    |_|    select start     (7)    /
      '.       _---------------_ B     .'
        "-___-"                 "-___-"
    

    As for the button combination for the eject code, how about Start+Select+A+B? I assume that would work on both NES and SNES controllers?
     
  14. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    How hard would it be to add support for other controllers, such as Megadrive/Genesis, Playstation, Dreamcast, Xbox, N64, NeoGeo etc?
     
  15. Nudgenudge

    Nudgenudge Well-Known Member

    Feb 10, 2011
    102
    0
    0
    Actually, I have another suggestion.

    Instead of opening all of our controllers to plug the chips to the pinout, how about having a small box with NES/SNES/what-have-you controller inputs and a USB output?
    Okay, it's one more box to lug around, but the advantage is that every controller will work with it, no tinkering necessary.

    You could even go one step beyond and change the USB output to a 30-pin output (either emulate it or get a cheap one and dismantle it in the box, alongside the small PCB).
     
  16. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    #16 spinal, Apr 10, 2012
    Last edited: Apr 10, 2012
    You could easily make your own 'small box' for it. I for one, would like to keep the cost of the device as low as possible.

    The only thing stopping my from directly connecting a camera kit directly to the SNES controller (once I eventually get one of these) is that the USB connection will be useful for testing apps on my computer as well as my iDevice.
     
  17. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    Looks like getting hold of one of these will be a s-l-o-w process :(
     
  18. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    Having received one of these, I can't imagine why there wasn't any interest in it. If you liked your old NES/SNES controller, why wouldn't you want to use it for your iPad/Phone games?
     
  19. janekm

    janekm Member

    Apr 1, 2009
    17
    0
    0
    Hey everyone, time for another update... Thanks to some great support from spinal the project's made some good progress lately.

    I did originally consider making a NES/SNES to iPad converter, however the big challenge is getting hold of the suitable connectors as most have been built specially for those consoles (the early Atari and a few of the home computers are the exception to that rule). So realistically you'd have to either get them out of old consoles or get compatible connectors built in China (you'd have to order thousands).
    The other challenge is that most of those consoles have very different ways of talking to their controllers, some of which are pretty weird... So most likely a small FPGA would be needed to talk to them all, adding more cost.

    In the end I decided that having the converter board inside the controller was simpler (and more elegant to my taste).

    As for the 30-pin connector, unfortunately that requires a hardware "key" chip from Apple... With a big kickstarter project that wouldn't have been too much of a problem but in small numbers they wouldn't be interested in talking to you. The cheap camera connection kit clones from China do carry that chip... My suspicion is that they got the chip as surplus from some factory that was making official "made for iPhone" accessories. You could try to desolder it from one of those clones but the pin-out isn't entirely obvious (I checked).

    True, and of course that's also the only way to upgrade the firmware on the converter board for adding new features / fixing stuff.

    One thing I'm curious about is whether it will be possible to use Bluetooth LE for a gamepad / joystick connection... This would be a lot more elegant than the current keyboard emulation method as Apple does allow Apps to talk to Bluetooth LE devices bidirectionally (not so for regular Bluetooth). The other advantage for BLE is the much lower power consumption which would theoretically allow many months of battery life from a coin cell battery.

    I am not yet convinced whether the latency will be low enough for games but will have the opportunity to test that out shortly.

    Of course then it'd still require convincing some game authors to implement yet a new gamepad interface, so perhaps that's a bit unrealistic...
     
  20. spinal

    spinal Well-Known Member

    Mar 15, 2012
    49
    0
    0
    I've just bee working on some code to allow the buttons to be re-maped on both the SNES and NES pad without any special software, and also the ability to change between NES and SNES mode. It seems to be working OK so far.

    So no matter what button layout the game coders assume, you can swap your buttons around to match!

    Quick question, I have heard that the Wii Classic controller uses similar protocol to the NES/SNES gamepads. Does anyone know, is it possible to use the Wii classic controller by modifying code only, without adding extra hardware?
     

Share This Page