Hardware What's so special about RP2040?? (Aside from the low cost)

Myst0gan

Well-Known Member
OP
Member
Joined
Oct 17, 2023
Messages
122
Trophies
0
XP
124
Country
United States
I got a Chinese microcontroller (about the same size of RP zero, if I remove the antenna) with ESP32-C3 chip from a company called WeAct Studio and laying around, I was wondering will they work to jailbreak V2, OLED and Lite switch??

I have no technical knowledge about the chips. In theory, will the Chinese microcontroller work if I flash it with the software written for rp2040 or I definitely need to get a RP zero to do so?? (I don't have any access to the new versions of the switch, to test it).

Is the rp2040 easier to program from its counterparts??
 

Attachments

  • IMG_20231017_124432.jpg
    IMG_20231017_124432.jpg
    779 KB · Views: 34
  • IMG_20231017_124448.jpg
    IMG_20231017_124448.jpg
    809.8 KB · Views: 30
Last edited by Myst0gan,

Fishaman P

Speedrunner
Member
Joined
Jan 2, 2010
Messages
3,323
Trophies
1
Location
Wisconsin
Website
twitch.tv
XP
2,199
Country
United States
They are two completely different CPUs based on completely different architectures and instruction sets. The firmware is totally incompatible, and always will be.

The RP2040 is different from pretty much every other microcontroller because of the attached PIO blocks, which essentially act as dedicated bit-bangers. Great for talking with other hardware that's also running pretty fast, like a video interface or a cartridge slot.
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,354
Trophies
4
Location
Space
XP
13,942
Country
Norway
I got a Chinese microcontroller (about the same size of RP zero, if I remove the antenna) with ESP32-C3 chip from a company called WeAct Studio and laying around, I was wondering will they work to jailbreak V2, OLED and Lite switch??

I have no technical knowledge about the chips. In theory, will the Chinese microcontroller work if I flash it with the software written for rp2040 or I definitely need to get a RP zero to do so?? (I don't have any access to the new versions of the switch, to test it).

Is the rp2040 easier to program from its counterparts??
PIO (programmable I/O) is what makes RP2040/Pico unique. No other microcontroller has this (but some might have similar things), how exactly it works seems like black magic but it's supposed to be able to handle custom I/O protocols in hardware, so that you don't need to spend valuable processing time doing I/O and dealing with the annoyances of highly time sensitive I/O (like needing to use x amount of assembly language "nop" to delay for exactly the right amount of time between sending bits of data...) manually in your code.
Take a custom console->USB controller adapter for example, you could program the PIO to read the controller state (buttons etc.) automatically, taking care of correct timing between read/write commands and such.
But it's capable of far more than just that, for example DVI/HDMI output is possible through PIO even though the RP2040 has no native support for video output, things such as adding an additional USB 1.1/2.0 port or adding an ethernet port are also possible, with no extra hardware other than the port (and all of these things have been done already and code is available), basically the sky is the limit as far as what sort of devices and connection types RP2040/Pico can support/communicate with over PIO. Because it's done in hardware it's much faster than doing it in software, these things would not even be possible in software.

I think ESP32 and RP2040 are programmed the same way (by copying a .uf2 file to the "flash drive" that shows up on a PC when the device is in programming mode), both of them also support MicroPython. Both are also capable of being used through the Arduino IDE and running Arduino code. The same .uf2 firmware file will not work on both (firmware must be written and compiled specifically for the device it will be used on), but if you have Arduino or MicroPython code it should work on both with little to no modifications needed.

I assume by "RP zero" you mean RP2040 Zero, as the Raspberry Pi Zero is an entirely different type of device which is not microcontroller based but rather a full ARM-based computer similar to the full-size Pis, and cannot run anything made for RP2040.
I would recommend the Pi Pico W over RP2040 Zero, just cause having integrated wifi and bluetooth is nice and for $6 seems like a no brainer, even if you don't need them for every project.
 
Last edited by The Real Jdbye,

Myst0gan

Well-Known Member
OP
Member
Joined
Oct 17, 2023
Messages
122
Trophies
0
XP
124
Country
United States
PIO (programmable I/O) is what makes RP2040/Pico unique. No other microcontroller has this (but some might have similar things), how exactly it works seems like black magic but it's supposed to be able to handle custom I/O protocols in hardware, so that you don't need to spend valuable processing time doing I/O and dealing with the annoyances of highly time sensitive I/O (like needing to use x amount of assembly language "nop" to delay for exactly the right amount of time between sending bits of data...) manually in your code.
Take a custom console->USB controller adapter for example, you could program the PIO to read the controller state (buttons etc.) automatically, taking care of correct timing between read/write commands and such.
But it's capable of far more than just that, for example DVI/HDMI output is possible through PIO even though the RP2040 has no native support for video output, things such as adding an additional USB 1.1/2.0 port or adding an ethernet port are also possible, with no extra hardware other than the port (and all of these things have been done already and code is available), basically the sky is the limit as far as what sort of devices and connection types RP2040/Pico can support/communicate with over PIO. Because it's done in hardware it's much faster than doing it in software, these things would not even be possible in software.

I think ESP32 and RP2040 are programmed the same way (by copying a .uf2 file to the "flash drive" that shows up on a PC when the device is in programming mode), both of them also support MicroPython. Both are also capable of being used through the Arduino IDE and running Arduino code. The same .uf2 firmware file will not work on both (firmware must be written and compiled specifically for the device it will be used on), but if you have Arduino or MicroPython code it should work on both with little to no modifications needed.

I assume by "RP zero" you mean RP2040 Zero, as the Raspberry Pi Zero is an entirely different type of device which is not microcontroller based but rather a full ARM-based computer similar to the full-size Pis, and cannot run anything made for RP2040.
I would recommend the Pi Pico W over RP2040 Zero, just cause having integrated wifi and bluetooth is nice and for $6 seems like a no brainer, even if you don't need them for every project.
So, practically it's like java and other microcontrollers are c, c++, python and so on, where you'll have compile for specific hardwares??🤔

I thought RP zero and RP2040 zero were the same thing, sorry for confusing it.

I got a buch of RP pico with 2040 laying around, even though it's wayy bigger than rp2040, will the software written for rp2040 zero will work with rp pico?? (Probably I'll have to change the I/O pins, but in theory it should work fine with newer Nintendo switch boards)

On the top of the chip it doesn't say rp2040, but only at the back of the PCB
 

Attachments

  • IMG_20231017_124346.jpg
    IMG_20231017_124346.jpg
    933.3 KB · Views: 27
  • IMG_20231017_124409.jpg
    IMG_20231017_124409.jpg
    1.3 MB · Views: 26

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,354
Trophies
4
Location
Space
XP
13,942
Country
Norway
So, practically it's like java and other microcontrollers are c, c++, python and so on, where you'll have compile for specific hardwares??🤔

I thought RP zero and RP2040 zero were the same thing, sorry for confusing it.

I got a buch of RP pico with 2040 laying around, even though it's wayy bigger than rp2040, will the software written for rp2040 zero will work with rp pico?? (Probably I'll have to change the I/O pins, but in theory it should work fine with newer Nintendo switch boards)

