Tutorial  Updated

Internal modchip - SAMD21 (Trinket M0, Gemma M0, ItsyBitsy M0 Express) Guide, Files & Support

Notice: I am not receiving notifications for this thread. I didn`t realise people were still posting in it.

Please please accept my apologies if I haven`t replied to tags etc... I have no idea what is happening. I`m subscribed to this thread but I am not receiving notifications. Please inbox me if possible. Or tag me in another thread.

Its amazing that people are still checking all of this out. I thank you for all of the help and support I have received in this thread over this year.

Cheers. Matty.


A video showing a modchip in action. Thank you once again to @metaljay for providing this. This is what you can achieve by fitting a chip!



Section 1. Gather your software.

Get your chip software from THIS THREAD.
Follow the flashing instructions there...




Section 2. Removing USB port and unneeded LEDs. (Adafruit chips only)
  • Next, we need to remove the USB port from the modchip. I recommend a heatgun or a rework station. Heat up until the USB port just lifts off the modchip.
  • Do the same for the LED just to the right of the USB port.
See picture:
20181031_110415.jpg


You are now ready to fit your device. Proceed to Fitting section.





Section 3. Fitting modchip to your Switch.
New Universal Method. All SAMD-based internal chips. If your chip is not supported and you cannot work it out, PM me.

Trinket M0.
Solder as laid out in the following picture

trinketfinal.jpg

==================================================
Rebug SwitchME M0. Use Trinket files.
Solder as laid out in the following picture

rebugfinal.jpg

==================================================
RCMX86 - Internal modchip version.
Solder as laid out in the following picture

RCMX86-Internal-Final.jpg


==================================================
Gemma M0. Use Gemma files.
Solder as laid out in the following picture


gemma final.jpg

==================================================
ItsyBitsy M0 Express. Use ItsyBitsy files.
Solder as laid out in the following picture

itsybitsyfinal.jpg




==================================================
Feather M0 Express. Use Feather files.
Solder as laid out in the following picture

feather_final.jpg




BUILD YOUR OWN FROM A QFP ATSAMD21E18. Trinket equivalent pins.
Flash Trinket bootloader using OpenOCD via serial pins SWDIO / SWDCLK. Fit a reset switch somewhere... Or going to power / wake (aka method 2). If building for external use, it is good practice to fit a third capacitor between 3V & GND. This is deliberately vague and ambigious, as this needs research and you need to know what you are doing.

Link for setting the Pi up with OpenOCD: HERE
Raspberry Pi OpenOCD image in downloads section or HERE
SAMD pi connection.png



Alternative Solder Points

Credit to @consolex for original pic. I`ve added alternative points to solder to:
Alternatepoints.jpg


Credit to @pyorin for this much tidier version showing the same info as the above one!
Alternatepoints2.jpg

s-l1600.jpg

alternative3v.jpg




Replacement Parts List

Ok... So you have damaged your switch soldering your chip in. Not to worry.

First things first, DO NOT BRIDGE THE CONTACTS HOPING TO REVIVE YOUR SWITCH. With resistors, you may possibly get away with this, but with the capacitors listed below, if you jump these points, you will make a nice short-circuit to the PMIC and / or the M92T36, killing them instantly. Don`t do it.

OK... I`ll list these parts with METHOD 2 & 3 TRINKET PIN NUMBERS and the values of the components they solder to.

TRINKET 3V (POWER SUPPLY) - 2.2uF 0402 size MLCC capacitor. Voltage unimportant as long as it is over 6.3v
TRINKET PIN 2 (POWER ON RESET - goes to pin 5 on M92T36)- 4.7uF 0402 size MLCC capacitor. Voltage unimportant as long as it is over 6.3v
TRINKET PIN 0 (VOL+) - 150R (150 ohms) 0201 Thick Film resistor. 50mW
TRINKET RESET (SWITCH POWER BUTTON) - 150R (150 ohms) 0201 Thick Film resistor. 50mW


