Two types of minimal computing - don't get them confused:
There's "pack as much power as you possibly can into a minimal computer" - that's raspberry pi.
There also "drive tiny, minimal CPUs to do amazing things at the edge of their specifications cause it's cool and fun" type minimal computing - that is this device.
People who don't understand the distinction will always say "Huh? Why is this interesting? I don't get it.... a raspberry pi is the same size and more powerful."
Put another way, the ESP8266, with nothing more than a wire connected to it, is able to generate a broadcast TV signals and display 3D graphics on that broadcast TV signal.
I hate when interesting stuff like this is stuck in a video. Fortunately it's only 3 minutes long, and by judicious skipping I found his github: https://github.com/cnlohr/channel3
Short answer: the internal I2S peripheral will let you output at 80MHz (!), which can be used to generate by PWM the NTSC 315.0/88.0 MHz chroma frequency.
"This is basically a 1-bit dithering DAC, operating at a frequency below the nyquist, trying to encode luma and color at the same time. Don't be surprised that the quality's terrible."
When I first saw the video by Charles Lohr (a certified genius IMO) I had to spend several minutes trying to get my head around what he had done.
Using the DAC he bit bangs a signal at just the right frequency to match NTSC channel 3 which gets picked up as a TV/radio signal by the TV and displays it. Charles ensures the bits that generate the radio signal match the requirements of the NTSC spec.
Then he displays 3d graphics over that NTSC broadcast signal. Then he adds NTSC color.
That is software defined broadcast television. Mind. Blown.
I started collecting old TV's being dumped out the front of houses for hard waste collection after I saw that video, so I could give it a try.
It's not precisely broadcast, it's in the "baseband" region and would require modulation up to RF frequency to actually transmit over a distance.
See earlier work by Fabrice Bellard: https://bellard.org/dvbt/ (arguably more impressive signal processing, but requires a graphics card's high-speed DAC)
30 to 300MHz still has the ITU designation of "very high frequency". I know that these days all the sexy stuff is microwave, but the EM spectrum is useful all the way down to DC. The cave radio system used in the rescue of the Wild Boars operates down at 87 kiloHertz. Surface-to-submarine radio systems all operate below 30kHz.
This is the best, most concise explanation of the key EE trade-offs in this kind of stuff I've read - optimizing around different corners of the performance envelope.
I'm not sure I'd want one of these, but I am happy it exists.
I thought about it. So what if I’ll present the BASIC Engine to the public, and some kid comes along and says, "WTF, one GPIO? My dad’s Arduino Uno has more than that!" And instead of joining the peaceful forces of the BASIC Salvation Army, she walks by, straight into the arms of a recruiter for a military equipment manufacturer, spending her life developing drones that kill innocent people in Central Asia. Would I be able to live with myself after that?
I suspect the author is only partially joking here. Having worked with kids on robotics projects, and seeing the near-total apathy/ignorance to the countless atrocities being committed by the US government on behalf of its citizens, I can only wonder how much harm is being done by well-meaning people.
This is really cool, I especially like how commodity most of the parts are.
The 8-bit micro era, for me, was where personal computing really began. Suddenly the market gave people access to computers at an affordable price that empowered them to create their own tools[0] with BASIC, which they often booted directly into. They were simple systems that didn't try to manage your life for you, or act like you didn't really own them, or give you the safety scissors version of computing. That sort of experience is sadly quite lacking today.
And this thing is significantly more powerful than most of those systems, but still acts like one of them. I think it's great.
[0] And play games. Don't discount the value of that, many a child convinced their parent to buy them a computer so they could play games and ended up teaching themselves to program because it was empowering and they could create their own games.
Ham radio in the first quarter of the 20th century, when people built their own transmitters and receivers, winding their own coils and making high voltage caps out of sheets of glass. Often the station was in a “shack” in the back yard, because the open cell battery fumes and the noise and ozone of the spark gap caused an eviction from the house.
Hams have continued this experimentation to the present day. The community was in danger of aging out, but recently there’s been a connection with the maker community via WiFi technology, digital tech and sdr.
Happily, hams are finally getting away from Windows and are embracing FOSS.
For example, it’s not too difficult to homebrew a tripod mounted uhf system and antenna which, when set down outside, will orient itself and track a given satellite (itself built by hams) and initiate communications through it. You can’t buy something like that commercially.
Just prior to that, when people literally built their own computer from a microprocessor, sram, and other miscellaneous chips and electronics. Sometimes from a kit. That was pretty personal.
Alternatively the later 80s when IBM PC clones flooded the market and DOS and Macintosh ownership started to really take off.
For anyone interested in building one, one of our user's published the project as a complete kit including PCBs, parts and stencil.
See https://aisler.net/p/HVNNCYON
Disclaimer, co-founder of aisler here but not affiliate with the BASIC engine project
I'm fairly good with a soldering iron, but there's several SMD parts there, that would probably test me a bit. If this was really to appeal to low-end hobbyists, it'd all be through-hole parts.
High end hobbyists are already building their own single board computers based on their own designs.
Seems closer to an Intel i386 in specs, no? To think this is now retailing for 10 euros ;)
In any case, an entire generation of game developers back in the day cut their teeth on BASIC. And many of the fundamentals of arcade era game design can still be gleaned from those ancient manuals ;)
> I also still have a copy of the Liverpool Software Gazette which had "Stargate: A 3D Planetarium", (from around 1980).
Tidying up and I just found it. It's May 1980. I was sure I had lots of them but only found three (Nov. 1979, May 1980, Feb./Apr. 1981). Also found my Leasco Basic manual from 1969.
I'll put the LSGs up on kwhitefoot.neocities.org over the next few weeks. Might even try to see if any of programs can be made to work.
And Sinclair’s BASIC for the ZX-80. Remember, that hardware used the Z80 RAM refresh circuitry to drive the video output. All the user computing was done during the vertical retrace interval! The technique derived from Don Lancaster’s Video Toaster. Check out Lancaster’s wicki page.
The disadvantage of using VGA is that if you actually want to use it for showing your kids how much fun we had once then, they might not be able to appreciate it when you connect the device to a large screen - it doesn't look too nice and a CIRCLE draws a (jagged) ellipse...
As for the Maximite story, I love the grandmother bit ("This program was originally begun in 1982 by my grandmother, Mrs Verda Spell of Beaumont, TX...") I was so curious I actually found the author of the original interpreter and he explained it to me that, alas, it was only a joke.
I've read about old books for programming a BBC Micro with BASIC, where the games were in books written as code you would have to type in yourself. This book in particular caught my attention: http://www.acornelectron.co.uk/eug/revs/collins/Bbc_Micro_Wa...
I feel like the answer is obvious but I'm going to ask anyway: if I were to take the programs from one of these books and code it into this machine, is it likely to work?
That was truly a golden age for computing in my biased opinion.
Anyhow, you're question. Unfortunately no. You'll find that some parts of the program will work fine but Microsoft BASIC (which is what the Commodores ran and what this seems loosely based on) weren't entirely compatible with BBC BASIC.
BASIC in the 80s was a bit like Javascript in the 00s in that every browser did things did things subtly differently.
As an aside, I was playing on my BBC Micro last night. :)
It depends on what you're wanting to do. The core BASIC dialects were only subtly different however the hardware wasn't and it was the interfacing with the hardware where BASIC used to vary the most. This might take up a large chunk of your code (since back in those days you wrote the game engines etc as part of the game) but it's still only a relatively small subset of the BASIC language once you factor in syntax, operators, keywords, etc. To that end you could in fact write a text adventure game in BASIC that would run on multiple different platforms without modification (and I done just that in the past). But it would be the BASIC equivalent of a Bourne Shell (.sh) script.
There are a lot of BASIC languages these days, all subtly different (or radically, if you count VB.Net). BASIC variations were often quite married to their purpose, whether that was programming for a specific model of 8-bit micro, or being embedded in WYSIWYG GUI design tool.
As mentioned by someone else, QBasic is still around, and there's also Gambas (which is as close to old-school VB as one can get on Linux) if you're looking to play with something.
Sadly the ECMA standard for BASIC never really got adopted by anyone (and is now pretty outdated style anyway).
MS Basic kiiinda became as close to a defacto standard as can be described, just because it was the most common and commonly imitated.
In terms of a modern standard, there's quite a few modern BASICs, but the same kind of applies: Microsoft kinda leads the field. Many of the surviving projects are either directly or indirectly based off of QuickBasic and Visual Basic, or at least heavily inspired by them.
From what I've seen there is 2 dialects of BASIC still in "common" use:
* FreeBASIC
* QBasic64 (an unofficial continuation of MS QBasic)
There is of course also VBScript / VBA and VB.NET but I think it's a bit a stretch to put them in the same bracket (particularly with VB.NET). It is a little like calling C# a dialect of C.
Thanks for the answer. I bought the book anyway because reading the listings may still prove useful, even if the code doesn't translate. But it's good to know.
> I've read about old books for programming a BBC Micro with BASIC
Few have managed to make me feel as old with as few words.
While as others have pointed out the specific BASIC programs are likely to diverge in various ways. That said, they're likely to have enough similarities that there are decent chances you can type in quite a few things and mentally translate "as you go".
Not unless the program happens to use the common subset between the two BASIC dialects, which probably rules out any graphics and sound. A text adventure game, maybe.
I see where you're coming from, but these are gross exaggerations in the vein of infomercials depicting performing mundane tasks without their product as nearly impossible.
First, the software could be packaged as an OS image for the pi itself, eliminating a fair chunk of your list, but second, the alternative presented on this page is to assemble the hardware from a list that includes resistors.
Surely if you can manage that, you can wrangle an iso.
There are a whole heap of gotchas that don't seem like a big deal if you're a savvy adult programmer, but are showstoppers if you're eleven years old and just getting into proper computing.
The Raspberry Pi is a very useful thing, but Eben Upton will freely admit that it was the wrong solution for the intended audience. It's just too complex and too brittle to work as a "modern BBC micro" for educational use. The lessons learned from RPi led to the BBC micro:bit, a much simpler Cortex M0 development board that has been a roaring success in British schools.
The BASIC Engine isn't a suitable educational tool as-is, but it could become very useful if it's offered as a commercial product with HDMI or VGA output.
Ordered a RPi Zero W from Adafruit on a Saturday, got it on a Wednesday. Took about two hours to get through a headless install of Raspbian [1], most of which was fighting with my Mac's Disk Utility.
Not knocking the BASIC Engine, I think it's cool as heck, just pointing out that getting started on RPi is not really as painful as it once was. You can even purchase an SD card preloaded with Raspbian!
A bit OT, but if your hassle with disk utility was related to imaging your card, I'd recommend https://etcher.io/ . It's an unbelievably simple and friendly tool.
I see where you're coming from, but let's be honest, that's still way faster and easier than the BASIC Engine, unless the author offers a way to order pre-built sets.
> Binaries are available on Github in the firmware repository. They can be uploaded to the system via the serial port, using esptool
Good luck flashing the firmware on this thing over a serial port. I'd much rather emulate the platform on a pi, so that I can repurpose the device for something more useful when I realize how big of a waste of time it is to use BASIC for new projects. Source: I use BASIC at work and it sucks butt.
It's sad that it's not easily available any more. It's open schematics, though, so you can also build it yourself, given enough skill and determination.
Note he actually made a point of making it (mostly) compatible with a RasPi Model 3 enclosure. Note that this has very different design choices compared to a RasPi, probably most notably the PS/2 and RCA connectors, which suggest the idea to being able to use it with older TVs or the like. As a "learning platform for underprivileged children" it's highly likely that things like RCA video and PS/2 keyboards are incredibly easy to pick up today incredibly cheaply: Everyone wants to get rid of them.
PS/2 keyboards/mice might be harder to find than you'd think. New ones are hard to find and while there are literally millions of old ones sitting around disused, their very lack of value means that the secondary market is not strong. Not many people want to bother listing a $2 used keyboard on eBay.
I'm a tech guy and could scrounge up a dozen old keyboards in a few minutes, but someone who is just starting out probably won't have a collection of old hardware to pull from.
Finding TVs that will still take composite or component is getting harder. And even if they take it, they usually only take it in at a very specific scan rate and resolution, and it usually looks like garbage.
I'm not sure where you're from, but I don't know anyone who doesn't have literally dozens of VGA monitors they can't figure out how to get rid of. Even modern this-year Dell monitors still come with VGA, and I've never even seen a modern TV without RCA plugs.
Is their a Goodwill or Salvation Army store around you? Check it out, see what their electronics section looks like. That's the target market.
Many modern monitors might have VGA still, (none I've seen recently do) but almost all lack the ability to handle the 15khz horizontal that much vintage computer tech uses.
True, VGA being an analog interface was perfect for CRT-based monitors. Many modern LCD monitors still have it, not sure about the image quality though.
VGA is still pretty adequate. The main limitation is that if you hook up a VGA monitor, you can't watch most proprietary video, whether it be disc or streaming, because they need a more sophisticated connector for their DRM schemes. VGA cables have no real difficulty with 1080p or some even higher resolutions.
The irony is that the very, very early prototypes of the Pi were a lot more like this, built around an Atmel microcontroller; it was eventually decided that HDMI and a browser were too important to do without.
I wonder if the 5-bit audio output in this device would be good enough for some old-school speech synthesis. To go really old-school, maybe something like the Echo synthesizer [1], which I have fond memories of using on an Apple IIe at school in the late 80s and early 90s.
So, it doesn’t have a Korg Wavestation built in? :-)
Check out something like Korg iWAVESTATION or u-he Zebralette for something like wavetable (soft) synths, vs merely 1 or 2 layers of PCM samples possibly with an envelope generator to fade between layers.
Very cool. I especially like the video encoder in the static ram chip. That is a neat hack. I've got a simple HDMI interface in an FPGA that does something similar but it is 10x the cost.
I expect to see a lot of these sorts of systems in the coming months/years.
I have a Meta and program little games for it in C. It's a lot of fun to code for, especially if you like optimizing your code and pushing what you can achieve within the system's limits. A lot of what you learn doing this applies to general programming too (reworking calculations to avoid expensive operations, judicious use of memory, etc.), which is a nice bonus.
The assembly video (https://basicengine.org/hardware.html#_assembly) is really neat. I like how he made the SMT ICs easier to test by bringing out all the pins to nearby pads. That lets you easily test for bridges and good connections at the cost of board space.
I have played with a similar BASIC board [1] - it is indeed a lot of fun and (unlike RPi) brings back the feel of first personal computers. One can easily teach a kid programming using such a thing.
I didn't realize it at the time, but I first learned to program using BASIC on the TI-85. BASIC might be a poor language for learning computer science concepts (or so I've heard others opine), but I haven't encountered a language that was as approachable and intuitive.
There's "pack as much power as you possibly can into a minimal computer" - that's raspberry pi.
There also "drive tiny, minimal CPUs to do amazing things at the edge of their specifications cause it's cool and fun" type minimal computing - that is this device.
People who don't understand the distinction will always say "Huh? Why is this interesting? I don't get it.... a raspberry pi is the same size and more powerful."
If you really want to be knocked out, see how the ESP8266 CPU in this device is able to generate a wireless NTSC video signal with zero extra components https://www.youtube.com/watch?v=SSiRkpgwVKY and then the next level Charles Lohr takes it to color https://www.youtube.com/watch?v=bcez5pcp55w
Put another way, the ESP8266, with nothing more than a wire connected to it, is able to generate a broadcast TV signals and display 3D graphics on that broadcast TV signal.
The ESP8266 was also tested by Charles Lohr to have a wireless CPU to CPU range of 1 kilometer https://www.youtube.com/watch?v=ekSsi83-x8M