|
Forum Index : Microcontroller and PC projects : MMBasic V6.03.00 release candidates
| Author | Message | ||||
| Frank N. Furter Guru Joined: 28/05/2012 Location: GermanyPosts: 1141 |
I don't even get that far - the PicoCalc won't boot up after flashing. |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11603 |
Nothing on a serial console connected direct to the Pico? |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 547 |
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: GermanyPosts: 1141 |
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 KingdomPosts: 11603 |
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: GermanyPosts: 1141 |
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 KingdomPosts: 11603 |
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: GermanyPosts: 1141 |
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 StatesPosts: 678 |
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: GermanyPosts: 1141 |
It's not the code. RC22 is still running smoothly for me. Frank |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11603 |
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 KingdomPosts: 11603 |
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: NetherlandsPosts: 5975 |
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: AustriaPosts: 547 |
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: NetherlandsPosts: 5975 |
list of options: see manual Volhout PicomiteVGA PETSCII ROBOTS |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11603 |
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: AustriaPosts: 547 |
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: GermanyPosts: 1141 |
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: GermanyPosts: 1141 |
No, it's a "normal" RP2350 Pico2... Frank |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11603 |
What happens if you power on with a USB-C connected (i.e. battery charging)? |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2026 |