I recommend RS components.

FAQ

Q - How do I boot the switch into APX (RCM) mode?

A - You need to short out pin 10 on the right joycon rail to GND with a jig or modded joycon or paperclip (not recommended... Buy a jig you cheap-ass gyppo). Once shorted out, hold down vol+ and power. The switch screen should be off... Plug into your PC and it should recognise a APX device. Well done. You are in RCM.

Q - What glue should I use?
A - Only glue if necessary! Ideally if your soldering is of sufficient quality and your wire is thin enough, you don`t need glue. I use a bit because I am OCD. Anyway, use Epoxy. It`s what I use. Gives you some working time, is solid. Superglue makes a mess DO NOT USE SUPERGLUE. The only thing super about it is how it melts things. Epoxy won`t stick to the shield long-term, so bear that in mind. Pure Acetone will remove epoxy. Acetone tends to remove / melt anything to be warned. CHECK YOUR GLUE WON`T GO CONDUCTIVE OVER TIME - LOOKING AT YOU SCAMSUNG! The combination of heat cycles and absorbing of moisture can turn adhesive into a high-impedance connection!

Q - What size wire should I use?
A - I use AWG40 magnet wire or AWG30 Kynar. AWG40 goes onto components easier... And if you snap it, chances are the wire will snap and not the trace / component.
A2 - You can also use AWG30. I recommend Kynar wrapping wire but any will do. Looks nice, good resistance to elements, tidy. Nothing thicker than AWG30. You are just causing yourself more headaches. Trust me.

Q - Is AWG40 thick enough?
A - Yes. AWG40 is good for around 90mA.

Q - which methods do you recommend?
A - Connect all the straps...

Q - how do you recommend to set it up?
A - Fusee Suite. Search for Fusee Suite or go to link at top of this OP.

Q - My switch is flat and won't turn on.
A - Have you got the charger connected? Disconnect it or your switch won't boot! Boot to a payload (SX loader/Hekate), reconnect charger and leave on the payload menu and charge. Leave for 15 minutes and switch will start normally. It will continue charging one booted.

Disclaimer:
You have only yourself to blame. This voids warranty. This may or may not get you banned from online services. If it does, you got yourself banned. I`m not responsible if you kill your switch / your first-born with any of this in this post. I`m not infalliable. I`m partly senile. Do your own research. Kids, get bill payers permission before you attempt even using a screwdriver.
NUTSHELL: Don`t come having a go at me because you fooked your £300 console up. I`ll do my best to help you though if you do, Just don`t blame me.

Credits to Quantum-Cross, Atlas44, @Ninoh-FOX , @jcrorxp , @tecfreak, @mooglazer, @subcon959, @64Dp128k, @mikeleuskaldunak, @M-O-B, CTCaer, @evilsperm, @consolex and everyone else for valuable input.


IF YOU REQUIRE SUPPORT, IF YOUR CONSOLE ISN`T WORKING CORRECTLY... PLEASE POST A HIGH RESOLUTION PICTURE OF YOUR INSTALL. You might think it isn`t your soldering, but in all cases with the new methods, it is bad soldering. So, please post a picture.


A BRIEF WARNING - PLEASE READ
THIS MOD IS NOT FOR THE FEINT OF HEART. WE ARE SOLDERING TO TRACES AND COMPONENTS ON THE FRONT SIDE OF THE BOARD TO SAVE HAVING TO REMOVE THE BOARD AND SOLDER TO TESTPOINTS. IF YOU ARE STRUGGLING, OR THINK YOU ARE GOING TO STRUGGLE, PLEASE PLEASE SOLDER TO THE TEST POINTS NOTED IN THIS AND OTHER THREADS (YOU WILL NEED TO REMOVE THE MOTHERBOARD). DOUBLE - TRIPLE CHECK EVERYTHING. YOU HAVE BEEN WARNED!!!
Good soldering skills are needed!
A magnifying glass is needed!
Good soldering iron needed - ideally with a 0.3 conical tip. No more than 30w!
SECURE YOUR WIRES PRIOR TO SOLDERING. Stick them down with double-sided tape.
Only use glue if you need to and glue wires after soldering. Don`t glue the solder to the component!
Put the tiniest amount of glue on the PCB mask only. Never on components. Use a cocktail stick for more glue control!!!
Take a look at alternative solder points to get you out of the sh*t if you do rip something off the board
If you aren`t the best at soldering, then think very carefully about connecting to pin 6 capacitor (the one in these new methods). If you rip this pad, you WILL NEED TO REMOVE YOUR BOARD and run from a testpoint.
 

