Settings

Theme

Tiny Basic for Arduino

dilshan.github.io

64 points by AlexeyBrin · 20 comments

Reader

6 threads
seplox

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

    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

    > 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.)

  • gmiller123456

    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.

  • pjmlp

    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.

  • TuxedoBuddy

    Holy moley, that price though!

  • sublinear

    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

      I wanted the Propeller to succeed, it was such a cool chip at the time.

k310

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

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

    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

      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

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

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

So now you need an interpreter (Python) to run an interpreter (BASIC)?

  • AlexeyBrinOP

    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

    How would you do it?

    • hn_submit

      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.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection