Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 06:50 02 Aug 2025 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 : Picomite feature request

Author Message
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5090
Posted: 08:15am 18 Feb 2022
Copy link to clipboard 
Print this post

Dear Peter,

I am aware of the fact that you declared picomite "feature complete" and (apart from bugfixes) want to archive the project as "done".

But I do have a feature request for the picomite, and hope you see benefit in this request.

The VGApicomite generates video from an internal frame buffer. This goes at the cost of program RAM. For video generation you use one of the pio sequencers and the second ARM core.

The standard picomite is designed to connect to an LCD, either at cost of many pins (parallel) or more efficient through SPI.

I am working on a project (mains analyzer) and someone is working on a heartbeat monitor, and we both use SPI displays (320x240). Both project could benefit from fast painting on the LCD. But the 252MHz 32bit ARM must write data to the LCD through a 16Mbps (16MHz clock) wire.

Do you think it is possible to improve on the speed of the LCD painting by

a/ implementing a write cache for LCD painting
-or preferably-
b/ implement a framebuffer (same as VGA picomite) for a 16 color 320x240 (yes that is a limitation from 16bit colours) mode, and have the lcd painting processed by the other ARM. This is for a large part the same architecture as the VGApicomite. I can imagine that this requires the ILI9341 to connect to it's own SPI bus, and not share this SPI bus with the touch and SD card.

Thank you for reading this.

Volhout
PicomiteVGA PETSCII ROBOTS
 
Amnesie
Guru

Joined: 30/06/2020
Location: Germany
Posts: 675
Posted: 10:31am 18 Feb 2022
Copy link to clipboard 
Print this post

  Quote   I can imagine that this requires the ILI9341 to connect to it's own SPI bus, and not share this SPI bus with the touch and SD card.


This way all my own designed PCBs would be useless... If Peter decides to work on this I hope there is another way. Hm... but I guess this is the risk... aaaaaand design a new one .... :/










-Daniel
Edited 2022-02-18 20:40 by Amnesie
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10315
Posted: 06:30pm 18 Feb 2022
Copy link to clipboard 
Print this post

Volhout

I'm unclear how there is much to be gained. Writing to the SPI port is slow whichever CPU does it. It takes the SPI speed times the number of bytes regardless. If you did it on the second processor you would have to create a command queue of output and then find some way of synchronising with MMbasic so that the Basic programmer knows that something that was needed to be seen has been output.

Regardless it would be a major bit of development with limited utility so I'm afraid the answer is no.
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7937
Posted: 07:07pm 18 Feb 2022
Copy link to clipboard 
Print this post

@Volhout
Any serial display will be a bottleneck. I've seen reports of people running the ILI9341 at much greater SPI speeds than it's rated for though. Could you do it the other way, using a PicoMite to drive a parallel display and, if there are insufficient pins left, connect it to a Micromite or a second PicoMite over SPI?
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5090
Posted: 08:07am 19 Feb 2022
Copy link to clipboard 
Print this post

Mixtel,
The spi bandwidth bottleneck will always exist. But currently this botlleneck exists inside the excecution of the basic program. If you add a line, box, or text statement you add a slow command to the loop, where as caching, or frame buffer would keep the main loop fast.

I currently dont have a pico, waiting for arrival, but you van do the test. Run any program (gui test) on both VGA and LCD versions.

In example, my backpack tracer spends equal amount of time in drawing, as in reading the ADC. By executing tthe draw in the background (cache or framebuffer) while waiting for the ADC you double the speed.
Edited 2022-02-19 18:12 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10315
Posted: 08:23am 19 Feb 2022
Copy link to clipboard 
Print this post

  Quote  while waiting for the ADC you double the speed.


If you use the ADC command correctly the ADC works in the background which can happen while you are drawing with no changes needed
 
Bill.b

Senior Member

Joined: 25/06/2011
Location: Australia
Posts: 235
Posted: 12:17am 20 Feb 2022
Copy link to clipboard 
Print this post

Hi Peter

is it possible to extend the the WS2812 from 256 to  300+ as I need to address a full 5m strip of 60 leds/m.

Bill
In the interests of the environment, this post has been constructed entirely from recycled electrons.
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025