Attachments

  • Trinket equivalent.png
    Trinket equivalent.png
    118 KB · Views: 3,793
Last edited by mattytrog,

mattytrog

You don`t want to listen to anything I say.
OP
Member
Joined
Apr 27, 2018
Messages
3,708
Trophies
0
Age
48
XP
4,328
Country
United Kingdom
and then a SX OS update releases and it fucks the crack

Lol how? If it "fucks the crack" in this, then it will f*** up every device we use to launch the payloader.

Impossible...

EDIT - Oh you mean the cracked SX os itself? My bad. I guess the cat and mouse game will continue
 
Last edited by mattytrog,

skydancer93

Well-Known Member
Member
Joined
Mar 16, 2015
Messages
585
Trophies
0
Age
30
XP
1,982
Country
United States
Very quick one...

Evening ladies and gents. Bit hesitant calling it a "release"... It is just an Ardudildo sketch with the loader payload added. I`ve added Dotstar support and different payloads. Still a WIP. Credits to all in that thread who have been involved in the Trinket M0.

If you have a trinket M0, then flash this in bootloader mode and it will give you the SX loader on the device. Or Hekate 2.3 depending on which binary you flash.

If you don`t know what a trinket is, its a cheap SAMD microcontroller with USB host mode.

Double press RESET button to get into bootloader mode and drag and drop contents of the archive you choose from below. You will find 3 files inside.

So, in your TRINKETBOOT drive, you should have CURRENT.UF2, INDEX and INFO_UF2.TXT. Not in folders, just dumped to the root of the TRINKETBOOT drive.

More info in https://gbatemp.net/threads/build-your-own-dongle-research-and-development-thread.504633/

EDIT: - Added Hekate payload to sketch binary :)
EDIT EDIT: - Uploaded UF2 files so no need to install Ardudildo. Just drag and drop onto the drive. Yes I should have thought about this before. But it was 1am. And I was drunk.

So before I grab this, all I need to do is get the Trinket M0 board and then just plug it in to my PC and copy the sketch and SX Loader files over? I don’t need anything else to program it?

Then I just use a USB A to USB C wire from the board to the Switch?
 

mattytrog

You don`t want to listen to anything I say.
OP
Member
Joined
Apr 27, 2018
Messages
3,708
Trophies
0
Age
48
XP
4,328
Country
United Kingdom
So before I grab this, all I need to do is get the Trinket M0 board and then just plug it in to my PC and copy the sketch and SX Loader files over? I don’t need anything else to program it?

Then I just use a USB A to USB C wire from the board to the Switch?

No. Forget the sketch file. That's if you want to make your own. Just drag and drop the three files that are inside your chosen archive as I said in OP. That is all

So for example, you have a fresh virgin trinket... Download sxloader_trinketm0, look inside the download and there will be three files. Extract and drag and drop. Done :)
 
Last edited by mattytrog,

mattytrog

