Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 22:15 25 Nov 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 : PIO-Prog for Hub75 display

     Page 3 of 5    
Author Message
AlbertR
Regular Member

Joined: 29/05/2025
Location: Germany
Posts: 86
Posted: 07:10am 27 Oct 2025
Copy link to clipboard 
Print this post

@ Tony,

at the moment I only tested the programs with the pure versions of the firmware. No usb,vga,hdmi or i2s dac. I know for VGA/Hdmi the RPs uses PIO 0(shared i2s-dac on 2040) and the 2350-firmware use PIO 3 for i2s-dac.
I did not find a full overview of the used PIOs at the moment.

@ Don,

did you test the new version?


Albert
 
Canada_Cold
Regular Member

Joined: 11/01/2020
Location: Canada
Posts: 48
Posted: 11:05am 27 Oct 2025
Copy link to clipboard 
Print this post

Hi Albert,

I downloaded the version you posted on Oct 20th (TwoSmMorph.bas).  When I run it all I get is a series of vertical lines.  Please see the following.    I ran the code on a PR2040 and a PR2350 with PicoMite MMBasic RP2040 V6.01.00b14 loaded.  I tested it with a P2.5 and a P4 display and got the same results.  





I can see your code should run a demo display with text and several graphics, lines etc. However in my setup it does not get to the demo.

BTW, the clock demo you first posted still runs fine. (MorphClock.bas)

I’ll need to do more testing to see where the code is stopping.   I do apologize for the delay in getting back to you, however I have been on the road traveling.  

Don
 
AlbertR
Regular Member

Joined: 29/05/2025
Location: Germany
Posts: 86
Posted: 11:46am 27 Oct 2025
Copy link to clipboard 
Print this post

Hi Don,

thanks for the answer.
The display looks a little bit confused. Some with the clock- and latch-signal.
Did you notice that the connection has changed?
In preparation for expansion to 64 by 64 pixel, I add the "E"-addressline on GPioPin 10(for the PIO, they must be in line with the others).
In preparation for increase the colordepth, I also change the RGB-Pins, sorry.

I have specified this in the header.
version old "MorphClock.bas"
  Quote  

' gp0  RED0              Connection HUB75
' gp1  RED1
' gp2  GREEN0                 +----+
' gp3  GREEN1            RED0 |1 16| GREEN0
' gp4  BLUE0            BLUE0 |2 15| GND
' gp5  BLUE1             RED1 |3 14| GREEN1
' gp6  A                BLUE1  4 13| NC
' gp7  B                    A  5 12| B
' gp8  C                    C |6 11| D
' gp9  D                  CLK |7 10| LATCH
' gp10 CLK                /OE |8  9| GND
' gp11 LATCH                  +----+
' gp12 /OE



version new "TwoSmMorph.bas"
  Quote  

' gp0  RED0              Connection HUB75
' gp1  GREEN0
' gp2  BLUE0                  +----+
' gp3  RED1              RED0 |1 16| GREEN0
' gp4  GREEN1           BLUE0 |2 15| GND
' gp5  BLUE1             RED1 |3 14| GREEN1
' gp6  A                BLUE1  4 13| E
' gp7  B                    A  5 12| B
' gp8  C                    C |6 11| D
' gp9  D                  CLK |7 10| LATCH
' gp10 E                  /OE |8  9| GND
' gp11 CLK                    +----+
' gp12 LATCH
' gp13 /OE



Could that be the cause?

Albert
Edited 2025-10-27 21:49 by AlbertR
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5485
Posted: 11:49am 27 Oct 2025
Copy link to clipboard 
Print this post

Albert,



That is why I use PIO1 for most of my projects. It is available on all non-WIFI platforms.

Volhout
Edited 2025-10-27 21:50 by Volhout
PicomiteVGA PETSCII ROBOTS
 
AlbertR
Regular Member

Joined: 29/05/2025
Location: Germany
Posts: 86
Posted: 11:57am 27 Oct 2025
Copy link to clipboard 
Print this post

Hi Volhout,

thanks for your answer and for the overview! I remember, that there was one, but I could not find it, even by searching the forum. It is not in the manual, or is it?

Albert
 
58kk90
Regular Member

Joined: 14/06/2023
Location: United Kingdom
Posts: 75
Posted: 02:37pm 27 Oct 2025
Copy link to clipboard 
Print this post

