A Proper Computer For A Dollar?

When a tipster came to us with the line “One dollar BASIC computer”, it intrigued us enough to have a good look at [Stan6314]’s TinyBasRV computer. It’s a small PCB that forms a computer running BASIC. Not simply a microcontroller with a serial header, this machine is a fully functioning BASIC desktop computer that takes a PS/2 keyboard and a VGA monitor. Would that cheap price stand up?

The board uses a CH32 microcontroller, a RISC-V part that’s certainly very cheap indeed and pretty powerful, paired with an I2C memory chip for storage. The software is TinyBASIC. There’s some GPIO expandability and an I2C bus, and it’s claimed it can run in headless mode for a BASIC program to control things.

We haven’t added up all the parts in the BoM to check, but even if it’s not a one dollar computer it must come pretty close. We can see it could make a fun project for anyone. It’s certainly not the only small BASIC board out there, it’s got some competition.

Thanks [Metan] for the tip.

41 thoughts on “A Proper Computer For A Dollar?

  1. A dollar seems doable for qty10k. Probably more like $50-$70 for the hobbyist board house MoQs and low-qty component orders. Been a couple of years since I’ve done a PCB like this but that’s always where they seemed to end up

    1. From the usual Chinese assembly/fab houses, I’d expect $10‐15 in quantity 10 with careful parts selection, and not accounting for tariffs for some customers.

      We just made an order for 10 large boards with almost 1000 parts per board (not all unique), and they came to not more than a few hundred dollars per board.

      This stuff is getting silly cheap these days.

      1. Do those that love it still actually use it though? Or do they love it only because it was their first?

        Don’t get me wrong though even if it is only for the nostalgic remembered joy that gives it enough value, especially when its so cheap a board to play with.

        1. Do those that love it still actually use it though?

          QBasic and QuickBASIC is still in use by retro computing community, I think.
          Because you can quickly make a proto-type application or game.
          It also doesn’t required line numbers, has lots of third-party support (DirectQB is like DirectX on DOS): http://www.petesqbsite.com/
          There’s QB64 for modern computers, too.

          Same goes for Visual Basic Classic, I think.
          It has several free alternatives (DarkBasic; some run on Java) and allows easy RAD prototyping.
          On Linux, there’s Gambas as a counterpart, I think.

      2. I built a ‘BasicEngine’ once (https://basicengine.org/esp8266.html). Really fun project. But well, it ended up like my ZX81+38: in a box, having no time, motivation or incentive to actually do anything with it. The building was the fun part.

        But then again, I’m already a software developer and already know the exhilarating feeling of when you write a program and the computer starts doing what you asked it. I had that in 1982, writing my first Tiny Basic program on a Nascom 1.

        BASIC is great for your first time programming. There is nog formal anything, don’t have to think before you write, I would say that it was the prototype ‘vibe coding’ language. ;)

        1. BASIC used to be a problem-oriented language, also.
          Way back in the 1970s it was a serious tool.
          Then the homecomputers arrived in the 1980s and it deteriorated to a funny kids language, like Logo.

          But that’s not BASIC was meant to be, it never tried to be a toy computer language/command prompt in fitst place.
          It had certain standards, too.

          Here are two examples of serious 1970s era Basic computers:
          https://en.wikipedia.org/wiki/Tektronix_4050
          https://en.wikipedia.org/wiki/Wang_2200

          Serious Basic implementations are M-BASIC, QuickBasic/TurnboBasic or MS PDS 7.1, for example.
          Or Locomotive Basic v2 (GEM), Amiga Basic, GFA Basic. Etc pp.
          Modern BASIC languages have adopted certain Pascal language elements, also.

          1. Early ’80s, I hacked a Program called AP Mail, this could do Mail Sorting by Zipcode or Alphabet, of 300 Names.. on a Single 5 1/4 Floppy.. Apple ][ MS Basic.

            I took it to 2,400 Names and running 4 Disk Drives at the Same Time, made it a Linked Pointer File System to Speed things up. Could not afford a Hard Drive System. It was for Business Mailings I was doing..

            Basic is a Great Language.. Later I was involved in using Basic as a Machine Controller Computer.. ended up Compiling it to get the Speed up..

            Cap

          2. When I was in the USAF our EW Shop got ahold of a surplus HP-85 than ran basic, so one of my coworkers wrote a BASIC program to calculate boresight constants.

            I later used BASIC to solve a differential equation using the Euler method for a college course, everyone else already had FORTRAN and access to the computer lab, but being a active duty air force and part-time student, this was faster. And more important, it worked.

          3. BASIC was never meant to be a “toy” language, and the first implementations were compiled, not interpreted. I think it was the PDP-8 BASIC that made the success, so much that Gates and Allen wrote their microcomputer version – with the rest being history.

            Without BASIC, the home computer flood in the 80’s along with the software engineering education probably would not have happened, and we would still have wind-up timers in our microwave ovens and washing machines.

            The 8052AH BASIC was great, especially after the patches published in Elektor magazine. Good for control applications, only the string handling was missing. I remember having written the add-on string primitives – left, mid, right a’la Microsoft as add-ons.

          4. @OH3MVV Excellent write-up! Thank you!

            What I meant to express was that something like the C64’s Basic v2 caused a certain stigma about BASIC.
            Things like over-use of peek/poke, goto and spagetti code in general.

            This is relant in so far, because the C64 is often being remembered as the very role model of an home computer.
            That’s why I wrote “deteriorated”. The C64 Basic was poor on purpose, to save memory and money.

            It wasn’t state-of-the art, yet it became a symbol of BASIC.
            Which really hurts all the people which worked with full implementations of BASIC (M-BASIC on CP/M was a classic).

            But I don’t mean to be so hard on Commodore.
            The C128’s Basic v7 and third-party extensions such as Simons’ Basic were excellent, by comparison.
            The older PETs (CBM’s 70s era businesses line) had better BASIC in ROM than the ViC-20/C64, even.

      3. Not my preferred language, but it’s iconic and I know some people love it

        How about TinyFortran then? Or Turbo Pascal, the frenemy of BASIC?

        Turbo Pascal 3, 4 had been popular on CP/M and DOS in the 80s.

        Version 4 added EXE file format to break 64KB barrier (which had required use of overlay files previously).
        There also was GRAPHIX TOOLBOX and BGI graphics drivers.

        In the 90s, Turbo Pascal 6, 7 and Borland Pascal 7 were popular on DOS platform.

        The Borland Pascal version was full version and had offered Turbo Vision library for your own programs.

        Pascal/Turbo Pascal had been used by profs and students on colleague, I heard.
        So highschool was more at BASIC level, while universities focused on Unix/C..
        (Speaking under correction, it’s just meant as an analogy, no offense.)

        On Windows 3.x, there was Turbo Pascal for Windows 1.0+1.5,
        Borland Pascal 7 for Windows, Delphi 1.0..

        On 32-Bit Windows, Delphi 3 Professional and Delphi 7 used to be classics for a very long time.

        On Linux, Kylix used to be a fine Delphi port.
        Now we have Lazarus IDE with Free Pascal instead.

    2. Note that the computer described here has the capability of having up to two EEPROM memory chips of up to 512 kb each, an I/O expander, a 24 MHz crystal oscillator, and audio output, but all of that is optional and clearly not included in the $1 BOM. The $1 assumes the MPU, a single 32 kb EEPROM, and very little else. Two versions of the firmware are supplied, for either internal clock or external 24 MHz oscillator, and either one detects what hardware is actually installed to enable the optional instructions as appropriate.

    1. Hey man that is super cool :) I will probably order a few to play with and gift for Christmas now that the tariff situation has settled down a bit. High five on a nice project :)

    1. There’s always an argument over what constitutes a “proper computer”. By using a $7 “cheap yellow display” ESP32 dev module, you can use the built-in display for an on-screen keyboard, and these generally include a microSD card socket, and always WiFi and Bluetooth. I would challenge anybody to argue that such a thing would not be a “proper computer”, which I could claim is $1 for the computer itself and $6 for the I/O peripherals, but even that would require a separate power supply.

  2. Used BASIC on a Z80-CP/M box to write a simplified version of SPICE, which I used to analyze some audio circuits for an amp I was designing. It could even draw response plots on a hacked HP analog lab plotter. To get things to run in the whopping 56k of RAM, there was a lot of intermediate result storage onto floppy, which was then read in again for the next phase of processing.

  3. I still use basic occasionally Oshonsoft’s basic they have a great basic compiler, assembler and simulator for several microcontroller families. Avr, pic, z80etc. They are still actively developing with new versions coming out every few months.

  4. Commercial and industrial uses of tiny BASICs?

    1 Initialize hardware both interactive and batch with tiny Basic OS/language
    2 Query hardware initialization setting both in batch and interactively.
    3 Load then run small binaries … stored in DATA statements.
    4 Load then run HUGE apps which now run on Linux platforms.

    High level tiny BASIC with interactive incremental assemblers for many
    platforms will help, or course.?

  5. In conclusion, while the concept of a mandatory minimalist OS boot has some
    theoretical advantages, the practical implications for most users, coupled with
    existing alternative methods, suggest it might not be the most universally
    desirable or feasible approach for general computing. However, for
    specialized applications or educational purposes, a scenario
    like this could prove valuable.

    Does Google AI have an agenda?

    1. Speaking about “minimalist” OSes..
      Back in the 1970s there had been so-called “monitor” programs.
      (The term used to be part of CP/M, too: Control Program and Monitor.)

      They essentially were a piece of small firmware that could be used to
      boot-strap load software from cassette or floppy, do some hardware testing and initialization.

      They had a hex editor or debugging utility built-in, often.
      Let’s think of t like MS-DOS’ DEBUG.COM utility, but stored in ROM and available upon power-on.

      The Sharp MZ line had such monitors in ROM instead of BASIC like all the other home computers had.
      The German c’t-86 personal computer also had a boot loader/monitor in ROM..

      In PC sector, the OpenFirmware would most likely be the modern day equivalent to a BIOS/Monitor.
      It is a firmware that initializes the hardware, but also has a simple command line with DEBUG.COM like syntax.

      Anyway, just saying. On home computers such as C64, the KERNAL/BASIC combo served as sort of a monitor program.
      The “direct mode” (immediate mode) of BASIC basically played the role of a command prompt.

      1. I think PropForth (FORTH for Parallax Propeller microcontroller) is a FORTH implementation of such.

        It loads from EEPROM, ie, boots into Propeller (1 or 2, the two seem to be similar somewhat) and since Propeller is really eight separate cores, one core runs the FORTH, while the other takes care of the UART.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.