DragonMMC - TriNAND, TriSD, Solderless Internal Payload Injector / Kickstand

DragonMMC replaces the stock MicroSD and NAND boards, and adds a slide switch to choose between up to 3 MicroSD cards/NAND modules. This slide switch protrudes slightly from the original MicroSD card slot, while a replacement kickstand houses 3 MicroSD card slots. Installation does not require soldering, but will require some disassembly of your Switch. All required tools will be included. Removal of the heat shield is currently required. Addons for the DMMC are planned, including fully internal Bluetooth audio streaming, and you can easily make your own thanks to the expansion connector and solderless USB passthrough. (Note that the DMMC itself has no USB capabilities and only passes the USB lines to the expansion connector.)

DragonMMC is modular, with 3 NAND module slots available. An adapter module for the OEM NAND is included. Extra NAND modules of 64GB and 256GB will be available on the web store. The modules are snap-in and do not require soldering. An MCU handles NAND module and MicroSD card detection, as well as safe switching. The slide switch can be moved at any time to change the desired NAND module and MicroSD card. A restart or power cycle of the console will be required to enact the changes. If the selected MicroSD slot or NAND module is empty, DragonMMC will look for the next populated slot and enable it instead.

DragonMMC will be based on the ESP32-PICO microcontroller. More info to come soon!
 
Last edited by MatinatorX,

Adran_Marit

Walküre's Hacker
Member
Joined
Oct 3, 2015
Messages
3,781
Trophies
1
Location
42*South
XP
4,551
Country
Australia
So if I get this one, can I still use the normal NAND (upgraded to 256gb). Do you have any planned prices for the NAND boards you would sell? I hope it's close to the 256 gb NAND board.

So long as your 256gb NAND is on an OEM board connector then you will just be able to plug it over into the DMMC OEM slot. Any additional modules need to be purchased, prices are yet to be known.

Each nand will have its own SD card slot linked to it and to swap you just flick a small switch.
 

MatinatorX

Hardware Developer
OP
Developer
Joined
Jul 17, 2018
Messages
366
Trophies
1
Website
www.dragoninjector.com
XP
2,538
Country
Canada
from what i understand it plugs into the nand and sd card modules and u insert the nand chips on it. and yes each of them can only be up to 256GB each

Ugh, so I guess I can't use this with my Switches since they're all 256gb and I'm not tiny soldering guy. Well I might consider this for a 4th switch I guess... lol but I will probably be better of using the 3rd Switch for Linux/Lakka and a 4th for just Android

The 256GB limit is just due to the fact there are no larger capacity chips out there. The moment a manufacturer decides to release a higher capacity eMMC 5.1 chip, I'll make some modules with them.

As far as using your existing upgraded NAND, that's no issue at all there. A lot of people will want to use their OEM NAND, upgraded or not, so I made an adapter board that can convert any of the three NAND module ports on the DMMC to something that accepts the OEM NAND. It's included in the main kit - check out the picture in the OP. The one caveat is the size - Ninty's eMMC boards is excessively large and will not fit in the same space as the DMMC, so instead I have to relocate it above the RF cover with an FFC cable.

--------------------- MERGED ---------------------------

is it that thing that sticks out of the sd card slot/kickstar area? If so can it slide back in when it's not needed?
The MicroSD board is the kickstand, though not yet pictured is the plastic cover for it that actually makes it look like a kickstand. The slide switch to select the desired NAND/MicroSD pokes out of the OEM MicroSD port, just enough you can change it but it won't hit the kickstand when closed. You won't hit it by accident and it won't get in the way.
 
  • Like
Reactions: wicksand420

Adran_Marit

Walküre's Hacker
Member
Joined
Oct 3, 2015
Messages
3,781
Trophies
1
Location
42*South
XP
4,551
Country
Australia
Rough pricing for the kit listed from the discord, and modules are more

upload_2020-3-21_11-55-5.png
 

MatinatorX

Hardware Developer
OP
Developer
Joined
Jul 17, 2018
Messages
366
Trophies
1
Website
www.dragoninjector.com
XP
2,538
Country
Canada
Can you explain me how solderless works, my switch cant currently ready micro sd cards, the connector on the motherboard is missing.

Will this use the test points to make the connection to the sd card reader or the connector?
Solderless is just for USB/payload injection, the DMMC requires your MicroSD connector on the Switch motherboard to be intact for MicroSD reading/switching. Sadly the test points for the MicroSD connections are far too small for some kind of solderless solution.