Thank you to all who replied, so PIO 1 is not available on the Webmite, i've quickly put the normal picomite firmware on the Pico 2 W and Alberts "TwoSmMorph.zip" runs fine without any errors, so when I get home tonight i'll attach the display and see if it lights up.

I figured it would be good to use the Pico 2W with the Webmite firmware so I could grab the current time and date from a web based NTP server to automatically set the clock?
Presumably Alberts TwoSmMorph.zip code could be modified to use either PIO 0 or PIO 2 instead so I could still utilise the Wifi on the Pico2W?

Tony
 
Canada_Cold
Regular Member

Joined: 11/01/2020
Location: Canada
Posts: 48
Posted: 03:18pm 27 Oct 2025
Copy link to clipboard 
Print this post

Hi Albert,

How stupid of ME not to notice the change in the wiring!!!!   I’ll make the change and give this a test as soon as I can.

Don
 
AlbertR
Regular Member

Joined: 29/05/2025
Location: Germany
Posts: 86
Posted: 04:08pm 27 Oct 2025
Copy link to clipboard 
Print this post

QTony,

I think all PIOs are equal. It should be no problem to use an other one.  
There are only a few parts to change from 1 to 0

"PIO dma tx 1 .."
"PIO CLEAR 1"
"PIO ASSEMBLE 1 .."
"PIO init machine 1 .."
"PIO start 1 .."
"PIO stop 1 .."

By writing some net-applications, keep in mind that my code is not memory-optimal. With a 2350 it will be no problem, with a Pico W(2040) it could be.

@Don

It can happen to anyone, I didn't make a big deal out of the change.

Greetings
Albert
 
58kk90
Regular Member

Joined: 14/06/2023
Location: United Kingdom
Posts: 75
Posted: 05:50am 28 Oct 2025
Copy link to clipboard 
Print this post

@AlbertR,
Attached the display and it works perfectly using PIO 1 and your original code, the digit animation is quite simply stunning, I love it!
So I then changed it to use PIO 0 according to your instructions, it all works fine as you suggested, but I did also have to change the lines

SetPin gp0,pio 1 to 0 and the rest of the SetPin lines, but that was easy to spot.

I then put the WebMiteRP2350V6.01.00b14.uf2 firmware onto the Pico2W, and uploaded the modified code, that too ran perfectly using PIO 0, I finally added the Web NTP stuff and I now have a self-setting Wifi clock.

I just have to add the BST / GMT correction so it automatically changes from summer time to GMT time and tidy up the wiring.

I also changed your code slightly to make the digits and colons all the same colour, but it looks (to my eyes) beautiful, thank you so much for making the code available and for the help getting it running on the Pico 2W, also to everyone else who helped :-)

Tony
 
AlbertR
Regular Member

Joined: 29/05/2025
Location: Germany
Posts: 86
Posted: 06:53am 28 Oct 2025
Copy link to clipboard 
Print this post

Hi Tony,

thank you very much for your feedback. I'm glad that everything worked out. It's always nice to hear that.

Albert
Edited 2025-11-01 05:02 by AlbertR
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 693
Posted: 10:07pm 09 Nov 2025
Copy link to clipboard 
Print this post

Hi Albert,
Do you think your code, possibly with some changes, can drive two 64x64 displays together, so 128x64? I'm quite happy to overclock the Pico, most of mine are happy upto about 390Mhz :-)
Thanks, Kevin.
Alternatively one of these?
Or even this one Which seems remarkably cheap, even with delivery?
or even one of these?
Edited 2025-11-10 19:25 by Bleep
 
AlbertR
Regular Member

Joined: 29/05/2025
Location: Germany
Posts: 86
Posted: 09:43am 10 Nov 2025
Copy link to clipboard 
Print this post

Hi Kevin,

Sure, that's possible. The problem isn't even the speed, but the memory requirements. I was a bit wasteful with it because I was primarily concerned with PIO programming. Each pixel currently occupies one integer (64 bits).
If you use a 2350, that's no problem with 128x64 pixels.
I quickly made a mini demo with two 64x64 pixel modules to show that it works. Only the lines are extended. The 128x64 modules work exactly the same way.

Hub75_128x64.zip

the 2350 run @200MHz

