Hacking Hardware Picofly - a HWFLY switch modchip

Blakejansen

Well-Known Member
Member
Joined
Aug 17, 2021
Messages
614
Trophies
0
Age
40
XP
1,566
Country
United States
no problem im gonna be honest i just thought ill grind to the first 2 layers very fast to show u its pretty much undoable by hand, but then i wanted to see how many layers there are Xd

ClickMe flush cutters like this one

oh and dont forget to get the rp2040-zero if u need support ;-) but i would recommend u the rp2040 tiny since they dont have a usb onboard and already have the resistors on the board u flash them with a flex cable and they are also supported :-)

I lifted the resistor on point A. What do I need to do to replace it? It went flying and I have been searching for it for hours. Do you know where I can order another one?
 

abal1000x

Well-Known Member
Member
Joined
Jun 5, 2022
Messages
1,070
Trophies
0
XP
1,409
Country
Gaza Strip
I accidentally instaling picofly firmware to hwfly chip
LOL
And its works well

Thats a pricey hwfly lol
That two emmc socket is not cheap.
hwfly just cut the margin so big, and its still pricey.


At one point i want to modify the green adapter with those socket, but the price made me stopped that thinking.
 

Blakejansen

Well-Known Member
Member
Joined
Aug 17, 2021
Messages
614
Trophies
0
Age
40
XP
1,566
Country
United States
What value is the point A resistor? I just soldered a 3.5k and am now getting a reading of 3.5k. However other people are saying that resistor is 4.5k instead.

Here is a picture



Where that empty space is I get a reading of 3.5k now after soldering a 3.5k resistor onto those pads.

The resistor next to it also reads 3.5k. Some are saying that resistor should read 45k.
 
Last edited by Blakejansen,

sergiochendry

Well-Known Member
Newcomer
Joined
Apr 17, 2023
Messages
52
Trophies
0
Age
32
XP
167
Country
Indonesia
that's the hwfly core with a rp2040 chip. that's why it works, those are designed to use the picofly firmware.
No, thats hwfly chip for sure
First i instal hwfly, and change to hwflycore rp2040
And when i change back to hwfly
No sd screen still picofly logo
So i flash hwfly chip with the newst fw
And the no sd screen back to normal
 

Attachments

  • 4A6BDCEE-A8A4-4AC3-8555-FEA6CBB6168F.jpeg
    4A6BDCEE-A8A4-4AC3-8555-FEA6CBB6168F.jpeg
    1.3 MB · Views: 42
  • Like
Reactions: chronoss

abal1000x

Well-Known Member
Member
Joined
Jun 5, 2022
Messages
1,070
Trophies
0
XP
1,409
Country
Gaza Strip
No, thats hwfly chip for sure
First i instal hwfly, and change to hwflycore rp2040
And when i change back to hwfly
No sd screen still picofly logo
So i flash hwfly chip with the newst fw
And the no sd screen back to normal
Picofly stored the payload to the emmc, the nosd picofly ones.
When you change to hwfly, the hwfly just run those stored payload, hence the picofly nosd.
When you flash the hwfly firmware, and run it, the firmware will store their payload to the emmc, overwriting the existing, and run it, hence the spacecraft-nx.

Those 2 socket price alone is at $3-$4.
The rp2040 and the supplement is around $4
The pcb and flex around $2-4.
So totals its around $9-$12.
Thats without the electricity and equipment invetation to solder the component to the board.

So if you got that hwfly core at around $15 they have cut the margin so small lol :D
 
  • Like
Reactions: twins333

abal1000x

Well-Known Member
Member
Joined
Jun 5, 2022
Messages
1,070
Trophies
0
XP
1,409
Country
Gaza Strip

Blakejansen

Well-Known Member
Member
Joined
Aug 17, 2021
Messages
614
Trophies
0
Age
40
XP
1,566
Country
United States
That is cmd pullup resistor it should be 4.7k, cmiiw.
Post automatically merged:


https://gbatemp.net/threads/oled-switch-a-cmd-resistor-half-damaged-pad.636104/
Pad isn't damaged. Soldered a 3.5k Resistor instead of 4.7k because of a troll on reddit.

Just read the thread and that is the thread I used to diagnose my problem. I still haven't installed a mod chip, only some wires.

