Hola, voy a explicar los materiales necesarios, programas, esquemas y programacion para poder crear tu propio dongle. Empecemos.
-fotos viejas y evolucion-
Materiales:
Placa
Adafruit Trinket M0la puedes pillar entre 15 y 9€ en cualquier tienda online.
pcb para cargar bateria por microusb
TP4056unos 1,5€
edit. he visto que mi modelo viejo es mas pequeño, aquí dejo foto con los datos por si lo encontráis, es tan pequeño como el adafruit o mas:
Interruptor wifi de psp 1000 o
msk-12c02unos 1,2€
O también podéis usar un pulsador L/R de GBA (es lo que uso actualmente y es menos endeble que el interruptor)
bateria de lition de 3.7v, cuanto más pequeña mejor (yo he usado el de un joycon)
los de los
drones son muy pequeñas, de 150mah y valen 1,5€
cable para circuitos
30 awg rojo y negro
unos 10€ dependiendo de la cantidad de metros.
cable
lacado de 0.1mmunos 0.7€
pcb
usb c unos 5€ 10u
pistola de pegamento caliente, soldador, lupa iluminada con pinzas, pinzas, estaño, polimetro etc etc etc
Programas:
Usaremos Adruino IDE (la ultima versión) vale tanto en ubuntu como en windows. Con las librerías de la web de adafruit.
Un editor hexadecimal que permita copiar contenido en código c (creo que cualquiera puede hacer esto).
Los drivers de la placa para windows (en linux no hace falta).
Esquemas:
O también
los cables verde y amarillo serán los lacados finos.
El rojo positivo (+) y el negro negativo (-) o gnd.
Después de varias pruebas he comprobado que la consola manda una pequeñísima y breve corriente al entrar en el modo RCM, pero no he conseguido prescindir de la batería ni con condensadores ,tampoco he podido arrancar la consola desde el propio dongle, así que se seguirá usando v+ mas power (si alguien encuentra la forma que lo postee)
Programación:
tanto en windows como en ubuntu descargamos
Adruino IDE y lo instalamos.
aqui los pasos para instalar los drivers y librerías para que reconozca la placa.
drivers para windows, vamos, básicamente lo descargas y lo instalas jajajaja.
código fuente del programa que instalaremos.
https://github.com/atlas44/sam-fusee-launcherbueno, al lio.
abrimos Adruino IDE, la primera vez tardará un rato ya que tiene que configurarlo todo.
ahora abrimos preferencias y en "Aditional boards managers" ponemos esta dirección:
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
Ahora vamos a herramientas >> placa >> gestionar tarjetas.
ponemos en el buscado Adafruit e instalamos
Adafruit SAMD boards by Adafruit y
Arduino SAMD boards (si no no te dejará subir el código, no se por qué)
cuando termine (tarda un ratito) seleccionamos en placa
Adafruit trinket M0.
luego vamos a las librerías usbhost, vamos a programs>>incluir librerías>>gestionar librerías.
y en todo seleccionamos USBHost de Arduino
Ahora descargamos el código fuente del programa, puedes hacerlo así:
git clone --recursive https://github.com/atlas44/sam-fusee-launcher
o descargarlo desde la web. Una vez tengas los archivos vas a la carpeta del código, veras una carpeta llamada
src, la renombras por
main.
main.cpp lo renombras a
main.ino, el archivo payload.h por ahora no lo tocaremos.
volvemos a Arduino IDE. Abres main.ino
cambia #include <usb.h> por #include <
Usb.h>
ahora abre el payload.bin que quieras que cargue el dongle con un editor hex y seleccionas todo el código y le das a copiar como código c:
vamos otra vez a Arduino y seleccionamos la pestaña payload.h y pegamos el código después de
const PROGMEM byte fuseeBin[FUSEE_BIN_SIZE] = {tiene que quedar una cosa así
el fusee_bin_size
sera la longitud total de bits de vuestro payload por lo que deberéis cambiarlo al valor que corresponda.
Ahora le damos a verificar (icono de arriba a la izquierda) para ver que todo esta correcto y no da error de compilación.
si todo esta correcto te mandará este mensaje:
El Sketch usa 130268 bytes (49%) del espacio de almacenamiento de programa. El máximo es 262144 bytes.
ahora enchufamos el adafruit por usb al ordenador y pulsamos dos veces el botón reset (el único botón que tiene), se pondrá dos luces verde y una roja. si salen dos rojas y una verde es que algo va mal, desenchufalo y reinstala los drivers.
Si todo va bien te saldrá una unidad que pondrá
TRINKETBOOTy arduino IDE tiene que quedar así:
ahora le das en Arduino IDE a Programa >> verificar y compilar y cuando termine a Programa >> Subir (
no subir con
subir con programador!!)
si todo va bien te saldrá un mensaje como este:
Atmel SMART device 0x1001000a found
Device : ATSAMD21E18A
Chip ID : 1001000a
Version : v1.1 [Arduino:XYZ] Aug 23 2017 17:26:39
Address : 8192
Pages : 3968
Page Size : 64 bytes
Total Size : 248KB
Planes : 1
Lock Regions : 16
Locked : none
Security : false
Boot Flash : true
BOD : true
BOR : true
Arduino : FAST_CHIP_ERASE
Arduino : FAST_MULTI_PAGE_WRITE
Arduino : CAN_CHECKSUM_MEMORY_BUFFER
Erase flash
done in 0.828 seconds
Write 130540 bytes to flash (2040 pages)
[ ] 3% (64/2040 pages)
[= ] 6% (128/2040 pages)
[== ] 9% (192/2040 pages)
[=== ] 12% (256/2040 pages)
[==== ] 15% (320/2040 pages)
[===== ] 18% (384/2040 pages)
[====== ] 21% (448/2040 pages)
[======= ] 25% (512/2040 pages)
[======== ] 28% (576/2040 pages)
[========= ] 31% (640/2040 pages)
[========== ] 34% (704/2040 pages)
[=========== ] 37% (768/2040 pages)
[============ ] 40% (832/2040 pages)
[============= ] 43% (896/2040 pages)
[============== ] 47% (960/2040 pages)
[=============== ] 50% (1024/2040 pages)
[================ ] 53% (1088/2040 pages)
[================ ] 56% (1152/2040 pages)
[================= ] 59% (1216/2040 pages)
[================== ] 62% (1280/2040 pages)
[=================== ] 65% (1344/2040 pages)
[==================== ] 69% (1408/2040 pages)
[===================== ] 72% (1472/2040 pages)
[====================== ] 75% (1536/2040 pages)
[======================= ] 78% (1600/2040 pages)
[======================== ] 81% (1664/2040 pages)
[========================= ] 84% (1728/2040 pages)
[========================== ] 87% (1792/2040 pages)
[=========================== ] 90% (1856/2040 pages)
[============================ ] 94% (1920/2040 pages)
[============================= ] 97% (1984/2040 pages)
[==============================] 100% (2040/2040 pages)
done in 0.840 seconds
Verify 130540 bytes of flash with checksum.
Verify successful
done in 0.203 seconds
CPU reset.
y el adafruit se quedará con una luz morada y una verde, ya solo queda poner los cables como he puesto, conectarlo a la nintendo switch y listo.
Para que funcione enchufas el dongle, lo enciendes y pulsas en la consola el botón + de volumen y power.
aquí un vídeo de demostración (es oculto eh!)
https://youtu.be/aSYXSiAnzsYdejo video del nuevo mod
https://youtu.be/VX9FVALZGLk