Tiny Basic for Arduino

(dilshan.github.io)

63 points | by AlexeyBrin 9 hours ago

7 comments

  • seplox 8 hours ago
    Interesting that the author doesn't mention Parallax BASIC Stamp [0] when it's a Basic-programmable microcontroller that's been on the market since the 1990s. Regardless, the Arduino Due is 4x the CPU at about the same price. Kinda neat.

    While this is fun, I'm not sure why anyone would choose Basic over CircuitPython or MicroPython [1] if they're trying to program a modern micro with a beginner friendly language.

    [0] https://www.parallax.com/products/basic-stamp-2-microcontrol...

    [1] https://learn.adafruit.com/getting-started-with-raspberry-pi...

    • alnwlsn 4 hours ago
      A Due is probably 1000x. Your program isn't even stored in the MCU's flash like it is with the Pythons, it's in an external EEPROM chip. So it has to pull each program instruction from that.

      Isn't copied to the RAM either, the main MCU is a normal PIC with 72 bytes of memory. So a Due has 1000x RAM also.

      But if you just need to detect some switch and blink some lights, they are fine. BASIC is easy to learn and more than enough for some things. I've heard Basic Stamps are still around in some places, like Disney world.

    • duskwuff 5 hours ago
      > Regardless, the Arduino Due is 4x the CPU at about the same price. Kinda neat.

      And the Due is 14 years old and kind of overpriced - there are much better options available nowadays. (For instance, there are a ton of boards based on the Raspberry Pi RP2040 and RP2350, both of which will run circles around the Due.)

    • pjmlp 5 hours ago
      Not necessarily this BASIC, but the one from Mikroe, why over Python?

      It provides a compiler and interpreter, like most BASICs that were not constrained by 8 bit home micros hardware restrictions.

    • gmiller123456 7 hours ago
      Not sure why they should mention the Stamp. Back in the 90's and 00's they cost like $80 and were not an open system. Adjusted for inflation, that's about $160, so not even close to being as accessible as even the high end Arduinos today.
    • TuxedoBuddy 7 hours ago
      Holy moley, that price though!
    • sublinear 5 hours ago
      I haven't even seen or heard about the Parallax BASIC Stamp (or PICkit either) since the mid-2000s.

      I think we can safely move on. Even the Arduino Due is pretty old. The full name they used to use of "Duemilenove" for the AVR chip boards literally means 2009.

      • rzzzt 4 hours ago
        I wanted the Propeller to succeed, it was such a cool chip at the time.
  • k310 9 hours ago
    We've come a long way. Dr. Dobbs, Volume 1 #5 (PDF) [2]

    Source (8080) available on github [0]

    Others: [1]

    I forgot how I first loaded it. Doubtful that I typed it in, but I do recall getting a paper tape from somewhere and loading it via a cheap optical reader.

    Life got interesting when I got a NorthStar disk for the IMSAI. And ever after.

    [0] https://github.com/kevinthecheung/tiny-basic

    [1] https://en.wikipedia.org/wiki/Tiny_BASIC

    [2] http://cini.classiccmp.org/pdf/DrDobbs/DrDobbs-1976-05-v1n5....

    Firefox will complain about http. Allow download. I checked it, it's real pdf.

  • jacquesm 2 hours ago
    Interesting. Back in the day there were some pretty good BASIC implementations that were still quite small. The whole of the MOS and BASIC on the BBC micro ran in 16+16K. That should be portable to the Arduino, but it has only a little bit of RAM. With $2 more you have a RPi Pico which would be a massive step up in terms of hardware (ok, one AD channel less), clock speed and RAM size. You could probably run a fairly large high level language in there.
    • reaperducer 2 hours ago
      The whole of the MOS and BASIC on the BBC micro ran in 16+16K

      You can get BASIC down much smaller than that. I'm pretty sure there were some that were 3K or less to run on KIM, 4004, and similar machines.

      I have a memory of an 8008 or 8080 version that was 3K, leaving 1K of RAM for programs.

      • jacquesm 2 hours ago
        Yes, but BBC Basic was on a completely different level language wise. It even had a built in assembler and allowed the creation of structured programs with named functions and procedures.
  • Surac 8 hours ago
    Well the title is missleading a little bit. Technical it is a Arduino but only the 32 bit ARM Cortex-M Arduinos are supported. Not exactly what i had in mind reading Arduiono. If you intrestend in a fantastic BASIC for cheap RP2040 RP3250 look for MMBasic
  • morninglight 7 hours ago
    In a classroom setting, Geoff Graham's BASIC for the Raspberry Pi Pico and Pico 2 is hard to beat.

    It has support for much of PICO's I/O capability including network connectivity. It is VERY easy to work with and has excellent documentation.

    AND it is a free download with an active community.

    https://geoffg.net/

  • hn_submit 7 hours ago
    So now you need an interpreter (Python) to run an interpreter (BASIC)?
    • AlexeyBrin 7 hours ago
      Nothing wrong with implementing an interpreter in another interpreter, this is actually a classic CS rite of passage.

      This TinyBASIC however, is using Python only during the build phase, the actual interpreter code is in C and what runs on the Arduino is a binary.

    • incanus77 7 hours ago
      How would you do it?
      • hn_submit 6 hours ago
        Rust would be my first choice with C++ and assembler as other options.

        I mean, crap like this means we need 1GB for a weather app and 4GB RAM for a simple text editor.

  • PhaseTwobig 5 hours ago
    [dead]