I am using a regular Nintendo Switch for a donor board. I have only found 4.5k and 4.9k resistors. Can I use the 4.9 instead to solve the purple screen error?
 

abal1000x

Well-Known Member
Member
Joined
Jun 5, 2022
Messages
1,070
Trophies
0
XP
1,409
Country
Gaza Strip
Pad isn't damaged. Soldered a 3.5k Resistor instead of 4.7k because of a troll on reddit.

Just read the thread and that is the thread I used to diagnose my problem. I still haven't installed a mod chip, only some wires.

I am using a regular Nintendo Switch for a donor board. I have only found 4.5k and 4.9k resistors. Can I use the 4.9 instead to solve the purple screen error?
You could try, but i think the problem lay on something else.

Its only pullup resistor, so basically 3.5k should works.

The pullup resistor function is to pull the voltage on cmd line to 'high state' such as 1.8V.
The resistance value only affect the current it flows.

Maybe the solder joint is not good enough?
You could check whether the cmd line is at 1.8V using voltmeter when you turn it on.
 
  • Like
Reactions: Dee87

Blakejansen

Well-Known Member
Member
Joined
Aug 17, 2021
Messages
614
Trophies
0
Age
40
XP
1,566
Country
United States
You could try, but i think the problem lay on something else.

Its only pullup resistor, so basically 3.5k should works.

The pullup resistor function is to pull the voltage on cmd line to 'high state' such as 1.8V.
The resistance value only affect the current it flows.

Maybe the solder joint is not good enough?
You could check whether the cmd line is at 1.8V using voltmeter when you turn it on.
I already desoldered the resistor. To install the resistor, I am lining it up to one pad, soldering it down and then lining it up to another pad.

Where else do you think the problem could be? I haven't made any mistakes so far outside of the resistor.

Is it possible for resistor anchor in dat adapter to bridge into solder balls on nand chip?

I thought purple/pink screen means problem with CMD.
 

abal1000x

Well-Known Member
Member
Joined
Jun 5, 2022
Messages
1,070
Trophies
0
XP
1,409
Country
Gaza Strip
I already desoldered the resistor. To install the resistor, I am lining it up to one pad, soldering it down and then lining it up to another pad.

Where else do you think the problem could be? I haven't made any mistakes so far outside of the resistor.

Is it possible for resistor anchor in dat adapter to bridge into solder balls on nand chip?

I thought purple/pink screen means problem with CMD.
Try to investigate the CLK line.
 
  • Like
Reactions: Dee87

Dee87

Well-Known Member
Member
Joined
Mar 19, 2023
Messages
1,139
Trophies
1
XP
1,589
Country
Germany
No, thats hwfly chip for sure
First i instal hwfly, and change to hwflycore rp2040
And when i change back to hwfly
No sd screen still picofly logo
So i flash hwfly chip with the newst fw
And the no sd screen back to normal
Bro that's a hwfly rp2040 a copy of the picofly.
But still no picofly ,so stop spamming this thread with ur hwfly boards .
 

QuiTim

Well-Known Member
Member
Joined
Mar 30, 2023
Messages
758
Trophies
0
XP
1,183
Country
Albania
CLK just has a wire sticking out of it.

Is it possible to turn the switch on with the wires sticking out? I still haven't soldered the mod chip.
Sure, just make extra sure that they are not touching anything otherwise you'll have a dead switch in a split second
 

rehius

Well-Known Member
Member
Joined
Feb 6, 2023
Messages
377
Trophies
1
Age
34
XP
1,790
Country
Canada
Is the picofly toolbox derived from the hwfly toolbox?
yes, it's a simple adjustment of the hwfly toolbox. here are all the changes

C:
void fw_switch()
{
    uint32_t reset_cmd[64] = {0x6db92148, 0xFFFFFFFF, 0xFFFFFFFF};
    gfx_clear_partial_grey(0x1B, 0, 1256);
    gfx_con_setpos(0, 0);

    gfx_printf("Writing the \"firware switch\" command\n");

    emmc_initialize(false);
    sdmmc_storage_set_mmc_partition(&emmc_storage, EMMC_BOOT0);
    sdmmc_storage_write(&emmc_storage, 1, 1, reset_cmd);
    sdmmc_storage_end(&emmc_storage);
    gfx_printf("Done! Now reboot the console to apply\n\n");
    gfx_printf("Press any key\n");
    msleep(500);
    btn_wait();   
}