A damaged MicroSD connector seems to be a common issue, though I haven't heard of any that have fallen off completely. If the pads are still there and you know somebody who is good at microsoldering, it can be fixed pretty easily. I've gotten a few requests to fix them now from people who live close by. The part number is Molex 5042081610. I'll probably be offering them on my web store since they are hard to find, especially in sane quantities.

EDIT: Actually, it looks like my normal supplier on Aliexpress has started offering them in quantities of 10 for about $10 USD, which is much more reasonable for most people rather than the 100 minimum they had before. Just search for the part number there and you should find it.
 
Last edited by MatinatorX,

ShadyGame

Well-Known Member
Member
Joined
Sep 12, 2009
Messages
233
Trophies
1
XP
1,263
Country
Portugal
Solderless is just for USB/payload injection, the DMMC requires your MicroSD connector on the Switch motherboard to be intact for MicroSD reading/switching. Sadly the test points for the MicroSD connections are far too small for some kind of solderless solution.

A damaged MicroSD connector seems to be a common issue, though I haven't heard of any that have fallen off completely. If the pads are still there and you know somebody who is good at microsoldering, it can be fixed pretty easily. I've gotten a few requests to fix them now from people who live close by. The part number is Molex 5042081610. I'll probably be offering them on my web store since they are hard to find, especially in sane quantities.

EDIT: Actually, it looks like my normal supplier on Aliexpress has started offering them in quantities of 10 for about $10 USD, which is much more reasonable for most people rather than the 100 minimum they had before. Just search for the part number there and you should find it.
okay thank you very much
 
Last edited by ShadyGame,

MatinatorX

Hardware Developer
OP
Developer
Joined
Jul 17, 2018
Messages
366
Trophies
1
Website
www.dragoninjector.com
XP
2,538
Country
Canada
EDIT: Alright, got half of this solved thanks to Stuckpixel recommending some reflection suppressing 20 ohm resistors in parallel on the USB data lines. Can now see Switch in RCM even when USB lines are connected to DMMC, as long as it's not in bootloader mode. Still not able to see the DMMC in bootloader mode when the USB lines are connected to the Switch, though, even after injecting your payload. Not entirely sure why. Tried it with the stock Trinket M0 bootloader, same deal.

EDIT 2: This is looking more and more like just EMI and signal degredation. Powered the DMMC externally and unplugged the Switch's battery, so no way anything software could interfere. Same behavior - DMMC enumerates to PC in bootloader mode with USB lines to Switch disconnected, but fails to enumerate when they are. Currently doing a bunch of research on USB noise suppression with caps, chokes, etc. and possibly better routing of the traces on the board.

EDIT 3: Well now I have no idea why it won't work. cut the traces at the MCU and soldered 15mm wires directly to the pads on the Switch. Works fine without the reflection mitigation resistors now. DMMC can inject a payload fine. PC can see the Switch as an RCM device fine. However, PC still doesn't see the DMMC when it's in bootloader mode, either when the update payload has been injected, or when if the Switch is completely off and the DMMC is powered externally. Removing the USB wires from the Switch pads and hooking them up to the USB cable directly makes it pop up. Something on the Switch board is interfering, but I can't figure out what, and at this point there really should be no difference between the DMMC and the Trinket M0. I'm even testing with the stock Trinket M0 bootloader. Hopefully I can thing of something over the next few days. Mattytrog, if you read this, has anyone ever been successful using that update payload to kill USB on their Switch, put their modchip in update mode, and been able to see it fine on their PC?

@mattytrog Sorry to bug you kind sir, but I'm running into an issue testing the USB of the DMMC and I was wondering if you'd be willing to provide some insight into the matter as I'm starting to lose my mind. :P

Right now, as soon as I hook up the DMMC USB pins to the Switch USB pads, TegraRcmGUI fails to recognize my RCM mode console is connected. Device manager in Windows reports Unknown USB Device (Device Descriptor Request Failed). If I repeat the same action with the USB lines disconnected from the DMMC, it works great.

I observe this happening even when the DMMC is completely powered off and removed from the system, with only the USB pads remaining connected. Tried it with a board with no MCU present and did not experience the issue, so I know it's something to do with the MCU. Obviously the first thing to check would be the polarity of D+ and D-, so of course I did and it's fine. What's more, if I try to use the DMMC itself to inject a payload (with the USB cable removed from the Switch to my PC, of course) it works great, so there shouldn't be anything wrong with the USB lines physically.

