1. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom

    Intro:

    Hello folks, if you are reading this, you probably have a "modchip" fitted in your Nintendo Switch.
    You may be familiar with my other threads <HERE> and <HERE>. *to be filled in

    I would like to present some alternative SAMD21 software. OK, its not truely "alternative", but I don`t want to clutter up the Switchboot thread as it will quickly get confusing. For me.

    Description:
    This is a Prebootloader with batt management for autoRCM enabled modchipped consoles.
    Fusee_Suite comes in 2 parts. A part 1 and a part 2.

    Part 1 (links below) is responsible for strap control and dual-boot / perma-CFW settings.
    Part 2 (links below) is responsible for pushing the payload, whatever it may be, and battery control.
    I wanted a more "professional" modchip booting solution that doesn`t rely on me or anyone else. You can control it yourself.
    And it is pretty future-proof(I will regret saying that).

    What do we do with this?

    Simples...

    Check what straps you have fitted. If you are lucky enough to have the vol+ strap soldered, this is for you. Maybe.
    If not, then you can still use it, but you probably will want to avoid "part 1".

    Download part 1 and part 2.
    Get into UF2 update mode

    Drag/drop part 1
    Drag/drop part 2.

    Done.

    A brief guide written by @peteruk - Many thanks, Pete!



    Download Links:

    Fusee_Suite part 1:

    Trinket
    Rebug
    RCM-X86 (all versions)
    Gemma M0
    ItyBitsy M0
    Feather M0 Express



    Historic versions are on my Github. Perma-links to latest version here:



    ctrlasset1.jpg

    Latest:

    Fusee_Suite part 2:

    Trinket
    Rebug
    RCM-X86 (all versions)
    Gemma M0
    ItyBitsy M0
    Feather M0 Express

    Main folder for Arduino (zipped) contains source


    SAMD21 Update Payload (send via TegraRCMsmash and press RESET twice on your chip)

    Tidy Memloader - Version of Memloader that lives in /bootloader folder, keeping SD root tidy.



    Special Editions - These are unsupported special edits of Fusee_Suite part 2 made for various people on this forum. These may have features removed or may not work like you would expect. They are more than likely old versions. Thus no extensive support will be given to them.




    Brief guide:


    FUSEE_UF2 PART 1:

    Changes from Switchboot part_1:
    Perma-CFW / Dual-boot selectable with just vol+ if strap fitted.
    UF2 file is now named whatever the chip is... Before it was CURRENT.UF2, now, eg for Trinket, it is called TRINKET.UF2.
    Works exactly the same as before.

    FUSEE_UF2 PART 2:
    Looks for:

    payload.bin
    payload1.bin (or payload<whatever_number>.bin you set with your SAMD options.
    bootloader/update.bin (this is so it works out of the box with Kosmos users - no need to rename anything to payload.)

    Battery management:
    Console will power off in autoRCM mode if under 5% battery until charging. This prevents bootloops eg in SXOS or any autoboot configuration in Hekate.
    If boot fails for whatever reason, battery graphic and information is displayed for 5 seconds, then unit powers off.



    Controls: (V1 - v5)

    *IF VOL+ STRAP IS FITTED* if you see a light when VOL+ is pressed, you have a VOL+ strap. From V5_030120 onwards, you will need to hold VOL+ for at least 4 seconds to see the light. This change has been necessary to avoid accidentally changing chip settings.

    Hold until first rapid blink to change from modchip-based autoRCM, to dual-boot. Approx. 4 seconds hold time.
    Hold until second rapid blink to change payload. Numbers are blinked out. Hit VOL+ to choose.
    Hold until third rapid blink to set Dotstar brightness. Dotstar will fade and hine brightly. Press VOL+ to store.
    Hold until fourth rapid blink for Full chip reset.
    Hold until last blink (approx 15 seconds - can hold longer for no LED installs(RCMX86 for example)) to enter update mode. Simply power off, (hold vol+ if dual boot)
    and power on. You can now connect to your PC. UF2 drive wil pop up.


    Controls: v6 onwards:
    Untitled.jpg
    • Hold until first rapid blink to change from modchip-based autoRCM, to dual-boot. Approx. 4 seconds hold time.
    • Hold until second rapid blink to change payload. Numbers are blinked out. Hit VOL+ to choose.
    • Hold until third rapid blink to change bootscreen. Numbers are blinked out. Hit VOL+ to choose.
    1. Blink 1 = off
    2. Blink 2 = Static red/white
    3. Blink 3 = Sliding
    4. Blink 4 = Wiping
    5. Blink 5 = Glitching
    • Hold until fourth rapid blink to toggle screensaver on/off
    • Hold until fifth rapid blink to set Dotstar brightness. Dotstar will fade and hine brightly. Press VOL+ to store.
    • Hold until sixth rapid blink to toggle bitmap bootlogo on or off. Name to bootlogo or bootlogo1 and place in bootloader folder. Hekate compatible bitmaps supported.
    • Hold until last blink (approx 20 - 30 seconds - can hold longer for no LED installs(RCMX86 for example)) to enter update mode. Simply power off, (hold vol+ if dual boot)
    • and power on. You can now connect to your PC. UF2 drive wil pop up.


    Extra Controls: (v3 onwards)
    V3 works exactly the same as V1 and V2.

    However, if you power-on and HOLD POWER, (HOLD POWER and press VOL+ if dual boot), you will see a countdown.

    Release POWER at the end of the countdown to take you to the prebootloader screen. (Or just remove SD card if you don`t want to countdown).

    You now have some options.

    POWER button will attempt to boot. If nothing can boot, the console will switch off.
    VOL- will display helpful information regarding straps and payloads.

    Version 3: VOL+ will open up the SD browser, so you can choose to boot another payload. Or regenerate your SXOS licence.
    Version 4: VOL+ will open up the menu, backup/restore, payload management etc etc.

    Self-explanatory, really.


    Manually Editing Settings
    You can edit all of your settings manually, using what we call "settings strings". See below...

    1) Download HxD hex editor from HERE.
    2) Install it.
    3) Open up your UF2 drive. Drag your "UF2" file to your PC, eg to your desktop.

    OR just edit on-chip. Live-editing is supported.

    4) Open your UF2 file in HxD. You should see something similar to this...


    screen1.jpg

    5) Now, scroll down to address 0x0007F800. You should see something like this...

    screen2.jpg

    6) Intro to "Settings Strings"

    Fusee Suite saves chip information as a string of numbers, at a specific point in the UF2.
    I call this string of numbers your "settings string".

    7) An example of a settings string is given below...


    screen3.jpg

    8) You may find multiple of these "settings strings". This is normal.

    9) What happens, is every time a setting is changed on the chip, the settings are rewritten to a new location.

    This is what we call "wear levelling".

    We need to find the LAST written "settings string".

    Look at these offsets:

    0x0007F820
    0x0007F860
    0x0007F8A0
    0x0007F8E0

    0x0007FA20
    0x0007FA60
    0x0007FAA0
    0x0007FAE0

    0x0007FC20
    0x0007FC60
    0x0007FCA0
    0x0007FCE0

    0x0007FE20
    0x0007FE60
    0x0007FEA0
    0x0007FEE0

    10) You will see a "settings string" written at each of the above locations. If the location is full of FF, that means that location is empty.

    Good. Now we have identified our string.

    Next, we edit it.

    But what are we editing?

    Take a look at below graphic...


    screen4.jpg

    All functions in the settings string are labelled.

    So, lets do an example...

    Lets say we want to disable the bootlogo...

    The number where the LIGHT BLUE arrow is, we need to change to 01.

    OVERWRITE, never delete.

    Save. Drag back to chip. Done.


    QUICK WAY!

    1) On-chip editing is supported, meaning you can just open your UF2 drive, edit and save without drag and dropping.
    Chip will reboot automatically.



    *Disclaimer

    If unsure, don`t use it.
    If you manage to burn your fuses on your precious v1.0 Switch using this, sorry, but tough.
    Test at your own risk.
     

    Attached Files:

    Last edited: Feb 20, 2020 at 11:38 PM
    FXDX, feral, metaljay and 5 others like this.
  2. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    V6_090220 full changelog:
    • Ability to use a bootlogo... Usage is as follows...
    If bootloader/bootlogo.bmp is found, this will be shown by default.
    If you want a special bootlogo, just for your modchip side (excluding hekate-side), rename your bootlogo to bootloader/bootlogo1.bmp.
    If bootlogo1.bmp is found, this will be shown INSTEAD of bootlogo.bmp. This will free Hekate or whatever to use bootlogo.bmp as usual, permitting you to have 2 different bootlogos if you wish. (1 for fusee, 1 for Hekate).

    Example:
    You have a "Fusee" bootlogo you want to use at power-on and you have an "atmosphere" one you wish to use via Hekate.
    Name the Fusee one bootlogo1.bmp and the Atmosphere one bootlogo.bmp (as Hekate will use it). Both will show in order.

    To completely disable bootlogo from being rendered, this can be done in modchip settings or just place an empty file called "fusee_bootlogo_disabled" in bootloader folder. This will enable you to use the OEM boot animations from previous releases, if you wish.

    • Flat battery code is now checking battery voltage as well as a percentage of SOC (state of charge).
    There were occasionally discrepancies between fusee / hekate / Horizon regarding battery percentage, which caused black screens for some people. This was due to Horizon thinking the battery was flat when it wasn`t and thinking it was charged when it was indeed flat.
    So percentage AND voltage is checked now.

    If both % and voltage are down, charging without booting (cutting out bootloop) will happen as it should.
    If voltage is down, but % is being reported as higher, this will begin charging loop also. And visaversa.

    • Percentage and mV is shown on screen now.
    • Longer timeouts for screen dimming / screensaver
    • SD card is checked for mounting every half-second, via a resetting counter that triggers a refresh
    • A quick glance over the thread, people have asked why we cannot set chip particulars within Fusee directly... This is because, as of yet, I have not figured out how to enable serial over USB from the Switch / BPMP side. Other workarounds to this, are using one of the GPIOs that are currently connecting joycon, vol or USB and reprogramming the chip that way. I just don`t yet know enough about how the USB subsystem operates to implement a solution.


    V6 full changelog:

    • Improved button polling for faster boot.
    • Long-press VOL+ has a "progress" graphic
    • Refactored all variables for easier hexedit
    • Screensaver added (bouncing Nintendo logo - can be toggled by button press (Blink 4 VOL+ long press)
    • Boot animations added - (1 = no bootlogo at all, 2 = static, 3 = sliding, 4 = wiping, 5 = "glitching")
    • Change colours of bootlogo and text (either Hexedit, or change in Arduino. Very easy to do!)
    • Screen dimming after period of inactivity
    • Tidied menus
    • Removed SD mount / remount upon every boot attempt - Speeds things up
    • New "button control" graphic on main screen. Less intrusive.
    • BLZ more assets, change colours upon decompression... Sneaky.
    • Typos and bugfixes behind the scenes. New ones probably added. I`m that daft.


    Version 5_030120 (part 2) changelog...

    • Bug squishing...
    • VOL+ override (boots payload<x>.bin
    • VOL- override (boots bootloader/update.bin)
    • Rename any payload to "payload<x>", x being a number 1 - 8. This is for people who like to set their payload via SAMD hardware. Most people won`t bother with this...
    • Animated bootlogo available. Changeable in "long press" blink 3...
    In "Blink 3" mode, (see above if you are thinking WTF is blink 3)...
    Count the following blinks...

    • Blink 1 is white / black - non animated
    • Blink 2 is white / black - animated
    • Blink 3 (default) is white on red - non animated (for @metaljay)
    • Blink 4 is white on red animated

    FAQ (in progress)

    Q - I have just had a chip fitted, with all straps. I want to use Kosmos. What do I do?
    A - Drag and Drop as described in top post. You are ready to go. No need for a "payload.bin". Go to sdsetup (google it) and build your SD card.

    Q - I have just had a chip fitted, with some straps. I don`t know which ones. I want to use SXOS. What do I do?
    A - Drag and drop both files. Download SX Loader (it is already called "payload.bin" for your convenience). Place on SD root, along with your boot.dat and licence.dat and you are away. You MAY be locked into dual-boot only if you do not have a VOL+ strap fitted. You may need to use a jig and enter RCM and activate autoRCM if you do not have VOL+ strap or joycon(NVidia home) strap.

    Q - I cannot get my head around this whole "swap between autoRCM and dualboot" thing...
    A- Look through your switch`s grille. When you press VOL+, you may see a light. If you do, great.Just hold until this light blinks. The FIRST BLINK! There are several "blinks". Let go at the first one to swap to dualboot / autoRCM.

    Q - Why not just make a UF2 with Hekate or SXOS baked in?

    A - Several reasons... Switchboot (my other project) is a Hekate mod that does this. The only downside, is that whenever a new Firmware comes out, you will be reflashing UF2 files. Nyx cannot be included in the SAMD chip flash as it is too big. Same with SXOS.

    Q - Can I use Argon with this? Why not base it on Argon, with touch features and stuff?

    A - Assets. Argon loads its icon assets from SD. This is designed so no INI / folders or ANYTHING is required. I want you to forget about this once installed!

    Q - Why four versions?
    A - Version 1 is the first version. Uses ASCII graphics for the battery asset. Characters manually placed. Framebuffer is actually vertical. Characters manually placed one by one.
    A - Version 2 is the "new" version. Functionally identical to version 1. But this has a much more accurate battery asset made out of bitmapped graphics. Emulates the OEM version. Slightly bigger in size, due to bitmap arrays. I could make it tiny by using BLZ compression. But I couldn`t be bothered compressing them. Framebuffer is horizontal and mirrored to run from left to right. Just changing to horizontal turns all characters back to front, as you would expect.
    A - Version 3 tidies things up a little, adds an info screen with strap information
    A - Version 4 brings most "Switchboot" functions to this. Safe backup of PRODINFO etc etc, backup / restore (including small "blank" BOOT0), payload selection, renaming features, etc etc.
    A - Version 5 lets you name any payload to payload<x>.bin (from 1 - 8) for SAMD hardware payload selection. Animated start logo, which can be disabled or changed to red

    Q - How do I use the SXOS licence regenerate feature?

    A - Refer to this post - https://gbatemp.net/threads/trinket...suite-uf2-packages.553998/page-3#post-8898356

    Q - Is there any reason I MUST use a particular payload? ie Hekate?
    A - No. If you don`t want to use Hekate (as excellent as it is), you don`t need to. It will make your life easier making an EmuMMC though! But no. Once your EmuMMC is made, however you do it, you can just use Fusee-Primary.

    Q - Will there be updates to this?
    A - Not really. Any bugs I may find, I`ll fix. But no... There will NEVER be any reason you MUST update. V1,2,3 and 4 operate basically all the same. No sigpatches are needed or ini`s or anything. Nothing needs to be done when a new FW comes out. If I do put out any new versions, will be just to add features. But, if in 5 years time, you are still using V1, thats fine.

    Q - Are you working on iPatched / Mariko / Lite support?
    A - Yes! Testing collapsing the stack, post payload by alternative means is a success. However, I have no lite/Mariko boards to properly confirm it is "working". To test, it needs a Trinket fitting to a Mariko unit. Just as we do with the unpatched units. Nobody has bothered to do this yet. If anyone fancies swapping a Mariko for an unpatched board / unit, PM me.
     
    Last edited: Feb 10, 2020
    SirFranko and peteruk like this.
  3. iriez

    iriez GBAtemp Advanced Fan
    Member

    Joined:
    Oct 27, 2016
    Messages:
    513
    Country:
    United States
    Any chance you could provide the main.ino files? Frankly I've gotten my trinket into "UF2" mode maybe once or twice ever. It rarely shows up as a drive and will instead always register as a trinket device on a various port that I have to use arduino to flash.
     
  4. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    Sure.

    I haven`t cleaned the source up yet, so bear in mind.

    :)


    EDIT: These are v1 files. It is recommended to download V3 or V2.
     

    Attached Files:

    Last edited: Dec 24, 2019
    Captain_Smek, snam11 and iriez like this.
  5. iamfoesho

    iamfoesho Newbie
    Newcomer

    Joined:
    Mar 30, 2007
    Messages:
    2
    Country:
    United States
    Just did the update on my trinket, easy peasy. Thank you!
     
    mattytrog likes this.
  6. Skater4599

    Skater4599 GBAtemp Advanced Fan
    Member

    Joined:
    May 29, 2008
    Messages:
    960
    Country:
    United States
    I'm currently using switchboot version from your other thread. It sounds like this is no longer has hekate built in and looks for it on sdcard instead? Also I assume this means no more sxos license recovery?

    Thanks for your work for us chip users.
     
    Last edited: Dec 11, 2019
  7. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    Switchboot still being maintained. Release coming today.
     
    Skater4599 and peteruk like this.
  8. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    OK...

    Making UF2s now

    A few changes.

    • Interface is now the same as Hekate
    • Switchboot extra features are now in a submenu, apart from payload / ini browser
    • Strap / autoboot information is displayed on main screen
    • Extra features designed to be more modular in the code, to aid faster updates when a new version of Hekate drops. Only so much kdiff3 a bloke can stand.
    • Basic battery management, where boot is halted if charge is too low(under 5%). Can be overridden with a press of a VOL button
    • New Fusee_Suite part 1 UF2 bootloader is supported, so information is displayed from that

    A brief list of differences between this and standard Hekate...
    • File browser built in. Browse / check payloads and INIs.
    • payload.bin / payload<x>.bin SAMD21 hardware override as usual.
    • Restore SXOS licence
    • Safe backup / restore of BOOT0/1/PRODINFO. Do this... It may help you. Files are located in /safe as usual on SD root. Make a copy on your PC!

    Features removed due to lack of users / feedback / space / better solutions out there
    • SXOS multiNAND. If anyone REALLY wants this, I`ll add it back. However, you can just use an old version of Switchboot for this.
    UF2s will be up later this evening, or first thing if I`m drunk.

    Take a look at the Fusee_Suite thread to see more modchip-related stuff.

    Like I say - coming tonight. So so busy.

    I`m too old for this sh*t.

    EDIT: And I just realised that I should have posted this in the Switchboot thread. I think I left my brain on charge and forgot to plug it back in to my head this morning.
     

    Attached Files:

    Last edited: Dec 13, 2019
    hippy dave and Skater4599 like this.
  9. ModderFokker619

    ModderFokker619 GBAtemp Maniac
    Member

    Joined:
    Oct 2, 2015
    Messages:
    1,002
    Country:
    United States

    Thank you so much!
     
  10. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    Links for all supported chips updated in OP.
     
    peteruk likes this.
  11. popy

    popy GBAtemp Regular
    Member

    Joined:
    Jul 31, 2018
    Messages:
    123
    Country:
    Austria
    Thanks @mattytrog for all your hard work on swithboot and this.
    Currently using switchboot without an issue.
    Sure, the only missing feature was an battery info screen when plugged into charger and switch isnt booted.

    When i got you right this new solution implement's this? Right?

    thx
    pOpY
     
  12. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    Yes sir.

    If you use a autoboot option, either SXOS or autoboot EMUMMC within Hekate for example, it will bootloop if battery is flat and unit is placed in the dock.

    This is because max17050 info is wiped and there isn`t sufficient power to power up completely. The cycle repeats.
     
  13. chrissou

    chrissou Member
    Newcomer

    Joined:
    Sep 9, 2009
    Messages:
    17
    Country:
    France
    Hello, sorry for this stupid question but i'm french and didn't understand very well english.
    If i understand u have make 2 versions for our modchip : switchboot and fusee, is it thé truth ? What is the difference between these 2 versions ?
    Thanks a lot for your work and your help
     
  14. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    Switchboot, est une modification de Hekate, adaptée à nos puces avec des fonctionnalités supplémentaires qui me semblent absentes de Hekate. J'exclus Nyx car Nyx n'est pas conçu pour être chargé sur une puce. Fusee charge simplement payload.bin. Les fichiers de la partie 1 contrôlent les straps. je m'excuse très mon français n'est pas parfait.

    Translated roughly - Switchboot is a Hekate mod, Fusee loads "payload.bin". And my French is shyte.
     
    iriez likes this.
  15. chrissou

    chrissou Member
    Newcomer

    Joined:
    Sep 9, 2009
    Messages:
    17
    Country:
    France
    Your french is Nice ! Thanks a lot for the answer it's more comprehensive for me. Fusee is that i want ;) i Will try thanks again
     
    mattytrog likes this.
  16. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    I don`t think many updates will be required for this.

    The only updates I will add is support for better batt percentage graphics and a percent charged number.
    And I`ll update part 1 for Mariko / Switch Lite units when the time is right.

    Apart from that, thats it.
     
  17. Spook22

    Spook22 Newbie
    Newcomer

    Joined:
    Nov 23, 2019
    Messages:
    6
    Country:
    United Kingdom
    Links for trinket are broken, 404

    Cheers!
     
  18. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    ok will take a look thanks for telling me

    — Posts automatically merged - Please don't double post! —

    All fixed. Why did Git make it private?

    Links up and running. Sorry people!
     
  19. Joshmas

    Joshmas Advanced Member
    Newcomer

    Joined:
    Dec 18, 2014
    Messages:
    63
    Country:
    I'm a bit confused by this and may be a heavy noob question, used the updated uf2 files in this thread and flashed them to the trinket. However when trying to boot into switchboot by holding both vol buttons it simply just loads my cfw. Went back to the previous uf2 files which uses the current.uf2 instead of trinket.uf2 and in hekate it states that joycon strap and vol+ strap aren't detected but they are. Any help would be greatly appreciated. Cheers
     

    Attached Files:

  20. mattytrog

    OP mattytrog You don`t want to listen to anything I say.
    Member

    Joined:
    Apr 27, 2018
    Messages:
    3,664
    Country:
    United Kingdom
    You are probably in autorcm mode(chip based autorcm).

    Put the new files back on.

    For dual boot, look at the back grilles on your console and try pressing vol+. You should see a light when u press.

    If you do, good.

    To change to dual boot using the new files, look at the grill where you seen the light. Hold down vol+ until it flashes. As soon as it flashes, let go. Chip will reboot and you are in dual boot mode.

    Have a go and get back to me
     
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - Fusee_Suite, [Trinket], Software]