100%
switch2-sdex2m2 MicroSD Express Sniffer view
Description

Imported from GitHub: NVNTLabs/switch2-SDEX2M2 · commit d2805ec · license GPL-3.0

Description

Micro SD Express to M.2 NVME Adapter for Nintendo Switch 2

README

NVNT's SDEX2M2 (MicroSD Express to M.2) Adapter Project

image

SDEX2M2 (MicroSD Express to M2) is an adapter for the Nintendo Switch 2 which converts the MicroSD Express slot to a NVME M.2 (M-Key) slot. Think MicroSD Express cards are difficult to find or expensive? Looking to expand your storage for cheaper? Just use the NVME M.2 SSD that you have, and/or can easily find! The project is open source hardware under the GPLv3 License.

This project also encompasses the sister-project of "MicroSD Express to SD Express" adapter, which is a pin-to-pin conversion kit allowing full size SD Express cards to be used on the Nintendo Switch 2.


📚 Table of Contents


How is this possible?

This is possible because the Nintendo Switch 2's MicroSD Express slot supports the SD Express 7.1 standard, which exposes a true PCIe Gen3 x1 interface and utilizes the NVMe protocol for communication.

This adapter simply maps PCIe x1 from the Switch 2’s MicroSD Express slot to a standard M.2 2230 NVMe SSD. After further research and review from users, an onboard mcu/fpga will be required for the handshake process with the Switch 2.

Currently, we've developed a sniffer board which will be used to facilitate this.


Goals

  • ✅ Create Pinout & Pin Definitions (UPDATED!)
  • ✅ Create Footprints for MicroSD Express
  • ✅ Create Schematic for PCB layout
  • ✅ Create Dummy MicroSD Express Card V2
  • ✅ Create M.2 Breakout for prototyping (Updated 2-layer PCB)
  • ✅ Create MicroSD Express Breakout Board V0.1 (Updated 2-layer PCB)
  • ✅ Create MicroSD Express to SD Express Adapter (Experimental, Updated 2-layer PCB)
  • ✅ Create BOM for fabrication and sourcing (WIP)
  • ✅ Create MicroSD Express to NVMe M.2 SSD Pin to Pin Adapter (Proof of concept)
  • ✅ Create basic 3D printable enclosures/shells for the PCBs
  • ✅ Create MicroSD Express Sniffer PCB for capturing Nintendo Switch 2 Handshake (for getting NVMe drives to be functional!)
  • ✅ Update MicroSD Express Sniffer PCB with new components and better grounding
  • 🔲 Create MicroSD Express to NVMe M.2 SSD Adapter with FPGA/MCU Proto (for handshake with Nintendo Switch 2) (in progress)
  • ✅ Create MicroSD Express to Flex Cable Adapter
  • 🔲 Create Flex Cable to NVMe Adapter (in progress)
  • 🔲 Create MicroSD Express to NVMe M.2 SSD Dock (in progress)

Status

Work in progress. Currently, a prototype with handshake capability with the Switch 2 and also designs for the final product design are being worked on.

An early proof of concept prototype of the SDEX2M2 MicroSD Express to NVMe M.2 SSD Adapter has been made, but it does lack Switch 2 compatibility.

For prototyping, a new MicroSD Express sniffer has been uploaded which is used for capturing the signal/handshake that the Nintendo Switch 2 uses for communicating with the MicroSD Express card. With this, we are one step closer to our goal!

Additionally, production-ready 2-layer PCBs for the MicroSD Express breakout board, NVMe breakout board, and the MicroSD Express to FPC Connector (which may be used in the final design) have been uploaded.

The MicroSD Express to SD Express adapter production ready prototype board has been uploaded as well, for users with full-size SD Express cards.

Basic 3D printable shells have been added too, for convenience.


Warnings

  • Use at your own risk. We are not liable for any damage to your drive, Switch 2, or other devices.
  • Only use low-voltage, low-power M.2 2230 NVMe drives.
  • Do not use this in legacy MicroSD slots (e.g., original Nintendo Switch).

Bill of Materials (BOM)

ReferenceQuantityDescriptionPart NumberManufacturer
J21M.2 Socket (M-Key, 2230)114020Amphenol
FB11Ferrite Bead 220Ω@100MHz 0603BLM18PG221SN1DMurata/OEM
PCB14-Layer PCBN/AFabricated
*110kΩ – 100kΩ Pull Up Resistor (Optional)N/A*

The optional resistor is for the PERST# lane, may help with state when idle. Not sure if needed until prototyping commences.


PINOUT & LEGEND

MicroSD Express to M.2 NVMe Mapping

microSD Express PinPCIe FunctionM.2 M-Key Pin(s)M.2 Function
7 (Row 1)REFCLK+B10REFCLK+
8 (Row 1)REFCLK−B11REFCLK−
2 (Row 1)PERST#A11PERST#
1 (Row 1)CLKREQ#B8CLKREQ#
11 (Row 2)TX+B23PCIe TX+
12 (Row 2)TX−B24PCIe TX−
14 (Row 2)RX-A21PCIe RX+
15 (Row 2)RX+A22PCIe RX−
4 (Row 1)3.3V VDDB2, B3, B43.3V Power
6, 10, 13, 16GNDA1, A4, etc.Ground

