MMBasic versions for Pico2 & Pico2W now available

Advert

MMBasic versions for Pico2 & Pico2W now available

Home Forums Electronics in the Workshop MMBasic versions for Pico2 & Pico2W now available

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #767691
    IanT
    Participant
      @iant

      As some here will well know – I’ve been a user of MMBasic on a number of hardware platforms for some time, most especially the Pico since it’s first introduction. The development of the ‘PicoMite‘ has continued apace and now includes the Pico 2 & Pico 2W. PicoMites are very powerful ‘compute’ devices, far beyond anything people might have dreamed of in their ‘retro’ computing days. PiocMite implementations fall into three main catagories – General Embedded Controllers, Boot to Basic Computers & Web/Internet Capable Controllers, with a choice of display and user keyboard devices.

      There are twelve firmware (uf2) images contained in the latest firmware distribution zip file. These are needed to cover the variations between the CPU (RP2040 or RP2350), the keyboard support (PS2 or USB), the video output (none, LCD, VGA or HDMI) and the WiFi/Internet capability.

      The (draft) PicoMite v6 User Manual has just been published and describes in great detail (237 pages) both the shared and version specific features of the different PicoMite versions. It is also has a Basic Primer and sections covering use of Serial, I2C, SPI, 1-Wire comms and the integrated PIO programming package. It’s available for download here for anyone wanting more detail..

      PicoMite v6 Manual

      Usual caveats. I use MMBasic because I find it easier to programme (& much easier to debug) than other ’embedded’ options. The PicoMite provides astounding power for just a few pounds and is capable of far more than I’ve ever demanded of it. I’m in the process of figuring out how to use a ‘Boot-to-Basic’ VGA PicoMite to drive a large screen (17″ LCD Monitor) ‘repeater’ readout for my inexpensive capacitive DROs. The graphic display is quite straight forward in MMB, so it’s mostly about reading the DRO outputs.

      BTW – I do know that there are other public domain ‘DRO’ options available but this will cost nothing (I already had the PicoMite and Monitor) except my time and I quite enjoy doing this (much better than most TV these days). My eldest Grandson has just started to attend a Python course and I encouraged his Mum to let him do so. I won’t be much help to him with his Python ‘homework’ but then I can’t help my Grandchildren with their Maths homework either. It’s all completely different these days – even if our ‘answers’ do (generally) come out the same. That’s probably a good analogy for MMBasic versus Python/Arduino. How we “get there” may differ but if the end result works, then that’s just fine by me.

      Regards,

       

      IanT

      Advert
      #767744
      SillyOldDuffer
      Moderator
        @sillyoldduffer

        Ian and I differ about MMBasic, and I advise ‘avoid’.  The case for the prosecution is that:

        1. BASIC only easy if you already know it!  Good choice for those who  date back to the ZX81 and BBC Micro, have small projects, and who don’t want the hassle of learning a new language!
        2. Knowing BASIC tends to make learning other languages harder.  Later versions are less damaging, but…
        3. BASIC is a poor choice for beginners, and it should never be taught to youngsters as a first language. In contrast, Python is a preferred teaching language, and students who know it will be welcome in academia and commerce.
        4. There are many better alternatives to BASIC, notably Python.  Python is a modern ‘batteries included language’, with clean syntax, and many useful features.  It is easier to learn, is orthogonal, and it discourages bad habits.   Python is also thoroughly practical and unlike BASIC it supports big projects.
        5. Python and BASIC are both unsuitable for writing time/space critical programs on a microcontroller because they both introduce glass ceilings. These are easily ignored until you hit one!  A compiled BASIC is a better bet than an interpreted BASIC, but for critical code look to C, C++, Lua or another systems language.  These languages avoid a lot of grief when the going gets difficult.

        Ian’s loyalty to BASIC hasn’t been rewarded – now he can’t help his grandson!  I think Ian should try though, he can learn Python from the boy!  Won’t be easy, because BASIC has to be unlearned, and unlearning is hard!

        My poor opinion of BASIC isn’t theoretical – I was paid to write it.   I can explain the shortcomings of several other languages too, despite several good features, reckon COBOL was the worst

        With respect, I suggest Ian’s final comment is flawed .  He said: ‘How we “get there” may differ but if the end result works, then that’s just fine by me.’  Not so, engineers are always obliged to find the best way of getting the job done, never justifying second-class methods because they happen to be  ‘just fine by me‘.  I think we have to do what’s best for the future team.

        Dave

        #767822
        IanT
        Participant
          @iant

          I’ve already made a good start Dave. I’ve learned that Print “Hello World” in MMB – becomes Print (“Hello World”) in Python. So you just need to throw in some extra bits…simples!

          Unfortunately, I don’t see enough of the boy these days (he lives 80 miles away) to make any difference to whatever he’s decides to learn. There was a Python course available locally, so it seemed a good option for him. In career terms, he’d rather play football of course!   🙂

          Regards,

           

          Ian

          #772475
          Philip Borland
          Participant
            @philipborland84291

            First time here, so no axe to grind.  I soldered my first computer (ZX81) together and learned basic.  I built a software business around basic, moving to object orientation.  Time and tide has washed it all away and now I find myself being forced to learn new technologies.  Javascript for node (Node-Red), C for Arduino and Python / micro python for micro controllers etc.   So I love Basic and built a business around it, but we had to abandon it over 10 years ago and had we stuck with it, we would be up a creek.

            In learning new languages I use chatGPT all the time – I tell it what I need, it writes the code then tells me what it did.  You can then ask it why it did something and it will explain it.  So I would encourage you to embrace the newer languages and remind you, you have a lot of learning resources including chatGPT

             

            Phil

            #773972
            IanT
            Participant
              @iant

              Hi Phil,

              My needs are purely related to my hobbies and (fortunately) I don’t need to worry about any commercial implications of my technology choices. If I had a business to run (or living to make) from my programming efforts, then your cautions would obviously be valid. Having said that, there are people running (what appear to be) successful businesses using MMB based systems here in the UK. Personally, I have limited time and energy these days. The MMB system suits both my pocket (it’s free) and my practical needs – in that Mites are both powerful and simple to debug. I have previously tried other embedded systems, including Arduino btw.

              Currently, I’m busy updating my PicoMite systems to the latest MMB v6 version that was (fully) released just before Christmas. It’s a bit of housekeeping that I’ve been meaning to do for a while, as my Mites tend to get programmed and just forgotten once they are up & running. However, it seemed like a good idea to get them all up to date and on the same firmware revision.

              To aid in this effort, a new (225 page spiral bound) v6 manual is busy winging it’s way towards me as I much prefer to use a hard copy rather than an on-screen version. It covers the twelve versions of the v6 firmware for VGA/HDMI, PS2/USB, Pico/PicoW & Pico2 all in one book, whereas before there were separate books for the main varients.

              My current MMB project didn’t progress too much over the break as we were away for Christmas and then had house guests over New Year (who have just left!). Hopefully I’ll find more time once things have settled down. The ‘display’ part is working well but I still need to decode the DRO outputs, hopefully without having to dive into the PIOs too deeply.

              As an aside – Santa sent me Volume 2 of Kozo Hiraoka’s Rio Grande K-27 and I’m looking forward to browsing through it more fully over future coffee breaks. It is clearly his Opus Magnum!  Although I will never build any of Kozo’s engines, I have all of his books and have enjoyed reading every one of them. If some of his ideas (and methods) find their way into my loco work, then I will be very happy.

              Have a good New Year everyone.

              Regards,

               

              IanT

              #773988
              Bazyle
              Participant
                @bazyle

                Programming is time consuming not difficult. That’s why millions of children manage to teach themselves and actually teaching it in school is largely a waste of resources.
                The reason BASIC took off is (aswell as being specifically designed for beginners) that it has always been available as an interpreted version so instant results and check, modify , retry. This speeds up learning by 10000% and reduces frustration in the process.
                In the ’80s and 90’s every job applicant I interviewed had done a project on a BBC computer.
                The reason Python (which is a mix of Basic and Perl) took off in a business / Industrial world that was using C and Perl was that an interpreter was available for the Windows PCs. That meant that from the turn of the millennium all the young engineers we recruited were focused on Python not Basic. That in turn meant that loads of our systems gradually moved over to Python from Perl and C unless they were the serious stuff needing C. (The Customer facing product was running javascript, slowly, aaaaagh)

                So much easier than my start with Fortran on punched cards, come back tomorrow to see if it compiled ok.

                 

              Viewing 6 posts - 1 through 6 (of 6 total)
              • Please log in to reply to this topic. Registering is free and easy using the links on the menu at the top of this page.

              Advert

              Latest Replies

              Viewing 25 topics - 1 through 25 (of 25 total)
              Viewing 25 topics - 1 through 25 (of 25 total)

              View full reply list.

              Advert

              Newsletter Sign-up