Additionally, I can't get that SAMD21 update payload of yours to work. If I inject it using TegraRcmGUI (which I have to do with DMMC USB lines disconnected as outlined above) and then reconnect the DMMC to my PC through the Switch USB pads/port it shows up as the same Unknown USB Device (Device Descriptor Request Failed). From what I understand, at this point the DMMC should be the only thing using the USB bus. If I just solder a USB cable to the data lines on the DMMC instead of hooking them up to the test pads on the Switch motherboard, it works great, full access to bootloader etc, which would suggest the Switch is still using the data lines for something.

I do notice that when I inject your update payload to my Switch with no DMMC or anything extra connected at all, my PC still sees something on the bus. Given enough time, or if I unplug and replug the USB cable, I get the same Unknown USB Device (Device Descriptor Request Failed), again suggesting the Switch is still using the USB data lines somehow. From what you mentioned, I figured the USB bus should essentially be dead after it's injected. I was wondering what exactly your payload does, and if you ever found the source for it? If this behavior only happens with my Switch and is fine for everyone else, and there's nothing special/extra in your bootloader code, I really have to wonder what it is.

I had suspected something with pull-up or pull-down resistors, but when the DMMC is off and removed, with only the USB lines remaining connected, they are both open line to GND, VCC, and each other, yet it still causes my PC to not see a proper device. There should be no reason my PC can't properly see the Switch in RCM mode at that point, but it just doesn't see anything but that Unknown USB Device, and I have no idea why. Unplugging the USB lines from the removed, unpowered DMMC makes it show up properly again.

Anyways, I know that's a whole lot of "I have no idea what's going on this shouldn't be happening" so this is more me asking if you have encountered anything similar before, or if there's something you're doing in code that I'm missing. I've been poking around at signal reflection and a bunch of other unlikely stuff just to chase down any possible reason. Really almost seems to be a problem with my Switch or my PC at this point. Below is the code I'm using to put the MCU to sleep for some of the above tests, shamelessly lifted from your code:
 
Last edited by MatinatorX,

MatinatorX

Hardware Developer
OP
Developer
Joined
Jul 17, 2018
Messages
366
Trophies
1
Website
www.dragoninjector.com
XP
2,538
Country
Canada
If you've been following the Discord, you're likely aware that there's been a lot going on lately development-wise. For the rest of you, it's update time!

V1 prototype boards arrived a few weeks ago, and while there were definitely some problems with them, there were far less than I was expecting and testing went very well. Surprisingly, nothing was a showstopper - a few greenwires, bodged-in passives and some slight PCB trimming was all that was required to get past the issues and continue my testing. Thanks to that, the process was relatively quick and V2 boards are now on the way. For those curious, these are the fixes made for V2:

- Moved eMMC B2B connector 1.5mm right. (Oops.)
- Swapped slide switch to non-momentary version and moved down 1mm. (Damn you unclear datasheets!)
- Moved passives on NAND modules to avoid hitting PMICs. (Double oops.)
- Ordered thinner polyfuses.
- Redesigned solderless USB interface to use micro-springs instead of conductive Z-axis tape. (Z-axis tape + high speed data = traffic jam.)
- Moved OEM payload lockout switch so it's not covered by the FFC.
- Implemented proper differential/trace length matching and EMI/ESD/signal reflection mitigation. (Thanks @mattytrog!)
- Added I2C 10k pull-up resistors. (Really should have remembered these on V1...)
- Lengthened SD board pads, moved left 0.5mm. (Worked, but needed improvement.)
- Ditched expensive crimp-style USB board connector for FFC connector.
- Made shielded FFC cables. Added grounding tab for shielded FFC cables.
- Upgraded eMMC to MicroSD adapter to an eMMC to USB adapter.
- Added 3.3v to 5v boost converter so PMIC supply is actually enough to fully saturate internal MOSFETs and not cap the NAND supply at 3.0v.

