Greetings. I have been working on this project for a long time. It has gone through several revisions to be where it is at today, and only just recently have I written the code for the example in the video above.
The Inspiration
First a bit of history. I had this idea as a younger lad in 2010-2011. I was really getting into programming and electronics and thought, "Wouldn't it be cool to make my own video game console?" So I looked around. I ended up on xgamestation (now ic0nstrux.com) and found a kit using an sx chip which included the book Black art of Video Game Console Design by Andre LaMothe. I got the pico edition but the micro edition is way cooler. They are a little out of date today but can still be bought on the site above.
I tried to get the kit to work, sadly to no avail, but that book taught me a lot and I still use it as a general reference to this day. Without the system able to display video I was stuck. It was then that I happened upon another one of LaMothe's kits, HYDRA Game Development Kit. I sadly did not have enough money for the kit but I looked into it and found that it included book Game Programming for the Propeller Powered Hydra which had all the schematics for the system inside.
Luckily for me Propeller Chips were (and still are) relatively inexpensive, so I bought some and built the graphics system from some stuff I had lying around. Then that is what sparked my creativity, I wanted something bigger, something better, something that pushed this little micro controller to it's limits and thus the first iteration was born.
The first iteration had 7 propeller chips (which amounts to 38 cores) and 8 MB of memory. The layout for this system was terrible but considering it was my first attempt and I just assumed more processors meant more power (and for certain applications they do) I went with it. The video below shows my board as it was originally, loaded with 8 MB of SRAM. The goal in my head was to make it as good as a Nintendo 64. This of course was not possible and the realization of new facts eventually brought me to my current iteration.
The Current Iteration
The current iteration has only 3 propeller chips now, and each has a dedicated function. One is the GPU, one is the CPU, and the other is something I like to call the Bridge. Also I cut the amount of RAM down to 1MB because it's pretty slow to read from (as it stands, even at the fastest speeds, it takes 0.05 seconds to read or write to the entire RAM).
The Processing Unit
The CPU and the GPU are the only two chips connected to RAM. They access the data over a 16 bit bus which is where I get the speed from, well that and some pretty clever coding. The address is sent over the bus as well as data is read and written to the same bus. The reason I still have such fast speeds is that there are also three separate fast address pins. These pins allow 8 numbers in a block to be read or written to quickly. The CPU is also connected to the SD card and the Bridge, this allows it to have quick file access and communication with the Bridge as well as the GPU. The only other hardware the GPU has is the 3 bit TV DAC.
The Bridge
The Bridge is the only way for the system to interface with the user and the outside world. Basically anything else you want to add that can't be put on an already existing data bus must be attached to the Bridge. This includes, but is not limited to, mouse, keyboard, audio, game controllers, Ethernet, WiFi, etc. This is why I call it the Bridge, because it bridges the gap between the outside world and the heart of the system. The Bridge and the CPU are connected only by two serial lines, which can only get up to 1 Mbit if using high speed protocols. Therefore only things that can do without lightning fast communication with software should be attached to the bridge. The bridge is also responsible for booting the CPU and GPU with their initial code, which one day will be a BIOS of sorts, giving them instructions on how to boot from files on the SD card.
Conclusion
That's about it. I think that gives a comprehensive explanation of where this project is. As for where it's going, well that's anyone's guess. From where it started with a game console, it has become more of a general computer, and even more than that, it is a challenge to myself to see how far I can push the Propeller Chip.
While I will still develop games for it if possible, I am open to other possibilities, possibly even one day making an OS for it. Also with more processing modules (CPU, GPU, RAM) a low power multiprocessing system could be made. I am open to possibly posting the code and schematics to github/sourceforge as open source so other people can develop for it too, however I will gauge whether or not I am going to do that based on interest.
Well I hope you enjoyed, at the bottom I will put a list of the basic specs of the propeller chip, and the next post on this project will be on the 3D program in the video and how it manages to run on such a low power chip. And as always, questions and comments are appreciated.
Propeller Chip Specs:
Clock frequency : 80 MHz
Instruction speed : 20 MIPS/Core
Number of cores : 8
Program/variable RAM : 32kB
The PropPC : A Microcontroller Computer | Ecency
A Day In The Life Of A Railfan//vloggamingwithme ·