On the top of the chip it doesn't say rp2040, but only at the back of the PCB
No... First of all, Java is platform agnostic so that's a bad example, second of all, those are programming language, not CPU architectures.
All microcontrollers generally use C/C++ and the code is mostly the same between similar microcontrollers. it's more like the difference between writing/compiling a program for PC, mobile or console, you can often use the same language or even the same IDE, but there will be differences that will make code not work without modifications, and you obviously can't run a Windows .exe on mobile.

RP2040 Zero and Pi Pico are the same thing in a different form factor, the pins are the same (because the pins go to the chip, and it's the same chip) and they run the same code/firmware. But the Pi Pico is too big to fit in the Switch, that's why people use RP2040 Zero for that. There is already barely any space and to fit a Pi Pico would probably block most of the fan air flow, which would not be a good idea.
 
  • Like
Reactions: Myst0gan

Myst0gan

Well-Known Member
OP
Member
Joined
Oct 17, 2023
Messages
122
Trophies
0
XP
124
Country
United States
No... First of all, Java is platform agnostic so that's a bad example, second of all, those are programming language, not CPU architectures.
All microcontrollers generally use C/C++ and the code is mostly the same between similar microcontrollers. it's more like the difference between writing/compiling a program for PC, mobile or console, you can often use the same language or even the same IDE, but there will be differences that will make code not work without modifications, and you obviously can't run a Windows .exe on mobile.

RP2040 Zero and Pi Pico are the same thing in a different form factor, the pins are the same (because the pins go to the chip, and it's the same chip) and they run the same code/firmware. But the Pi Pico is too big to fit in the Switch, that's why people use RP2040 Zero for that. There is already barely any space and to fit a Pi Pico would probably block most of the fan air flow, which would not be a good idea.
That was just an example, so I could understand, from what I know, whith java you just need 1 compiler for windows, mac and Linux, with c++ and other programming languages you need specific Compiler for every os.
Thanks for the explaination about rp2040, I'll look for some broken switch with patched board and experiment with the pi pico that I already have, if it works, I'll order a bunch of rp2040 zero

Edit: @The Real Jdbye what does exactly the rp2040 mod does?? Enables again fusee-gelee exploit that was patched in new switches or other exploits??
 
Last edited by Myst0gan,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    S @ StealthD0g99: I think we as a society should take the Cave Johnson approach to scientific studies