There are two big things in that list, the first being the redesigned solderless USB interface board. I knew that there was a high probability that the Z-axis conductive tape wouldn't work, but there wasn't really a great alternative I could find at the time. Due to space constraints, everything from EMI leaf springs like you'd find in phones, to pogo pins, to battery contacts were all too large to fit. Thankfully, after a few hours of failure-motivated component research, I came across these solderable micro-springs. They looked like a perfect fit... right up until I saw that their main customer was NASA, and subsequently heard my wallet scream from across the house. I yelled out some half-hearted encouragement to it and emailed them anyways. They next day I was surprised to find that they had agreed to a minimum order quantity of 1000, after I confirm they work using the free sample of 10 they proceeded to ship me. Nice! :lol: (I got the gold plated 0.5mm diameter, 1.27mm tall ones. Bit expensive at $0.90 USD per spring, but still well worth it if they work!) The new interface board uses the screws on the Switch USB port connector for easy alignment.

The second big thing is the upgraded eMMC to USB adapter, previously an eMMC to MicroSD adapter. In my testing I found that while the old adapter worked great on my PC, the Switch did not like reading eMMC chips through it's MicroSD slot. It has since been suggested there might be a way to make it work, but that the amount of effort it would involve far outweighs the benefits. Disappointing, but even if it did work, there was no guarantee an on-console solution for these kinds of eMMC operations would ever see the light of day. Armed with that knowledge, I decided to just upgrade the adapter to a proper USB reader. As with the previous design, the adapter can accept both an OEM NAND module and a DragonMMC module (though not both at the same time). Unlike the previous design, you won't need to find your own MicroSD reader with eMMC capabilities, nor will you be limited to the slow transfer speeds of a 4-bit MicroSD bus. The new adapter is USB 3.0 and supports full the 8-bit eMMC bus width at 104 MB/s DDR rates. (HS200 or HS400 would have been even better, but the only controllers I could find that would support this were the GL3224E and GL3227E and I couldn't find anywhere that would sell them in quantities under 10K. This adapter uses the GL3233, easily obtained through LCSC.)

EAGLE mockups of both boards are attached. Shouldn't be too long before V2 testing is underway, so the next update should be much sooner than this one was! :D

Adapter_Board.png USB_Board.png
 
Last edited by MatinatorX,

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,360
Trophies
1
XP
3,281
Country
@MatinatorX
I dunno if you solved the USB issues properly yet but it probably helps knowing the USB data lines are differential pairs. They must always be equally long and next to each other. Otherwise noise will cause problems. It probably also helps surrounding the 2 traces by ground everywhere.
 

MatinatorX

Hardware Developer
OP
Developer
Joined
Jul 17, 2018
Messages
366
Trophies
1
Website
www.dragoninjector.com
XP
2,538
Country
Canada
@MatinatorX
I dunno if you solved the USB issues properly yet but it probably helps knowing the USB data lines are differential pairs. They must always be equally long and next to each other. Otherwise noise will cause problems. It probably also helps surrounding the 2 traces by ground everywhere.
All data lines are now differentially matched to within 0.001mm, and surrounded by grounds/ground pours. The USB lines now have 20 ohm termination resistors, EMI reduction capacitors and chokes, and ESD protection diodes. I'm using a special IC and common mode choke meant for exactly that.
 

Timburpton

Well-Known Member
Member
Joined
Nov 18, 2014
Messages
648
Trophies
0
Age
46
XP
580
Country
Just throwing this out there, is there a possibility of RAID? Would be awesome to have a 2x512gb SD card set up in RAID
 

pcwizard7

Well-Known Member
Member
Joined
Aug 2, 2013
Messages
1,409
Trophies
0
XP
1,688
Country
Australia
Just throwing this out there, is there a possibility of RAID? Would be awesome to have a 2x512gb SD card set up in RAID

we talking raid 0 or 1 to span or mirror. and the switch can only use certain emmc that only goes up to 256GB but a good idea.

have to add hardware module for raid or do it in software
 

Timburpton

Well-Known Member
Member
Joined
Nov 18, 2014
Messages
648
Trophies
0
Age
46
XP
580
Country
we talking raid 0 or 1 to span or mirror. and the switch can only use certain emmc that only goes up to 256GB but a good idea.

have to add hardware module for raid or do it in software

I thought we could only use a NAND chip up to 256gb simply due to the fact that you can only commercially purchase 256gb nand chips?
 

lordelan

Well-Known Member
Member
Joined
Jan 4, 2015
Messages
5,787
Trophies
1
Age
44
XP
6,518
Country
Germany
Without reading through all pages (at some point I most likely will though :D ) please tell me that this is still a thing?
I was thinking about this project every now and then and hope it gets released.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Maximumbeans @ Maximumbeans: butte