This looks really interesting. I'd love to make something like this myself, from scratch, but I know I'd only get about 2 days into it before ADHD brain decided to do something else. Plus I'd be the only person who'd ever use it, and at that point it would be easier just to use a commercial PC. It could make a cool "cyberdeck" though. I'm already thinking about how I could do the bus stuff for the expansion cards, without having looked at the exact implementation details for this computer haha
There’s something to be said about an independent system you can understand and expand. What I think will be next frontier in home computing is truly understanding and owning the systems that run a smart home and that comes with understanding the environment (sensor data, presence detection, etc.). We live in an interesting time where embedded development has become so accessible and powerful that we can interface with multiple wireless protocols and state of the art sensors with not a lot of capital investment. If we think what can come beyond screens and imagine more ambient computing systems - maybe we’ll see new and interesting innovations
>We live in an interesting time where embedded development has become so accessible and powerful that we can interface with multiple wireless protocols and state of the art sensors with not a lot of capital investment.
Even on Amazon the ESP32 is less than $5 - means like $1 in Shanghai. Various sensors (even the ones with Bluetooth connectivity) are similarly dirt cheap. You can have a bin of such components like you would have a bin of bolts and nuts 30+ years. Basically we live in a golden era of development (which can disappear in US due to tariffs)
>If we think what can come beyond screens and imagine more ambient computing systems - maybe we’ll see new and interesting innovations
my bet is that it will be more robotics related with practically no humans involved. It is a bit of paradoxical - like for example if we add enough development to existing robots we can for example have an AMZN warehouse run fully without people which in turn would mean that we can have robots there much simpler in various aspects as the absence of humans relaxes a bunch of requirements.
An ESP32 module suitable for hobby use is about 4$ here in Viet Nam. You can get the "raw" ones for maybe 0.50$ less. We're near China, so electronic component price is usually higher than Chinese prices by 1-20% (modules and hobby components on the higher end). If you're ever curious about prices, the good online retailer here is thegioiic ('World of ICs', we love naming businesses 'world of something' here).
Locally, 4$ is probably "more money" to us than 5$ is to you.
Don't get me wrong, it's still a marvel that we can have something so good so cheaply -- but correcting for cost of living, it feels less affordable for us here in Asia.
Anyway, not a criticism. Just sharing a slice of life from over here in case you were curious.
You can only cover some very specific cases like that for robotics.
Also, besides some really huge companies, I would be nervous as a business to rely on a third party so much that I didn't have a workforce of my own.
Yes, it works for automotive (extremely consolidated sector with huge capital), or Amazon, or chipmakers... But they've already gone through that transition. Who else needs that?
I've been following Andrew Kelley's writing and zig is probably next on the list for me (previously would have been rust). The story from C to Zig and the ease of cross compilation makes it really tempting. I haven't looked in to the comptime capabilities much but it looks like it could help with some of the embedded work I do
What's the scope of "fully understandable?" How much of this home PC could be reasonably audited by individuals or small teams?
I've got no exceptional opsec needs as an individual, but I spend some time wondering the minimum required resources to audit a PC. Looking through the docs I see cases where there are multiple suppliers for a recommended part -- that's very cool!
As a "fake programmer" and web jockey, this looks like the right balance of complexity to learn with.
I don't think it's really a fair claim in an educational context. There are at least two completely modern computers (which I assume means fairly complex) including the Raspberry PI and another one he is using the the bus or something.
I just don't think modern CPUs really quite fit the claim of "fully understandable by a single person". I mean maybe technically but that is misleading in an educational context where there are much simpler computers that are definitely fully understandable.
Maybe all of the stuff he wraps around the main CPU is understandable though. And the expansion cards are cool.
> To fund development for this critical next stage, we will launch a crowdfunding campaign on a platform such as Indiegogo or Kickstarter.
Great point. I highly recommend crowdsupply for this type of project (extremely technical target customers), especially if this is the first campaign you run, as their team is helping much more on the nuances of running a successful campaign.
(I know this is not the place for ads, and I’m not affiliated though I run crowdfunding campaigns on all the platforms mentioned.)
The OS made me wonder how far someone could get trying to create a GUI for the 6502. I suppose the Apple II (GS?) headed there before the Mac fully took the reins and the Apple II was left out to pasture.
One comment on the IIgs vs the C64; the IIgs had a 16-bit CPU and tons of RAM, so GS/OS is not necessarily representative of what is possible on a 6502.
Some day, whenever I have the money to skunkworks this properly, I've wanted to create something like a modern spiritual successor to the Atari ST with enhanced creature comforts.
Something with a CPU based on POWER architecture (like microwatt) with a simplified multicore design (no hyperthreading or weird BIG+little core design - just straightforward homogeneous cores), a simple expansion interface of some kind, and an OS baked into ROM. Then I'd consider it to be built around a long term support model, with one design that can last decades, complete with schematics, chip design reference guide, and an open specification so it can be easily cloned as desired.
Especially now that Moore's Law and Dennard Scaling has slowed down considerably, it could be a fun platform to target for education or the demoscene, instead of spec chasing.
Along similar lines but physically much smaller, there are currently about 3 or 4 boards[1] that have RP2350, DVI, USB host, and SD card, ranging in cost from about $15 to $40.
A particular sweet spot is emulating 8 and 16 bit systems, as latency can be just as good as an FPGA setup. The infoNES emulator has been running on RP2040 for a while, and I see projects for Sega Master System, Genesis, Apple II, and Mac in the works. But you can also write much more powerful software natively.
Likely it will be possible to adapt software between these various RP2350 systems.
I realize that 8MB of RAM seems absurdly small to modern audiences, but I can assure you that I ran early versions of Turbo Pascal and compiled fine with 64K.
I know, i know! This is what makes me a bit sad. I dont know of any modern compiler i can use on the platform, as most hobby compilers target aarch64 or 32/64 bit x86.
What i need tho is a compiler that targets Arm/Thumb-2.
My research tells me that this confines me to:
- A non-complete patch series for TCC (maybe)
- LLVM
- GCC
As twonof them obviously won't run on 8 MB, my options are stripped down to:
- Evaluate CBE and write my own backend and add 32 bit support
- Write my own compiler + backend
Both options don't sound viable before the release as they would increase the scope greatly.
Agree. Most computers that are a joy to learn have a handful of controllers that operate in parallel. That is, multiple cores
The Apple II had a really cool disk drive because of how it did what it did with so little hardware. By relying on the single CPU for everything it was elegant, advanced, interesting... but perhaps not so easy to program.
The Parallax P8X32A Propeller (2006) did multi-core processing in a very beginner friendly way.
It can be done - if you take a holistic approach to hardware + runtime + development environment.
The Propeller probably failed because of the custom language, the custom assembly syntax, the custom ISA, the custom IDE font (!) etc. It was a very neat system though.
The Propeller was a commercial failure because it was a one-off part, from a small company, with very little software ecosystem surrounding it, a poor performance to price ratio, and no migration path if you needed more capabilities than it could provide.
"Arduino" is a brand of development boards. The direct equivalent would be the Atmel* ATmega168, and that was widely available through distributors, less expensive, had extensive manufacturer and community support, and was part of a broad product line.
What makes microcontrollers commercially successful is... commercial use. Hobbyist applications are fun, but they don't pay the bills.
He's still too young for something like this but I've been searching for something to use when we more properly introduce my son to computers. Using modern components to make something useful that still exposes the electronics side, encourages tinkering and exploration over media consumption, etc and it seems like a project like this could fit the bill nicely!
I came across them (and they seem very cool!) but my working theory is that, in addition to more electronics heavy projects like those, I also want something that can fill the role of the apple ii plus that was the "family computer" when I was a kid without going straight to giving him access to a modern desktop/computer which feel so hermetic.
I'm somehow very confident in this while also being sure that people probably thought very similar things about home radios destroying the youth in the 1920s :D
i've been thinking about how to build a retro-style computer without any of the engineering compromises that made old machines so weird. lots of ideas, no progress. perhaps some sort of small riscv machine and a separate processor to manage the system (esp32) remotely, so you can always modify the filesystem or whatever from a bigger machine?
Not ragging on the author, but I'm always confused whenever I see a "make your own computer" project like this that doesn't start with hardware first. I mean, there's already seems to be a quite advanced OS for it and some detailed docs, but no physical "computer" to speak of, just a lot of mockups.
Why a hardware project at that point and not a virtual machine like pico-8?
I'm just saying, its kinda the opposite approach a hardware person would take.
Please take a look at the gallery, where there are photos of the actual electronics setups!
Also don't the mechanical mockups count as hardware? A pile of jumperwires, breadboards and devices don't make a good hero image, but physical hardware mockups do.
Also the electronics design in its current form is actually iteration 5 of the system, while the OS development started with iteration 2.
>A pile of jumperwires, breadboards and devices don't make a good hero image
I strongly disagree! Hardware people love seeing that sort of thing - the more guts you show, the better. It means you've gotten something to work and probably know what you're talking about. Take pride in what you have accomplished so far! Ideas and concepts are a dime a dozen; working hardware is a worthy milestone.
Add email notifications with updates on your progress. I won’t remember to come back and look at this for … maybe ever but I’d open and read a news letter on the progress
https://ashet.computer/hardware/ looks like hardware to me. While not all the manufacturing considerations have been addressed, there's a "functional cable clutter prototype", and you can build your own Ashet-compatible.
Even on Amazon the ESP32 is less than $5 - means like $1 in Shanghai. Various sensors (even the ones with Bluetooth connectivity) are similarly dirt cheap. You can have a bin of such components like you would have a bin of bolts and nuts 30+ years. Basically we live in a golden era of development (which can disappear in US due to tariffs)
>If we think what can come beyond screens and imagine more ambient computing systems - maybe we’ll see new and interesting innovations
my bet is that it will be more robotics related with practically no humans involved. It is a bit of paradoxical - like for example if we add enough development to existing robots we can for example have an AMZN warehouse run fully without people which in turn would mean that we can have robots there much simpler in various aspects as the absence of humans relaxes a bunch of requirements.
Locally, 4$ is probably "more money" to us than 5$ is to you.
Don't get me wrong, it's still a marvel that we can have something so good so cheaply -- but correcting for cost of living, it feels less affordable for us here in Asia.
Anyway, not a criticism. Just sharing a slice of life from over here in case you were curious.
Also, besides some really huge companies, I would be nervous as a business to rely on a third party so much that I didn't have a workforce of my own.
Yes, it works for automotive (extremely consolidated sector with huge capital), or Amazon, or chipmakers... But they've already gone through that transition. Who else needs that?
The real bottleneck is getting custom pcbs made.
The best companies that do this are in China and soon will be tarrifed
Riddle me this, Batman.
What's the scope of "fully understandable?" How much of this home PC could be reasonably audited by individuals or small teams?
I've got no exceptional opsec needs as an individual, but I spend some time wondering the minimum required resources to audit a PC. Looking through the docs I see cases where there are multiple suppliers for a recommended part -- that's very cool!
As a "fake programmer" and web jockey, this looks like the right balance of complexity to learn with.
I just don't think modern CPUs really quite fit the claim of "fully understandable by a single person". I mean maybe technically but that is misleading in an educational context where there are much simpler computers that are definitely fully understandable.
Maybe all of the stuff he wraps around the main CPU is understandable though. And the expansion cards are cool.
Are there any other projects or resources in this space that you'd recommend?
A friend and I cut our teeth on those AlphaSmart word processors that ran BASIC. I might could wrap my head around that.
https://youtube.com/playlist?list=PLowKtXNTBypFbtuVMUVXNR0z1...
Great point. I highly recommend crowdsupply for this type of project (extremely technical target customers), especially if this is the first campaign you run, as their team is helping much more on the nuances of running a successful campaign.
(I know this is not the place for ads, and I’m not affiliated though I run crowdfunding campaigns on all the platforms mentioned.)
The OS made me wonder how far someone could get trying to create a GUI for the 6502. I suppose the Apple II (GS?) headed there before the Mac fully took the reins and the Apple II was left out to pasture.
https://youtu.be/_4nthOx8sA4?si=AiK9bRxRQwV3MB0f
There's also this Atari homebrew
https://youtu.be/T14dL9MeMHE?si=cGtsZGWILYi4jcql
And yes the IIGS had one
https://youtu.be/YvVFTpukAp0?si=UtvV3N_pKhxU-Tyb
http://toastytech.com/guis/a2geos.html
Some day, whenever I have the money to skunkworks this properly, I've wanted to create something like a modern spiritual successor to the Atari ST with enhanced creature comforts.
Something with a CPU based on POWER architecture (like microwatt) with a simplified multicore design (no hyperthreading or weird BIG+little core design - just straightforward homogeneous cores), a simple expansion interface of some kind, and an OS baked into ROM. Then I'd consider it to be built around a long term support model, with one design that can last decades, complete with schematics, chip design reference guide, and an open specification so it can be easily cloned as desired.
Especially now that Moore's Law and Dennard Scaling has slowed down considerably, it could be a fun platform to target for education or the demoscene, instead of spec chasing.
A particular sweet spot is emulating 8 and 16 bit systems, as latency can be just as good as an FPGA setup. The infoNES emulator has been running on RP2040 for a while, and I see projects for Sega Master System, Genesis, Apple II, and Mac in the works. But you can also write much more powerful software natively.
Likely it will be possible to adapt software between these various RP2350 systems.
[1]: https://github.com/DusterTheFirst/pico-dvi-rs/wiki/RP2350-DV...
I realize that 8MB of RAM seems absurdly small to modern audiences, but I can assure you that I ran early versions of Turbo Pascal and compiled fine with 64K.
I know, i know! This is what makes me a bit sad. I dont know of any modern compiler i can use on the platform, as most hobby compilers target aarch64 or 32/64 bit x86.
What i need tho is a compiler that targets Arm/Thumb-2.
My research tells me that this confines me to: - A non-complete patch series for TCC (maybe) - LLVM - GCC
As twonof them obviously won't run on 8 MB, my options are stripped down to:
- Evaluate CBE and write my own backend and add 32 bit support - Write my own compiler + backend
Both options don't sound viable before the release as they would increase the scope greatly.
cool!
> Dual Core CPU
hm that will make for some interesting first steps in learning
The Apple II had a really cool disk drive because of how it did what it did with so little hardware. By relying on the single CPU for everything it was elegant, advanced, interesting... but perhaps not so easy to program.
https://www.bigmessowires.com/2021/11/12/the-amazing-disk-ii...
It can be done - if you take a holistic approach to hardware + runtime + development environment.
The Propeller probably failed because of the custom language, the custom assembly syntax, the custom ISA, the custom IDE font (!) etc. It was a very neat system though.
It was just too unusual in too many ways.
In one way it’s a bit like the Amiga vs the 8088/8086 PC.
What makes microcontrollers commercially successful is... commercial use. Hobbyist applications are fun, but they don't pay the bills.
*: Microchip hadn't bought them yet
That sounds exactly what i had in mind, and i really wanna do the same when my boy is old enough for computers.
It's a teaching tool and a fun toy to tinker with
I'm somehow very confident in this while also being sure that people probably thought very similar things about home radios destroying the youth in the 1920s :D
>Raspberry Pi RP2350 Main SoC
Yeah right.
Why a hardware project at that point and not a virtual machine like pico-8?
I'm just saying, its kinda the opposite approach a hardware person would take.
Please take a look at the gallery, where there are photos of the actual electronics setups!
Also don't the mechanical mockups count as hardware? A pile of jumperwires, breadboards and devices don't make a good hero image, but physical hardware mockups do.
Also the electronics design in its current form is actually iteration 5 of the system, while the OS development started with iteration 2.
The OS does boot on the electrical prototype
I strongly disagree! Hardware people love seeing that sort of thing - the more guts you show, the better. It means you've gotten something to work and probably know what you're talking about. Take pride in what you have accomplished so far! Ideas and concepts are a dime a dozen; working hardware is a worthy milestone.
Will add a new "cleaned up" photo that isn't also entangled with kids stuff, and other desk content :D
Sadly, it really looks atrocious and it's currently a 3D build which is hard to photograph.
You can subscribe to the E-Mail newsletter linked on the front page (or on Community)