Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 21:29 11 Jul 2026 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : MMBasic V6.03.00 release candidates

     Page 28 of 31    
Author Message
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1141
Posted: 08:53am 23 Jun 2026
Copy link to clipboard 
Print this post

I don't even get that far - the PicoCalc won't boot up after flashing.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11603
Posted: 09:09am 23 Jun 2026
Copy link to clipboard 
Print this post

Nothing on a serial console connected direct to the Pico?
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 547
Posted: 09:17am 23 Jun 2026
Copy link to clipboard 
Print this post

  Frank N. Furter said  Okay, first I ran "flash_nuke.uf2". Then I flashed "PicoMiteRP2350V6.03.00RC23.uf2". So far, everything was fine, and I got a message saying that Drive A had been formatted.

After that, I loaded the file above from the SD card and saved it using LIBRARY SAVE.
From that point on, nothing works anymore - the LCD stays black. Re-flashing with "flash_nuke.uf2" and flashing with "PicoMiteRP2350V6.03.00RC23.uf2" doesn't help. The LCD stays black.

It looks to me like something is going wrong with LIBRARY SAVE, and a "flash_nuke.uf2" file doesn't fix the problem.

Frank


you may try the version I posted some time before
Flash-nuke for A4 stepping
                                                                 
73 de OE1HGA, Gerald
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1141
Posted: 09:18am 23 Jun 2026
Copy link to clipboard 
Print this post

Apparently, the Pico doesn't start up every time. Just now, the normal startup message appeared, along with a message that drive A had been formatted. After turning it on again, the LCD screen remains black. And there's no heartbeat flashing either!
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11603
Posted: 09:21am 23 Jun 2026
Copy link to clipboard 
Print this post

Sounds like the flash is corrupted. Try ville56's nuke. I haven't got a PicoCalc but other than the PicoCalc bios I've set up a H/W analogue and everything works perfectly for me including your library code. There was a change between RC22 and RC23 that affected the format command hence why I asked you to recode that line but RC24 has a minor tweak to that which should fix any potential issue in format$(.
Edited 2026-06-23 19:25 by matherp
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1141
Posted: 09:25am 23 Jun 2026
Copy link to clipboard 
Print this post

Can you give me a link to that?

Update:
If you can read, you've got a clear advantage!  Thanks - I overlooked the post above...

Frank
Edited 2026-06-23 19:41 by Frank N. Furter
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11603
Posted: 09:38am 23 Jun 2026
Copy link to clipboard 
Print this post

https://github.com/Gadgetoid/pico-universal-flash-nuke/releases/download/v1.1.0/universal_flash_nuke.uf2
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1141
Posted: 09:47am 23 Jun 2026
Copy link to clipboard 
Print this post

Thanks Peter!

Okay, I loaded universal_flash_nuke and then RC24. Unfortunately, the behavior is the same. PicoCalc only starts up sporadically and very rarely. (No heartbeat)
 
toml_12953
Guru

Joined: 13/02/2015
Location: United States
Posts: 678
Posted: 09:55am 23 Jun 2026
Copy link to clipboard 
Print this post

  Frank N. Furter said  Something's not working right with the new version on PicoCalc.

I flashed my PicoCalc with "PicoMiteRP2350V6.03.00RC23.uf2" and loaded my mm.startup from SD card
Frank


I copied your code into my two PicoCalcs and they worked fine as shown below. Of course, I don't have a temperature sensor attached and it's warm here but not that warm!:

 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1141
Posted: 09:58am 23 Jun 2026
Copy link to clipboard 
Print this post

It's not the code. RC22 is still running smoothly for me.

Frank
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11603
Posted: 10:05am 23 Jun 2026
Copy link to clipboard 
Print this post

Frank, Given that toml_12953 is running his PicoCalcs on RC23 with your library startup (your original problem setup) then I don't know what more to suggest. You could try different CPU speeds when it does start but......
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11603
Posted: 10:11am 23 Jun 2026
Copy link to clipboard 
Print this post

V6.03.00RC24

PicoMiteRP2040V6.03.00RC24.zip
PicoMiteRP2350V6.03.00RC24a.zip
PicoMiteRP2350V6.03.00RC24b.zip

Minor internal tweaks
Change to OPTION DISK LOAD and OPTION DISK SAVE (Not available in PICOMITEMIN). It now saves/loads a text file with just the options that are different to the RESET condition. This should make it robust across any future builds even if I change the underlying option structure
Edited 2026-06-23 20:13 by matherp
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5975
Posted: 10:42am 23 Jun 2026
Copy link to clipboard 
Print this post

Frank,

Is there a WEBMITE inside the PicoCalc ? toml_12953 uses a webmite.
You flashed "PicoMiteRP2350V6.03.00RC23.uf2" which is not webmite.

Could it be WIFI related ?