void fw_update()
{
    gfx_clear_partial_grey(0x1B, 0, 1256);
    gfx_con_setpos(0, 0);

    uint32_t flash_cmd[64] = {0x6db92148};

    gfx_printf("Reading update.bin on sdcard\n");
    sd_mount();
    u32 payload_size;
    uint8_t *payload = sd_file_read("update.bin", &payload_size);
    sd_end();

    if (!payload)
    {
        gfx_printf("update.bin not found!\n");
        goto fwout;
    }

    payload_size = ALIGN(payload_size, 512);

    if (payload_size > 0x3FE00)
    {
        gfx_printf("update.bin is too big!\n");
        goto fwout;
    }

    emmc_initialize(false);
    sdmmc_storage_set_mmc_partition(&emmc_storage, EMMC_BOOT0);
    sdmmc_storage_write(&emmc_storage, 0x3C0000 / 512, payload_size / 512, payload);
    flash_cmd[1] = 0x1E00;
    flash_cmd[2] = payload_size / 512;
    sdmmc_storage_write(&emmc_storage, 1, 1, flash_cmd);
    sdmmc_storage_end(&emmc_storage);
    gfx_printf("Flashed! Now reboot the console to apply\n\n");

fwout:
    gfx_printf("Press any key\n");
    msleep(500);
    btn_wait();
}

typedef struct fw_info
{
    uint32_t signature;
    uint32_t fw_major;
    uint32_t fw_minor;
    uint32_t sdloader_hash;
    uint32_t firmware_hash;
    uint32_t fuse_count;
    uint32_t start_offset;
    uint32_t step_offset;
    uint16_t offset_data[];
} fw_info;

void fw_info_print()
{
    gfx_clear_partial_grey(0x1B, 0, 1256);
    gfx_con_setpos(0, 0);

    uint8_t info[0x200];

    gfx_printf("Reading firmware info...\n");
    emmc_initialize(false);
    sdmmc_storage_set_mmc_partition(&emmc_storage, EMMC_BOOT0);
    sdmmc_storage_read(&emmc_storage, 0x1FFF, 1, info);
    sdmmc_storage_end(&emmc_storage);

    fw_info * fw = (fw_info*)(info);
    if (fw->signature == 0x9cabe959)
    {
        gfx_printf("Version: %d.%d\n", fw->fw_major, fw->fw_minor);
        gfx_printf("FW  hash: 0x%08X\n", fw->firmware_hash);
        gfx_printf("IPL hash: 0x%04X\n", fw->sdloader_hash);
        gfx_printf("Fuse count: %d\n\n", fw->fuse_count);
    }

    gfx_printf("Press any key\n");
    msleep(500);
    btn_wait();
}

void train_data_reset()
{
    uint32_t reset_cmd[64] = {0x515205c5};
    gfx_clear_partial_grey(0x1B, 0, 1256);
    gfx_con_setpos(0, 0);

    gfx_printf("Writing the \"reset chip\" command\n");

    emmc_initialize(false);
    sdmmc_storage_set_mmc_partition(&emmc_storage, EMMC_BOOT0);
    sdmmc_storage_write(&emmc_storage, 1, 1, reset_cmd);
    sdmmc_storage_end(&emmc_storage);
    gfx_printf("Done! Now reboot the console to apply\n\n");
    gfx_printf("Press any key\n");
    msleep(500);
    btn_wait();   
}

power_state_t STATE_POWER_OFF           = POWER_OFF_RESET;

ment_t ment_top[] = {
    MDEF_CAPTION("--- Firmware ------", 0xFFDAFF7F),
    MDEF_HANDLER("Info", fw_info_print),
    MDEF_HANDLER("Update", fw_update),
    MDEF_HANDLER("Rollback", fw_switch),
    MDEF_CAPTION("--- Train data ----", 0xFFDAFF7F),
    MDEF_HANDLER("Reset", train_data_reset),
    MDEF_CAPTION("-------------------", 0xFFDAFF7F),
    MDEF_HANDLER("Back to hekate", hekate_launch),
    MDEF_HANDLER_EX("Power off", &STATE_POWER_OFF, power_set_state_ex),
    MDEF_END()
};
 

Blakejansen