You don`t want to listen to anything I say.
OP
Member
Joined
Apr 27, 2018
Messages
3,708
Trophies
0
Age
48
XP
4,328
Country
United Kingdom
What kind of battery do you need for it and where do you attach it?
3500-00_1024x1024.jpg
To the gnd and batt pins. Use a pound shop power bank. Or even connect two wires to an ecig battery. Anything from 3v to about 6v? Don't quote me on that. But the ldo regulator is rather good. You can even lift one of the legs on the regulator and feed the lifted leg with 1.8v from a point on the board and use that as a kind of relay. So you have your 5v trinket, lift the leg and you can switch it on and off with 1.8v
 
  • Like
Reactions: Piklz and josukal

mattytrog

You don`t want to listen to anything I say.
OP
Member
Joined
Apr 27, 2018
Messages
3,708
Trophies
0
Age
48
XP
4,328
Country
United Kingdom
can u wire a usb c cable/port straight up to the trinket m0 if so how ?

You can. Tricky though. You need to solder to the qfn package directly. Or use a usb shim, then an adapter.

Or use a breakout board.

Easiest is to buy a usb shim from the pi hut or "made in china"bay and put this into the big end of your usb c cable. Then you have a micro-usb to usb c cable

Right, time for some dark side of YouTube before bed (darn you Dr Sandra Lee). Will play tomorrow.

Night all :)
 
Last edited by mattytrog,
  • Like
Reactions: hippy dave

xeswitched

Active Member
Newcomer
Joined
Jun 23, 2018
Messages
31
Trophies
0
Age
41
XP
204
Country
United States
matty,

m0 will be delivered today, aside from the power ground d- and d+ are there any other wires that need to be soldered to the board to make this functional? You had said there is a switched 3.3v on the otherside of the board however I can not find pictures anywhere about the point.

Thank you,
 
Last edited by xeswitched,

mattytrog

You don`t want to listen to anything I say.
OP
Member
Joined
Apr 27, 2018
Messages
3,708
Trophies
0
Age
48
XP
4,328
Country
United Kingdom
matty,

m0 will be delivered today, aside from the power ground d- and d+ are there any other wires that need to be soldered to the board to make this functional? You had said there is a switched 3.3v on the otherside of the board however I can not find pictures anywhere about the point.

Thank you,

There is a 3.3v point. But I wouldn`t use it.
 

DarkMelman

Member
Newcomer
Joined
Apr 26, 2018
Messages
22
Trophies
0
Age
41
XP
81
Country
Germany
Hello Everyone,

can anyone be so kind and upload the payload.h for sx os?

Or describe, how to convert the payload.bin file to the payload.h?

Thanks a lot!
 

DarkMelman

Member
Newcomer
Joined
Apr 26, 2018
Messages
22
Trophies
0
Age
41
XP
81
Country
Germany
Hello Everyone,

can anyone be so kind and upload the payload.h for sx os?

Or describe, how to convert the payload.bin file to the payload.h?

Thanks a lot!


UPDATE:

Found the solution on a Mac:

Terminal -->
xxd -i payload.bin > payload.h

Then copy all between the {} and note the size at the end of the file


for example

unsigned int payload_bin_len = 27748;


Then

create the following file, change the size and paste the content between the {}

#include <Arduino.h>

#define FUSEE_BIN_SIZE 27748
const PROGMEM byte fuseeBin[FUSEE_BIN_SIZE] = {

};

Done!
 

mattytrog

You don`t want to listen to anything I say.
OP
Member
Joined
Apr 27, 2018
Messages
3,708
Trophies
0
Age
48
XP
4,328
Country
United Kingdom
UPDATE:

Found the solution on a Mac:

Terminal -->
xxd -i payload.bin > payload.h

Then copy all between the {} and note the size at the end of the file


for example

unsigned int payload_bin_len = 27748;


Then

create the following file, change the size and paste the content between the {}

#include <Arduino.h>

#define FUSEE_BIN_SIZE 27748
const PROGMEM byte fuseeBin[FUSEE_BIN_SIZE] = {

};

Done!

But... this is what the download files are in the OP. Why would you do it again?

:confused I am

Edit::: Sorry! Didn`t see you are running a Mac. Yep spot on.
 
Last edited by mattytrog,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: I'm telling on you