3DS XL NAND access via USB Mod

Discussion in '3DS - Flashcards & Custom Firmwares' started by damysteryman, Mar 13, 2014.

  1. damysteryman
    OP

    damysteryman I am too busy IRL these days...

    Member
    1,190
    243
    Oct 4, 2007
    Hello gbatemp!

    A few days ago I ended up modding my 3DS XL (well, again, but a better way) with a much cleaner USB-based mod...


    Story and Explanation:
    I assume a lot of you would know of the great nand flash dump (3ds xl) thread that was created a while ago with all the info about connecting your 3DS XL's eMMC NAND via the 3DS's motherboard testpoints to an SD card reader to be able to read and write to said NAND, mainly to make backup dumps and restore them if necessary.

    This is most useful for one with a 3DS XL containing a vulnerable system software version for homebrew (version 4.5 or lower), as it can allow to make a complete backup of the 3DS's NAND including the vulnerable system software, and then also reflash and actually downgrade the system back to that system software version should the system be updated past a vulnerable version for whatever reason and the user end up requiring the vulnerable system version once more.

    Anyways, as the thread has progressed and people have made their own implementations of accomplishing this task, I noticed a certain trend in this, mainly that they were using their own connectors that were exposing the motherboard testpoint connections directly to outside of the 3ds, and then having to connect that to an SD reader before connecting to a computer (or connecting to an SD slot on teir computer, which also requires they build a custom cable to achieve this. I also did this myself at first, using a Sparkfun brand microSD sniffer combined with a FFC cable plus corresponding connectors that I pulled from a dead printer.

    But when I used it I had to be careful since the FFC cable from the mobo to the sniffer was rather short, and it had to go into a card reader before going into a computer. So it was all very tedious to use. After a while the FFC cable's connector wore out and eventually broke after repeated use too. So this was a problem.

    Another problem I noticed was in regards to people using microUSB ports in their implementations. I liked the idea of using a microUSB port just like a lot of other consumer electronics, but they were just using a microUSB form factor port, connected directly to the 3DS mobo's eMMC testpoints, meaning SD protocol wa going over them, not USB, along with a custom cable with a USB plug at one end, connected to an SD adapter or reader. Also, the pinout depended on the pinout the modder decided to make for it. This could be dangerous is say, someone were to connect something that was actual USB to this port, as the setup is NOT USB. (I do not know the specifics of what would happen, but I certainly do not like the idea if accidentally connecting power directly to a data or signal line for my 3DS's NAND at any rate)

    I just so happened to have bought a few of these lovely super tiny microSD readers from DealExtreme, and being so small, I wondered if I could open it up and use the internal circuitry of this inside of my 3DS XL, in the same fashion as a modchip inside of any other console. So I ripped it open and found out that it does. The microSD reader's PCB sits quite nicely on top of the 3DS XL's NAND chip along with something to hold it there like blu-tak or glue.

    I did make a post about this tiny microSD reader back in the original 3DS XL Nand Dumping thread but it looks like it got buried though :lol: Dunno if people were interested in it or not.

    Anyways, I dediced to try out my idea for myself. using the info on 3DBrew, and in the nand flash dump (3ds xl) thread, along with some info about SD and USB from wikipedia, I put it all together. Sat the microSD reader PCB on top of the NAND chip, and the microUSB port in the corner, replacing one of the wrist strap connector things (they come out easily). When testing, it worked, blue boot error screen on 3DS and device showing on my computer.

    What I did notice though, was that because of this, the 3DS itself could not be used normally as the microSD reader was interfering with the 3DS's operation. The main task now was to be able to allow the 3DS to operate normally regardless of the microSD reader. I read here somewhere that people were saying that a reader's CLK signal will interfere with the 3DS's CLK signal, so I disconnected that signal line and tested to see if it would boot fine. Instead got bluescreen. Also disconnected CMD signal line, leaving only DAT lines and GND connected, and 3DS booted up fine. Also tested with CLK connected but CMD disconnected, but another bluescreen. So my conclusion from these tests was that BOTH CMD and CLK signals from the microSD reader interfered with the 3DS's signals.

    So I tried putting a switch in between the microSD reader and the 3DS mobo's testpoints on the CMD and CLK lines. I did not have any DPST style switches, so I had to use 2 SPDT switches I had and stick them together to use as one big switch, one on each of those signal lines. Tested it out... switches set to ON, and the 3ds showed bluescreen, and computer saw the reader and could read and write the NAND. Switches set to OFF, and the 3DS booted up fine and operated normally. Problem solved! I decided to sit those switches in the other wrist strap connector's position.

    And that is pretty much it. This way, the 3DS XL's eMMC NAND is accessible on a computer via USB. No custom cables or sockets, no need for a bulky card reader outside of the 3DS, no danger of damaging the 3DS itself using one cable and socket type to do something that it should not.


    Some Pros and Cons to this mod (that I can think of at time of writing):

    Pros:
    - Much cleaner mod, incorporates card reader into 3DS and does not disrupt normal operation when not in use
    - No need to open console every time to use it
    - No need to use fragile cables (like FFC) externally
    - No need to cut holes into original casing in order to avoid reopening it every time (unless you want to, in the case of preference for switch and USB port placement)
    - interfaces with computer via USB, no need for custom cables
    - also no danger of damaging 3DS NAND due to connecting USB device directly to SD testpoints

    Cons:
    - No direct low-level SD access to NAND for things that may need it (suc as Raspberry Pi for unbricking a GW Brick, would have to open 3DS up again instead)
    - Wrist strap connection points are no longer available, removed to fit USB port and switch (subject to your preference of where USB port and switch are placed)


    Here are some links and stuff:

    Parts:
    MicroUSB ports I used
    Had to cut off overhanging metal bits to make it fit into 3DS XL case, but the pin legs on these have a bit of length, making for an easier solder job.
    Switches I used
    Had to use two as I did not know I had to control two lines at the time of purchase. Perhaps a bettter DPST switch would be of better use.
    The lovely super tiny microSD card reader I used as the heart of this project
    I just love these things! Grab this reader, pull it apart, and remove the metal contacts that touch a microSD card, along with the plastic bit that goes on top of said pins, and the PCB is then ready to be soldered into the 3DS. Kinda like a modchip :lol:

    Information:
    USB Pinouts (Wikipedia)
    SD Pinouts (Wikipedia)
    ^ Look at "Four-Bit SD Bus Mode"
    3DS XL SD Testpoint pinouts (3DBrew)
    ^ GND can be either the giant point to left of testpoints in image, where Cart Slot Casing is held down to mobo, or where big points are unpopulated in bottom-right corner of image (top big point, not bottom one)

    Connection:
    - Pretty straightforward really. Just wire microUSB port to USB plug connector on microSD reader PCB and 3DS testpoints to microSD reader pads, both according to the SD, USB, and 3DS testpoint pinouts.
    - Make sure you have a switches on CMD and CLK lines, one each, or preferably one DPST switch to control both lines simultaneously.
    - USB points on reader are like a big USB cable plug, but on a PCB. SD points on reader are like a microSD card, just make sure not to get this part all upside-down!
    - Reader was held down on top of NAND chip with some Blu-Tak.
    - MicroUSB port was held in with hot glue.
    - Switches were stuck together with Blu-Tak to make one big switch and held in casing with some Blu-Tak and a small amount of hot glue (wwas not sure if glue would mess with switch's moving parts).


    Now for some pictures: (WARNING! Big Pictures in spoiler tags!)

    Main picture of the whole project completed:
    Warning: Spoilers inside!
    Switch close-up (not best image quality)
    Warning: Spoilers inside!
    MicroUSB port close-up
    Warning: Spoilers inside!
    Close-up of microSD reader connected to 3DS with some basic labelling
    Warning: Spoilers inside!
    3DS operating normally... (switches set to OFF)
    Warning: Spoilers inside!
    Turn 3DS off, push switches to ON with stylus... (cannot really see though...)
    Warning: Spoilers inside!
    Super happy fun time!!! (bluescreen on 3DS, NAND seen by computer, time to read/write)
    Warning: Spoilers inside!
    Read speed around 16-17 MB/s thanks to using all DAT lines (original mod topped at about 5 MB/s)
    Warning: Spoilers inside!
    Write speed is around 12.5 MB/s too
    Warning: Spoilers inside!

    ...and that is pretty much it!

    As always...
    Enjoy!
     
    adonreborn, Minnow, zeruel85 and 17 others like this.


  2. gamesquest1

    gamesquest1 Nabnut

    Member
    14,090
    9,424
    Sep 23, 2013
    nice work, i have actually ordered some of the micro USB ports, they where exactly what i have been looking for the standard ones seem much to frail for standard usage as they have nowhere to solder the shell to meaning the wires can easily be knocked loose with just a little bit too much force even when glued in place

    I had actually considered doing a mod like this but figured the "not being useful for unbricking" would be a pretty major issue, but i suppose if someone wants the mod just for switching between retail 7.x and 4.x it would be really handy

    I also warned people about the dangers of plugging a standard usb into the port by accident, and any mods i do i always wire the 5v connector to GND on the motherboard, this should mean that nothing "too bad" should happen if a usb cable or a charger is accidentally plugged in, but still i haven't tested the effects myself and it still wouldn't be recommended, but it at least takes the 5V going directly to the nand out of the equation, i have seen that many of the diagrams for people to follow wire the 5v leg to DAT0 or CLK.....which doesn't sound too safe in the case of goofs

    cool mod though, i was wondering if you "could" have used the extra 5th pin for the "switch" to trigger the mod, meaning you only needed the usb port without a switch
     
    damysteryman likes this.
  3. damysteryman
    OP

    damysteryman I am too busy IRL these days...

    Member
    1,190
    243
    Oct 4, 2007
    Yeah, that is exactly why I ordered them, despite the extra metal I needed to cut off.

    And yeah, that is mainly what I intend to use it for, switching between versions. I also like to make backups right before and right after a new update too. I am not exactly a chronic bricker, like uhh... some people might be... :ninja: (nice work on the GW bricking tests though BTW :) )

    And yeah, pretty much that, I think I have read some of your posts about that, at least it sounds safer than letting 5V go anywhere else at any rate, but I would not know any more details about it though

    And thanks man, and I was thinking that at one point too, but I am pretty doubtful... apparently USB protocol uses it to tell if the device acts as a USB host or device depending on whether or not it is shorted to Ground. Also the pin not being present on the standard-sized USB plug makes me think that the pin does not lead anywhere else otherwise anyway.
     
  4. Coto

    Coto GBAtemp Addict

    Member
    2,343
    397
    Jun 4, 2010
    Chile
    what can I say, good job, welcome to the party. And perform like 4 different nand dumps 8)
     
    damysteryman likes this.
  5. pelago

    pelago Member

    Member
    964
    46
    Feb 20, 2006
    Great mod. As gamesquest1 says, it would be great if this mod could somehow detect the presence of the USB plug without requiring the separate switch.

    If you could somehow put this all together onto a custom board, with pogopin connectors to the motherboard to leave no permanent traces, and sell it, I'm sure lots would buy it.
     
    emo kid 68 and cearp like this.
  6. HAFEDHBY

    HAFEDHBY Advanced Member

    Newcomer
    53
    0
    Jan 28, 2014
    Tunis, Tunisia
    what is the meaning it has a solution unbricking 3ds without a copy of nand without utlisation raspberry pi and without changing st sd card without welds,
     
  7. the-green

    the-green Advanced Member

    Newcomer
    71
    10
    Jan 14, 2014
    Antigua and Barbuda
    Nice job man
     
  8. gamesquest1

    gamesquest1 Nabnut

    Member
    14,090
    9,424
    Sep 23, 2013
    just
    nope its just for restoring nand backups, it wont work for unbricking, and it still requires soldering.....even more soldering actually

    its really only useful for someone who wants to switch between retail 7.x and 4.x quickly and more "safe" than the usb-SD mod as it has the card reader inside so any micro usb cable means it will connect to the pc

    sorry if this comes across wrong to the OP, but its not really that useful for what most people want the nand mod for, but it will be handy for people who want to actively use retail 7.x and 4.x to quickly switch between them....say if you started a game on retail nand and don't want to loose your progress by using it with emunand..or if you have bought any DSi games or have to re-download the gba ambassador games and cant use them in emunand
     
  9. lambstone

    lambstone No. Nyet. 不. Non. Nein.

    Banned
    615
    167
    Aug 14, 2011
    Yeah, if only there was a way to have your cake and eat it too.

    It's a pity you can't unbrick using this mod.

    I wondering if integrating a resistor to into the old micro usb method would be beneficial at all (in preventing accidental plugging in of charging cable
     
  10. HAFEDHBY

    HAFEDHBY Advanced Member

    Newcomer
    53
    0
    Jan 28, 2014
    Tunis, Tunisia
    can be a solution of a power port usb adapter you are connecting to nand
     
  11. gamesquest1

    gamesquest1 Nabnut

    Member
    14,090
    9,424
    Sep 23, 2013
    Sorry if I'm misinterpreting this but if you mean the 3ds usb chargers they will never be usable, the charging port only has 2 wires the mod needs a minimum of 4
     
  12. HAFEDHBY

    HAFEDHBY Advanced Member

    Newcomer
    53
    0
    Jan 28, 2014
    Tunis, Tunisia
    yes that's right
     
  13. Gadorach

    Gadorach Electronics Engineering Technologist

    Member
    952
    684
    Jan 22, 2014
    Canada
    Canada
    Just a suggestion, but why not also add one of the flex-cable SD card pieces to the wiring and fold it up for storage behind or beside the battery for easy access when required? it would make restoring and reading the NAND much faster, while also allowing for RPi unbricking when required, but otherwise out of the way. As your USB chip is only active when the switch is thrown, they wouldn't interfere with each other either.

    [​IMG]
     
  14. gamesquest1

    gamesquest1 Nabnut

    Member
    14,090
    9,424
    Sep 23, 2013
    there isn't really any space behind the battery to store stuff, a actual ribbon cable would be good but. Flat cables are actually to fat to fit behind/on top of the battery without making the back case bulge a little I imagine the SD card adapter would have a similar effect
     
  15. Gadorach

    Gadorach Electronics Engineering Technologist

    Member
    952
    684
    Jan 22, 2014
    Canada
    Canada
    It's not like they don't exist in ribbon cable form.

    [​IMG]
     
  16. The Real Jdbye

    The Real Jdbye Always Remember 30/07/08

    Member
    GBAtemp Patron
    The Real Jdbye is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    11,449
    4,764
    Mar 17, 2010
    Norway
    Alola
    Nice work, this is probably one of the nicest NAND Backup mods I've seen so far. Though I must admit I really like the idea of using a ribbon cable like above, so you could have the cable hidden under the battery lid until you need it and not have to mod the case.
     
  17. Gadorach

    Gadorach Electronics Engineering Technologist

    Member
    952
    684
    Jan 22, 2014
    Canada
    Canada
    I normally wouldn't pull a thread like this back from the dead, but seeing as this is becoming a relevant idea for those trying to get the updates for games and then switch back to 4.x for gateway online, I though it would be appropriate. I plan on doing this to my own console as well, so making it easier to find seems like a good idea for everyone interested.

    Also, as the USB reader is no longer listed on DX, this one is likely a good size to work with as well as far as the board size is concerned.

    http://www.dx.com/p/portable-usb-2-0-micro-sd-tf-card-reader-purple-197800

    Actually, I found the real one, and a site that supports Paypal too.

    http://www.onestop-e.com/consumer-e...au-c266-usb2-0-sd-sdhc-card-reader-white.html

    The model of the card is the Kawau C266, for anyone interested.
     
  18. Sciduck

    Sciduck Advanced Member

    Newcomer
    77
    21
    Apr 6, 2014
    Wondering whether you had to file the wrist strap holes a bit since a 4x5x8mm switch won't seem to fit so I don't know whether one of those microusb jacks will. Also how did you go about removing the overhanging bits from the ports and extracting the circuitboard from the reader? Last time I used a mini hacksaw on my metal plated switch to shorten it, it erm, didn't go so well.
     
  19. gamesquest1

    gamesquest1 Nabnut

    Member
    14,090
    9,424
    Sep 23, 2013
    you could just take them off with some tin snips.......or probably a pair of wire cutters would do it, they are pretty flimsy normally anyway,
     
  20. Sciduck

    Sciduck Advanced Member

    Newcomer
    77
    21
    Apr 6, 2014
    Damn, burnt through 9 microusb ports. Everytime I manage to solder everything on, one pesky joint comes loose after trying to force it into the lanyard hole. Those little legs are really brittle :(