Picomite Version 7 – better than Arduino?

Picomite Version 7 – better than Arduino?

Home › Forums › Electronics in the Workshop › Picomite Version 7 – better than Arduino?

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

      Whilst I am probably one of the few (only?) users here of MMBasic, I’ve always believed that it has many features that make it ideal for the occassional or hobbyist user. It’s main platform has for some time now been the Pico family of micro-processors, most recently the RP2350B (ideally with PS ram).

      There has also been some discussion of the merits of AI.  PeterM (the UK author of the Pico versions of MMB e.g. the Picomites) has been busy working with Claude to quite remarkable effect. New MMB ‘features’ have been appearing almost weekly. The latest version is V7.0 which Peter announced as follows:

      “Version 7 makes MMBasic faster on every board and on
      the RP2350 it adds a compiler that runs most of a program as native code
      while leaving it exactly as you wrote it. You do not change your program to
      use it: switch it on, type RUN, and whatever the compiler can take runs
      compiled while the rest runs as before.” – and there is much, much more…

      In many ways, the Picomite competes with the Arduino. However, it’s been a very long time since I’ve used Arduinos so I couldn’t make any useful comparisons.  So I thought, why not ask AI (Copilot) to do one for me?

      This is what Copilot thinks….

      “Here’s a clear, technically grounded comparison between an RP2350B + 8 MB PSRAM running PicoMite V7.0.00b1 and a modern Arduino‑class system (e.g., Arduino Due, Portenta H7, Nano RP2040 Connect, ESP32‑S3 Arduino).

      Concise Takeaway

      A PicoMite RP2350B with PSRAM running V7.0.00b1 behaves less like a traditional microcontroller and more like a tiny interpreted/compiled computer with an integrated OS, thanks to:

      A native-code compiler that accelerates most BASIC statements by 2×–5× (and up to 7× in some loops)
      A full development environment on-device (editor, file system, graphics, GUI, SD/USB, PSRAM image slots)
      Massive RAM headroom via 8 MB PSRAM for arrays, images, tilemaps, libraries, and compiled streams
      A modern Arduino system is still the better choice for hard real‑time, industrial protocols, C/C++ performance, and library breadth, but it lacks the PicoMite’s “self‑contained computer” model.

      RP2350B PicoMite V7 vs Modern Arduino — Deep Technical Comparison

      1 CPU Architecture & Raw Performance

      RP2350B PicoMite

      Dual‑core RP2350 (Cortex‑M33‑class microarchitecture)
      Typical clock: up to ~378 MHz in PicoMite builds
      V7 compiler executes most statements as native code, giving:
      3.7× faster inner loops
      5.2× faster nested loops
      3.2× faster trig-heavy workloads
      2.1× faster frame‑based game logic
      1.4–1.5× faster graphics-heavy updates (Measured on RP2350 at 378 MHz)

      This is astonishing for a BASIC environment (Copilot – not me)

      Modern Arduino boards

      Portenta H7: dual‑core STM32H747 (480 MHz M7 + 240 MHz M4)
      Arduino Due: 84 MHz Cortex‑M3
      Nano RP2040 Connect: dual‑core RP2040 at 133–200 MHz
      ESP32‑S3 Arduino: dual‑core Xtensa LX7 at 240 MHz
      Arduino advantage: Compiled C/C++ always runs at full native speed with deterministic timing.

      PicoMite advantage: You get native speed without writing C, and the compiler automatically mixes compiled and interpreted segments.

      2 Memory Architecture

      RP2350B + 8 MB PSRAM

      PSRAM used for:
      Compiled code stream storage (kept separate from heap)
      Large arrays, strings, tilemaps, images
      RAM‑resident libraries (slot 5)
      Stream does not consume heap; heap remains available for BASIC variables.
      PSRAM image slots (4–8) allow instant image loads and zero flash wear .
      This is a huge advantage for graphics, simulation, and data‑heavy applications.

      Arduino

      Typical RAM:
      Portenta H7: 1 MB SRAM
      ESP32‑S3: 512 KB internal + optional external PSRAM
      RP2040 boards: 264 KB SRAM
      No unified OS‑level memory manager; external PSRAM (ESP32) is not seamlessly integrated into language semantics.

      Verdict: PicoMite RP2350B wins decisively for large datasets, graphics, tilemaps, framebuffers, and in‑RAM libraries.

      3  Development Model

      PicoMite

      Edit, run, debug directly on the device
      Full-screen editor, file system, SD card, USB host, PSRAM image slots
      No toolchain, no upload cycle
      Instant feedback
      Built‑in GUI, graphics, sound, camera (OV5640), PIO, tilemaps, sprites
      This is closer to a Commodore‑style computer than an Arduino.

      Arduino

      Requires external IDE/toolchain
      Compile/upload cycle
      Debugging requires external tools (SWD/JTAG)
      Graphics/UI require external libraries and often external displays with complex drivers

      Verdict: PicoMite is dramatically more productive for rapid prototyping, teaching, and application‑level logic.

      4  Real‑Time Behaviour

      PicoMite

      Interpreter + compiler hybrid
      Many statements still run as text (PRINT, INPUT, PAUSE, file I/O, pin commands)
      Timing loops relying on statement duration will change under V7 (faster execution)
      Interrupts improved (SETTICK overhead reduced ~30%)
      Deep recursion limit ~12–13 levels on RP2350

      Arduino

      Deterministic timing
      ISR latency predictable
      Suitable for motor control, robotics, industrial protocols, high‑frequency sampling

      Verdict: Arduino wins for hard real‑time and industrial control.

      (Comment – I use the built in MMB PIO assembler to provide very fast I/O. An RP2350 has 3 PIOs with 12 state machines that can each run in real time, independently of the main (MMB) programme. I didn’t ask Copilot to consider this…).

      5  Graphics, UI, Multimedia

      PicoMite RP2350B

      Hardware‑accelerated framebuffer merge (VGA/HDMI)
      Tilemaps, sprites, BLIT, DRAW3D
      BBC Micro sound (4‑channel)
      WAV/MP3 playback via USB host
      OV5640 camera support (QVGA preview, JPEG capture up to 5 MP)
      PSRAM image slots for instant loading

      Arduino

      Graphics/UI require external libraries
      Camera support limited and usually complex
      Multimedia playback requires external modules

      Verdict: PicoMite RP2350B is vastly superior for graphics, games, UI, camera, and multimedia.

      6  Language & Ecosystem

      PicoMite

      MMBasic V7 with:
      Native compiler
      CSUB machine‑code generation (10–35× speedups)
      Extensive built‑in commands
      Integrated help system (1152 topics)

      Arduino

      Massive ecosystem of libraries
      C/C++ + Arduino API
      PlatformIO, RTOS options, industrial protocols

      Verdict: Arduino wins for ecosystem breadth and industry support. PicoMite wins for developer productivity and built‑in capabilities.

      Final Synthesis

      Choose RP2350B PicoMite V7 if you want:

      A self‑contained computer with editor, filesystem, graphics, GUI
      Huge RAM via PSRAM for data‑heavy work
      Native‑compiled BASIC with 2×–7× speedups
      Rapid development without toolchains
      Multimedia, camera, tilemaps, sprites, framebuffers
      A “retro‑modern” environment ideal for applications, simulations, games

      Choose a modern Arduino system if you need:

      Deterministic real‑time control
      Industrial protocols (CAN, LIN, EtherCAT, Modbus)
      Maximum C/C++ performance
      Large library ecosystem
      Professional/industrial deployment”

      So if you’ve not come across the Picomite before, I’d suggest it’s now really worth a good look. You can find V7.0 (including the manual) here:

      Piocmite V7.0

      So please, forget whatever pre-conceptions you might have about Basic (line numbers, GOTOs etc) or 80’s “Retro” computing.  A modern Picomite system is way beyond all that….From simple embedded controllers, up to systems with HDMI graphics, USB, SD file storage (32Gb) and lot’s of memory – they are fast and most important of all, easy to use….

      PS I used the RP2350B for this comparison because you can now get them (with 8Mb PSRAM) from Waveshare & Pimoroni for not too much money… (e.g. a “Core2350B” from Waveshare is £5.20 + shipping)

      Regards,

       

      IanT

       

      #867975
      Michael Gilligan
      Participant
        @michaelgilligan61133

        My mind is truly boggled, Ian

        I am transfixed, like some innocent animal in the glare of oncoming headlights !

        Could you please show us some example of this tiny board being integrated into a project ?

        I have quite evidently ‘lost the plot’ because I thought it was just a microcontroller that could be conveniently programmed in BASIC …

        MichaelG.

        #867987
        IanT
        Participant
          @iant

          “…it was just a microcontroller that could be conveniently programmed in BASIC …”

          Well it still is Michael – but that “just” covers a lot more ground these days  🙂

          How do I use them? Well there is still a Micromite (PIC32) down the shed somewhere that can record temperature and humidity (if I ever change the battery). My (newer electric) model loco’s have simple remote IR controllers (instead of RC ones). When I get around to it, all them will be updated to Bluetooth controls will that run from my phone. I have another system that monitors some things around the house.

          My eldest grandchildren have iPads but also seem to like Grandads ‘Old’ computers that have 10″ HDMI displays, 32Gb storage, RTC and ‘proper’ PS2 keyboards. They will be getting RP2350B’s (with PS ram), USB keyboards, mice, USB sticks etc) when i get around to it. The boy wants to play (BBC) ‘Elite’ on his …the girl just likes the graphics.

          I also have a board set-up as a Logic Analyser (although admitedly I’ve only used it once in anger) but my little (2.5″ touch screen) system gets used (& re-programmed) a lot more. Originally used as a servo tester, it’s currently got a simple signal generator running on it. Then I have a bare bones 2-axis DRO system working, that makes my cheapie Warco scales much easier to read (on a 17″ VGA screen). Another board has a very primitive CNC set-up on it for a stepper project I keep getting distracted by. That will have a 10″ HDMI (touch) display on it.

          The Picomite ‘Platform’ is very adapable – with 16 variations to cover RP2040 & RP2350 varients (Plain or ‘W’ types). You then have to decide what peripherals you need (Touch/PS2/USB, LCD/VGA/HDMI display, Web/BT connectivity etc). All built into the PM system and supported by it – no need to find third party add-ons.

          So you can move from the simplest Micro project up to quite complicated ones. It’s scalable. If you want ‘Retro’ they will do that – but for many here I think the ability to not only interact with the real world but to also easily build custom displays and do it within a self contained unit, has a lot of utility. Most importantly, they are pretty easy to both programme & debug – a very important feature for me. I’m not doing this for a living. In fact I can see professional “coding” as such being a thing of the past very soon.

          But for my occassional use, they are just right. I already have my work cut out learning 3D CAD and more recently CAM – so a simple but powerful (enough) system suits me very well. I think it could suit others too but that’s up to them. I just think people can’t try something if they’ve never heard of it…  🙂

          Regards,

           

          IanT

          Picomite Dual motor controller – IR remore controlled (about a dozen lines of code)

          Picomite

          Picomite LA software running

          PicomiteVGA Logic Analyser - Feb23

          And my little 2.5″ Touchscreen ‘Untilty’ box…

          IMG_5720

           

          #867994
          Michael Gilligan
          Participant
            @michaelgilligan61133

            I am “very impressed”  and “suitably humbled” Ian

            … It’s getting hard for me to keep-up with technology these days 🙁

            I shat watch this topic with interest though !!

             

            MichaelG.

            #867995
            John Hinkley
            Participant
              @johnhinkley26699

              You might want to edit that last post, Michael!

              John

               

              #868009
              Michael Gilligan
              Participant
                @michaelgilligan61133

                Too late to edit, John

                … This supposedly being a family-friendly forum … perhaps Jason could do the honours

                hard >> dificult

                keep-up >> keep-pace

                Would those be more acceptable ?

                 

                MichaelG.

                #868046
                Dave S
                Participant
                  @daves59043

                  Of course if you can program Arduino you could just use an RP2350 in the Arduino ecosystem…

                  Or use Micropython/Circuitpython.

                  Hobbyist microcontrollers are as much a “religious choice” as Nikon vs Canon was for photography.

                  Currently I’m in ESP32 land, where there are also many choices, but commercially the ESP range fits the needs we have right now.

                   

                  #868050
                  Michael Gilligan
                  Participant
                    @michaelgilligan61133

                    [ Addendum ]

                    shat >> shall

                     

                    … I wasn’t having a good day !

                     

                    MichaelG.

                    #868054
                    mike barrett 1
                    Participant
                      @mikebarrett1

                      that is very interesting, thankyou. Tempted to try one…..
                      Out of interest how long is the boot time from switch on to running the application? For lots of simple embedded control stuff this is important. I have used Pi and Arduino projects in my own applications in cars and some Post box topper displays.
                      The Pi boot time to get the OS up and running means it cant be used in some applications, it just takes too long to get up and running (and most apps dont need the full OS).
                      The Arduino is much better no OS so fast boot up and even better if you removed the bootloader!

                      MIke

                      #868062
                      IanT
                      Participant
                        @iant

                        It’s not the really the hardware platform (e.g. Pico, ESP32 etc) Dave – it’s very much more the environment that you are working in.

                        For my uses, everything I need is all there and very well documented. I’m not a great programmer and I often spend quite a lot of time finding problems of my own making. I need something I can learn in small chunks and that let’s me find problems easily. MMB (as used in the Picomite) does that…

                        Mike – the current programme will (in effect) run immediately – either from the command “Run” or if you have set the option “Autorun ON”. There’s no Operating System to boot as such – although (if you need them) there is a built in Editor and (more recently) a simple File Manager (because you can have upto 32Gb of SD card storage). With a serial console set-up you can edit and run a programme (or just load a new programme) over a cable or via a Web/Bluetooth connection.  It makes debugging very easy – even remotely. Run your programme, if it finds a problem, it opens the Editor and takes you straight to the problem line. Edit it (and hit a function key) and your changes are saved and the programme (hopefully) then runs…

                        However, in essence, your programme runs immediately on power on…

                        Regards,

                         

                        IanT

                         

                        #868089
                        IanT
                        Participant
                          @iant

                          Mike, just to expand slightly on this. The ‘Autorun’ option is quite flexible. For instance, you can store a(nother) programme in a flash slot, that could run an initialisation or notification routine when the CPU powers back up, following a power failure for instance.

                          I tend to use Flash slots as temporary programme storage (as mentioned below) when testing/debugging, making it easy to step-back. It’s one example of the ease-of-use I’ve mentioned. This is all part of the Picomite infrastucture. It’s just there when/if you need it.

                          Regards,

                           

                          IanT

                          Autorun Options

                          {…}

                          Flash Slots
                          There are three of these which can be used to save completely different programs or previous versions of the program you are working on (in case you need to revert to an earlier version). In addition, MMBasic will allow a BASIC program to load and run another program saved to a numbered flash location while retaining all the variables and settings of the original program – this is called chaining and allows for a much larger program to be run than the amount of program memory would normally allow.

                          #868155
                          Dave S
                          Participant
                            @daves59043

                            Ian,

                            Use what works for you.

                            The point was more that comparing MMBasic on an RP2350 and an Arduino on a less powerful micro is not really apples and apples, more like apples and raisins.

                            The 2350 is an excellent second attempt micro from the Pi team, and running interpreted language on it is totally plausible for a lot of use cases.

                             

                            #868229
                            mike barrett 1
                            Participant
                              @mikebarrett1

                              thanks for the answer I am tempted to try one.
                              One of the problems/advantage, of the Arduino environment is that it covers so many difference processor architectures. With library’s for everything it very flexible but its easy to run into problems where the libraries only work on certain architectures. This can make debugging tricky and more difficult with the limited debug facilities built into the IDE.
                              The simplicity of the original IDE worked well when everything was AVR based…

                              mike

                              #868240
                              IanT
                              Participant
                                @iant

                                Yes, someone had a problem with an Ardunio programme for an I2C device (which didn’t work) a few years back and there was some doubt about the (Library) driver he was using – they are effectively code ‘black boxes’.  I suggested a short MMB programme (about a six lines or so I think) as a diagnostic tool – which run on a Pico 1 would have cost about £4 in hardware at the time and certainly answered the question – faulty device or bad programme? The gentleman declined the offer (he didn’t want to “learn a new language”) and I don’t think we ever heard the outcome.

                                There are different Piocmite firmware versions for each board type (in simple terms Pico1, 2 & W’s) and you can be pretty confident that the commands & options will work on that platform. That’s important to me, as the vast majority of issues i have when programming them are (unfortunately) self-inflicted and the solution is nearly always right there in the manual – where I should have looked inthe first place.

                                So try it! It’s a free s/w download, very easy to install and Picos are inexpensive (but I would spend a pound or two more and get a Pico 2 e.g. RP2350).  🙂

                                Regards,

                                 

                                Iant

                                #868261
                                peter1972
                                Participant
                                  @peter1972
                                  On mike barrett 1 Said:

                                  The simplicity of the original IDE worked well when everything was AVR based…

                                  I fully agree the original Arduino integrated design environment (IDE) worked very well.

                                  I will continue to use AVR based Arduinos, such as the Micro, unless I need more speed or more memory. There is no point me switching to use RP2350B microcontrollers and try to learn a new language just because, with Picomite V7 software, they are said the be better.

                                  I have used an ESP32 when I needed more speed and more memory so that would continue to be my second choice.

                                  #868391
                                  Mick Bailey
                                  Participant
                                    @mickbailey28509

                                    I’m using RP2040 and programming in C++ using the Arduino IDE and have been quite happy with the results but I’m migrating code to run on ESP32. I need dual core and the ESP32 is really inexpensive, especially given it has inbuilt WiFi. Migrating from RP2040 is a little more involved than I initially thought, as the methodology changes in how tasks are assigned and in a lot of other areas.

                                    #868415
                                    IanT
                                    Participant
                                      @iant

                                      If you are happy with the Arduino IDE and C++ then of course stick with what you know.

                                      I moved from Arduino (back when the Uno still had an 8-bit AVR) when I discovered I could build embedded systems using a 32-bit PIC32 based Micromite.  The 28pin PIC32 DIL CPU cost about £3 plus and only needed one external capacitor for a basic (no pun intended) system. Much more importantly, I found them very easy to work with. That was about 10-11 years ago I think.

                                      Of course, If you already know the Arduino IDE and like using it, then you probably won’t need the Picomite. However, if someone is starting from scratch, then they may well find it an easier system to work with, especially if they don’t have any previous ‘computing’ experience.

                                      Mick, I did wonder why you didn’t just upgraded your existing “RP2040” system to either a Pico 1W or (preferably now) the Pico 2W. I would have thought it an easier migration path for you. In terms of cost, the Pico2W is about £6.60 from Pi Hut or Pimoroni – so less than a coffee and sandwich these days. Frankly, the cost of these ‘platforms’ isn’t really a deciding issue for me (although it’s certainly no bad thing if they are inexpensive). My time is much more valuable to me these days…   🙂

                                      Regards,

                                       

                                      IanT

                                      #868580
                                      mike barrett 1
                                      Participant
                                        @mikebarrett1

                                        Found a Pico1 that someone gave me and loading the OS on it an now have a embedded system running Basic! The instructions are very clear and everything works. Will have a play with it.

                                        I used PIC processors when I was working form the early 8 bit programmed in assembler to the 32 bit in C  all using the Microchip IDE. Once I retired and had to buy stuff for myself I have gone down the Arduino route but have fallen into looking for a library for every new device instead of going thru the datasheets. This mostly works and only occasionally need to get thru the datasheet or get the scope out!
                                        In the end what do you want to do? Make a device that works and functions or learn some new techniques. I think you can do both and we are lucky to have so much easy and cheap electronics available, just a shame you cant get it from Maplin or Tandy any more!

                                        #868708
                                        Grindstone Cowboy
                                        Participant
                                          @grindstonecowboy

                                          Maplin still exist, albeit with just an online presence – although I guess they were originally mail-order only, so in a way, back to their roots. I recall the excitement of visiting their first bricks and mortar store in Manchester 🙂

                                          Rob

                                          #869621
                                          Mick Bailey
                                          Participant
                                            @mickbailey28509

                                            @IanT I hadn’t looked at the general platform market for a good while and decided on ESP32 because I have a few of them to hand. Having now looked at the Pico 2W it looks to be a much easier code conversion and my thought is to get hold of a board to experiment with.

                                            #869728
                                            IanT
                                            Participant
                                              @iant

                                              Yes – ” Easier ” is usually a good thing Mick  🙂

                                              Regards,

                                               

                                              IanT

                                            Viewing 21 posts - 1 through 21 (of 21 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.

                                            Latest Replies

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

                                            View full reply list.