you should pin the comment so people don't have to look for it. By the way this video is made very well, awesome job! Especially the "intermissions", they really add a poetic and personal element to it, and I've never seen it done on youtube before (not in this field atleast). About your project, I own many microcontrollers and electronics components, so I might try doing something similar at some point. Thank you for the inspiration!
LOVE this. Blogging it tomorrow. An old-school at home tinkerer project designed around a plant-based extended metaphor; what more could we ask for? This is exactly why Raspberry Pi was created in the first place - to get people back into building their own computers at home.
Thank you! The original Raspberry Pi brought excitement back into computing for me - I even made magic mirrors for Christmas one year :) Discovering the RP2040 this past year has done it again - I appreciate what Rasberry Pi has given to computing.
As a Electronics Engineer I have to say, that you did a great job. But for this project it would be less time consuming and much more reliable to produce a PCB. PCB's are dirt cheap nowadays and high quality. (of course you need to learn how to use a PCB Layout Software first)
Thank you for that! Producing a PCB is my next step on this - I'm hoping to get it rolling early in the new year. There is a lot more work needed to build out the operating system software, but I think HW footprint is ready for a prototype. I'll post an update.
just because PCB's are dirt cheap doesn't mean one should be wasteful, much better to prototype without to know exactly what is needed, then make a pcb when that's more set in stone
What wonderful production quality and interesting content for having so few subscribers! Please if you have the time, continue to post things like this :)
I appreciate hearing that! Making the video has been almost as fun as making the computer - recording throughout was a lot, but its been a great way to reflect on the work. I'll definitely keep posting!
Cool! My plan for 2024 is to develop some things using hardware rather than always working on software projects, hence I am discovering great videos like yours. I like the idea of getting close to the bare metal. I've ordered various ESP32 modules to play with.
There's still plenty of coding to do, but I have been having way more fun programming hardware I can actually use in my daily life, rather than trying to find a programming project that just does something on a screen for the most part. And then the idea of reusable code really comes into play. Write a driver for a component and make it a class and keep it configurable and you can just reuse that code. I find myself writing C++ while thinking about how I can use the software in other projects. It's a ton of fun.
@@psyience3213 Great. I got my first dev board working with wifi connecting to my phone and a pc today. Very nice since I want to try to extract data from my smart phone to display on a small screen such as for when I am riding my bike. But now it's winter maybe do some kind of home monitoring like you.
I see this as a reciprocal function of a successful software designer over time. There comes a time when you give yourself enough grief over something the uncomfortablenes of changing breaks into the actual change itself..i have had similar (pipe dreams) I wanted to say Thanks for your effort and commitment to your goals as well as doing it while sharing your experience with other people.
That is a great thing to do. Your motivation and approach are inspirational - keep going and even though it is not a cutting-edge piece of technology from, let's say, conventional point of view, it's definitely interesting, entertaining and I would say educational. The main thing it brings positive mood and the sense of accimplishment when what you have designed starts to work exactly as you planned. Good luck with it and I'd really like to see where it will go.
"it has something like a 2 Hz refresh rate and the shell is known to lock up fairly frequently" Yup, sounds like a typical retro computer to me! Well done! :) This was a great walkthrough of a neat project, and a great example of how anyone can really jump in and start teaching themselves something new, if they really want to and can just come up with some interesting idea to pursue. I really like it.
@@imperiosheriffmy C16 booted in less of a second and only locked up when I made a mistake in assembly. Games ran at 50 fps ( memory was the harder limit, not compute).
This is a really fun project! At my day job I design internal test equipment for consumer product R&D, and for the last year or two I've been working on a modular data acquisition and test automation platform that uses raspberry pi picos on interchangeable cards sending data over a common message bus. There's some parallels with your project and a lot of differences, but I really like seeing how you approached a similar problem from your perspective as a higher level software engineer. I feel like the two entry points to programming are at the very high and the very low level, and coming from the really low level end (my first Real Programming language was Assembly, I hated it. I mostly just do C/C++ in Arduino now) I'm finding that step upwards into higher level stuff both challenging and rewarding. While I know code videos don't tend to do so well on youtube, I'd be interested in some more in-depth videos on the software architecture!
Thanks! I had originally imagined this video would be mostly about the code parts, but it just took a different direction all on its own :) Once I finish out a few pieces, I'll do a deep dive on the code for sure. To your main point, I kind of took what I know from software and applied it here, since it really is a mirror of a micro-service architecture where each service runs on its own little chip. I find it interesting that similar patterns apply at all the levels - but I guess it makes sense that they would. Cheers!
Thanks! I generally like the looks of technical and mechanical components - I like my desk computer to look sleek and do consider aesthetics when I get new equipment. This is the first time though that I've seen tech components as aesthetics-first - I started with a notion of what I wanted it to look like and then filled in the design and features to match that.
My approach to the hardware architecture side of things entails a bare bones 6502 system with a couple of UARTs communicating with Picos and ESP32s that run all of the peripherals. The idea is to be able to test and debug all of the subsystems in isolation rather than having to build the whole system out at once.
@@wrongdogreckons-cp2sy could I suggest that you make a video comparing those processors and also add the Motorola 6809 to the list? I've got a feeling that you would find it as interesting to make as we would to watch. 😮
I've been working with the Pi Picos for some time (SDK, not Arduino), and you probably could have built this entire system with a single (or maybe 2) picos if you utilised their lower-level capabilities. With custom code, both TFT graphics and USB can run on a single pico core using DMA and other trickery at >10fps and a reliable 1ms USB polling rate, then there is still an entire core free for some juicy processing (perhaps for networking?). SPI would be a better alternative for intermodule comms, since the pico can clock at 120 MHz (~100Mbps). Arduino libraries will be painfully slow for many specialised tasks, and horrible to develop more advanced systems in. All that aside, this is a learning project and seeing that this is your first crack at hardware, this is genuinely impressive for a first try!
Oh yeah - there are so many optimizations to be had here. The beauty is, I still have room for all those optimizations and will have tons of leftover processing power. Think of all the things we'll be able to do then! Thanks for watching!
You'd be very hard pressed to rush 120MHz signals through this type of wiring. But then again, the RP2040 has no problem pushing wider buses, as demonstrated e.g. when driving DVI.
@@0LoneTech Some care is required with the ground wires for 120 MHz, but I have had no problems when twisting the wires for these speeds. Some series resistors can also solve ringing issues (even the 10th harmonic of 120 MHz has a wavelength of ~25cm).
What a wonderful way to inspire discovery using resources many contemporary hobbyists are already familiar with but have not thought to put together or were too scared to tackle. The modular design lends itself well to experimenting or trying different controllers. As a non-developer, software development has until recently been very intimidating. I've plateaued with Micro-Python blinking lights projects. Your narrative style here has inspired me to invest more time in the programming side of things. I'm drawn towards emulating some of the classic computers since buying the kits is expensive. I already have a shelf of SBCs being under utilized. Hehe.
Thanks! I've had a ton of fun with it still - and it gets people's attention when they see it. You're right - emulation is a great way to get the same feel without the same price :) Cheers!
Using multiple SBC all mashed together is kind of hilarious. But I guess it's easier (and cheaper) than sourcing a bunch of random Z80s and sticking them all on a breadboard. I'm surprised you said the RP2040 is maxed out with the keyboard. It's a dual core, 130Mhz CPU. I'd expect you to be able to use that second core for processing. USB is a pain on such small devices, and so I can understand why you just had an entire MCU dedicated to polling it, but a Pico is more than capable of reading the USB protocol properly as still having plenty of room left for processing. PS/2 devices are hard to find these days, though you can get adapters, and could even make it simpler.
You're right about the keyboard module - it definitely has plenty of clock-cycles left over that can (and will) be put to use. There are lots of optimizations and honestly this could been done on one or two RP2040s. This was mostly an artistic design and it does an over-abundance of processing, but that has the advantage that I can develop out services on the nodes over time to make it into a capable little computer. Cheers!
Wow, the hardware I could do but you totally leave me for dead with the software. In the 80"s I built myself a computer using a 6800 but it had no OS just a pile of switches and leds, I wanted to get it to run something like BASIC but never was able to get it working. However I did learn assembler and how to use a logic analyser so I was very happy too.
Assembler take a lot of brain power :) What happened with the computer from the 80's? Is it still floating around somewhere? Thanks for watching - cheers!
Another good homebrew series like Ben Eater's is the one by James Sharman where he builds a pipelined CPU and some peripherals like a graphics card, sound card, and various I/O.
I would like to do the same thing using the S100 bus and fix all of the design flaws. and add every bell and whistle that didn't exist in 1977... Maybe give it a dual mode bus, so it is backward compatible, but have a 2nd mode that gives it access to unimaged capabilities that can be done today...
Interestingly, I just watched a video on a found homebrew based on the RCA 1802 where the maker had built their own backplane (not S100) - it might be interesting to you: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-4pgO7CvsdfI.html - thanks for watching - cheers!
As a software engineer I can relate to that feeling to not understanding the low level components very well, but I love your modular architecture, you design is reminiscent of micro services deployed in a Kubernetes cluster, with coupled but separate components interacting with each other over some common message bus. Great video!
You are absolutely right - I noted that exact thing yesterday in a comment: in the end, I just took a pattern that is very common to me (built-in to my brain at this point) and applied it to a new (to me) problem space. I think it makes some sense that these same patterns would apply at the high level and the low level. You just get a lot less syntactic-sugar to play with at the low level :) Thanks so much for watching and commenting!
The building part was cool, but the random clips of Seattle, stock footage, and poetic ramblings about "color everywhere" are a bit distracting. For a video about making a bloat-free computer, this vid has quite a bit of bloat.
Making a bloat free computer wasn't my goal - this was a story about learning, creativity and the act of making - and the story was told in the parts you called distracting. I've never worked with hardware before, so it would be pretty presumptuous for me to think I could do it better than folks that have spent their career in this area - I just wanted to see if I could do it at all. I made the video with hope it would inspire people to try something new or to pick back up that project they were passionate about. Thanks for watching and take care!
You made a homebrew computer and OS. But why did you start with what already existed? You had your reasons for wanting to do this. Find the problem that you wanted to solve and think about your own solutions for that problem. Yeah, you can be inspired by other's solutions for the same or similar problems, but you missed out on a great opportunity to develop something something novel. Recombinating existing themes night be educational, but had little chance of innovation.
Those are great questions that deserve a thoughtful response. Let me expand on an implicit point from the video - my only objective was personal enrichment and a distraction from the real world. I wanted to learn about a topic of interest to me and then exercise creativity to get an outcome that would bring me pleasure. This was accomplished 100% - I know more than I did before (but still not very much) about hardware and operating systems and I have a beautiful machine that I built out from my own imagination out of available components. I've had an innovative career - but always driven by the need to solve some novel business or social problem. I wanted to remove that constraint and see what happened. I never set out to innovate here, I set out to learn and use my creativity and then I made a video to share that experience. And its been a great experience! Thank you so much for watching!
Perhaps I can make a simpler project than this awesome computer, and can be well documented and nice to watch like this. Congratulation, you're doing great!
I wish I could love assembly more than I do - I just don't. I can follow it, I can write it, I just avoid doing that at all costs. When I went to school, we used MIPs assembly as a starter and it was at least bearable, but still... Good luck in your class!
Programming is physical. But it's not obvious. In 1977 I saw an electronics engineer friend demonstrate his original home-brew computer using a 6800 processor. Despite my own years of electronics and programming courses, things were still foggy until I applied that knowledge on my own system. After an amazing 'aha' moment, it all clicked. Later, as a game development professor, I tried recreating those "aha" experiences for my students. Those who pushed beyond those barriers left other students in the dust, reversed engineered products, and became excellent problem solvers. Thanks for sharing your own journey. Now can you reduce production costs while making it scalable? 😎
I really like how you said that - 'Programming is physical. But its not obvious.' - I think I've missed a lot of 'obvious' things because I didn't take the time to reflect and introspect. Its worth doing. On the students that you saw excel, where would you put curiosity as a factor?
Well done. I started when you had to modify the BIOS for your homebuilt CP/M machine, to match your configuration. This was usually loaded by a hand entered stub loader on a binary control panel ( like an Altair ), because a PROM/UV-Eprom burner was non-trivial. using hardware required understanding the software, and but using the siftware required that you know your hardware. That was ages away from appliance conputers. Lolz Memories of 1977.
Thank you for sharing - I am fascinated with computing history. Especially, when they are so ingrained and ubiquitous in our lives and we just expect them to work, but we need to keep in mind how very recently they were actually introduced. It hasn't been that long.
The transient ground problem brought to mind a bit of folklore about the Acorn BBC B, that there's a resistor that no one was quite sure why it was needed, but it fulfilled the function that an engineer's finger on a certain place on the prototype board had. Take the finger off, and the machine would flake out and just stop. If you're not a retro computer fan (and not British) the BBC isn't a machine one would come across - it was the computer that was used in most UK schools in the early 80s, on the back of a computer literacy initiative between the BBC and UK Gov of the time. The Raspberry Pi is something of the spiritual successor to the BBC, especially in terms of the exposed I/O. The first ARM chips were part designed, and tested on 8 bit BBC kit, and BBC BASIC is still one of the best dialects of the language out there - it was designed to teach a lot of the best practices of programming (after Wirth, et al), and is still in development today, albeit slowly. RISC OS has it baked in, and there are Windows, CP/M and Android versions.
Amazing - thank you for sharing that! RU-vid algorithms have resulted in me watching a LOT of UK based retro-tech creators and I've seen a couple of blurbs about the Acorn BBC micro in watching about Acorn history. Thanks for the insights - after your description, I did a search and Tom Scott has a video on them that I'm watching next: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-g80rnhK-cKo.html
That is actually one of the nicest things to say because I end spending a great deal of time fretting over the names of things - I end up refactoring a lot just for that. To me, its important to get the right concept.
That's an extremely nice thing to say. My intention is to keep making videos about my projects - I really enjoy the whole process and appreciate the positive feedback. Thanks so much!
This is still more of a computer than an iPad, just by the fact that you can create the applications on the same device. I find it sad that Apple started like this and is now pushing hard to limit the user to the experience that they create and not allow the user to explore their own devices.
Agree! Being able to program directly on the device - no matter how painful - seemed pretty core to the concept of being a computer. My next step is to make it a little easier to program on the device.
This is a GREAT question and I've been wondering about emulators recently - people put a lot of work into them. I think I'll have a look in that space and see what they're up to. Thanks!
I was wondering how you could arrive at that many computers. It's like you added one or two per function block. Each RP2040 has processing power nearly on par with a BeBox, but memory only half of an Amiga 500. You didn't run out of processing power; you just didn't add scheduling, the core part of most operating systems. On the plus side, you got plenty of experience with inter-IC communication! There's also precedent for this type of distributed processing; Commodore computers ran the disk operating system in the disk drives, and the Apple 1 had a functionally separate terminal from the computer. An interesting extreme is the GreenArrays network on chip where it takes three computers to interface with external memory, which is okay because it has 144 of them.
You are correct - the latency is largely about communication timing and there isn't any scheduler. In the context of 'running user commands' it is not mult-tasking, whoever gets to the processor first gets full reign. A lot of my decisions were about the look of the piece and it looked better with more chips :) I do like that I have plenty of processing power left over to add functionality. Trying to read, but I am super confused about GreenArrays though - trying to Grok what they are doing there. Its great that they have 144 computers on that board, but am unclear on why...
@@wrongdogreckons-cp2sy I reckon most who hear of them are as bemused. Consider it an experiment in architecture; its closest relatives are TIS-100, FPGAs and transputers, each of different granularity. It's supposedly quite efficient but not clearly integrated either socially or industrially. I think a part of it is some old hand Forth enthusiasts saw the extensibility of their platform and wanted to build the new world. They just never stopped, while other things changed around them. A bit like GNU Hurd. They're not wrong, their systems are cool, but they could be improved with basic routing and recruiting people who grew up watching youtube on 64 bit pocket computers to work on 18 bit systems that don't even have peripherals may be a challenge.
I’m moved by your insights - your focus on personal creative growth rather than “growing the economy” or whatever we’re pushed to believe in. I wish you all the best on your journey - within yourself, with your creativity and thanks for letting me see a fraction of its resulting beauty…
I checked out your project - that's pretty cool! I should have mentioned 8-bit guy in the video too, he was definitely an inspiration - I appreciate what he is doing with the Commander X16 and I actually got the idea to build a modern retro-inspired computer from his video on the Gigatron TTL : ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-_2uXqTi42LI.html
Absolutely brilliant work! I started out in R&D at a company in Germany, spent my first few years in "IT" at the very low levels (which is why I chuckled a little too hard at the ALU talk). It was fun, but invariably frustrating with very little reward at the end of each day. I found consulting, system administration and later managing IT teams to be far more rewarding, though some days just as frustrating. During COVID I built my own "Arduino" on breadboards just to go back to basics one last time. And it was quite fun and challenging. Now the thing is just a clock on my home office desk. The video is so well presented too. I loved seeing you delve into each thought process along the way. The "why's" and "how's" clearly presented.
Thank you so much! Your COVID project sounds cool - I think getting back to basics brings helps build context. There is so much to learn. Appreciate the comments on the video - making it was a challenge and has been one of my favorite parts of the project.
An excellent and worthwhile journey. Almost the exact opposite of my past 45 years ! Electronics, Hardware, machine code, assembler then onward and upward to today. A lot of the details lost, but each generation of knowledge created a platform for the next. As an example, the current flurry of interest in AI, is just a stepping stone to SI, which takes the human/commercial imperatives out of the development and evolution of intelligent systems. SI is no doubt a threat to humanity, but it can do it ‘better’
Thank you! It's the best thing about humans - we build on what came before us. One of the worst things about humans is that we tend to create things we don't fully understand and can't control.
@@wrongdogreckons-cp2sy You are right, if we understood things from the beginning, maybe we will create other different things with different concepts, we are not forced to always be tied to the same concepts of the previous generation.
wow that's a wonderful project ! i did something similar a year ago, i made the emulator of ben eaters 8 bit computer on a pico and made the device handheld so i could play with it during boring lecture classes. have hosted it on hackaday as "8 bit handheld computer".
THAT is cool AF. I especially appreciate the online simulator, playing with that now. Thanks for the pointer - I subscribed to your hackaday project and yt channel. Cheers!
0:01 The first minute said all you need to hear if you have been in the same boat. I could manipulate software but had no clue what was going on under the hood. I did computer repair for over 25 years untill i realized how boring the system became. I dream of owning a PDP anything vecause my passion has became learning what each clock cycle actually does in terms of ligic gates. Got the popcorn ready so i can enjoy the remaining 17:13 in bliss. Great stuff. I think i earnd a new channel and you a sub if im not already. Im so excited best thing all day long. By far
Thank you so much - that's very kind! You are right - computers have become boring. There really is something real to getting down to the core that feels... right?
@@wrongdogreckons-cp2sy not to mention how people blindly trust the programs stirring the ship. 😂. I want to know the heading rather then just being headed.
Thanks for taking me on your journey. As a lifelong Seattleite and microcontroller hobbyist, I feel we have a lot in common but your ability to move a large project from start to finish sets you appart. I hope you continue to share with us.
Thank you so much! I felt like this one was an important one for me to finish - I had to let myself take breaks - the real challenge will be moving it from here to fully finished. I'll continue posting on it - and my newest project too :)
You should put a 12v to 5v DC to DC stepdown module. It will help with managing all the power requirements of the system more easily than having all the currents being delivered by one of the boards. Apart from that, you built a very nice system. Can't wait to see how things evolve
Really cool video, this popped up for me as I’ve been looking more into messing around with hardware. Looks like I have a new project lol. Keep up the good work!
As a fellow hardware/software hacker, I was uplifted by your quality production of a favorite subject matter. I went down the rabbit hole of the Ben Eater 8-bit computer but that's because I'm more of a hardware guy. Your story has an arc and was a testimony to quality video production well done. Someone should write a song to go along with it. I plan to follow your progress with Ficus. Good on ya, mate.
Thank you so much - I really appreciate that. I think I need a few more skills before I try Ben Eater's computer, but I plan to enjoy every step of the way :) Cheers!
Ben's computer is so intensive to put together because of all the interconnect. Superior breadboards are a must! But there is another version called the Bravo that takes the same concepts as Ben's design but applies it to actual circuit boards and more advanced parts. I built that one also and it could be expanded just by adding PWBs since the bussing is contained in the connector stack. Cool idea. @@wrongdogreckons-cp2sy
I am only familiar with it at definition level through references in reading - I've never used it. I just went to Wikipedia to refresh and it's piqued my curiosity. Especially interested in the concept that 'a large Forth program is a hierarchy of words' - thanks for the pointer!
Is there anything better than finding a youtube channel with really aestheticly pleasing and solid content, and you're in the first thousand subs?! Oh man. Chipping in as one of the EEs in this comment section - it's inspiring to see the approach of a non hardware savvy engineer. Didn't recognise it as microservice based until you commented that, but I like it. I agree with the other guy that said it would be interesting to get more insight in the sw side as well. Lots of kudos (kudoses?)! Anyway. ❤
A great project, and well made video! It is a rabbit-hole indeed and an adventure to see how deep it goes. I studied Computer Science as well, focusing on the hardware/low-level side of things and really enjoy these kinds of projects. Keep it up!
I had a fantasy when I was younger about building a "mainframe" out of a load of the Z80 and 6502 computers that were around then... it looks like this is my fantasy come to life but with 2020s tech instead of 1980s. :)
Back in 2008 my now fiance and a good friend where developing a flash cart for the Master System and i wrote a barebone OS for the menu system in pure Z80. Some OS functions for getting input and output, getting a directory from the SD card, loading into RAM and execute the code just loaded and so on. Maybe some day i'll dig that up again and finish what i wanted to get from that project, a SMS based home computer. Nice project, i hope it will inspire others to experiment more.
I respect the passion, desire to learn, courage to try (and fail), and even more resolute courage to re-try (and eventually succeed). The irony is that the computing horsepower is there in your project to exceed what what 100+ retro computers could do if you go back to the wire wrapped back plane and CPUs made from through hole discreet logic ICs with daughter boards for the various I/O. But I'm not minimizing what you did. You learned a great deal!
I appreciate that, this was all about trying something new. On your second point - I agree! There are so many optimizations to be had here - but that would make it feel too much like my day job to be fun :) In all seriousness though, recent updates have made it super snappy and my next steps on this are to consider how I can make use of the extra horsepower - its a fun experiment.
Amazing quality video! That's all that can be said. How can a random person with only 218 subs (as of writing this) can put out such quality content and be interesting at the same time? Another channel I would recommend is James Sharman, he's been building his own cpu from scratch and has come a very long way. It's over 110 episodes at this point and all quality content.
Thank you - those are kind words! I am surprised and humbled by the response myself, TBH. I was hoping for a hundred views and a couple of comments. Thanks for the pointer to James Sharman - I am checking out their channel now :)
Beautiful video and a nice architecture! I like the idea of a modular pc with interchangeable components. I would love to see someone implement some modules with esp 32s. I couldn't find anything on github or have i just missed the repo somewhere in the video ?
This is how I learned to code two decades ago. It frustrated me that I had no idea how a computer worked (1's and 0's became what I see on the screen), and started studying microprocessor design. Then I learned how to code to emulate processors. After that, I got frustrated in not knowing how the internet worked. So, I learned how to use Google, and just started searching. Eventually, I had to learn to code even more in order to create TCP hosts and clients, and thus learned Python.
this is awesome! im not sure how "authentically" retro this is, but it definitely captures the same spirit as early homebrew computer projects. those pi zeros (and similar / "knock-off" boards) are so cheap, i would love to write a special OS that deals with parallel processing across multiple boards.
Thank you! You are right, it is not authentically retro - it's retro-styled and inspired. The idea was exactly that - modern MCUs are cheap and implement most of the basics themselves.
It's a neat design idea to lay the functions out into a network. Some people get funny about new microcontrollers being used for retro projects but really there are no rules and it all comes down to preference. Just like any other form of art. The design I'm working on is a Z80 with ATmega328 for serial interface and then a Raspberry Pi Pico as a terminal for screen and keyboard.
Thank you - I appreciate your words. You're right, it is an art and we can make it up as we go along :) Want to learn more about your project - posting it anywhere?
I really appreciate this video. I love how the computer turned out in the end. I'm working on my own operating system (after hearing your definition I'm more comfortable calling it that), that manages I/O from an epaper display with a few buttons. It's been really fun building rendering functions from scratch, then being able to use those to build other UI drawing components and text. Im glad I had this video recommended to me