Could probably adapt the PICO-56 hardware to run this. It only has 12bit VGA, but includes SDCard support, PS/2 keyboard (though USB is great too) and PWM audio out.
the 12 bit vga might also be quite easily integrated with the palette system, but im still curious if PWM audio will work well with the rest of the system is the PWM audio generated from the same core as the VGA?
Back in the late 80s, I used to program VGA on 330x200 in 8bits with a similarly indexed palette, which meant 3 bytes per colour but 1 byte per pixel and only 64,000 bytes per screen, which happened to fit inside of a "segment" (65536 bytes addressable by 16-bit offsets). At the time, 16MHz was considered a very decent speed, while nowadays it's the speed of an Arduino (I push my Arduinos to a whooping 20MHz, but that's another story involving crystal change and reprogramming the fuses). I guess you don't have such constraints in memory organisation any longer, the datapath being 32-bit wide on RP2040. I still wonder how you could bring 133MHz to 250MHz without severe data losses... How many Picos do you intend to put on your circuit? You seem to be very concerned by price and by the number of I/O pins (it's *never* enough!), how about embracing it and use "swarms" of specialised units for sound, video, storage, network, etc. instead of killing 15 pins of your Pico in VGA output? Deporting the video to a specialised subsystem (e.g. based on an ATMega8 and some SPI-controlled RAM) could improve your resolution, the stability and... save 14 pins on your Pico. Even, by implementing a bus, you could design a "pluggable" system (similar to I2C or CANBus) where adding a feature would "simply" be adding a subsystem on a line: sound generation and video are mostly about wasting (the right amount of) time, that's not something you want to use your CPU for, it's even worse when coming to networking (which is very greedy in CPU if you don't deport it). From what I saw with Ben Eater's videos about it, USB is a mess, but you already saw that (black screen) and storage... Good luck.
256 colors could have worked nice aswell but would take up more than 30%of ram I am thinking however about adding a 160x120 color mode with all the 32768 colors which would also take up only 15% of ram
This is different to the 80s, where video modes were constrained by being able to physically read through the ram fast enough to send it to the display.
Lovely! I was about to suggest to use a RP2350 instead of the outdated RP2040 which has more RAM and can do floating point operations more smoothly, then I saw you are already developing a custom board with RP2350b. Just for the case will you try using the RISC-V cores?
Im thinking about doing a similar kind of thing. My planned tactic for screen buffer is just to rely on the relatively fast processor and generate everything a scan line at a time. For text you essentially wouldnt need a frame buffer and for general graphics modes you could just swa out palattes on the fly. Unfortunately the combination of features of the dma and pio make it difficult to do much more than run length encoding without involving the processor. Ps is your analog output just from a resistor ladder?
I2S is a great idea, go with it. The sound will be superior to PWM implementations. And you can get cheap i2s audio amplifier ICs on a tiny PCB for peanuts.
parts for the prototype board have costed me around 16 euro max the most expensive parts are the pico and usb hub which is not that needed but still nice to have
Link to the just created Cluatron Server: discord.gg/K9wbVfXu4f
AYO this speaks to my heart. I’ve wanted to make this exact idea for so long and someone finally did it :) great work!
Also: the new RP chip you’re using should have native floating point support, which would help a lot!
Could probably adapt the PICO-56 hardware to run this. It only has 12bit VGA, but includes SDCard support, PS/2 keyboard (though USB is great too) and PWM audio out.
Hey! I was thinking the same thing. There are a lot of simiarities. Would be awesome if someone would bring this to the pico56.
I already have a Pico-56 would love to try this
the 12 bit vga might also be quite easily integrated with the palette system, but im still curious if PWM audio will work well with the rest of the system is the PWM audio generated from the same core as the VGA?
Back in the late 80s, I used to program VGA on 330x200 in 8bits with a similarly indexed palette, which meant 3 bytes per colour but 1 byte per pixel and only 64,000 bytes per screen, which happened to fit inside of a "segment" (65536 bytes addressable by 16-bit offsets). At the time, 16MHz was considered a very decent speed, while nowadays it's the speed of an Arduino (I push my Arduinos to a whooping 20MHz, but that's another story involving crystal change and reprogramming the fuses). I guess you don't have such constraints in memory organisation any longer, the datapath being 32-bit wide on RP2040. I still wonder how you could bring 133MHz to 250MHz without severe data losses...
How many Picos do you intend to put on your circuit? You seem to be very concerned by price and by the number of I/O pins (it's *never* enough!), how about embracing it and use "swarms" of specialised units for sound, video, storage, network, etc. instead of killing 15 pins of your Pico in VGA output? Deporting the video to a specialised subsystem (e.g. based on an ATMega8 and some SPI-controlled RAM) could improve your resolution, the stability and... save 14 pins on your Pico.
Even, by implementing a bus, you could design a "pluggable" system (similar to I2C or CANBus) where adding a feature would "simply" be adding a subsystem on a line: sound generation and video are mostly about wasting (the right amount of) time, that's not something you want to use your CPU for, it's even worse when coming to networking (which is very greedy in CPU if you don't deport it). From what I saw with Ben Eater's videos about it, USB is a mess, but you already saw that (black screen) and storage... Good luck.
I suggest a name for the sponsoring superhero, Culattron
Nice project. Please put schematic on your github. Where is your keyboard connected? VGA is clear from your video. 👍👍👍
the keyboard is connected to the usb of the pi pico, you will probably need some sort of adapter for that
your voice sounds like voice before random typing in a mechanical keyboard starts. anyways keep posting staff :
i use a mechanical keyboard inbetween sentences while recording which sometimes prevail in the audio
you are SO RIGHT
Broer kwist dat dit een banger video ging zijn wnr k die zag in mn feed
Too bad you don't have 256 colors, just need some more memory for it, I see your point; but who knows for the future.
256 colors could have worked nice aswell but would take up more than 30%of ram I am thinking however about adding a 160x120 color mode with all the 32768 colors which would also take up only 15% of ram
This is different to the 80s, where video modes were constrained by being able to physically read through the ram fast enough to send it to the display.
Lovely! I was about to suggest to use a RP2350 instead of the outdated RP2040 which has more RAM and can do floating point operations more smoothly, then I saw you are already developing a custom board with RP2350b. Just for the case will you try using the RISC-V cores?
for what ive seen the RISC-V cores do not have 64 bit hardware floats but the ARM cores do
Fantastic! 4x4 font reminded me old 8-bit ZX Spectrum clone from my country called Elwro Junior 800 - it has such mode too ;)
Im thinking about doing a similar kind of thing.
My planned tactic for screen buffer is just to rely on the relatively fast processor and generate everything a scan line at a time.
For text you essentially wouldnt need a frame buffer and for general graphics modes you could just swa out palattes on the fly.
Unfortunately the combination of features of the dma and pio make it difficult to do much more than run length encoding without involving the processor.
Ps is your analog output just from a resistor ladder?
my annalog outputis nothning more than a resistor ladder haha
@@Jalecko sorry I was confused, I was working out pins for much the same stuff, except PS2 keyboard and mouse and I was running out of space.
@@benholroyd5221 i dont understand why one would even use PS2 devices since they are rather old and the pi pico has perfect USB host capabilities
Like this comment if you have found the hamster
Hamster is at 12:19 or is that a glitch?
@@EdwinvandenOetelaar thats a frog
i didnt find the hampster but theyre cool so i liked the comment anyways i hope thats okay
7:44, and what filesystem for the SD cards? Ext2? Fat32? Also you forgot to put a license, so it isn’t FOSS. Copyleft or BSD?
@@xanderplayz3446 in the 'MegaTron' yes.
:-) FIRST HAHAH (yes) Very nice video, I am going to share this with some hacker friends. Good Work!!
compuder go brrrrrrrrrrrr
Спасибо, отличный контент.
btw you should make a tutorial on how to compile the cluatron software and i am having trouble
Good point😊
Tip : use linux
@@JaleckoNix?
@@xanderplayz3446 if it got the linux kernel you should be alright
I2S is a great idea, go with it. The sound will be superior to PWM implementations. And you can get cheap i2s audio amplifier ICs on a tiny PCB for peanuts.
im sure i2s will sound lovely but im still not so sure about the amount of pins it takes from the MCU since I also want an SD card to work on there
how about support for small LCD display?
definitely possible if I make a I2c or SPI interfacing library in the LUA API
Lekker bezig
How much money did this cost
parts for the prototype board have costed me around 16 euro max the most expensive parts are the pico and usb hub which is not that needed but still nice to have
My man is een genie
Nice
you should use the rpi pico 2 it is faster
Why would i if the pi foundation made a version of the pi pico 2 chip with more pins than the original thats what im waiting for
@@Jalecko ok
i think this is 10 people lol
good point, gonna work on a discord now and put an invite to it here and on the community tab
discord.gg/K9wbVfXu4f here is a link
Why is everybody always stealing my ideas 😢