The Intel 8051 series of 8-bit microcontrollers is long-discontinued by its original manufacturer, but lives on as a core included in all manner of more recent chips. It’s easy to understand and program, so it remains a fixture despite much faster replacements appearing.
If you can’t find an original 40-pin DIP don’t worry, because [mit41301] has produced a board in a compatible 40-pin format. It’s called the single chip computer not because such a thing is a novelty in 2025, but because it has no need for the support chips which would have come with the original.
The modern 8051 clone in use is a CH558 or CH559, both chips with far more onboard than the original. The pins are brought out to one side only of the board, because on the original the other side would interface with an external RAM chip. It speaks serial, and can be used through either a USB-to-serial or Bluetooth-to-serial chip. There’s MCS-BASIC for it, so programming should be straightforward.
We can see the attraction of this board even though we reach for much more accomplished modern CPUs by choice. Several decades ago the original 8051 on Intel dev boards was our university teaching microcontoller, so there remains here a soft spot for it. We certainly see other 8051 designs, as for example this Arduino clone.
Starting out with a controller that features definite CPU-cycle and memory-resource constraints, will teach you a great deal about how to code efficiently. That’s something completely lost to the ‘programmers’ of today. Hence, we typically now see bloated, inefficient software running on what would otherwise be very, very performant hardware.
Consider starting-out by learning (speed of light) C on a tiny processor. The skills you will learn by doing so, may put you ahead of the curve later in your career. You’ll also develop a very fond appreciation for more advanced hardware, where agonising over every cycle and memory byte is (sometimes) less of a requirement.
Nobody should have to stick their hand in a jar of nettles as an initiation rite just because some arrogant person, decades ago, chose to do so.
I always advocate for learning C/C++ first, because learning the ins and outs of manual memory management tends to teach a healthy level of fear and respect for the garbage collector in Java/C#, or at the very least the fundamental realization that it isn’t magic, and nothing is free when it comes to CPU cycles. This is something which is pragmatically beneficial – it makes these people better programmers.
I’ve been working in software development for over two decades, and quite frankly, I believe the field could do with fewer people trying to ward off newbies, with ostensibly “good” intentions (to whom?), by spelling doom and gloom about “these kids these days” not knowing CPU-cycle or memory-resource constraints.
With the massively microcoded CPUs that we have these days, with microcode that can change at the drop of a hat due to a firmware update, the best possible standpoint is one of gratitude that silicon engineers are still managing to wring incremental IPC improvements across generations.
“[We] now see bloated, inefficient software running on what would otherwise be very, very performant hardware”? Sure! Totally! It would be an absolute panacea if a modern x86-UEFI system were treated identically to the Commodore 64 we grew up with. It would also come at the cost of more or less every modern convenience that we enjoy, unless you’re dead-set on living your life off the grid with technology that hasn’t moved past roughly 1990. That is ideologically beneficial – it makes you feel good, but has no practical benefit within the overall scope of software development. The people who care and who excel at refining down the number of cycles taken by a snippet of code will always exist. But that’s not a barrier to entry for coding.
Whether you like it or not, software development stands on some level of shoulders, and these shoulders increase in breadth with hardware complexity. Not everyone can pull a Terry A. Davis and make their own personal Temple OS. Some people just want to get things done.
Get real, get with the program, and – most importantly – get over yourself.
” I always advocate for learning C/C++ first, ” You should advocate learning assembler first. There is no better way to learn the ins and outs.
To be fair… You’re both right… The problem isn’t the language it’s the constraints.
If you want to be an efficient coder use less external libraries, watch your arrays and other variables.. use pointers..pass and reference your variables, and objects properly and try and keep your code clean and efficient.
Doesn’t really matter what language you learn…
“There is no better way to learn the INs and OUTs”
I see what you did there, and I’m here for it.
Talk to me after another two and you’ll think differently. You’re still in the “this is great!” stage with a bunch of energy. Wait until the bloat exceeds your internal thresholds and you’ll start talking just .. like .. us.
I don’t like it how people became so aggressive all the time.
What happened to polite interaction? 🙁
Why is human development not at the height of technology?
Why was that person arrogant decades ago for doing it like that? I wasn’t aware they had options back then. They were limited by the hardware and they had to do things in the most efficient way. Calling it arrogant is quite the stretch.
Why would you encourage newbies to be careless by not thinking too much, even more in the present day when the AI slop is taking over?
The BASIC-8052 revamp looks really good. I could not see what is on the underbelly of the board, USB-TTL, and I’m missing the decoupling caps. Having a BASIC interpreter is really useful, especially for learning to code.
{Strange somebody’s comment got nuked about doing this old school 1980’s style to save a few bytes… those days are thankfully gone, lots of memory and clock cycles}
You can see some of the underbelly here: https://cdn.hackaday.io/images/8343561711385550585.jpg
Just not real clear.
“The Intel 8051 series of 8-bit microcontrollers is long-discontinued by its original manufacturer, but lives on as a core included in all manner of more recent chips.”
Proprietary video editing board long relegated to history. Information hard to find, but deep in the system diagram was an intel core.
There might be a soft spot for it … but with so many better options out there (from my point of view) why go backward — except for nostalgia purposes I suppose. I had to go look up CH 558 and 559 as I never heard of these chips except in this article. Again, learn something every day.
As for Basic, well, I admit I recently wrote a Basic interpreter for fun to play some of the old text games on a Pico, but prefer c/assembly/Python for all current programming needs.
At 40¢ each they may be the right hammer/nail 🤷🏼♂️
The article was a little(/s) coy, I googled CH552t (the chip in the picture) and adafruit has this to say:
16MHz and 3.3V logic, built-in 16K program FLASH memory and, 256-byte internal RAM plus 1K-byte internal xRAM (xRAM supports DMA.
4 built-in ADC channels, capacitive touch support, 3 timers / PWM channels, hardware UART, SPI, and a full-speed USB device controller.
Does this mean USB on your retro computer? I don’t know, but the bit about the RAM not being connected makes me think you could plug this in to quickly check old computers for RAM/socket/PCB problems. If it works you can start troubleshooting from there instead of looking at power and display.
You may have a point with an RP2040 running at what, about $1.
I seem to recall many keyboards that used the 8051 chip.
If you mean PC type keyboards your memory is misleading you, they tended to use 8048/9 chips
I’ve heard (more than once) that Basic-51 was developed by one of the members of the band Looking Glass, famous for the song “Brandy (you’re a fine girl”).
Am I nuts?
Any one used Intel’s PLM-51 to write sofware for the 8051 or remember programing 8751s and using an UV lamp to erase to try again?
Yeah, 8748/8751 was my mom’s daily horse in those old days. I remember those evenings – her, sitting in her office with a PC-XT, amber monitor, development board, EPROM programmer, and an UV eraser with a couple of 87C51s baking in it. I even found the programmer in some box a year or two ago. Rest in peace, mamele.
There is no any problems in getting modern 8051 clone or even just original i8051 in any package you want.
Situation is way worse with replacement of i8048 that often could be found in vintage electronics from car ECUs to home aplliances and computer peripherals of 80-s era. There just no any modern pin and instruction compatible devices. It is possible to download code from 8048 if you have another working device around where 8048 could be desoldered and put into programmer. But then you have to disassemble code and rewrite for MCU of your choice. Not always an easy task. And of course you will have to make PCB to mimic 8048 pinout.
I’ve done 8051 development (in C), and I’ve played with the 8052, which was an 8051 chip with additional built-in ROM with a BASIC interpreter. (I would not refer to any sort of BASIC programming as anything other than “play.”)
So it looks like this board is a substitute for the 8052 and not the 8051.
I’ve heard (more than once) that Basic-51 was developed by one of the members of the band Looking Glass, famous for the song “Brandy (you’re a fine girl”).
Am I nuts?
The original Basic-52 had a hidden programmers ego message saying “John Katausky”. Later that was removed to make room for bug fixes.