Volhout
Edited 2026-06-23 20:44 by Volhout
PicomiteVGA PETSCII ROBOTS
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 547
Posted: 10:44am 23 Jun 2026
Copy link to clipboard 
Print this post

Peter,

great improvement to change the option disk to a text file. Makes it easy to modify an existing option set and makes loading much faster then line-by-line. Is there a list of the option names available?
I'm fully aware that manually changing the options may have side effects though...
                                                                 
73 de OE1HGA, Gerald
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5975
Posted: 10:46am 23 Jun 2026
Copy link to clipboard 
Print this post

list of options: see manual

Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11603
Posted: 10:55am 23 Jun 2026
Copy link to clipboard 
Print this post

  Quote  Is there a list of the option names available?


Names are as per the option structure
      /* ============================================================================
        * Type definitions - Options structure
        * ============================================================================ */
       struct option_s
       {
               /* Basic settings */
               int Magic;
               char Autorun;
               char Tab;
               char Invert;
               char Listcase; // 8 bytes

               /* Memory configuration */
               unsigned int PROG_FLASH_SIZE;
               unsigned int HEAP_SIZE;

               /* Display dimensions */
#ifndef PICOMITEVGA
               char Height;
               char Width;
#else
       short d2;
#endif

               /* Display configuration */
               unsigned char DISPLAY_TYPE;
               char DISPLAY_ORIENTATION; // 12-20 bytes

               /* Security and communication */
               int PIN;
               int Baudrate;
               int8_t ColourCode;
               unsigned char MOUSE_CLOCK;
               unsigned char MOUSE_DATA;
               char spare;
               int CPU_Speed;
               unsigned int Telnet; // Also stores size of program flash (start of LIBRARY code)

               /* Color settings */
               int DefaultFC, DefaultBC; // Default colors
               short version;            // 40 bytes

               /* Keyboard configuration */
               unsigned char KEYBOARD_CLOCK;
               unsigned char KEYBOARD_DATA;
               unsigned char continuation;
               unsigned char LOCAL_KEYBOARD;
               unsigned char KeyboardBrightness;
               uint8_t special; // used for special board configurations

               /* Font and RTC */
               unsigned char DefaultFont;
               unsigned char KeyboardConfig;
               unsigned char RTC_Clock;
               unsigned char RTC_Data; // 60 bytes

               /* Platform-specific configuration */
#if PICOMITERP2350
               unsigned char LCD_CLK;
               unsigned char LCD_MOSI;
               unsigned char LCD_MISO;
               char dummy; // 64 bytes
#endif

#if defined(PICOMITE) && !defined(rp2350)
               char dummy[4]; // 64 bytes
#endif

#ifdef PICOMITEWEB
               uint16_t TCP_PORT;
               uint16_t ServerResponceTime;
#endif

#ifdef PICOMITEVGA
               int16_t X_TILE;
               int16_t Y_TILE;
#endif

               /* SPI LCD pins */
               unsigned char LCD_CD;
               unsigned char LCD_CS;
               unsigned char LCD_Reset;

               /* Touch screen configuration */
               unsigned char TOUCH_CS;
               unsigned char TOUCH_IRQ;
               char TOUCH_SWAPXY;
               unsigned char repeat;
               char disabletftp; // 72 bytes

               /* Touch calibration */
#ifndef PICOMITEVGA
               int TOUCH_XZERO;
               int TOUCH_YZERO;
               float TOUCH_XSCALE;
               float TOUCH_YSCALE; // 88 bytes
#else
       short Height;
       short Width;
       char dummy[12];
#endif

               /* GUI or HDMI configuration.
                  Layout rules (the saved-flash struct must stay
                  byte-compatible with prior firmwares for each variant):
                  * Touch-screen builds (GUICONTROLS, !PICOMITEVGA): this
                    4-byte slot holds MaxCtrls + spare3[3]. Unchanged.
                  * Legacy HDMI/VGA builds (PICOMITEVGA, !GUICONTROLS):
                    this slot holds the HDMI lane mapping. Unchanged.
                  * New mouse-GUI VGA/HDMI builds (both flags): we keep
                    the HDMI lane mapping in this slot for binary
                    compatibility, and stash MaxCtrls in the first byte
                    of extensions[] further down. */
#if defined(GUICONTROLS) && !defined(PICOMITEVGA)
               //                uint8_t MaxCtrls;
               unsigned char spare3[4];
#else
       uint8_t HDMIclock;
       uint8_t HDMId0;
       uint8_t HDMId1;
       uint8_t HDMId2;
#endif

               /* Flash and SD card */
               unsigned int FlashSize; // 96 bytes
               unsigned char SD_CS;
               unsigned char SYSTEM_MOSI;
               unsigned char SYSTEM_MISO;
               unsigned char SYSTEM_CLK;

               /* Display backlight and console */
               unsigned char DISPLAY_BL;
               unsigned char DISPLAY_CONSOLE;
               unsigned char TOUCH_Click;
               char LCD_RD; // Used for RD pin for SSD1963, 104 bytes

               /* Audio configuration */
               unsigned char AUDIO_L;
               unsigned char AUDIO_R;
               unsigned char AUDIO_SLICE;
               unsigned char SDspeed;
               unsigned char pinsx[3]; // General use storage for CFunctions

               /* Touch and display */
               unsigned char TOUCH_CAP;
               unsigned char SSD_DATA;
               unsigned char THRESHOLD_CAP;
               unsigned char audio_i2s_data;
               unsigned char audio_i2s_bclk;
               char LCDVOP;
               char I2Coffset;
               unsigned char NoHeartbeat;
               char Refresh;

               /* System I2C and RTC */
               unsigned char SYSTEM_I2C_SDA;
               unsigned char SYSTEM_I2C_SCL;
               unsigned char RTC;
               char PWM; // 124 bytes

               /* Interrupt pins */
               unsigned char INT1pin;
               unsigned char INT2pin;
               unsigned char INT3pin;
               unsigned char INT4pin;

               /* SD card pins */
               unsigned char SD_CLK_PIN;
               unsigned char SD_MOSI_PIN;
               unsigned char SD_MISO_PIN;

               /* Serial console */
               unsigned char SerialConsole; // 132 bytes
               unsigned char SerialTX;
               unsigned char SerialRX;

               /* Keyboard lock status */
               unsigned char numlock;
               unsigned char capslock; // 136 bytes

               /* Library flash size */
               unsigned int LIBRARY_FLASH_SIZE; // 140 bytes

               /* Audio pins */
               unsigned char AUDIO_CLK_PIN;
               unsigned char AUDIO_MOSI_PIN;
               unsigned char SYSTEM_I2C_SLOW;
               unsigned char AUDIO_CS_PIN; // 144 bytes

               /* Network configuration (PICOMITEWEB) */
#ifdef PICOMITEWEB
               uint16_t UDP_PORT;
               uint16_t UDPServerResponceTime;
               char hostname[28];
               char ipaddress[16];
               char mask[16];
               char gateway[16];
#else
       float mousespeed;
       unsigned char x[76]; // 229 bytes
#endif

               /* Miscellaneous pins and settings */
               unsigned short GPSBaudx;
               unsigned char GPSRX;
               unsigned char GPSTX;
               unsigned char heartbeatpin;
               unsigned char PSRAM_CS_PIN;
               unsigned char BGR;
               unsigned char NoScroll;
               unsigned char CombinedCS;
               unsigned char USBKeyboard;
               unsigned char VGA_HSYNC;
               unsigned char VGA_BLUE; // 236 bytes

               /* Additional audio pins */
               unsigned char AUDIO_MISO_PIN;
               unsigned char AUDIO_DCS_PIN;
               unsigned char AUDIO_DREQ_PIN;
               unsigned char AUDIO_RESET_PIN;

               /* SSD display pins */
               unsigned char SSD_DC;
               unsigned char SSD_WR;
               unsigned char SSD_RD;
               signed char SSD_RESET; // 244 bytes

               /* Display and reset settings */
               unsigned char BackLightLevel;
               unsigned char NoReset;
               unsigned char AllPins;
               unsigned char modbuff; // 248 bytes

               /* Keyboard repeat settings */
               short RepeatStart;
               short RepeatRate;
               int modbuffsize; // 256 bytes

               /* Function keys and network credentials */
               unsigned char F1key[MAXKEYLEN];
               unsigned char F5key[MAXKEYLEN];
               unsigned char F6key[MAXKEYLEN];
               unsigned char F7key[MAXKEYLEN];
               unsigned char F8key[MAXKEYLEN];
               unsigned char F9key[MAXKEYLEN];
               unsigned char SSID[MAXKEYLEN];
               unsigned char PASSWORD[MAXKEYLEN]; // 768 bytes

               /* Platform identification and extensions */
               unsigned char platform[32];
               uint8_t BACKLIGHT_KBD;           // *EB*
               uint8_t BACKLIGHT_LCD;           // *EB*
               uint16_t D4;                     // *EB*
               unsigned int GPSBaud;            // *EB*
               unsigned char pins[8];           // General use storage for CFunctions
               unsigned char wifi_country_code; //
                                                // #if defined(GUICONTROLS) && defined(PICOMITEVGA)
               /* On mouse-GUI VGA/HDMI builds MaxCtrls rides at the
                  front of extensions[] because the offset-88 slot is
                  kept for the HDMI lane mapping (see above). Total
                  region size stays 79 bytes so the surrounding flash
                  layout (and the 7-XMODEM-block size) is unchanged. */
               uint8_t MaxCtrls;
               uint8_t Resolution;
               uint8_t VRes_reserved;
               bool Multi;
#ifdef PICOMITEHDMIWEB
               /* HDMIWEB defines BOTH PICOMITEWEB and PICOMITEVGA, which were
                  previously mutually exclusive. Two slots near the top of the
                  struct that used to overlay each other now coexist, costing
                  +4 bytes: TCP_PORT/ServerResponceTime (PICOMITEWEB) and
                  X_TILE/Y_TILE (PICOMITEVGA). HDMIWEB also needs mousespeed
                  (+4, USB mouse + GUICONTROLS — the plain WebMite stores it in
                  the network-overlay region HDMIWEB uses for real WiFi config).
                  Both costs are reclaimed from the extensions[] spare pool:
                  mousespeed(4) + extensions[67] = 71, i.e. 4 fewer than the
                  normal extensions[75], so the whole struct stays exactly 896
                  bytes (== 7 XMODEM blocks). */
               float mousespeed;
               unsigned char extensions[67];
#else
               unsigned char extensions[75]; // 896 bytes == 7 XMODEM blocks
#endif
                                             // #else
                                             //                 unsigned char extensions[79];    // 896 bytes == 7 XMODEM blocks
                                             // #endif

#if defined(PICOMITEBT) || defined(PICOMITEBTH) || defined(PICOMITEHDMIBTH)
               /* BLE bond storage. Two virtual flash banks of 1 KB each
                  backing the btstack TLV — keeps the LTK alive across
                  reboots by riding along with SaveOptions(). Living
                  inside Option means MMBasic's flash layout treats it
                  as part of the protected 4 KB options sector and
                  won't ever overwrite it. PICOMITEBTH / HDMIBTH store
                  bonded-keyboard LTKs in the same field. */
               unsigned char bt_tlv[2048];
#endif

               /* NOTE: To enable older CFunctions to run, any new options MUST be added at the end of the list */
       } __attribute__((packed));


