PicoMite V6.01.00 betas


Author Message
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 3069
Posted: 12:42am 10 Oct 2025      

  matherp said  Assuming all is well the next step is to go to release candidate status and start the work of updating the manual.

A possible update for LCD Panels p56.
  Quote  OPTION LCDPANEL ILI9488, OR, DC, RESET, CS [,BL] [,INVERT]
Initialises a TFT display using the ILI9488 controller. This supports 480 * 320 resolution.
Note that this controller has an issue with the MISO pin which interferes with the touch controller. For this display to work the MISO pin must not be connected.
Could be something like:-
  Quote  OPTION LCDPANEL ILI9488, OR, DC, RESET, CS [,BL] [,INVERT]
Initialises a TFT display using the ILI9488 controller. This supports 480 * 320 resolution.
Note that this controller has an issue with the LCD_SDO (MISO) pin which interferes with the touch controller. For this display to work the LCD_SDO pin must not be directly connected to the System SPI MISO.
Add a diode (note 1) with cathode to SPI MISO and anode to LCD_SDO and a resistor (note 2) from System SPI MISO to LCD_CS.
For compatibility with existing PCBs these can be put on top of the display header pins (Using touch T_DO pin for System SPI MISO) and the LCD_SDO (MISO) pin snipped off.

Note 1: eg 1N400x, 1N5819 or any diode with a junction capacitance > 30pF.
Note 2: 1.5kΩ to 10kΩ. Some panels have 4.7kΩ pullups on the SD card SPI pins. If this is also on System SPI the resistor should be no more than 1.8kΩ.

Edited 2025-10-10 10:46 by phil99

disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1109
Posted: 02:40am 10 Oct 2025      

Hi Peter,
Any love for this?
POKE HARDFAULT
Allows generating a HARDFAULT from code to allow testing of startup/recover.


MM_Misc.c

void cmd_poke(void)
...
...
   } else if((p=checkstring(cmdline, (unsigned char *)"HARDFAULT"))){
    //int *harderror = NULL; *harderror = 10;  // Generate hard error
    //*(volatile uint32_t*)0x10000 = 1;        //BUS errror
    asm volatile (".word 0xf7f0a000\n");       //Undefined instruction

   }
   else      
   {
       getargs(&cmdline, 5, (unsigned char *)",");
       if ((p = checkstring(argv[0], (unsigned char *)"BYTE")))

...

matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11039
Posted: 07:16am 10 Oct 2025      

  Quote  Any love for this?
POKE HARDFAULT


Easy to add, but what does this do that CPU RESTART doesn't?

disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 1109
Posted: 07:44am 10 Oct 2025      

It triggers the HARDFAULT_EXCEPTION handler, I was thinking along the lines of testing an embedded setup recovers from an unknown future glitch by putting the
POKE HARDFAULT command in the code during testing.


> cpu restart
> poke hardfault
Error: Invalid address - resetting
>

Seemed like a good idea at the time. Maybe wait to see if any seconders for the idea.
Edited 2025-10-10 17:54 by disco4now

Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 8662
Posted: 08:00am 10 Oct 2025      

So where would you find that on a normal boot to BASIC computer? Maybe a Commodore 64 could do it but it would need an extremely obscure POKE and it's wasn't a "normal" computer anyway because Commodore BASIC didn't support it's hardware. ;)

dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 792
Posted: 08:16am 10 Oct 2025      

Good morning,

b18 was ok, with b20 I get a scrambled picture when printing a transparent circle:

PicoMiteVGA MMBasic RP2350B Edition V6.01.00b20
OPTION FLASH SIZE 16777216
OPTION COLOURCODE ON
OPTION KEYBOARD US
OPTION PICO OFF
OPTION RESOLUTION 800x600 @ 360000KHz
OPTION DISPLAY 50, 100
OPTION SDCARD GP24, GP25, GP26, GP27
OPTION VGA PINS GP32,GP34
OPTION F1 drive"b:": chdir"newclock"

> circle 400,300,100,5,,rgb(white),rgb(black)
> circle 400,300,100,5,,rgb(white)




copy/paste mistake, this I tried:
> circle 400,300,100,5,,rgb(white)
> circle 400,300,100,5,,rgb(white),-1

Edited 2025-10-10 18:25 by dddns

matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11039
Posted: 08:35am 10 Oct 2025      

It's a bug I have introduced when drawing circles with thick edges without an interior fill colour - will fix
Edited 2025-10-10 18:36 by matherp