PicoMite - MMBasic auf dem Raspberry Pi Pico

  • Nachdem mich Franky mich auf die PicoMite Version von MMBASIC aufmerksam gemacht hat, habe ich gestern nach dem PDF-Handbuch (Seite 35) eine SD-Karte per SPI angebunden.

    Zum besseren erkennen der Verbindungen habe ich mal ein paar Pinout-Bilder gemacht, da man ansonsten zwischen Seite 35 (SDCard-Pin Namen) und Seite 9 (PinOut des Pico) umschalten/blaettern muss.

    Aufpassen musste ich beim SDCard-Hat/-Shield, da an der Seite von GND/3.3v dem SDCard-Shield 2 Pins fehlen, die ansonsten auf dem Arduino vorhanden sind.
    Auf der GND-Seite fehlen I2C1 CL (GPIO22) und I2C1 DA (GPIO21)
    und auf der 3.3V-Seite IOREF und 5V





  • Anschluss einer D3231-I2C Uhr/RTC/Clock an den PicoMite ;)


    OPTION SYSTEM I2C GP26, GP27

    zum definieren der Pins gemaess den Bildern als I2C (GP 26 - SDA/GP27 - SCL)


    RTC SETTIME 2021, 10, 22, 10, 33, 0


    RTC GETTIME
    nach dem "boot" zum setzen der Uhr aus der I2C Uhr


    > print DATE$

    22-10-2021

    > print TIME$

    10:34:34

    >



  • nach dem PDF-Handbuch (Seite 35) eine SD-Karte per SPI angebunden.

    BTW: Konfiguration der SD-Karte am PicoMite (der resetet nach jedem Befehl):
    OPTION SYSTEM SPI GP18, GP19, GP16
    OPTION SDCARD GP22


    SPI:
    - GP18 - Clock

    - GP19 - MOSI

    - GP16 - MISO

    - GP22 - Chip Select

  • Ich habe jetzt einen kleinen SDCard-Adapter bekommen, allerdings hat dieser einen 5v => 3.3v Konverter drauf, so dass er nicht mehr - wie der grosse Adapter - mit 3.3v direkt betrieben werden kann.


    So musste ich das gruene ehemals 3.3v Kael nun auf 5v anstecken.
    Zum Glueck laeuft meine I2C RTC/Clock mit 3.3v-Speisung, so dass ich dies einfach gegeneinander tauschen konnte ;)


    Allerdings haben die in der Bezeichnung aus MISO ein MOSO gemacht :)


  • MMBasic auf dem Pico, nettes Projekt. Kenne das Basic rdimentät von einem dieser Maxmite-Rechnerchen, den ich irgndwo in der Grabbelkiste habe. Habe den Heise Artikel noch nicht gelsen - kommt da ein Display dran oder programmieren mittels serieller Konsole? Vermutlich letzteres, auf den kleines Displays sieht man in unserem Alter ja eh nicht zu viel... :)


    thx 4 sharing,


    Maurice

    Glaube nicht alles was du denkst! :)

  • weil die "Standard-SD-Library" RP2040_SD den Pin GP17 als Chip Select (CS) nutzt (im Gegensatz zu MMBASIC-Handbuch GP22) habe ich CS umgestellt auf GP17 fuer MMBASIC


    Zum neusetzen muss man allerdings alle OPTIONs reset-en :(


    Also:

    Code
    OPTION RESET
    
    OPTION SYSTEM SPI GP18, GP19, GP16
    OPTION SDCARD GP17
    
    OPTION SYSTEM I2C GP26, GP27



  • Nun ist die Picomite offiziell:

    https://geoffg.net/picomite.html

    Im kombinierten Download (Firmware 5.07.00 und PDF-Handbuch) hat mein 7ZIP Probleme das PDF auszupacken (0 Bytes)
    Beim normalen PDF-Download des Handbuches gibt es kein Problem hier.

  • Oho. Dann ist MMBasic jetzt Open Source unter einer GPL-artigen Lizenz?


    Habe auch noch einen Duinomite und bekam auf Nachfrage auch MMBasic Sourcen - aber nur personal use und keine Weiterverbreitung erlaubt.

  • OK, im github README.md und im MMBasic.h Header steht:

    Mit welcher OSS Lizenz das am besten vergleichbar ist, sei mal dahingestellt. Im Gegensatz zu früher kann aber jeder:

    1. einfach den Source auf github bekommen und muss nicht danach fragen
    2. Modifikation und Weitergabe als Source und Executable sind möglich

    Tatsächlich fehlt das GPL-artige Recht der Nutzer, zu einem Binary immer den Source zu verlangen.

  • Mit welcher OSS Lizenz das am besten vergleichbar ist, sei mal dahingestellt. Im Gegensatz zu früher kann aber jeder:

    1. einfach den Source auf github bekommen und muss nicht danach fragen
    2. Modifikation und Weitergabe als Source und Executable sind möglich

    Tatsächlich fehlt das GPL-artige Recht der Nutzer, zu einem Binary immer den Source zu verlangen.

    Stimmt, ich hatte nur auf der HP geschaut und da ist dies so nicht ersichtlich. Was Freies fände icha uch besser aber ...


    Thx 4 sharing,


    Maurice

    Glaube nicht alles was du denkst! :)

  • In den BETA-Versionen (von denen man scheinbar immer nur die letzte laden kann) gibt es auch nette Neuigkeiten/Fehlerbereinigungen.


    Bei der b4 kann man jetzt anstatt USB-Console auch einen echten seriellen Port fuer die Console nehmen ;)


    Folgender Thread dreht sich wohl um die BETAs

    Einmal editiert, zuletzt von guidol ()

  • Die neue Version V5.07.01 ist nun online:


    New V5.07.01 firmware and updated manual available from

    https://geoffg.net/picomite.html

    This is mostly a maintenance/bug fix release.

    You must load CLear_Flash.uf2 before loading this firmware if upgrading from V5.07.00 or from a beta version of V5.07.01 before b5

    Clear_flash.uf2 is included in the download from Geoff's site

    PicoMite V5.07.01 Changes from V5.07.00

    Fixed Bug in epoch function which changed date$.

    Changed maximum WS2812 LEDs to 256

    MM.INFO(pinno GPnn) implemented to give physical pin number for a given GP number

    Improvement to terminal serial output used by command stacking

    Implements a logarithmic scale for the volume control so that PLAY VOLUME 50,50 should sound half as loud as 100,100

    Also applies to PLAY SOUND n, ch, type, freq [,vol]

    Fixes bug in SETPIN pinno,IR

    Fixes bug in parameters following subcommands/sub-functions that are enclosed in brackets e.g. POKE WORD (anything),anything or ? PEEK(WORD (anything))

    Allows variables or string literals in the SOUND command for both the channel and sound type. The original syntax is still also allowed

    Implements the option of using a standard uart as the console

    OPTION SERIAL CONSOLE uartapin, uartbpin

    uartapin and uartbpin can be any valid pair of rx and tx pins for either com1 (uart0) or com2( uart1). The order you specify them is not important

    Use OPTION SERIAL CONSOLE DISABLE to revert to normal the USB console

    Re-compile and build under pico-sdk V1.3

    Fixes bug in GPS receipt where the first read of GPS(DATE) may give an incorrect answer.

    Fixes bug in reporting the line of an error when goto/gosub to a line number is used.

    Fixes bug where OPTION SERIAL CONSOLE DISABLE doesn't work after reboot

    Implements LIST ALL fname$

    Fixes bug in GUI SWITCH

    Restores original program if AUTOSAVE is terminated with Ctrl-C or XMODEM R terminates with an error

    Clears variable memory after Ctrl-C out of Autosave

    Removes creation of spurious "Reset" USB device

    AUTOSAVE "file" now reports a "Syntax Error" rather than "Unknown command".

    EDIT "file" reporting an error rather than just ignoring the argument.

    OPTION AUDIO now forces reset to avoid user confusion

    Source files are available on:

    https://github.com/UKTailwind/PicoMite


    :)Franky

  • ... ein Bug scheint aber schon lange drin zu sein:

    Wenn man BASIC Code mit REM Zeilen hat, wird nach jedem EDIT/RUN Zyklus ein Leerzeichen nach dem REM eingefügt, sodass Kommentare langsam nach recht wandern. Leider ist in github bei dem Projekt kein Issue-Tracker aktiviert (zumindest habe ich ihn dort nicht gefunden). Muss man sich wohl extra im Forum http://www.thebackshed.com anmelden um so etwas zu melden.


    Ansonsten super einfach zu benutzen - Funktionstasten für EDIT und RUN und der eingebaute terminal-Editor ist ausreichend - in wenigen Minuten konnte ich eine SD-Karte und ein GPS Empfänger sowie eine RTC anschließen und mit BASIC ansteuern. Ohne Bibliotheken zu laden oder etwas neu kompilieren zu müssen. Einfacher als mit MicroPython.


    Martin

  • Muss man sich wohl extra im Forum http://www.thebackshed.com anmelden um so etwas zu melden.

    ...wenn Du mir was in Englisch verfässt kann ich es dort ja mal posten - am besten mit einem kleinen Beispiel und welche Version Du da genau benutzt hast...


    Ohne Bibliotheken zu laden oder etwas neu kompilieren zu müssen. Einfacher als mit MicroPython.

    Jepp! Das ist es was ich an dem MMBasic so liebe!!! :)



    :)Franky

  • Ah, wenn Du magst, kannst Du ja mal folgenden Text einstellen:


    Bug Report - growing REN lines


    Using the built-in editor, I have entered a simple program with some REM lines:

    REM_Comment

    REM_More to say

    Note the number of space characters (_) after each REM.


    1) EDIT

    2) Change something irrelevant (e.g. indent and remove indent so that editor thinks the file is "dirty".

    3) Save (F1)

    4) EDIT again (F4)


    Result:

    REM__Comment

    REM__ More to say

    An additional space character has been inserted into each line with a REM statement.

    next EDIT cycle

    REM___Comment

    REM___ More to say


    So for each edit cycle I obtain one additional space character in all REM statements, slowly moving the comment text to the right.

  • ... Danke - sollte dann wohl in der nächsten Version behoben sein.

    Ich habe viele alte und neue Programme, die REM für Konmmentare verwenden und ich denke, ein BASIC sollte das schon unterstützen.

    Laut Forumeintrag sollte es (nur in welcher Version?) behoben sein:


    Zitat

    Same on the MM2 so one for Geoff. In any case why does anyone use REM?
    UPDATE - but I've fixed it anyway
    Edited 2021-12-19 03:58 by matherp


    V5.07.02b2

    Fixes bug that added an extra space after a REM command each time the program was edited.


    Aktuell war heute im Beta-Download-zip die

    PicoMite MMBasic Version 5.07.03RC10