Hacking Hardware Picofly - a HWFLY switch modchip

Laufzeitfehler

Active Member
Newcomer
Joined
Oct 7, 2017
Messages
28
Trophies
0
Age
54
XP
76
Country
Germany
You can use only one point. No problem.
Thank you for your support!

My Pico is now installed - so far it boots instantly to SD Menu.
After the install i created first a Full Nand Backup and after this i created EmuMMC.
Then i have used Lockpick to get my keys and after this i created my hekate_ipl.ini. I tried to start EmuMMC and Atmosphere was booting. So far so great but i cant start OFW on Sysnand. First try i've got a error: Atmosphere error Unknown pkg1 version

I restartet the console and now when i try to boot ofw without atmosphere on sysnand i stuck with a Black screen after Nintendo Logo appears.

Any thoughts about this?

Ps.: OFW is also not booting when i boot without SD and Volume +- // Hekate says emmc is initialized in slower mode
 
Last edited by Laufzeitfehler,

Laufzeitfehler

Active Member
Newcomer
Joined
Oct 7, 2017
Messages
28
Trophies
0
Age
54
XP
76
Country
Germany
Add a second 47 Ohm-Resistor at DAT0.
Thanks i tried this with no luck but i saw a bad solderpoint on the Pico 🤦 the resistor in dat0 Looks suspecious. I changed them with a normal 47 Ohm resistor and sysnand is now starting 👍 i am not sure If my emmc ist now fixed but for now i can boot
 

Extreme_

Member
Newcomer
Joined
Oct 1, 2023
Messages
12
Trophies
0
Age
50
XP
35
Country
Germany
Also ich habe eine OLED und ich hatte das gleiche Problem, der Chip war OK, allerdings hat der verbaute Widerstand mit 47 Ohm nicht ausgereicht (Slow Mode). Dann habe ich einen 100Ohm Widerstand eingebaut, das ging ca. 2 Wochen gut... Nach zwei Wochen bootet die Switch nicht mehr zur CFW. Dann habe ich den 100 Ohm Widerstand gegen einen 47 Ohm getauscht (an DAT0) und seitdem ist alles gut.

Ich habe einen HWFly (RP2040) aus China gekauft.

On my OLD-Switch I had the EMM-SlowMode-Error with HWFly (RP2040). I added a 100 Ohm Resistor at DAT0 everthing runs fine. After 2 weeks my oled won't boot, than i changed the resistor with an 47 Ohm-Version and everthing works fine since about 4 weeks..
 

LucasRomeiro

Member
Newcomer
Joined
Sep 30, 2023
Messages
16
Trophies
0
Age
36
XP
151
Country
Brazil
Anyone can help me with this fake/clone rp2040 tiny? the LED do not work. firm 2.3
 

Attachments

  • IMG_7401.png
    IMG_7401.png
    8.9 MB · Views: 28

Endracion

Well-Known Member
Newcomer
Joined
May 16, 2008
Messages
56
Trophies
1
XP
230
Country
Canada
I'm back to do a friend's Switch Lite, but I'm having trouble seeing where people place the chip exactly, looks like there's less space than the OLED I did for myself. Anyone got a picture of the RP placement?
 

Laufzeitfehler

Active Member
Newcomer
Joined
Oct 7, 2017
Messages
28
Trophies
0
Age
54
XP
76
Country
Germany
Also ich habe eine OLED und ich hatte das gleiche Problem, der Chip war OK, allerdings hat der verbaute Widerstand mit 47 Ohm nicht ausgereicht (Slow Mode). Dann habe ich einen 100Ohm Widerstand eingebaut, das ging ca. 2 Wochen gut... Nach zwei Wochen bootet die Switch nicht mehr zur CFW. Dann habe ich den 100 Ohm Widerstand gegen einen 47 Ohm getauscht (an DAT0) und seitdem ist alles gut.

Ich habe einen HWFly (RP2040) aus China gekauft.

On my OLD-Switch I had the EMM-SlowMode-Error with HWFly (RP2040). I added a 100 Ohm Resistor at DAT0 everthing runs fine. After 2 weeks my oled won't boot, than i changed the resistor with an 47 Ohm-Version and everthing works fine since about 4 weeks..

I must ask you again:
Do you have now 2x47 Ohm resistors in Line or only one on dat0? Currently i have one and ofw is working but only with Hekate Reset to OFW. Also Speedtest ist not good (slow emmc)
 

d.b

Member
Newcomer
Joined
Jan 24, 2009
Messages
21
Trophies
1
XP
338
Country
Greece
hi i have a very weird problem.. i install an rp2040 zero in a switch lite and sometimes it booting into hekate but sometimes it boot straight to ofw without any light come from rp..
i have done countless installations and this is a first time happen to me...
i tried 3 rp2040 new mosfet redone the installation 3 times and always the same problem...
it may boot 10 times straight into hekate and then boot 2 times into ofw with no light from rp...
i also tried thicker wires for 3.3 and gnd and i also try the alternative point for 3.3v
any thoughts??
 

Jdlat