Best regards,
Albert
Edited 2025-11-10 19:46 by AlbertR
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 693
Posted: 10:12am 10 Nov 2025
Copy link to clipboard 
Print this post

Ok great thanks, I may well invest one, I wonder if it would be possible to find the address of the standard frame buffer, then read out from that, realising that it would only be a portion of the screen, but you could then use the standard drawing and text commands?
Regards, Kevin.
PS, that demo video looks very nice :-)
Edited 2025-11-10 20:21 by Bleep
 
AlbertR
Regular Member

Joined: 29/05/2025
Location: Germany
Posts: 86
Posted: 10:52am 10 Nov 2025
Copy link to clipboard 
Print this post

Hi Kevin,

There are “user display drivers.”
The two subs
 MM.USER_RECTANGLE
 MM.USER_BITMAP
are then called up by the system's character functions.
You would parameterize this with “option lcdpanel user ,128,64”.
I've tried this before, but I kept getting the error that the display was not initialized.
Horizontal or vertical lines worked, but no slanted lines, and an ellipse worked but no circle.

Albert
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 693
Posted: 12:04pm 10 Nov 2025
Copy link to clipboard 
Print this post

Hi Albert,
If you use

Poke display hres 128
Poke display vres 64

That makes the standard display that size, then all you would need is it's start address, I've tried mm.info(writebuff) but I can only get 0 out of that? :-(
Regards Kevin.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10646
Posted: 02:02pm 10 Nov 2025
Copy link to clipboard 
Print this post

  Quote  Horizontal or vertical lines worked, but no slanted lines, and an ellipse worked but no circle.

That is a known issue. Will be fixed in the next V6.01.00 RC
 
AlbertR
Regular Member

Joined: 29/05/2025
Location: Germany
Posts: 86
Posted: 09:20am 11 Nov 2025
Copy link to clipboard 
Print this post

Hi together,

for basic access to the display, here is a minimalist "user display driver"(128x64).
It is not very fast, but it works so far.
It should work for displaying quasi-static information such as time, date, and temperatures. Scrolling text is still a bit jerky.

Now you can use MMBasic commands. Don't forget the DisplayUpdate. If that would be done in the sub, it would be slower.

CLS RGB(red)
DupD()
Color RGB(127,255,127)
Line MM.HRES-1,0,MM.HRES-1,MM.VRES-1
Line 0,MM.VRES-1,MM.HRES-1,MM.VRES-1
Line 0,0,0,MM.VRES-1
Line 0,0,MM.HRES-1,0
Line 0,0,MM.HRES-1,MM.VRES-1
Line 0,MM.VRES-1,MM.HRES-1,0
DupD()'display update
Circle MM.HRES\2,MM.VRES\2,30,2,2,      RGB(0,255,0),RGB(255,0,0)
DupD()'display update
Text MM.HRES\2-j,MM.VRES\2+8,"hello world",CM,1,1,RGB(255,255,0),RGB(255,0,0)
For i = 0 To 100
 j = Sin(i/15)*15
 Text MM.HRES\2+j,MM.VRES\2-10,Time$,CM,1,1,RGB(0,255,255),RGB(255,0,0)
 DupD()'display update
Next i
End





Albert
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 693
Posted: 10:05am 11 Nov 2025
Copy link to clipboard 
Print this post

Hi Albert,
I'm looking at one of these :-
It's 172x86, but mainly because it has a smaller pitch, 1.86mm and they have them on a deal at the moment, will I be able to modify the driver to cope with these dimensions?
Thanks Kevin.
 
AlbertR
Regular Member

Joined: 29/05/2025
Location: Germany
Posts: 86
Posted: 10:20am 11 Nov 2025
Copy link to clipboard 
Print this post

Hi Kevin

sorry it seams that your link did not work in germany.
With the discription I found this
Only found

At the moment I did not see that it could work with my driver. The problem is the scan.
My driver-structure is for the Hub75 compatible displays with 1/8, 1/16 or 1/32 scan. There are no latches for the address. Others like 1/43 or 1/52 are not possible. Sorry.

Greetings Albert
Edited 2025-11-11 20:22 by AlbertR
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 693
Posted: 10:33am 11 Nov 2025
Copy link to clipboard 
Print this post

Ok Thanks, I'll look at the 1/8, 1/16, and 1/32 type Hub75 displays. :-)
 
     Page 3 of 5    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025