M.2 NVMe Pinout

PinNameFunction
A11PERST#PCIe Reset
A21RX+PCIe RX+ (to host)
A22RX−PCIe RX− (to host)
B10REFCLK+PCIe Reference Clock +
B11REFCLK−PCIe Reference Clock −
B23TX+PCIe TX+ (from host)
B24TX−PCIe TX− (from host)
B2–B43.3VPower Supply
A1, A4GNDGround Pins

MicroSD Express Pinout

In SD Mode &* PCIe Mode

PinRow 1 ContactSD Mode FunctionPCIe Mode Function
1DAT2Data Line 2CLKREQ# (Power / Signal Mgmt)
2DAT3 / CDData Line 3 / CDPERST# (Reset)
3CMDCommand LineCMD (unused in PCIe mode)
4VDD3.3V Power3.3V Power
5CLKClock LineCLK (unused in PCIe mode)
6VSSGroundGround
7DAT0Data Line 0REFCLK+ (PCIe Ref Clock)
8DAT1Data Line 1REFCLK− (PCIe Ref Clock)
PinRow 2 ContactPCIe Function
91V81.8 Volts
10VSS2Ground for isolation
11TX+PCIe TX+ (Transmit)
12TX-PCIe TX- (Transmit)
13VSS3Ground for isolation
14RX-PCIe RX- (Receive)
15RX+PCIe RX+ (Receive)
16VSS4Ground for isolation
171V21.2 Volts

Please note: Row 2 is only operational in PCIe Mode. Row 2 is based on M1cha's (https://github.com/M1cha/sdexpress_pcbs) schematic.


MicroSD Express Card to SD Express Slot Pinout

MicroSD Express PinFunction (PCIe Mode)SD Express Slot PinFunction in Slot
1 DAT2CLKREQ#51CLKREQ# (Power / Signal Mgmt)
2 DAT3 / CDPERST#52PERST# (Reset line)
3 CMDCMD (unused)CMD (unused in PCIe mode)
4 VDD3.3V VDD18, 48VDD
5 CLKCLK (unused)
6 VSSGND (VSS1)17, 47, 49, 50GND
7 DAT0REFCLK+45REFCLK+
8 DAT1REFCLK−46REFCLK−
9 1V81.8V VDD (VDD2)1, 2, 3 (often shared)VDD 1.8 Volts
10 VSS2GND (VSS2)17, 47, etc.GND (GND Ground for isolation)
11 TX+TX+39PCIe TX+ (Transmit)
12 TX-TX−41PCIe TX- (Transmit)
13 VSS3GND (VSS3)17, 47, etc.GND (Ground for isolation)
14 RX-RX−35PCIe RX- (Receive)
15 RX+RX+37PCIe RX+ (Receive)
16 VSS4GND (VSS4)17, 47, etc.GND (Ground for isolation)
17 1V21.2V VDD (VDD3, optional)Not used (May be unused)

Note: WIP


Wiring Schematic

image

Still a WIP. Some discrepencies may exist.


MicroSD Express Dummy Card

A dummy card has been created (thanks to M1cha's design examples!), for reference. Files have been attached.

image


MicroSD Express to FPC Flex Cable Connector

A MicroSD Express to Flex Cable Connector (FPC) has been created for reference. Schematic, Geberer and PCB files have been attached.


MicroSD Express Breakout Board

A production-ready 2-layer breakout board for MicroSD Express has been created (codenamed: "The Key"). Files have been attached in the repo. The purpose of this is for prototyping with a breadboard.

image


NVMe M2 SSD Breakout Board

A breakout board for a NVMe M.2 SSD slot (M-key) has been created. Files have been attached in the repo. The purpose of this is for prototyping with a breadboard.

image


MicroSD Express to SD Express Prototype Adapter

An extremely experimental production ready MicroSD Express to Full Size SD Express Slot adapter has been made. The purpose of this is to allow full size SD Express cards to be inserted into the Nintendo Switch 2.

Please be aware that it is untested as of the time of writing.

image


SDEX2M2 MicroSD Express to NVMe M.2 Prototype Pin-to-Pin Adapter

A production-ready (but experimental) 2-layer PCB for the SDEX2M2 MicroSD Express to NVMe M.2 adapter has been uploaded.

Please note that this is a pin-to-pin adapter, and is not capable of completing the handshake with Nintendo Switch 2. It is a proof of concept board.

image


MicroSD Express Sniffer

Newly updated!

A experimental PCB MicroSD Express sniffer has been uploaded and updated. This is used for capturing the handshake signal/commands from the Nintendo Switch 2, which will be used to create the final SDEX2M2 Switch 2 NVME M.2 Drive Adapter.

Now updated to use an Amphenol MicroSD Express Slot and with updated grounding for better signal isolation.


License

This hardware design is licensed under the CERN Open Hardware License Version 2 – Strongly Reciprocal (CERN-OHL-S v2).

The software/firmware design is licensed under the GNU General Public License v3.0 (GPLv3)

The documentation and readme is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0).

See LICENSE, LICENSE-HARDWARE and LICENSE-DOCUMENTATION for more information.


Comments
Sign in to comment

No comments yet. Be the first to ask about this board.