Member
Newcomer
Joined
Sep 18, 2023
Messages
6
Trophies
0
Age
38
XP
72
Country
Spain
Hi all,



i have finished 2 switchs, one V2 and one Oled.



I want to talk about the Oled + picofly. I did a good installation, and I had a purple screen. I checked everything, i didnt see any problem (I used the v6 dat0 adapter). I removed the entire installation and I cleaned everything. I can enter to hekate but emmc was missing (slow mode 0 mb/s) .



I read in other thread thay can be the cmd resistor. I scratched the resistance with tweezers and console worked fine, but again purple screen. What i did was remove the original cmd resistor and replace it with other smd resistor + wire and everything worked fine. Now emmc speed is 400 mb/s.



I tell this because there werent any issue in my installation, cmd resistor had very little tin and it wasnt doing contact.
 

Hassal

Well-Known Member
Member
Joined
Apr 22, 2023
Messages
568
Trophies
0
Age
24
XP
515
Country
United Arab Emirates
Anyone can help me with this fake/clone rp2040 tiny? the LED do not work. firm 2.3
Clone boards are almost never checked when they are shipped out in order to save money so you're likely get a faulty or burned component. The QC is passed on to you.

If you want to avoid such predicament only use authentic boards from the source.
 

bilalhassan341

Well-Known Member
Member
Joined
Apr 1, 2023
Messages
138
Trophies
0
XP
271
Country
United States
Thank you for your support!

My Pico is now installed - so far it boots instantly to SD Menu.
After the install i created first a Full Nand Backup and after this i created EmuMMC.
Then i have used Lockpick to get my keys and after this i created my hekate_ipl.ini. I tried to start EmuMMC and Atmosphere was booting. So far so great but i cant start OFW on Sysnand. First try i've got a error: Atmosphere error Unknown pkg1 version

I restartet the console and now when i try to boot ofw without atmosphere on sysnand i stuck with a Black screen after Nintendo Logo appears.

Any thoughts about this?

Ps.: OFW is also not booting when i boot without SD and Volume +- // Hekate says emmc is initialized in slower mode
Emmc points are not soldered correctly. resolder or try to add another resisters on emmc points.
 
  • Love
Reactions: impeeza

LucasRomeiro

Member
Newcomer
Joined
Sep 30, 2023
Messages
16
Trophies
0
Age
36
XP
151
Country
Brazil
Clone boards are almost never checked when they are shipped out in order to save money so you're likely get a faulty or burned component. The QC is passed on to you.

If you want to avoid such predicament only use authentic boards from the source.
These clones of the rp2040 tiny are everywhere, I bought several like this without knowing, in different purchases.
Apparently they only got the pins wrong to activate the LEDS. I don't know how to fix this somehow because lids are very important to help find errors in unlocking.
This code was sent by one of the sellers to show that the LED works (he changed the LED pins), were we able to make a correction for this? I suggest using the jumpers present on pins 24 and 25 on the board to signal that it is a fake board and you should use another LED pin if these points are soldered:
from machine import Pin
import array, time
from machine import Pin
import rp2
p24 = Pin(24, Pin.IN, Pin.PULL_UP)
print(p24.value())
p25 = Pin(25, Pin.OUT)

Configure the number of WS2812 LEDs.​

NUM_LEDS = 1
@rp2.asm_pio(
sideset_init=rp2.PIO.OUT_LOW,
out_shiftdir=rp2.PIO.SHIFT_LEFT,
autopull=True,
pull_thresh=24,
)
def ws2812():
# fmt: off
T1 = 2
T2 = 5
T3 = 3
wrap_target()
label("bitloop")
out(x, 1) .side(0) [T3 - 1]
jmp(not_x, "do_zero") .side(1) [T1 - 1]
jmp("bitloop") .side(1) [T2 - 1]
label("do_zero")
nop() .side(0) [T2 - 1]
wrap()
# fmt: on

Create the StateMachine with the ws2812 program, outputting on Pin(22).​

sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(16))

Start the StateMachine, it will wait for data on its FIFO.​

sm.active(1)

Display a pattern on the LEDs via an array of LED RGB values.​

ar = array.array("I", [0 for _ in range(NUM_LEDS)])

Cycle colours.​

for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 100
g = 0
b = 0
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 0
g = 100
b = 0
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 0
g = 0
b = 100
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 100
g = 100
b = 100
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 0
g = 0
b = 0
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
while 1:
if p24.value()==0:
p25.on()
else:
p25.off()
 
  • Like
Reactions: impeeza

Dee87

Well-Known Member
Member
Joined
Mar 19, 2023
Messages
1,139
Trophies
1
XP
1,589
Country
Germany
These clones of the rp2040 tiny are everywhere, I bought several like this without knowing, in different purchases.
Apparently they only got the pins wrong to activate the LEDS. I don't know how to fix this somehow because lids are very important to help find errors in unlocking.
This code was sent by one of the sellers to show that the LED works (he changed the LED pins), were we able to make a correction for this? I suggest using the jumpers present on pins 24 and 25 on the board to signal that it is a fake board and you should use another LED pin if these points are soldered:
from machine import Pin
import array, time
from machine import Pin
import rp2
p24 = Pin(24, Pin.IN, Pin.PULL_UP)
print(p24.value())
p25 = Pin(25, Pin.OUT)