Edited 2026-06-23 20:55 by matherp
 
ville56
Guru

Joined: 08/06/2022
Location: Austria
Posts: 547
Posted: 10:56am 23 Jun 2026
Copy link to clipboard 
Print this post

  Volhout said  list of options: see manual

Volhout


sorry, I have to rephrase my question: Is there a list of the option names as used in the saved file available?

e.g.
BGR=1
does set which option to 1
                                                                 
73 de OE1HGA, Gerald
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1141
Posted: 11:00am 23 Jun 2026
Copy link to clipboard 
Print this post

Peter,
I've discovered that if I don't turn on the PicoCalc and connect it to the computer ONLY via the micro-USB cable, I can establish a serial connection. It seems as though the firmware doesn't recognize that it's a PicoCalc:
> [?7hoption list
PicoMite MMBasic RP2350A V6.03.00RC24
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION CPUSPEED (KHz) 200000
> [?7h

After a OPTION RESET I get following:
> [?7hoption list
PicoMite MMBasic RP2350A V6.03.00RC24
OPTION LCD SPI GP10,GP11,GP12
OPTION SYSTEM I2C GP6,GP7, SLOW
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION DEFAULT COLOURS GREEN, BLACK
OPTION KEYBOARD PICOCALC
OPTION CPUSPEED (KHz) 252000
OPTION LCDPANEL CONSOLE ,, FF00
OPTION DISPLAY 26, 40
OPTION LCDPANEL ST7365P, PORTRAIT,GP14,GP15,GP13
OPTION BACKLIGHT LCD 30
OPTION SDCARD GP17, GP18, GP19, GP16
OPTION AUDIO GP26,GP27', ON PWM CHANNEL 5
OPTION MODBUFF ENABLE  192
OPTION PLATFORM PicoCalc
> [?7h

After the OPTION RESET, the PicoCalc settings remained unchanged, but the behavior did not change.

Lowering the CPU speed to 200000 didn't help. The PicoCalc only starts up if I first connect the micro-USB cable and then turn on the PicoCalc. At 200000, I also see a lot of tiny dots on the display. I've never seen anything like this before.

I don't have any problems with RC22.

Frank
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 1141
Posted: 11:02am 23 Jun 2026
Copy link to clipboard 
Print this post

  Volhout said  Frank,

Is there a WEBMITE inside the PicoCalc ? toml_12953 uses a webmite.
You flashed "PicoMiteRP2350V6.03.00RC23.uf2" which is not webmite.

Could it be WIFI related ?

Volhout

No, it's a "normal" RP2350 Pico2...

Frank
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11603
Posted: 11:26am 23 Jun 2026
Copy link to clipboard 
Print this post

What happens if you power on with a USB-C connected (i.e. battery charging)?
 
     Page 28 of 31    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026