Raspberry Pi Pico anyone?
category: general [glöplog]
Hello, I was wondering if there are some people into this microcontroller or if it was already used in a demoscene prod. I did not find it as a platform somehow. I made a little demo for it so I thought I would advertise it here!
However I find it is nowhere good enough from a demoscene point of view or finished enough to be considered a demo, but since I have posted it elsewhere I wished to post it here too!
Pouet is my teenage home :)
Links here:
https://www.youtube.com/watch?v=HFueb5DTc1c
and here:
https://www.reddit.com/r/raspberrypipico/comments/1g7opld/pico_3d_engine_demo_320_x_240_60_fps_spi_120_mbps/
Shameful-shameless copy-paste of description:
However I find it is nowhere good enough from a demoscene point of view or finished enough to be considered a demo, but since I have posted it elsewhere I wished to post it here too!
Pouet is my teenage home :)
Links here:
https://www.youtube.com/watch?v=HFueb5DTc1c
and here:
https://www.reddit.com/r/raspberrypipico/comments/1g7opld/pico_3d_engine_demo_320_x_240_60_fps_spi_120_mbps/
Shameful-shameless copy-paste of description:
Quote:
So here is a simple demo of my little toy integer 3D engine running on four Raspberry Pi Pico microcontrollers, each with a different resolution. It is full six-axis polygonal 3D although for this demo there is no sorting nor depth buffer and no proper clipping.
The 3 small devices are playable with the joystick and buttons.
The overclocked ILI9341 big screen can surprisingly take 320.240.16@100fps / 10ms without the 3D rendering.The screen can even physically refresh at 100Hz by its specs.
That makes the SPI transfer rate 120Mbps. Quite nice for a Dupont cable I think!
My render alone would be about 5ms / 200fps. That makes the total run at 60fps on the 320x240 screen for this demo.
I do not consider to even have begun optimizing seriously.
This is very simple and small C code. The code is full integer arithmetic. There is not a single floating point type in the program. There is even no fixed point type either. The code also only uses one of the two CPU cores, overclocked to 400MHz even though it is not needed for lower resolutions. It is compiled with the Pico C++ SDK.
Still I am pleasantly surprised of what it could do on the RP2040.
I think my code runs quite well and is a good fit for this device, that has no FPU but an awesome 1 cycle MUL and super awesome 8 cycle DIV, and static RAM for everything.
There are 1600 quad polygons and as much vertices in the demo, but I probably can find a better way to do this.
I also have a full 153K framebuffer on the Pico for the big screen.
With 256K main RAM that still leaves some room for code and data. All the code runs from RAM, I do not use the flash cache. The binary is 41K.
The blitting SPI transfer and device initialization code is based on the Pico C++ SDK PIO ST7789 example.
Resolutions are: 320.240 - 240.240 - 240.135 - 160.80
Obviously with decreasing resolution the performance goes way up both for the rendering and the transfer. You can see the milliseconds per frame on the orange live bargraph, 1 pixel is 1ms, one gradation is 10ms. The orange top-down moving graph is the frametime history.
I think there is still much room for improvement both in features and performance.
I think it may be a great platform for demomaking fun. Go and make a demo for it!
There are a handful of RPi Pico releases already, as per this list: Raspberry Pi Pico scene prods
Pimoroni ran a demo contest for their Picovision board last year, but didn't really promote it very far (I don't think they even mentioned it on their customer mailing list...). We did get a jtruk demo out of it though!
Pimoroni ran a demo contest for their Picovision board last year, but didn't really promote it very far (I don't think they even mentioned it on their customer mailing list...). We did get a jtruk demo out of it though!
Yes ham, I should...It is just taking decades :)
The target has moved from GP2X to Pico, quite ironic, the pico is probably more powerful but to go to 64M ram to 256K is a cold shower...an interesting one :) ...And it is SRAM so that with the ultra fast mul and div...interesting.
gasman, thank you for this information, I must have forgotten seeing demos for Pico on Pouet!
Nice to know and there are some intersting things already, more technical than I did.
I have seen the advent of the HDMI/DVI driver and the Pimoroni dual chip board, and the demoscene contest and the result even!
So you are the winner! Congratulations! And nice polygonal isocahedron!
Maybe I should continue what I have built so far, I think there is still so much more to do with these characteristics. I am almost sad the Pico 2 has an FPU!
The target has moved from GP2X to Pico, quite ironic, the pico is probably more powerful but to go to 64M ram to 256K is a cold shower...an interesting one :) ...And it is SRAM so that with the ultra fast mul and div...interesting.
gasman, thank you for this information, I must have forgotten seeing demos for Pico on Pouet!
Nice to know and there are some intersting things already, more technical than I did.
I have seen the advent of the HDMI/DVI driver and the Pimoroni dual chip board, and the demoscene contest and the result even!
So you are the winner! Congratulations! And nice polygonal isocahedron!
Maybe I should continue what I have built so far, I think there is still so much more to do with these characteristics. I am almost sad the Pico 2 has an FPU!
Happy to see demomaking added to the list of things pipico is great for. Hope to see more.