Configure the number of WS2812 LEDs.​

NUM_LEDS = 1
@rp2.asm_pio(
sideset_init=rp2.PIO.OUT_LOW,
out_shiftdir=rp2.PIO.SHIFT_LEFT,
autopull=True,
pull_thresh=24,
)
def ws2812():
# fmt: off
T1 = 2
T2 = 5
T3 = 3
wrap_target()
label("bitloop")
out(x, 1) .side(0) [T3 - 1]
jmp(not_x, "do_zero") .side(1) [T1 - 1]
jmp("bitloop") .side(1) [T2 - 1]
label("do_zero")
nop() .side(0) [T2 - 1]
wrap()
# fmt: on

Create the StateMachine with the ws2812 program, outputting on Pin(22).​

sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(16))

Start the StateMachine, it will wait for data on its FIFO.​

sm.active(1)

Display a pattern on the LEDs via an array of LED RGB values.​

ar = array.array("I", [0 for _ in range(NUM_LEDS)])

Cycle colours.​

for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 100
g = 0
b = 0
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 0
g = 100
b = 0
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 0
g = 0
b = 100
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 100
g = 100
b = 100
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 0
g = 0
b = 0
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
while 1:
if p24.value()==0:
p25.on()
else:
p25.off()
well if u know what pin the led is connected to atm and wich on it needs to be then disconnect it from wrong pin and solder a wire to the correct pin.
if u buy from a proper selling then u wont get fake chips.
if u buy because its a few cents cheaper and get a fake chip thats up to you.

u can order from waveshare direkt and then u will get the correct zero.
 
Last edited by Dee87,

karatefeet

Well-Known Member
Newcomer
Joined
May 18, 2023
Messages
89
Trophies
0
XP
476
Country
Canada
These clones of the rp2040 tiny are everywhere, I bought several like this without knowing, in different purchases.
Apparently they only got the pins wrong to activate the LEDS. I don't know how to fix this somehow because lids are very important to help find errors in unlocking.
This code was sent by one of the sellers to show that the LED works (he changed the LED pins), were we able to make a correction for this? I suggest using the jumpers present on pins 24 and 25 on the board to signal that it is a fake board and you should use another LED pin if these points are soldered:
from machine import Pin
import array, time
from machine import Pin
import rp2
p24 = Pin(24, Pin.IN, Pin.PULL_UP)
print(p24.value())
p25 = Pin(25, Pin.OUT)

Configure the number of WS2812 LEDs.​

NUM_LEDS = 1
@rp2.asm_pio(
sideset_init=rp2.PIO.OUT_LOW,
out_shiftdir=rp2.PIO.SHIFT_LEFT,
autopull=True,
pull_thresh=24,
)
def ws2812():
# fmt: off
T1 = 2
T2 = 5
T3 = 3
wrap_target()
label("bitloop")
out(x, 1) .side(0) [T3 - 1]
jmp(not_x, "do_zero") .side(1) [T1 - 1]
jmp("bitloop") .side(1) [T2 - 1]
label("do_zero")
nop() .side(0) [T2 - 1]
wrap()
# fmt: on

Create the StateMachine with the ws2812 program, outputting on Pin(22).​

sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(16))

Start the StateMachine, it will wait for data on its FIFO.​

sm.active(1)

Display a pattern on the LEDs via an array of LED RGB values.​

ar = array.array("I", [0 for _ in range(NUM_LEDS)])

Cycle colours.​

for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 100
g = 0
b = 0
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 0
g = 100
b = 0
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 0
g = 0
b = 100
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 100
g = 100
b = 100
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
for i in range(4 * NUM_LEDS):
for j in range(NUM_LEDS):
r = 0
g = 0
b = 0
ar[j] = g << 16 | r<<8| b
sm.put(ar, 8)
time.sleep_ms(50)
while 1:
if p24.value()==0:
p25.on()
else:
p25.off()
What I've been doing is initially flashing to v2.67 to get the led back. Then once confirmed the install is good, update via pico toolbox to v2.75.
 
  • Like
Reactions: LucasRomeiro

LucasRomeiro

Member
Newcomer
Joined
Sep 30, 2023
Messages
16
Trophies
0
Age
36
XP
151
Country
Brazil
bem, se você sabe a qual pino o led está conectado ao atm e qual precisa estar, desconecte-o do pino errado e solde um fio no pino correto.
se você comprar de uma venda adequada, não receberá fichas falsas.
se você comprar porque é alguns centavos mais barato e ganhar um chip falso, isso é com você.

você pode fazer o pedido diretamente no Waveshark e obterá o zero correto.
do you have the direct link of Waveshark? i cant find
Post automatically merged:

What I've been doing is initially flashing to v2.67 to get the led back. Then once confirmed the install is good, update via pico toolbox to v2.75.
i want to recompile to solve it. but i dont know how i can do it, im trying to clone the repository in the PIO
 
Last edited by LucasRomeiro,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: I'm back