Well-Known Member
Member
Joined
Aug 17, 2021
Messages
614
Trophies
0
Age
40
XP
1,566
Country
United States
Sure, just make extra sure that they are not touching anything otherwise you'll have a dead switch in a split second

I think CLK was the problem. I opened up my broken oled and the resistor that was missing read at 3.5k which is the same that I had soldered on there.

How can CLK go wrong? You just scrape the tiny via and put solder on it? What could I have possibly done wrong in CLK to cause pink screen?
 

QuiTim

Well-Known Member
Member
Joined
Mar 30, 2023
Messages
758
Trophies
0
XP
1,183
Country
Albania
I think CLK was the problem. I opened up my broken oled and the resistor that was missing read at 3.5k which is the same that I had soldered on there.

How can CLK go wrong? You just scrape the tiny via and put solder on it? What could I have possibly done wrong in CLK to cause pink screen?
Well, from what I remember from the discussions a couple of months back, one of the reasons could be that if CLK is not making contact at some point during glitching (writing to emmc process) it can cause the emmc data to corrupt. This was also why the first version of 2.72 firmware (was pulled after 10h-15h) caused this problem in some switches (there was some error in the code regarding CLK )
As far as resistors go, I think that that the correct values are 4.7k for the one that you solder to and 47k for the other one...
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan @ BakerMan:
    inb4 computer science
  • BigOnYa @ BigOnYa:
    Fake Leg scratching 101
  • K3Nv2 @ K3Nv2:
    IT support you can act like your own farts smell like cherries that way
  • K3Nv2 @ K3Nv2:
    Odin 2s $300 lol no
  • Scarlet @ Scarlet:
    The Mini is even more lol
  • K3Nv2 @ K3Nv2:
    That RG cube is starting to look like the better value price creep option
    +1
  • BigOnYa @ BigOnYa:
    I want a handheld gaming system with a tablet sized screen, like a 8 or10" screen, with controllers that can detach like the Switch.
  • BakerMan @ BakerMan:
    @BigOnYa i was legitimately trying to scratch my leg, this is reminding me of that cylinder post
  • Scarlet @ Scarlet:
    I don't see the buzz about a square screen personally. I think there will be a review on the site within a few weeks though if you are interested.
    +1
  • Scarlet @ Scarlet:
    I've put down the money on the Odin 2 Mini since I just love that Vita form factor. Loved the power of the Odin 2 but the size always put me off, this one seems exactly what I've been wanting.
  • K3Nv2 @ K3Nv2:
    I don't care about the square screen it's just nice to hold something you don't have to stretch your arms a foots length
  • K3Nv2 @ K3Nv2:
    All these things expecting to be super huge is overrated just run a type c cable to your TV if you want a big display or in my case screen mirror it
  • BigOnYa @ BigOnYa:
    On the go tho I meant, I use my 10" tablet and a Bluetooth controller for retro gaming while sitting on my porch or on long car rides sometimes. Easier on my eyes than the Switch screen.
  • K3Nv2 @ K3Nv2:
    My point is we already have enough shit with big displays having something pocketable with up to ps2 would be fine on the go
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Ken unless the games are made for that screen size most suck on a screen that size... Having a square screen and being brighter and higher res helps but it's not a cure all, text is tiny bullets are tiny, your.... Well lol
  • K3Nv2 @ K3Nv2:
    You can stretch to fit probably it's not all bad that they make it seem to be
  • K3Nv2 @ K3Nv2:
    People always yap about oh but you loose pixels but yeah it won't look awful either
  • Psionic Roshambo @ Psionic Roshambo:
    I like filters :P
  • K3Nv2 @ K3Nv2:
    Filters are why you don't go on 2nd dates
  • Psionic Roshambo @ Psionic Roshambo:
    Lol nahhh it's because I usually get what they want on the first date lol
  • Psionic Roshambo @ Psionic Roshambo:
    I swear if I hear "I don't usually do this on the first date" on more time... I am going to start counting
  • K3Nv2 @ K3Nv2:
    I bought you McDonald's even tho you lied about your pics I still deserve this
  • Psionic Roshambo @ Psionic Roshambo:
    No no continue, I hear these things women say so often I decided to start counting
    Psionic Roshambo @ Psionic Roshambo: No no continue, I hear these things women say so often I decided to start counting