Xiaomi MiWiFi Mini (MT7620) RAM and SD-Card Modding

Hello.
There is my first experience with BGA and first experience with replacing SoC and RAM.
I was buy broken Xiaomi Mi WiFi Mini router(I thought that only firmware issue, but I was wrong) it was determined that the device have burned SoC(it heating up more than 60C when the power was turned on, it was impossible to hold a finger).

In short, I bought a new processor on Ali, also i bought new DDR2 chips with a capacity of 256Mb.

In addition, since I was removing the SoC chip, I decided to lead the wiring for a SD-card interface.
Here is a photo report of what I did:

3 Likes

The next step is to check the SD card, because there was a risk that the wiring could not be soldered as it should.
Was soldered SD_D0, SD_D1, SD_D2, SD_D3, SD_CMD, SD_CLK, SD_CD, SD_WP pins.
My rare memory test card (16Mb :)) was successfully identified with a small nuance - all pins was soldered to sd-socket except SD_CD (Card Detect) and SD_WP (Write Protect), but as it turned out, that is necessary to use SD_CD as intended.
Those. these contacts were Float, and the card was not detected as soon as I was to touched SD_CD - the card was immediately determined.

Here is the log of the modified u-boot (to support 256Mb of memory and MSDC driver):

Log(click me to view)
Welcome to minicom 2.7.1

OPTIONS: I18n 
Compiled on Aug 13 2017, 15:25:34.
Port /dev/ttyUSB0, 18:49:29

Press CTRL-A Z for help on special keys



U-Boot 1.1.3�����ʠ26 2019 - 17:16:���

Board: MediaTek��PSoC DRAM: 256��B
enable ephy clock...done. SSC disab���ͮ��MediaTek SPI flash driver, SPI clock: 4z
spi d������id: ef 40 18 0 0 (40180000)
find flash: W25Q128FV堊�==========================================�����MediaTek6--------------������------------------------ 
ASIC 7620_MP (Port5<->N����琢�DRAM component: 2048 Mbits DDR, width 16
DRAM bus������it
Total memory: 256 MBytes
Flash component: SPI������
Date:Jan 26 2019 Time:17:16:20
===============⠽����======================== 
icache: sets:512, ways:4�����esz:32, total:65536 
dcache: sets:256, ways:4, lin����캳�, total:32768 

#### The CPU freq = 580 MHZ ###������stimate memory size = 256 Mbytes 

Please choose the operation: 
0:����� system code then write to Flash via Serial. 
1堺����� system code to SDRAM via TFTP. 
2: Load system̠�����then write to Flash via TFTP. 
3: Boot system c���㠠��a Flash (default). 
4: Enter boot command line ������ace. 
7: Load U-Boot code then write to Flash v�����rial. 
9: Load U-Boot code then write to Flash v�����TP. 

You choosed 4�������� 0 


4: System Enter Boot Command Line Int������. 

U-Boot 1.1.3 (Jan 26 2019 - 17:16:20) 
MT7620�堣��elp�荊�? - alias for 'help' 
bootm - boot applica������mage from memory 
cp - memory copy 
erase -������ SPI FLASH memory 
go - start application at �����ss 'addr' 
help - print online help 
loadb - ���������inary file over serial line (kermit mode) 
md �⠭����ory display 
mdio - Ralink PHY register R/W comm��䠡� 
mm - memory modify (auto-incrementing) 
msd㠭���dc verified command 
nm - memory modify (cons������ddress) 
printenv- print environment variables 
re����� - Perform RESET of the CPU 
rf - read/write r�����ister 
saveenv - save environment variables to per������t storage 
setenv - set environment variables 
tf������- boot image via network using TFTP protocol 
tftp䉠���ad the data by tftp protocol 
version - print moni������rsion 
MT7620 # msdc help 
Usage: 
msdc - msdc verified comma�䊍�� use "help msdc" for detail! 
MT7620 # help msdc 
msdc msdc usage: 
msdc card init������MC Card Init Test 
msdc card erase - SDMMC Card Er������st 
msdc card detect - SDMMC Card Detect Test 
msd������- SDMMC PIO Test 
msdc dma basic - SDMMC Basic DMA����� 
msdc dma desc - SDMMC Desc. DMA Test 
msdc dma e������ - SDMMC Enhanced DMA Test 
msdc cmd12 - SDMMC Aut����ı2 Test 
msdc blklen - SDMMC Blk Len Test 
msdc str������um] 

MT7620 # msdc card init 
[SD0] Bus Width: 1 
[SD0] SET_CLK(260kHz): SC�˨���kHz) MODE(0) DDR(0) DIV(47) DS(1) RS(1) 
[SD0] DAT CRC error (0x8000), Left:0/8 byt������FIFO:0 
[SD0] Abort: MSDC_FIFOCS=0h MSDC_PS=810f80������C_STS=0h 
[SD0] 32-bit PIO Read Error (2) 
���� Fail in SEND_SCR cmd 
Card Init Test fail! 
MT762����msdc card init 
[SD0] Bus ������ 1 
[SD0] SET_CLK(260kHz): SCLK(255kHz) MODE(0) DDҨ����IV(47) DS(1) RS(1) 
Card Init Test fail! 
MT7620 #�msdc card init���[SD0] Bus Width: 1 
[SD0] SET_CLK(260kHz������K(255kHz) MODE(0) DDR(0) DIV(47) DS(1) RS(1) 
[SD0] SD_SPE���D_SPEC3(0) SD_BUS_WIDTH=5 
[SD0] SD_SECU(2) EX_SECը����CMD_SUPP(0): CMD23(0), CMD20(0) 
[SD0] Bus Width: 4 
[SD0] Size: 14 MB, Max.Speed: 25�����Hz, blklen(512), nblks(29120), ro(0) 
[SD0] SET_CLK(25000kHz): SCLK(24000kHz) MODE(0) D�Ҩ���DIV(0) DS(1) RS(1) 
[SD0] Bus Width: 1 
[SD0] SET_CL˨����Hz): SCLK(255kHz) MODE(0) DDR(0) DIV(47) DS(1) RS(������rd In !
MT7620 # 

And here is the Openwrt log with the card reader enabled in the dts profile and kmod enabled modules to support the SD memory card (at the end of the log it detected the SD-card as soon as I touched the SD_CD pin):

Log(click me to view)
root@OpenWrt:~# dmesg
[ 0.000000] Linux version 4.14.93 (xubuntu@xubuntu) (gcc version 7.4.0 (OpenWrt GCC 7.4.0 r9082-3ccc0fdd9c)) #0 Sun Jan 20 18:01:12 2019
[ 0.000000] Board has DDR2
[ 0.000000] Analog PMU set to hw control
[ 0.000000] Digital PMU set to hw control
[ 0.000000] SoC Type: MediaTek MT7620A ver:2 eco:6
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019650 (MIPS 24KEc)
[ 0.000000] MIPS: machine is Xiaomi MiWiFi Mini
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 10000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x000000000fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000000fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000000fffffff]
[ 0.000000] On node 0 totalpages: 65536
[ 0.000000] free_area_init_node: node 0, pgdat 8048f8b0, node_mem_map 81000040
[ 0.000000] Normal zone: 512 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 65536 pages, LIFO batch:15
[ 0.000000] random: get_random_bytes called from start_kernel+0x8c/0x474 with crng_init=0
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0 
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 65024
[ 0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Writing ErrCtl register=00011430
[ 0.000000] Readback ErrCtl register=00011430
[ 0.000000] Memory: 254720K/262144K available (3652K kernel code, 168K rwdata, 852K rodata, 184K init, 207K bss, 7424K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 256
[ 0.000000] CPU Clock: 580MHz
[ 0.000000] clocksource: systick: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 583261500 ns
[ 0.000000] systick: enable autosleep mode
[ 0.000000] systick: running - mult: 214748, shift: 32
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns
[ 0.000010] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns
[ 0.007594] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[ 0.073553] pid_max: default: 32768 minimum: 301
[ 0.078274] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.084660] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.097906] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.107459] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.113439] pinctrl core: initialized pinctrl subsystem
[ 0.119049] NET: Registered protocol family 16
[ 0.385454] PCI host bridge /pcie@10140000 ranges:
[ 0.390073] MEM 0x0000000020000000..0x000000002fffffff
[ 0.395117] IO 0x0000000010160000..0x000000001016ffff
[ 0.419201] rt2880_gpio 10000600.gpio: registering 24 gpios
[ 0.424669] rt2880_gpio 10000600.gpio: registering 24 irq handlers
[ 0.431000] rt2880_gpio 10000638.gpio: registering 16 gpios
[ 0.436430] rt2880_gpio 10000638.gpio: registering 16 irq handlers
[ 0.442761] rt2880_gpio 10000660.gpio: registering 32 gpios
[ 0.448191] rt2880_gpio 10000660.gpio: registering 32 irq handlers
[ 0.455013] PCI host bridge to bus 0000:00
[ 0.458994] pci_bus 0000:00: root bus resource [mem 0x20000000-0x2fffffff]
[ 0.465609] pci_bus 0000:00: root bus resource [io 0xffffffff]
[ 0.471385] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[ 0.477951] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 0.485706] pci 0000:00:00.0: [1814:0801] type 01 class 0x060400
[ 0.485747] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x7fffffff]
[ 0.485762] pci 0000:00:00.0: reg 0x14: [mem 0x20200000-0x2020ffff]
[ 0.485847] pci 0000:00:00.0: supports D1
[ 0.485859] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[ 0.486320] pci 0000:01:00.0: [14c3:7662] type 00 class 0x028000
[ 0.486382] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit]
[ 0.486436] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[ 0.486544] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[ 0.486772] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[ 0.486790] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 01
[ 0.486840] pci 0000:00:00.0: BAR 0: no space for [mem size 0x80000000]
[ 0.493205] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x80000000]
[ 0.500030] pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x200fffff]
[ 0.506562] pci 0000:00:00.0: BAR 9: assigned [mem 0x20100000-0x201fffff pref]
[ 0.513595] pci 0000:00:00.0: BAR 1: assigned [mem 0x20200000-0x2020ffff]
[ 0.520180] pci 0000:01:00.0: BAR 0: assigned [mem 0x20000000-0x200fffff 64bit]
[ 0.527309] pci 0000:01:00.0: BAR 6: assigned [mem 0x20100000-0x2010ffff pref]
[ 0.534285] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 0.539126] pci 0000:00:00.0: bridge window [mem 0x20000000-0x200fffff]
[ 0.545696] pci 0000:00:00.0: bridge window [mem 0x20100000-0x201fffff pref]
[ 0.557675] clocksource: Switched to clocksource systick
[ 0.564040] NET: Registered protocol family 2
[ 0.569136] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.575884] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.582121] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.588434] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.594064] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.600475] NET: Registered protocol family 1
[ 0.604709] PCI: CLS 0 bytes, default 32
[ 0.607610] rt-timer 10000100.timer: maximum frequency is 1220Hz
[ 0.614383] Crashlog allocated RAM at address 0x3f00000
[ 0.621313] workingset: timestamp_bits=30 max_order=16 bucket_order=0
[ 0.633487] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.639149] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.659413] io scheduler noop registered
[ 0.663161] io scheduler deadline registered (default)
[ 0.669118] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[ 0.676340] console [ttyS0] disabled
[ 0.679865] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20, base_baud = 2500000) is a Palmchip BK-3103
[ 0.689485] console [ttyS0] enabled
[ 0.696518] bootconsole [early0] disabled
[ 0.705257] cacheinfo: Failed to find cpu0 device node
[ 0.710550] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 0.721697] spi spi0.0: force spi mode3
[ 0.736459] m25p80 spi0.0: w25q128 (16384 Kbytes)
[ 0.741347] 7 fixed-partitions partitions found on MTD device spi0.0
[ 0.747842] Creating 7 MTD partitions on "spi0.0":
[ 0.752740] 0x000000000000-0x000000030000 : "u-boot"
[ 0.758764] 0x000000030000-0x000000040000 : "u-boot-env"
[ 0.765018] 0x000000040000-0x000000050000 : "factory"
[ 0.771144] 0x000000050000-0x000000fd0000 : "firmware"
[ 0.780457] 2 uimage-fw partitions found on MTD device firmware
[ 0.786511] Creating 2 MTD partitions on "firmware":
[ 0.791651] 0x000000000000-0x00000017ff92 : "kernel"
[ 0.797639] 0x00000017ff92-0x000000f80000 : "rootfs"
[ 0.803572] mtd: device 5 (rootfs) set to be root filesystem
[ 0.811070] 1 squashfs-split partitions found on MTD device rootfs
[ 0.817403] 0x000000398000-0x000000f80000 : "rootfs_data"
[ 0.823929] 0x000000fd0000-0x000000fe0000 : "crash"
[ 0.829860] 0x000000fe0000-0x000000ff0000 : "reserved"
[ 0.835923] 0x000000ff0000-0x000001000000 : "Bdata"
[ 0.842620] libphy: Fixed MDIO Bus: probed
[ 0.857985] gsw: setting port4 to ephy mode
[ 0.862307] mtk_soc_eth 10100000.ethernet eth0 (uninitialized): port 1 link up (100Mbps/Full duplex)
[ 0.871902] mtk_soc_eth 10100000.ethernet: loaded mt7620 driver
[ 0.878697] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[ 0.887731] rt2880_wdt 10000120.watchdog: Initialized
[ 0.894214] NET: Registered protocol family 10
[ 0.902705] Segment Routing with IPv6
[ 0.906560] NET: Registered protocol family 17
[ 0.911246] 8021q: 802.1Q VLAN Support v1.8
[ 0.931025] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[ 0.939342] Freeing unused kernel memory: 184K
[ 0.943877] This architecture does not have kernel memory protection.
[ 2.537626] random: fast init done
[ 2.664926] init: Console is alive
[ 2.668813] init: - watchdog -
[ 4.759627] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 5.028175] usbcore: registered new interface driver usbfs
[ 5.033876] usbcore: registered new interface driver hub
[ 5.039492] usbcore: registered new device driver usb
[ 5.051099] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 5.059689] ehci-platform: EHCI generic platform driver
[ 5.075420] phy phy-usbphy.0: remote usb device wakeup disabled
[ 5.081489] phy phy-usbphy.0: UTMI 16bit 30MHz
[ 5.086050] ehci-platform 101c0000.ehci: EHCI Host Controller
[ 5.091974] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1
[ 5.100201] ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000
[ 5.113949] ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00
[ 5.121338] hub 1-0:1.0: USB hub found
[ 5.125705] hub 1-0:1.0: 1 port detected
[ 5.133045] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 5.141193] ohci-platform: OHCI generic platform driver
[ 5.146940] ohci-platform 101c1000.ohci: Generic Platform OHCI controller
[ 5.153957] ohci-platform 101c1000.ohci: new USB bus registered, assigned bus number 2
[ 5.162149] ohci-platform 101c1000.ohci: irq 26, io mem 0x101c1000
[ 5.195840] hub 2-0:1.0: USB hub found
[ 5.200177] hub 2-0:1.0: 1 port detected
[ 5.241231] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 5.252801] init: - preinit -
[ 6.753005] 8021q: adding VLAN 0 to HW filter on device eth0
[ 6.903762] random: procd: uninitialized urandom read (4 bytes read)
[ 8.154068] mount_root: loading kmods from internal overlay
[ 8.194108] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[ 8.202539] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[ 10.911567] jffs2: notice: (410) jffs2_build_xattr_subsystem: complete building xattr subsystem, 4 of xdatum (2 unchecked, 2 orphan) and 5 of xref (2 dead, 0 orphan) found.
[ 10.928298] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[ 10.945769] block: extroot: not configured
[ 12.612499] jffs2: notice: (408) jffs2_build_xattr_subsystem: complete building xattr subsystem, 4 of xdatum (2 unchecked, 2 orphan) and 5 of xref (2 dead, 0 orphan) found.
[ 13.623930] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[ 13.637319] block: extroot: not configured
[ 13.643509] mount_root: switching to jffs2 overlay
[ 13.681537] overlayfs: upper fs does not support tmpfile.
[ 13.698103] urandom-seed: Seeding with /etc/urandom.seed
[ 13.750095] procd: - early -
[ 13.754023] procd: - watchdog -
[ 14.377397] procd: - watchdog -
[ 14.380930] procd: - ubus -
[ 14.545273] random: ubusd: uninitialized urandom read (4 bytes read)
[ 14.562303] random: ubusd: uninitialized urandom read (4 bytes read)
[ 14.569367] random: ubusd: uninitialized urandom read (4 bytes read)
[ 14.576965] procd: - init -
[ 15.050859] kmodloader: loading kernel modules from /etc/modules.d/*
[ 15.064573] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 15.084399] Loading modules backported from Linux version v4.19.7-0-g61c68f2a2af0
[ 15.092118] Backport generated by backports.git v4.19.7-1-0-g148b072d
[ 15.103475] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 15.119438] nf_conntrack version 0.5.0 (4096 buckets, 16384 max)
[ 15.199021] xt_time: kernel timezone is -0000
[ 15.277375] mt76x2e 0000:01:00.0: card - bus=0x1, slot = 0x0 irq=4
[ 15.283987] mt76x2e 0000:01:00.0: ASIC revision: 76120044
[ 15.511578] mt76x2e 0000:01:00.0: ROM patch build: 20141115060606a
[ 15.523579] mt76x2e 0000:01:00.0: Firmware Version: 0.0.00
[ 15.529257] mt76x2e 0000:01:00.0: Build: 1
[ 15.533437] mt76x2e 0000:01:00.0: Build Time: 201507311614____
[ 15.548285] mt76x2e 0000:01:00.0: Firmware running!
[ 15.556517] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 15.581651] PPP generic driver version 2.4.2
[ 15.593388] NET: Registered protocol family 24
[ 15.669287] rt2800_wmac 10180000.wmac: loaded eeprom from mtd device "factory"
[ 15.676683] ieee80211 phy1: rt2x00_set_rt: Info - RT chipset 6352, rev 0500 detected
[ 15.684622] ieee80211 phy1: rt2x00_set_rf: Info - RF chipset 7620 detected
[ 15.692392] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 15.725555] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 17.223963] urandom_read: 5 callbacks suppressed
[ 17.223973] random: jshn: uninitialized urandom read (4 bytes read)
[ 25.827799] 8021q: adding VLAN 0 to HW filter on device eth0
[ 25.852475] device eth0 entered promiscuous mode
[ 25.862229] br-lan: port 1(eth0.1) entered blocking state
[ 25.867756] br-lan: port 1(eth0.1) entered disabled state
[ 25.873742] device eth0.1 entered promiscuous mode
[ 25.917488] br-lan: port 1(eth0.1) entered blocking state
[ 25.923088] br-lan: port 1(eth0.1) entered forwarding state
[ 25.929030] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[ 26.916991] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[ 40.526327] mmc0: new SD card at address 31bb
[ 40.532801] mmcblk0: mmc0:31bb S016B 14.2 MiB 
root@OpenWrt:~# 

The following will test the read/write speed on different cards with different class.

I only have 4-class and 6-class (there is a 10-class but alas, it is in use now), but I hope these tests will be enough.

detect_6class
write_read_4class
read_write_6class
cpu_load_write-read_while_process

As you can see, the reading speed is almost the same both in 4-class and 6-class (about ~20MB), but the write speed is different.

The SD-card is determined as removed even without use SD_CD pin.

Wow, I can't solder elements bigger than that chip's tiny pins :slight_smile: