FM6126 based HUB75 Panels

Same issue will affect this library, reference: https://github.com/hzeller/rpi-rgb-led-matrix/issues/746
Potential fix required before using: .begin() -> https://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA/issues/20
#include <Arduino.h>
#include <TomThumb.h> // this should be in the adafruit-gfx library
#include <ESP32-RGB64x32MatrixPanel-I2S-DMA.h>

RGB64x32MatrixPanel_I2S_DMA matrix;

////////////////////////////////////////////////////////////////////
// Reset Panel
// This needs to be near the top of the code
//
// Change these to whatever suits
// recommended settings and patches are by
//
// pinout for ESP38 38pin module
// http://arduinoinfo.mywikis.net/wiki/Esp32#KS0413_keyestudio_ESP32_Core_Board
//

// R1 | G1
// B1 | GND
// R2 | G2
// B2 | E
// A | B
// C | D
// CLK| LAT
// OE | GND

#define R1 25
#define G1 26
#define BL1 27
#define R2 5 // 21 SDA
#define G2 19 // 22 SDL
#define BL2 23
#define CH_A 12
#define CH_B 16
#define CH_C 17
#define CH_D 18
#define CH_E -1 // assign to pin if using two panels
#define CLK 15
#define LAT 32
#define OE 33

void resetPanel()
{
int MaxLed = 64;

int C12[16] = {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int C13[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0};

pinMode(R1, OUTPUT);
pinMode(G1, OUTPUT);
pinMode(BL1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(G2, OUTPUT);
pinMode(BL2, OUTPUT);
pinMode(CH_A, OUTPUT);
pinMode(CH_B, OUTPUT);
pinMode(CH_C, OUTPUT);
pinMode(CH_D, OUTPUT);
pinMode(CH_E, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(LAT, OUTPUT);
pinMode(OE, OUTPUT);

// Send Data to control register 11
digitalWrite(OE, HIGH); // Display reset
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
for (int l = 0; l < MaxLed; l++)
{
int y = l % 16;
digitalWrite(R1, LOW);
digitalWrite(G1, LOW);
digitalWrite(BL1, LOW);
digitalWrite(R2, LOW);
digitalWrite(G2, LOW);
digitalWrite(BL2, LOW);
if (C12[y] == 1)
{
digitalWrite(R1, HIGH);
digitalWrite(G1, HIGH);
digitalWrite(BL1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(G2, HIGH);
digitalWrite(BL2, HIGH);
}
if (l > MaxLed - 12)
{
digitalWrite(LAT, HIGH);
}
else
{
digitalWrite(LAT, LOW);
}
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
}
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
// Send Data to control register 12
for (int l = 0; l < MaxLed; l++)
{
int y = l % 16;
digitalWrite(R1, LOW);
digitalWrite(G1, LOW);
digitalWrite(BL1, LOW);
digitalWrite(R2, LOW);
digitalWrite(G2, LOW);
digitalWrite(BL2, LOW);
if (C13[y] == 1)
{
digitalWrite(R1, HIGH);
digitalWrite(G1, HIGH);
digitalWrite(BL1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(G2, HIGH);
digitalWrite(BL2, HIGH);
}
if (l > MaxLed - 13)
{
digitalWrite(LAT, HIGH);
}
else
{
digitalWrite(LAT, LOW);
}
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
}
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
}
// End of default setup for RGB Matrix 64x32 panel
///////////////////////////////////////////////////////////////

void setup(){

resetPanel(); // do this before matrix.begin

// If you experience ghosting, you will need to reduce the brightness level, not all RGB Matrix
// Panels are the same - some seem to display ghosting artefacts at lower brightness levels.
// In the setup() function do something like:

matrix.setPanelBrightness(10); // SETS THE BRIGHTNESS HERE. 60 OR LOWER IDEAL.

matrix.begin(R1, G1, BL1, R2, G2, BL2, CH_A, CH_B, CH_C, CH_D, CH_E, LAT, OE, CLK); // setup the LED matrix
// matrix.setFont(&TomThumb.h);
matrix.setTextColor(matrix.Color(96, 0, 96)); // r,g,b
matrix.setCursor(1, 15);
matrix.println("Hello World");

}

void loop(){

}

Well after fettling a few settings and change -1 to 14 I have two panels together 128x32 working. Not got the 64x64 mode working yet, panels not behaving. These are some examples of animated screens for my alarm clock and the Aurora Demo.

The connector on the larger density panels is not called HUB75E for nothing.
You need the E line for > 32px x 32px…
eg
64x64, 128x32
Good to see you got it going.
I had trouble getting > 128 x 32 going (4096pixels), as I ran into memory problems.
Larger than that becomes iffy.

You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA/issues/23#issuecomment-662631937, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAY5G4VY5W5SQOLDYCVHCWDR44Z7JANCNFSM4PDKUTZA.

Well after fettling a few settings and change -1 to 14 I have two panels together 128x32 working. Not got the 64x64 mode working yet, panels not behaving.

Nice work. What is the second and third visualisation?

Larger than that becomes iffy.

This is what I am going to change in the library next. Turn off the second DMA buffer which most people don't use and therefore immediately double the pixels.
Secondly, going to investigate reducing pwm gradients to about 16 bit color (most people can't tell the difference) to further increase resolution. These would be compile time settings.

Flowfield and Increment are the two screens. Agree on both parts, I saw no advantage in have the second DMA, however can you write in as an option to have 1 or 2 DMA buffers? 16 bit would be a better option as who can tell difference on a 64x32 screen? these are not exactly high end commercial products! I would not waste my time doing it other than proving I could do it!

As DMA is the constraint? does it stand to reason less color variations the more DMA you have and in return the more panels you could possibly have?

As an update in the void resetPanel(),  MaxLed is set to MATRIX_WIDTH and I have updated the library for support of 128x32 to get it to work. 64x64 does not work, yet ,  or I should say I cannot get it to work :-)

Working currently on mrfaptastic DMA driver, NTP no RTC and DailyAlarms all working together. I need to clean out old library files from VSC to eliminate conflicts. DailyTimers seems to work ok on ESP8266 not ESP32, however I tried your original source of forked version and that works with ESP32!

As an update in the void resetPanel(), MaxLed is set to MATRIX_WIDTH and I have updated the library for support of 128x32 to get it to work. 64x64 does not work, yet , or I should say I cannot get it to work :-)

I have created a 'development' branch of the library. Feel free to submit a pull request to that.
https://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA/tree/development

DailyTimers seems to work ok on ESP8266 not ESP32, however I tried your original source of forked version and that works with ESP32!

Just to clarify is it my fork that works or is it the original that works?

Sorry when it's late I sometimes do not make myself clear Yours works on ESP8266 and the original (Bulldog) works on ESP32, I'm using VSC to build. I have not looked into why thats is yet, this was just an inital observation.
Thanks for the developemnt branch, I'll do a pull request this weekend.

Ok sorted it if I change the following it works...
sprintf(timeBuffer, "Time:%02d:%02d:%02d\tDate:%02d/%02d/%4d (mm/dd/yyyy)", hour(), minute(), second(), month(), day(), year());
to
sprintf(timeBuffer, "Time:%2d:%02d:%02d\tDate:%02d/%02d/%4d", hour(), minute(), second(), day(), month(), year());

Panel working with NTPClient, TIme, TimeLib and mrFaptastic DMA library and DailyTimers both excellent. Lesson learned here is make sure you avoid global libraries where possible, pull them into each project. Opinion VSC is far better than Arduino IDE. I had to play hide and seek with the Time/TimeLib using wrong versions etc but got there in the end.
Working on adding audio and animation next.

I moved from PlatformIO (VS Code) about a year ago and will never move back. It's so much better. I wish I knew about VSC when I was working on the original ESP32-RGB64x32MatrixPanel-I2S-DMA library, would have made debugging so much easier. Arduino IDE is painful for anything other than creating a 'blink' sketch.

On another note, I have submitted a large change to the library to improve performance and reduce memory consumption significantly (disable double buffering). Also the possibility to use for much much longer chains of panels is possible, but as I don't have any more than one 32x64 panel. I can't confirm. Refer to the readme.
https://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA/tree/development

I had trouble getting > 128 x 32 going (4096pixels), as I ran into memory problems. Larger than that becomes iffy.

@csloz - Can you try again with something larger than that? Use the development branch and enable (uncomment) line #define SPLIT_MEMORY_MODE 1. I'm curious to know how far we can now push the ESP32.

Unfortunately my equipment is back home in China, and I’m not. - will be a while due to covid lockdown, so someone else will need to test in the interim…

On 29 Jul 2020, at 00:47, mrfaptastic<EMAIL_ADDRESS>wrote:
I had trouble getting > 128 x 32 going (4096pixels), as I ran into memory problems. Larger than that becomes iffy.
@csloz https://github.com/csloz - Can you try again with something larger than that? Use the development branch and enable (uncomment) line #define SPLIT_MEMORY_MODE 1. I'm curious to know how far we can now push the ESP32.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA/issues/23#issuecomment-665332948, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAY5G4SXY3FWAPZYILFIADLR55IPPANCNFSM4PDKUTZA.

Hi mrfaptastic, thanks for the replies and your time doing the updates.
I'll order more panels today, hopefully I can find the correct panel on eBay or Amazon, when it comes to tech details the suppliers are not vey good at telling you what you are buying as all they do is box shift!
However my usual supplier is out of stock since March, I wonder why! I found someone else so will order a single 64x32 panel and if correct I'll order more.
How big (many) do you wish to go with the panels? I may need a bigger PSU lol
mrfaptastic which country are you in? if these are correct panels I don't mind sending you some in the post, it's a small price to pay for the effort you are putting in to this project.

404 on the development link, it was there before the weekend but has dropped off.

I am ordering extra panels today from within my country, will give it a go on arrival hopefully this week.

mrfaptastic, is thee a particular order for loading the includes after <Arduino.h> ?
Reason for question is other panel drivers had issues when loading <Wifi.h> after other developers panel drivers, locking up, flicker, wifi not working correctly very unstable.
The order of my code, reference for other developers is ..
#include <Arduino.h>
#include <SPI.h>
#include <Wire.h>
////////////////////////////////////////////////////////////////////
#include "WiFiConnect.h"
#include <WiFiClient.h>
#include <HTTPClient.h>
WiFiConnect wc;
WiFiClient client;
HTTPClient http;
//const char *ssid = "EE5G";
//const char *ssid = "testreserved";
//const char *password = "Pa55w0rd!6101";
//const char *ssid = "SSID";
//const char *password = "PASSWORD";
/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
#include "NTPClient.h"
#include <WiFiUdp.h>
#include "Time.h"
#include "DailyTimer.h"
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP);
/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
#include "ESP32-RGB64x32MatrixPanel-I2S-DMA.h"
RGB64x32MatrixPanel_I2S_DMA matrix;
/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
#include "GFX_fonts/Font4x7Fixed.h"
/////////////////////////////////////////////

In void setup()
//////////////////
resetPanel();                                                                       // do this before matrix.begin
// matrix.begin(); // use default settings in library
matrix.begin(R1, G1, BL1, R2, G2, BL2, CH_A, CH_B, CH_C, CH_D, CH_E, LAT, OE, CLK); // setup the LED matrix
startWiFi();
startTimeClient();

However my usual supplier is out of stock since March, I wonder why! I found someone else so will order a single 64x32 panel and if correct I'll order more.
How big (many) do you wish to go with the panels? I may need a bigger PSU lol
mrfaptastic which country are you in? if these are correct panels I don't mind sending you some in the post, it's a small price to pay for the effort you are putting in to this project.

Hold on! You're putting me under pressure here! I just did some testing of the library (as one doesn't need to physically have panels connected to see if the library theoretically works), and managed to get this to work, if I reduced to colour depth to about 5 bit (65k) and enabled SPLIT_MEMORY_MODE. However there is no guarantee this will look any good in the real world as the refresh rate is pretty low and it may be super dim as a result. At least the library doesn't just die.
#ifndef MATRIX_HEIGHT
#define MATRIX_HEIGHT               128
#endif

#ifndef MATRIX_WIDTH
#define MATRIX_WIDTH                512
#endif

#ifndef MATRIX_ROWS_IN_PARALLEL
#define MATRIX_ROWS_IN_PARALLEL     2
#endif

#define MATRIX_COLOR_DEPTH 			    5

404 on the development link, it was there before the weekend but has dropped off.

Sorry. It's back again now.

mrfaptastic, is there a particular order for loading the includes after <Arduino.h> ?

None whatsoever. Are you referring to the examples? I probably need to clean these up if I have the includes in the wrong order.

Sorry there is no pressure, I thought I was helping. Even if I send you some panels they are free of charge I am not expecting anything from you. I know what its like doing these projects, people expect too much in return. This is onyl a hobby for me, a leaning experience nothing more. I do these things at my own pace and as long as I am enjoying myself then I continue to program and do electronics.

Apoloiges. It was a humour fail on my behalf. I just didn't want you going out buying 50 panels with the library only being able to handle a couple haha!
Looks like 256x32 or even 256x64 should be doable however! YYMV of course!

Reference to start order is to do with something from another site saying ESP32 need to load Wifi drivers first as thye allocate memory in a particular way. Since then I have always loaded them first. I had a lot of issues with reset of ESP32 and wifi. This could be the way the other matrix drivers were written?
All other panel drivers need the reset program to work or they did last time I tested them.

Thoughts;
If the panels are dumb using shift registers then the limitation is on how quickly and brightly we can light the LED to get POV?
There will be a compromise fps, to get more panels and as you said may be dimmer?
What if we find the compromise then use muliple ESP32 to sync each other to drive many panels?

Just ordered 2 panels which means I have 4 for testing if they work I'll send a couple to you.
I'll ask privately for your address once I confirm they are the correct type FM6126 based.
These are the panels I have ordered.
https://www.ebay.com/itm/LED-Matrix-P5-RGB-pixel-panel-64x32-LED-sign-screen-module/274396077566?_trkparms=aid%3D888008%26algo%3DDISC.CARDS%26ao%3D1%26asc%3D20140109134348%26meid%3Df35d358fb1fc414e824773b0a19e447d%26pid%3D100042%26rk%3D1%26rkt%3D1%26sd%3D274372793522%26itm%3D274396077566%26pmt%3D0%26noa%3D1%26pg%3D2508447%26algv%3DDiscV2%26brand%3DUnbranded&_trksid=p2508447.c100042.m2062

I had a lot of issues with reset of ESP32 and wifi. This could be the way the other matrix drivers were written?

I haven't had any issues with WiFi with my library, but with other Matrix libraries, they don't use DMA, and simply use a timer interrupt every millisecond to refresh the panels. This generally is what causes the ESP32 to crash and burn with hundreds of interrupts/second.

If the panels are dumb using shift registers then the limitation is on how quickly and brightly we can light the LED to get POV?
There will be a compromise fps, to get more panels and as you said may be dimmer?
What if we find the compromise then use muliple ESP32 to sync each other to drive many panels?

You could have an infinite size array of panels if you have a cluster of ESP's driving say a single 256x64 portion.
If you're displaying a static image it would be easier to sync (just crop the image up or something). If you wanted to display video or something... probably impossible.
I think if you wanted to go down this interesting route of multiple ESP32 driving one massive panel of sub-panels. You'd have 1) One 'master' ESP sending packets of bitmap data to all of them (via UDP or whatever), which gets stored on each sub-panel's buffer.
2) A confirmation back from each ESP32 they've got all the packets
3) Then the master sends an 'OK, switch buffer!' message.
Frames per second would be limited to the WiFi throughput... would be super slow.

I'll ask privately for your address once I confirm they are the correct type FM6126 based.

Wow! Amazing!

It will be amazing if they are the correct panels lol

New Dev version up and running and working with FM6126 panels. Is there any particular test you need me to do or shall I just run some of my code through it?

Two new panels arrived today, I'll try and get them connected tonight in a 2x2 matrix. All going well I will send these to you. Can you email me your address galaxy-man at msdigital.co.uk

Thank you @Galaxy-Man. Incredibly kind of you. I've sent you an email, check your spam folder.

Hi mrfaptastic, you get everything in the photo, except the Mr.Kipplings cakes sorry, lol

Ok done a quick test and the panels are Chipone icnd2038s based (no reset required) not the FM6126 (reset required). Not to worry they still work.
The main test we both were trying to do was multi panel? so who cares what chipset :-)
icn2038s.pdf

This is incredible! Thank you!
Yeah, I wish to expand on the multi-panel capabilities, as I made quite a few changes over the weekend to extract more out of the ESP32 SoC's DMA, and if I can get chaining working in random configurations with four panels, then it'll be super cool.
As for the reset code, I'll bake in what you wrote as an experimental function should people want to use it.

Two different panels, good colour match no issues.

Correction, there is a slight colour difference between panels. Not noticable until I did fillscreen 0xFFFF. The two panels I'm sending you are matched, so colours should be ok.

Panels being dispatched today.

Interesting use of the I2S DMA and Matrix Panels
https://github.com/yetifrisstlama/espirgbani_pio

Downloaded latest version of DMA https://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA
I need to order more panels to test the other options.
Cannot find anyone ebay or Amazon UK with FM6126 panels, if you find any I will order more.

FM6126A dataSheet inc German but readable. Use Google to translate, it does a reasonable job of it.
Will continue to look for the english version.
FM6126A.de.pdf

HI mrfaptastic
Are you in tomorrow as I have another package being sent today.
2 x panels to match the previous set.
I thought the 2x2 same size would look better than having odd sizes! Also becuaes of the time you spent on this porject this is a small price to pay. ex gratia :-)
Have Fun
Galaxy-man

I have a full set of 4x FM 6126 panels arriving thsi week I will test with the reset code and your library, I am sure it will be ok.
I will let you know how I get on.

Just I sent one package another arrived! got my new panels, watch ths spot :-)

I thought the 2x2 same size would look better than having odd sizes! Also becuaes of the time you spent on this porject this is a small price to pay. ex gratia :-)

Wow that's amazing! Thank you. Indeed I will be around.

I will let you know how I get on.

Please do, even if it works OK.

mrfaptastic no problem, you are welcome. Please let me know when you have recieved them.

Hey so since the FM6126 did not started correctly after a software reset it was needed to Reset the I2S hardware first on a software reset and then send the FM6126 enable cmds.
This is a function i use to reset the I2S:
void i2s_reset(i2s_dev_t *dev) {
dev->out_link.start = 0;
dev->conf.tx_start = 0;
dev->lc_conf.in_rst = 1; dev->lc_conf.out_rst = 1; dev->lc_conf.ahbm_rst = 1; dev->lc_conf.ahbm_fifo_rst = 1;
dev->lc_conf.in_rst = 0; dev->lc_conf.out_rst = 0; dev->lc_conf.ahbm_rst = 0; dev->lc_conf.ahbm_fifo_rst = 0;
dev->conf.tx_reset = 1; dev->conf.tx_fifo_reset = 1; dev->conf.rx_fifo_reset = 1;
dev->conf.tx_reset = 0; dev->conf.tx_fifo_reset = 0; dev->conf.rx_fifo_reset = 0;
}
Added this into the https://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA/blob/master/esp32_i2s_parallel.c file so it has all the dependences already. and also to the .h then it can be called from Arduino when needed.
Also the Enable function for the FM6126 on the top of this issue is quite long this on is a bit shorter, but not really better:
int MaxLed = 256;
#define P_LAT 22
#define P_A 19
#define P_B 23
#define P_C 18
#define P_D 5
#define P_E 15
#define P_OE 2
#define CLK 14
#define R1 13
#define R2 27
#define G1 21
#define G2 17
#define B1 12
#define B2 4
void set_RGB(bool state) {
digitalWrite (R1, state);
digitalWrite (G1, state);
digitalWrite (B1, state);
digitalWrite (R2, state);
digitalWrite (G2, state);
digitalWrite (B2, state);
}
void init_matrix() {
bool C12[16] = {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
bool C13[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0};
pinMode(CLK, OUTPUT);
pinMode(P_LAT, OUTPUT);
pinMode(P_OE, OUTPUT);
pinMode(B1, OUTPUT);
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(G1, OUTPUT);
pinMode(G2, OUTPUT);
pinMode(B2, OUTPUT);
pinMode(P_A, OUTPUT);
pinMode(P_B, OUTPUT);
pinMode(P_C, OUTPUT);
pinMode(P_D, OUTPUT);
pinMode(P_E, OUTPUT);
digitalWrite (P_OE, HIGH);
digitalWrite (P_LAT, LOW);
digitalWrite (CLK, LOW);
// Send Data to control register 11
for (int l = 0; l < MaxLed; l++) {
int y = l % 16;
set_RGB(LOW);
if (C12[y]) set_RGB(HIGH);
digitalWrite(P_LAT, (l > MaxLed - 12) ? HIGH : LOW);
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
}
digitalWrite (P_LAT, LOW);
digitalWrite (CLK, LOW);
// Send Data to control register 12
for (int l = 0; l < MaxLed; l++) {
int y = l % 16;
set_RGB(LOW);
if (C13[y])set_RGB(HIGH);
digitalWrite(P_LAT, (l > MaxLed - 13) ? HIGH : LOW);
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
}
digitalWrite (P_LAT, LOW);
digitalWrite (CLK, LOW);
}

Hi @atc1441. Great youtube channel by the way.
Would you be happy to raise a pull request? I'll incorporate then.

mrfaptastic after lots of waiting the 6x led matrix panels are on my desk :-) I will dispatch them to you tomorrow . Are you goiong to be at home Wednesday?
Chipset in these are the same as the first batch I sent to you. CHIPONE ICND2038S, data sheet is on my repository.

Hi @Galaxy-Man. Yep, delivery is fine on Wednesday.
This is going to be immense. Can't wait to chain these up and test. Thank you !!!

Morning mrfaptastic, panels being collected today delivery tomorrow by 1pm, need to be signed for.
Have fun, let me know you have recieved them and how you get on.  :-)
Are we going bigger than 12x panels or is this the limit before performance/colour/brightness/fps is compromised?

This is phenomenal.

Are we going bigger than 12x panels or is this the limit before performance/colour/brightness/fps is compromised?

That I don't know until I experiment. There is all manner of tweaks that can be done to the library to get this to work, all which will have a trade off between brightness, refresh rate and color depth. I will let you know how I get on. Either way, my poor ESP32 is going to get put through its paces.

@Galaxy-Man. All received! Thank you kindly, will start testing. Did you end up receiving any FM6126 based panels in the end? I think you did that they worked fine when chained with non-FM6126 panels?
Note: Cleaning up this issue to remove our messages to each other. Nothing personal :-)

Hi mrfaptastic
Glad you have the panels.
I have ordered more Fm panels, not holding my breath for delivery.
I chained a mix of panels and they worked fine, only minor issue is a very very slight colour difference when showing single colour across panels.
From: mrfaptastic
Sent: 16 September 2020 13:00
To: mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA<EMAIL_ADDRESS>Cc: Ian Medlock<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA] FM6126 based HUB75 Panels (#23)
@Galaxy-Manhttps://github.com/Galaxy-Man. All received! Thank you kindly, will start testing. Did you end up receiving any FM6126 based panels in the end? I think you did that they worked fine when chained with non-FM6126 panels?
Note: Cleaning up this issue to remove our messages to each other. Nothing personal :-)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA/issues/23#issuecomment-693358595, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGKMAZIGYNUM2RD37X73NQTSGCSFLANCNFSM4PDKUTZA.

@Galaxy-Man  How did you finally achieve to chain FM6126 panels ?  Using a single 64x32 panel (same ref as yours from amazon) works perfectly, but if I try to simply chain them, I'm getting the same image on both matrices.
Here is the code I'm using :
`// How to use this library with a FM6126 panel, thanks goes to:
// https://github.com/hzeller/rpi-rgb-led-matrix/issues/746
#include <Arduino.h>
#include <ESP32-RGB64x32MatrixPanel-I2S-DMA.h>
RGB64x32MatrixPanel_I2S_DMA matrix;
////////////////////////////////////////////////////////////////////
// Reset Panel
// This needs to be near the top of the code
//
// Change these to whatever suits
// recommended settings and patches are by
//
// pinout for ESP38 38pin module
// http://arduinoinfo.mywikis.net/wiki/Esp32#KS0413_keyestudio_ESP32_Core_Board
//
// R1 | G1
// B1 | GND
// R2 | G2
// B2 | E
// A | B
// C | D
// CLK| LAT
// OE | GND
#define R1 25
#define G1 26
#define BL1 27
#define R2 5 // 21 SDA
#define G2 19 // 22 SDL
#define BL2 23
#define CH_A 12
#define CH_B 16
#define CH_C 17
#define CH_D 18
#define CH_E 14 // assign to pin if using two panels
#define CLK 2
#define LAT 32
#define OE 33
/////////////////////////////////////////////////////////////////
// how many pixels wide if you chain panels
// 4 panels of 64x32 is 256 wide.
int MaxLed = 128;
int C12[16] = {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int C13[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0};
void resetPanel()
{
pinMode(CLK, OUTPUT);
pinMode(LAT, OUTPUT);
pinMode(OE, OUTPUT);
pinMode(R1, OUTPUT);
pinMode(G1, OUTPUT);
pinMode(BL1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(G2, OUTPUT);
pinMode(BL2, OUTPUT);
pinMode(CH_A, OUTPUT);
pinMode(CH_B, OUTPUT);
pinMode(CH_C, OUTPUT);
pinMode(CH_D, OUTPUT);
pinMode(CH_E, OUTPUT);
// Send Data to control register 11
digitalWrite(OE, HIGH); // Display reset
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
for (int l = 0; l < MaxLed; l++)
{
int y = l % 16;
digitalWrite(R1, LOW);
digitalWrite(G1, LOW);
digitalWrite(BL1, LOW);
digitalWrite(R2, LOW);
digitalWrite(G2, LOW);
digitalWrite(BL2, LOW);
if (C12[y] == 1)
{
digitalWrite(R1, HIGH);
digitalWrite(G1, HIGH);
digitalWrite(BL1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(G2, HIGH);
digitalWrite(BL2, HIGH);
}
if (l > MaxLed - 12)
{
digitalWrite(LAT, HIGH);
}
else
{
digitalWrite(LAT, LOW);
}
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
}
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
// Send Data to control register 12
for (int l = 0; l < MaxLed; l++)
{
int y = l % 16;
digitalWrite(R1, LOW);
digitalWrite(G1, LOW);
digitalWrite(BL1, LOW);
digitalWrite(R2, LOW);
digitalWrite(G2, LOW);
digitalWrite(BL2, LOW);
if (C13[y] == 1)
{
digitalWrite(R1, HIGH);
digitalWrite(G1, HIGH);
digitalWrite(BL1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(G2, HIGH);
digitalWrite(BL2, HIGH);
}
if (l > MaxLed - 13)
{
digitalWrite(LAT, HIGH);
}
else
{
digitalWrite(LAT, LOW);
}
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
}
digitalWrite(LAT, LOW);
digitalWrite(CLK, LOW);
}
// End of default setup for RGB Matrix 64x32 panel
/////////////////////////////////////////////////////////////////
void setup(){
resetPanel(); // do this before matrix.begin
// If you experience ghosting, you will need to reduce the brightness level, not all RGB Matrix
// Panels are the same - some seem to display ghosting artefacts at lower brightness levels.
// In the setup() function do something like:
// If using multi panels watch your power levels when running full brightness.
matrix.setPanelBrightness(10); // SETS THE BRIGHTNESS HERE. 60 OR LOWER IDEAL.
matrix.begin(R1, G1, BL1, R2, G2, BL2, CH_A, CH_B, CH_C, CH_D, CH_E, LAT, OE, CLK); // setup the LED matrix
matrix.setTextColor(matrix.color444(96, 0, 96)); // r,g,b
matrix.setCursor(1, 15);
matrix.println("Hello World");
}
void loop(){
}`

I added it in the code with :
#define MATRIX_WIDTH 128
#define MATRIX_HEIGHT 32
I haven't modified the .h, but looking at the H if it's already defined it shouldn't overwrite it.

Can you hack the .h directly and set the width to 128 and see if it makes a difference? I have noticed some compilers don't respect defines not in the .h file itself.

That was it :) Thx for the hint !

Morning mrfaptastic hope you are ok, sorry not replied to pilly52 earlier. It looks like i'm not getting notifications from Github to my mailbox.
I'm using VSC and your library is per project and not loaded anywhere in public folders. This was something that caused me a lot of issues earlier on with time libraries and 'TheOneMatrix' library aka yours. If pilly52 shows where to get panel I will order one and try it out and send on to you. Another pair of eyes is always useful.

Another pair of eyes is always useful.
That is super kind of you. I have still yet to chain the 12 64x32 panels you kindly donated! Rest assured, now that it's closer to Christmas I'll have time to do this and test the memory capabilties. It seems the 64x64 panels and FM6126 are now pretty good with this library, so I might close this issue for now.

I have still yet to chain the 12 64x32 panels

Just a warning there could be issues with long chains in terms of timing. This is a bit of a guess.


Change create fork options from url param to body param

resolves #2489

should be pass

It's been blocked for weeks 😢

It's been blocked for weeks 😢

This repo depends on volunteers to contribute both code and code reviews to move it forward. If you are a contributor to this repo, please feel free to perform a code review and LGTM+Approval if you agree with this change.

LGTM
@gmlewis Sorry for the late review, feel free to mention me if a review is needed.

Thank you, @raynigon , and no worries!
Merging.

Thanks for review!


Bump to compose 1.6.10

I'm considering to release dev8, because the compose 1.6.10 is an important update. What do you think?

i refactor the MenuFlyoutItem that based on ListItem(Primitives/ListItem) and ColorPicker control. Maybe we can release the new version later?

I refactor the MenuFlyoutItem that based on ListItem(Primitives/ListItem) and ColorPicker control. Maybe we can release the new version later?

Sure

I refactor the MenuFlyoutItem that based on ListItem(Primitives/ListItem) and ColorPicker control. Maybe we can release the new version later?

Sure

Before release the new version ，maybe we should update the Readme and its TODO list？


Update README.md

None - minor change to readme

Codecov Report

Merging #680 into develop will increase coverage by 1.32%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #680      +/-   ##
===========================================
+ Coverage    82.89%   84.22%   +1.32%
===========================================
  Files          160      469     +309
  Lines         7145    22125   +14980
  Branches      1118     3387    +2269
===========================================
+ Hits          5923    18635   +12712
- Misses         761     2262    +1501
- Partials       461     1228     +767

Impacted Files
Coverage Δ

...metryChannel/Implementation/BackoffLogicManager.cs

...nInsights/Extensibility/Implementation/Property.cs

...ibility/Implementation/External/EventData_types.cs

...ApplicationInsights/Channel/InMemoryTransmitter.cs

...emetryChannel/Implementation/TransmissionBuffer.cs

...bility/OperationCorrelationTelemetryInitializer.cs

...sibility/Implementation/SeverityLevelExtensions.cs

...emetryChannel/Implementation/TransmissionPolicy.cs

...ationInsights/DataContracts/DependencyTelemetry.cs

...Extensibility/Implementation/Tracing/TraceEvent.cs

... and 619 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update af78175...7cfe553. Read the comment docs.


MAINT: remove loop

Minor optimisation by removing loop.

Ok, some CI edge cases meant that I couldn't easily run any tests through github, and I was being too lazy, so I merged this, then found that it breaks some of the unit tests.
I believe the repo should now allow for CI runs on PR from external repos, but I don't think I can re-open this PR, and fix whatever it is that is breaking some of the tests.
This also stops merging or #120 since that uses this and causes a merge conflict without it.


switch to grayskull update

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

@nsoranzo lets try this and later switch auto-merge to true?

I've read the docs at https://conda-forge.org/docs/maintainer/conda_forge_yml.html#bot but I am not sure I understand it exactly, happy to follow your recommendation. We can always adjust later.


Move skip_field/2 to the Binary protocol module

We were previously generating private copies of the "skip" functions in
each generated struct module. These functions are generic and have been
moved to the top-level Binary protocol module instead. The reduces the
size of the generated modules by a nice amount.
We only skip unrecognized fields so this code shouldn't be called very
often. In practice, however, we can't predict how often this case will
arise, so the performance of these function is important. Fortunately,
this change doesn't introduce a measurable performance cost.
Lastly, this change adds Binary module documentation and some initial
typespecs.

Ebert has finished reviewing this Pull Request and has found:

2 fixed issues! 🎉

You can see more details about this review at https://ebertapp.io/github/pinterest/elixir-thrift/pulls/103.

Ran a benchmark to confirm calling another module is only slightly slower.
foo                        1000000   2.71 µs/op
Other.foo                  1000000   2.93 µs/op
apply(Other, :foo, [])     1000000   2.95 µs/op
__MODULE__.foo             1000000   2.96 µs/op
func.()                     200000   7.97 µs/op
apply(mod, :foo, [])        100000   16.96 µs/op
mod.foo                     100000   18.51 µs/op

@pguillory That's backed up by section 6.2 of the Efficiency Guide: http://erlang.org/doc/efficiency_guide/functions.html


How to detect bad XML file

Hi, after researching possibilities both in the node-big-xml and in the node-expat I still don't figure out how could I detect that file given to the reader is actually a bad file (e.g. image instead of proper xml)?

It turns out the node-expat has an unusual API and rather than throw errors or emit an 'error' event, its parser.parse function returns a boolean indicating success. Further error details can then be fetched from parser.getError().
To fix this, I've added error handling in aca148107ec8df16b9ea86030dbc8845f5bd06d1. BigXmlReader now emits an 'error' event when the underlying gzip or expat parsers encounter an error. Here's what happens now if you try to parse a .png file:
Error: XML Error: not well-formed (invalid token)
    at ReadStream.<anonymous> (/node-big-xml/lib/big-xml.js:28:26)
    at emitOne (events.js:96:13)
    at ReadStream.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at ReadStream.Readable.push (_stream_readable.js:134:10)
    at onread (fs.js:1984:12)
    at FSReqWrap.wrapper [as oncomplete] (fs.js:681:17)

Thanks for reporting this!

Published to npm in v1.0.0.

Great Work John, awesome response time, thanks!


[rewrite] PromisePolyfill always overwrites window.Promise

This line, bundled here, makes Promise a local variable, and this checks that instead of window.Promise. At the point of this check, Promise hasn't been assigned yet, so the polyfill will always replace window.Promise.

yep, known bug in bundler. Haven't gotten around to fixing it

Fixed in #1490.


Console.SetOut does not output print statement output

Prerequisites
The issue tracker is used to report bugs and request new features, NOT to ask questions.
Questions should be posted to the users mailing list which can be accessed at
https://ironpython.groups.io/g/users.

[ X ] Are you running the latest version?
[ ] Are you reporting to the correct repository?
[ ] Did you perform a cursory search?

Description
Am using IronPython 3.4.0-alpha on c# Visual Studio project.  Was previously using 2.7.9 and using RedirectToConsole() to and then setting Console.SetOut to a text writer.  This used to print the output of a print statment.  That now print nothing at all but no errors are generated.
Steps to Reproduce

Redirect output to console with Engine.Runtime.IO.RedirectToConsole
Set console output to text writer with Console.SetOut(TextWriter.Synchronized(writer [writer is a TextWriter instance])
Send the python string print("Hello").
Nothing appears in the TextWriter object.

Expected behavior:
Hello should have been printed in the TextWriter.
Actual behavior:
Nothing appeared in the TextWriter.  This exact same code works correctly in 2.7.9.
Versions
3.4.0-alpha

Thanks for the report! Might be related to https://github.com/IronLanguages/ironpython3/issues/961

Hey Friend, I have meet the same problem, I have tried the code above  ,but it still doesn't work ,can be the new way to solve it?

@slozier Hey Friend, I have meet the same problem, I have tried the code above  ,but it still doesn't work ,can be the new way to solve it?

Hi together. I have the same problem using version 3.4.0-alpha1. I also tried this:
`
var stream = new MemoryStream;
var writer = new StreamWriter(stream);
var engine=Python.CreateEngine();
engine.Runtime.IO.SetOutput(stream, writer)
this call also has no effect at the writer when executingprint("Hello world")`.
@slozier I alo tryed your workaround from issue #961 (first create runtime, then redirect output and last create engine). this also doesn't work to me.
Regards


Lower minSdkVersion to 21 and re-enable tests

Issue

close #552

Overview
Originally tests were disabled for API level 21 and 23 because they failed to run. This was caused by this bug in AGP which is now fixed. Later on, the minSdkVersion was increased to work around another bug in AGP which is also fixed now. So this PR reverts the previous changes because a new enough version of AGP is being used which fixes the bugs.
Links

https://issuetracker.google.com/issues/193810678

👀

Thank you for your investigation 🔬


use updated verion of neovim when intall for old linux release(such as debian 9)

it seems the install .sh use apt install neovim to install, but for old debian verion(9), the neovim version is 0.1.x, that is to old to use.
Could you plz use the install methd of https://github.com/neovim/neovim/blob/master/INSTALL.md#linux.

hi @weyllor , please use the next generation: https://github.com/linrongbin16/lin.nvim.
It's a maintained version for Neovim.


[BugFix] BE crashes on illegal JSON (backport #12850) (branch-2.4)

This PR is the backport of https://github.com/StarRocks/starrocks/pull/12850 to branch-2.4.

run pr-title-check


🚀 Feature: Retrieve loading state from StorageApi

🔖 Feature description
StorageApi snapshot function returns StorageValueSnapshot type. This type should have an additional value for loading which indicates that the snapshot is loading from the storage.
🎤 Context
This is necessary to detect when @backstage/plugin-user-settings-backend is fetching the data from the backend to display some loading indicator during the load. For the default local storage implementation, the loading value would probably be false at all times.
✌ Possible Implementation

Add a new loading (optional?) boolean field to the StorageValueSnapshot
Add necessary implementation to the default and settings-backend storage options

👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
None

For those cases, the snapshot is meant to have presence: 'unknown', which essentially means that you're loading and the observe$ observable will give you the actual value soon. Right? They work as a pair.

Ah, yes true, I just read the implementation of the UserSettingsStorage. Will close this!


Yeah this file gets detected with windows defender we are trying to fix the issue

Because it have some commands that windows dont like


MountVolume failed

Describe the bug
Pods cannot mount the pvc
Environment details

Image/version of Ceph CSI driver : cannary? (Not sure)
Kernel version : 6.2.16-6-pve
Mounter used for mounting PVC (for cephFS its fuse or kernel. for rbd its
krbd or rbd-nbd) : kernel rbd module? (Not sure)
Kubernetes cluster version : v1.28.0-rc.1
Ceph cluster version : 17.2.6

Steps to reproduce
I followed the official guide, the only deviation is specifying plugins and pods directory as I use microk8s.
https://docs.ceph.com/en/latest/rbd/rbd-kubernetes/#
At the bottom of the guide there are 2 examples of pvc and pod. I tried both, and both fail.
Errors
At first it was showing something like
rbd error output: rbd: mapping succeeded but /dev/rbd5 is not accessible, is host /dev mounted? rbd: map failed: (22) Invalid argument

Now it just shows
MountVolume.MountDevice failed for volume "pvc-e93ce486-df3a-43bd-95f2-a272aeff50a1" : rpc error: code = Aborted desc = an operation with the given Volume ID 0001-0024-fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1-0000000000000009-51d45259-4482-442d-9490-f43efe85b1f9 already exists

The error was
Additional info
$ ceph health
HEALTH_OK

I cannot enter the pods of the plugins to check connection. The test pods do not start since they cannot mount the volume, but I used a different container and I can ping the monitor address.
Logs
Logs:
logs-from-csi-provisioner-in-csi-rbdplugin-provisioner-7dc46d77bc-464xg.log
logs-from-csi-rbdplugin-in-csi-rbdplugin-provisioner-7dc46d77bc-464xg.log

@mike-pisman please see if https://rook.io/docs/rook/latest/Troubleshooting/ceph-csi-common-issues/ can help you to identify the issue (most of the steps will remain the same for standalone cephcsi as well)

Hi @Madhu-1, thank you for sharing. I have followed the article. I will post logs for commands, if it's too much please skip logs and read messages, I tried to outline the issues.
1. I managed to check connectivity from provisioner:
kubectl exec -ti csi-rbdplugin-provisioner-7dc46d77bc-464xg -c csi-rbdplugin -- bash
[root@csi-rbdplugin-provisioner-7dc46d77bc-464xg /]# curl <IP_ADDRESS>:3300 2>/dev/null
ceph v2
[root@csi-rbdplugin-provisioner-7dc46d77bc-464xg /]# curl <IP_ADDRESS>:6789 2>/dev/null

I can reach ceph over 3300, but not 6789. However, the instructions said that csi-rbd only supports v1 and therefore port 6789 must be used. Is this true? Should I change ports from 6789 to 3300 in my config map and recreate all the resources?
2. I also checked the  ceph health, and there are no slow ops, cluster reports HEALTH_OK
# ceph -s
  cluster:
    id:     fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
    health: HEALTH_OK

  services:
    mon: 4 daemons, quorum hermes,artemis,apollo,poseidon (age 6d)
    mgr: hermes(active, since 7d), standbys: artemis, apollo, poseidon
    osd: 3 osds: 3 up (since 7d), 3 in (since 2w)

  data:
    pools:   4 pools, 35 pgs
    objects: 31.67k objects, 122 GiB
    usage:   235 GiB used, 1.1 TiB / 1.4 TiB avail
    pgs:     35 active+clean

  io:
    client:   341 B/s rd, 2.3 MiB/s wr, 0 op/s rd, 93 op/s wr

3. Checked the provisioner logs:
kubectl logs deploy/csi-rbdplugin-provisioner  -c csi-provisioner
Found 3 pods, using pod/csi-rbdplugin-provisioner-7dc46d77bc-22pgm
Defaulted container "csi-provisioner" out of: csi-provisioner, csi-snapshotter, csi-attacher, csi-resizer, csi-rbdplugin, csi-rbdplugin-controller, liveness-prometheus
W0815 05:19:51.883436       1 feature_gate.go:241] Setting GA feature gate Topology=false. It will be removed in a future release.
I0815 05:19:51.883578       1 feature_gate.go:249] feature gates: &{map[HonorPVReclaimPolicy:true Topology:false]}
I0815 05:19:51.883627       1 csi-provisioner.go:154] Version: v3.5.0
I0815 05:19:51.883637       1 csi-provisioner.go:177] Building kube configs for running in cluster...
I0815 05:19:54.955185       1 common.go:111] Probing CSI driver for readiness
I0815 05:19:54.960845       1 common.go:111] Probing CSI driver for readiness
I0815 05:19:54.963304       1 csi-provisioner.go:302] CSI driver does not support PUBLISH_UNPUBLISH_VOLUME, not watching VolumeAttachments
I0815 05:19:54.964208       1 leaderelection.go:245] attempting to acquire leader lease default/rbd-csi-ceph-com...

What does CSI driver does not support PUBLISH_UNPUBLISH_VOLUME, not watching VolumeAttachments mean, can this be causing the problem?
4. Chcking the plugin pods: kubectl logs csi-rbdplugin-cdgs2 -c driver-registrar, kubectl logs csi-rbdplugin-frjcq, kubectl logs csi-rbdplugin-qtqx6, the logs are almost identical:
I0815 05:19:51.912921 3293903 main.go:167] Version: v2.8.0
I0815 05:19:51.913056 3293903 main.go:168] Running node-driver-registrar in mode=registration
I0815 05:19:51.914835 3293903 main.go:192] Attempting to open a gRPC connection with: "/csi/csi.sock"
I0815 05:19:52.917319 3293903 main.go:199] Calling CSI driver to discover driver name
I0815 05:19:52.925948 3293903 node_register.go:53] Starting Registration Server at: /registration/rbd.csi.ceph.com-reg.sock
I0815 05:19:52.927276 3293903 node_register.go:62] Registration Server started at: /registration/rbd.csi.ceph.com-reg.sock
I0815 05:19:52.927580 3293903 node_register.go:92] Skipping HTTP server because endpoint is set to: ""
I0815 05:19:53.116067 3293903 main.go:102] Received GetInfo call: &InfoRequest{}
I0815 05:19:53.116585 3293903 main.go:109] "Kubelet registration probe created" path="/var/lib/kubelet/plugins/rbd.csi.ceph.com/registration"
I0815 05:19:53.347731 3293903 main.go:121] Received NotifyRegistrationStatus call: &RegistrationStatus{PluginRegistered:true,Error:,}

I see no errors, and the last line is Received NotifyRegistrationStatus call: &RegistrationStatus{PluginRegistered:true,Error:,}
5. Chceking volume attachments:
kubectl get volumeattachments.storage.k8s.io
NAME                                                                   ATTACHER           PV                                         NODE              ATTACHED   AGE
csi-7c4ca00ceaf7b59985f6ee38692bfc1c0a009ca474ab6d554adf54a21d737679   rbd.csi.ceph.com   pvc-e93ce486-df3a-43bd-95f2-a272aeff50a1   microk8s-apollo   true       14h
csi-393fd75bf78bfe0e7dc896c9d2dd7ccbbb2493ef5c7af32a21e95318bd2171ad   rbd.csi.ceph.com   pvc-822fec24-4c03-4a61-ae06-cefd21ce5365   microk8s-apollo   true       13h

Checking plugin provisioner logs:
One pod returns:
kubectl logs po/csi-rbdplugin-provisioner-7dc46d77bc-22pgm -c csi-attacher
I0815 05:19:53.128202       1 main.go:96] Version: v4.3.0
I0815 05:19:55.103101       1 common.go:111] Probing CSI driver for readiness
I0815 05:19:55.112064       1 common.go:111] Probing CSI driver for readiness
I0815 05:19:55.114647       1 leaderelection.go:245] attempting to acquire leader lease default/external-attacher-leader-rbd-csi-ceph-com...
I0815 05:20:10.381015       1 leaderelection.go:255] successfully acquired lease default/external-attacher-leader-rbd-csi-ceph-com
I0815 05:20:10.381246       1 controller.go:130] Starting CSI attacher

Other two, however, never seem to acquire the lease. I am not sure if that is the issue, since I would assume only the node that runs the pod would have attached to the volume, correct?
kubectl logs po/csi-rbdplugin-provisioner-7dc46d77bc-464xg -c csi-attacher
I0815 05:19:53.562204       1 main.go:96] Version: v4.3.0
I0815 05:19:56.460508       1 common.go:111] Probing CSI driver for readiness
I0815 05:19:56.476208       1 common.go:111] Probing CSI driver for readiness
I0815 05:19:56.484773       1 leaderelection.go:245] attempting to acquire leader lease default/external-attacher-leader-rbd-csi-ceph-com...

6. Checking for stale RBD operations -  no processes except grep. 3 pods return almost identical results.
 kubectl exec -ti csi-rbdplugin-qtqx6 -c csi-rbdplugin -- sh                                       25s
sh-4.4# ps -ef |grep map
root     3155791 3155755  0 20:01 pts/3    00:00:00 grep map
sh-4.4# ps -ef |grep mount
root     3155847 3155755  0 20:01 pts/3    00:00:00 grep mount
sh-4.4# ps -ef |grep mkfs
root     3155876 3155755  0 20:01 pts/3    00:00:00 grep mkfs
sh-4.4# ps -ef |grep umount
root     3155883 3155755  0 20:01 pts/3    00:00:00 grep umount
sh-4.4# ps -ef |grep unmap
root     3155962 3155755  0 20:01 pts/3    00:00:00 grep unmap

7. Checking dmesg. Interestingly, nodes constantly loose the connection to monitors. Also there are some errors on one of the nodes, but I am not exactly sure if those are old errors...
On node 1 (poseidon)
# dmesg | grep libceph
[ 4814.134379] libceph: loaded (mon/osd proto 15/24)
[ 4814.149989] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[ 4814.150592] libceph: client27650392 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[ 8931.190246] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[ 8931.190708] libceph: client27659032 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[27472.494250] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[27472.494770] libceph: client27698040 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[29985.942939] libceph: mon1 (1)<IP_ADDRESS>:6789 session established
[29985.943498] libceph: client27673265 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[30410.200641] libceph: mon3 (1)<IP_ADDRESS>:6789 session established
[30410.201343] libceph: client27692971 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[279463.833692] libceph: mon3 (1)<IP_ADDRESS>:6789 session established
[279463.833982] libceph: client28219883 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[292836.717066] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[292836.717680] libceph: client28306644 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[297532.332670] libceph: mon0 (1)<IP_ADDRESS>:6789 session established
[297532.333671] libceph: client28165982 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1

I see some  capacity<PHONE_NUMBER>6 features 0xbd but not many.
dmesg | grep rbd
[ 4814.137905] rbd: loaded (major 252)
[ 4814.182537] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[ 4814.327227] EXT4-fs (rbd0): mounted filesystem 9f99e668-f77b-49d8-a235-d5a018d36747 with ordered data mode. Quota mode: none.
[ 8929.918985] EXT4-fs (rbd0): unmounting filesystem 9f99e668-f77b-49d8-a235-d5a018d36747.
[ 8931.240906] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[ 8931.387464] EXT4-fs (rbd0): mounted filesystem 9f99e668-f77b-49d8-a235-d5a018d36747 with ordered data mode. Quota mode: none.
[27471.078482] EXT4-fs (rbd0): unmounting filesystem 9f99e668-f77b-49d8-a235-d5a018d36747.
[27472.548859] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[27472.723246] EXT4-fs (rbd0): mounted filesystem 9f99e668-f77b-49d8-a235-d5a018d36747 with ordered data mode. Quota mode: none.
[29984.628492] EXT4-fs (rbd0): unmounting filesystem 9f99e668-f77b-49d8-a235-d5a018d36747.
[29985.982565] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[29986.150808] EXT4-fs (rbd0): mounted filesystem 9f99e668-f77b-49d8-a235-d5a018d36747 with ordered data mode. Quota mode: none.
[30408.942697] EXT4-fs (rbd0): unmounting filesystem 9f99e668-f77b-49d8-a235-d5a018d36747.
[30410.231287] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[30410.394559] EXT4-fs (rbd0): mounted filesystem 9f99e668-f77b-49d8-a235-d5a018d36747 with ordered data mode. Quota mode: none.
[279461.735652] EXT4-fs (rbd0): unmounting filesystem 9f99e668-f77b-49d8-a235-d5a018d36747.
[279463.875579] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[279464.030403] EXT4-fs (rbd0): mounted filesystem 9f99e668-f77b-49d8-a235-d5a018d36747 with ordered data mode. Quota mode: none.
[292835.355095] EXT4-fs (rbd0): unmounting filesystem 9f99e668-f77b-49d8-a235-d5a018d36747.
[292836.750999] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[292836.906967] EXT4-fs (rbd0): mounted filesystem 9f99e668-f77b-49d8-a235-d5a018d36747 with ordered data mode. Quota mode: none.
[297530.813724] EXT4-fs (rbd0): unmounting filesystem 9f99e668-f77b-49d8-a235-d5a018d36747.
[297532.373943] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[297532.524197] EXT4-fs (rbd0): mounted filesystem 9f99e668-f77b-49d8-a235-d5a018d36747 with ordered data mode. Quota mode: none.

On the node 2 (apollo) there are many more errors in dmesg. This node keeps loosing connection a lot more for some reason...
# dmesg | grep libceph
[  164.191591] libceph: loaded (mon/osd proto 15/24)
[  164.209024] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[  164.209798] libceph: client27315342 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[ 9856.985876] libceph: osd2 (1)<IP_ADDRESS>:6801 socket closed (con state OPEN)
[ 9856.986218] libceph: osd2 (1)<IP_ADDRESS>:6801 socket closed (con state V1_BANNER)
[ 9857.236771] libceph: osd2 (1)<IP_ADDRESS>:6801 socket closed (con state V1_BANNER)
[ 9857.740835] libceph: osd2 (1)<IP_ADDRESS>:6801 socket closed (con state V1_BANNER)
[ 9858.764865] libceph: osd2 (1)<IP_ADDRESS>:6801 socket closed (con state V1_BANNER)
[ 9866.176484] libceph (fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1 e857): osd2 down
[10205.084527] libceph (fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1 e859): osd2 up
[65324.056525] libceph: mon2 (1)<IP_ADDRESS>:6789 socket closed (con state OPEN)
[65324.056564] libceph: mon2 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[65324.058645] libceph: mon1 (1)<IP_ADDRESS>:6789 session established
[65343.725503] libceph (fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1 e867): osd0 down
[65519.045871] libceph (fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1 e872): osd0 up
[616946.697469] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[616946.698213] libceph: client28674032 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[617017.237692] libceph: mon2 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617017.240536] libceph: mon0 (1)<IP_ADDRESS>:6789 session established
[617078.422633] libceph: mon0 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617078.425609] libceph: mon3 (1)<IP_ADDRESS>:6789 session established
[617148.311712] libceph: mon3 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617148.314953] libceph: mon1 (1)<IP_ADDRESS>:6789 session established
[617218.200786] libceph: mon1 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617218.243169] libceph: mon3 (1)<IP_ADDRESS>:6789 session established
[617288.346728] libceph: mon3 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617288.350076] libceph: mon0 (1)<IP_ADDRESS>:6789 session established
[617358.234951] libceph: mon0 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617358.236783] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[617419.419905] libceph: mon2 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617419.422794] libceph: mon3 (1)<IP_ADDRESS>:6789 session established
[617483.420852] libceph: mon3 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617483.422564] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[617553.309994] libceph: mon2 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617553.312374] libceph: mon0 (1)<IP_ADDRESS>:6789 session established
[617623.455041] libceph: mon0 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617623.458005] libceph: mon1 (1)<IP_ADDRESS>:6789 session established
[617693.344128] libceph: mon1 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617693.347207] libceph: mon3 (1)<IP_ADDRESS>:6789 session established
[617763.233219] libceph: mon3 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617763.236064] libceph: mon0 (1)<IP_ADDRESS>:6789 session established
[617833.378252] libceph: mon0 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617833.380170] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[617903.267347] libceph: mon2 (1)<IP_ADDRESS>:6789 session lost, hunting for new mon
[617903.271065] libceph: mon1 (1)<IP_ADDRESS>:6789 session established
[617943.204086] libceph: osd2 (1)<IP_ADDRESS>:6801 socket closed (con state OPEN)
... (and it continues, it keeps to lose connection and reestablish one)

There are much more errors on apollo node than on other 2 nodes. I see a lot of  watch error: -107 and capacity *** features 0xbd
[  164.195411] rbd: loaded (major 252)
[  164.288677] rbd: rbd0: capacity<PHONE_NUMBER>4 features 0xbd
[  164.413195] EXT4-fs (rbd0): mounted filesystem 0223a593-fe7b-4a05-8ebf-da21b42a5aa1 with ordered data mode. Quota mode: none.
[  170.262923] rbd: rbd1: capacity<PHONE_NUMBER>8 features 0xbd
[  170.405702] EXT4-fs (rbd1): mounted filesystem f96806b1-ab34-4e34-8b9e-7d4994f82917 with ordered data mode. Quota mode: none.
[151962.557434] rbd: rbd2: capacity<PHONE_NUMBER>6 features 0xbd
[151962.706918] EXT4-fs (rbd2): mounted filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c with ordered data mode. Quota mode: none.
[156072.031235] EXT4-fs (rbd2): unmounting filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c.
[156073.529806] rbd: rbd2: capacity<PHONE_NUMBER>6 features 0xbd
[156073.689477] EXT4-fs (rbd2): mounted filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c with ordered data mode. Quota mode: none.
[163592.072918] EXT4-fs (rbd2): unmounting filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c.
[163593.715365] rbd: rbd2: capacity<PHONE_NUMBER>6 features 0xbd
[163593.860562] EXT4-fs (rbd2): mounted filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c with ordered data mode. Quota mode: none.
[174627.271740] EXT4-fs (rbd2): unmounting filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c.
[174629.125174] rbd: rbd2: capacity<PHONE_NUMBER>6 features 0xbd
[174629.274619] EXT4-fs (rbd2): mounted filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c with ordered data mode. Quota mode: none.
[238308.800705] EXT4-fs (rbd2): unmounting filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c.
[238310.638948] rbd: rbd2: capacity<PHONE_NUMBER>6 features 0xbd
[238310.773726] EXT4-fs (rbd2): mounted filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c with ordered data mode. Quota mode: none.
[426572.996132] EXT4-fs (rbd2): unmounting filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c.
[426575.088591] rbd: rbd2: capacity<PHONE_NUMBER>6 features 0xbd
[426575.250860] EXT4-fs (rbd2): mounted filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c with ordered data mode. Quota mode: none.
[444697.494645] EXT4-fs (rbd2): unmounting filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c.
[444699.300479] rbd: rbd2: capacity<PHONE_NUMBER>6 features 0xbd
[444699.449938] EXT4-fs (rbd2): mounted filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c with ordered data mode. Quota mode: none.
[500055.629414] EXT4-fs (rbd2): unmounting filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c.
[500057.533537] rbd: rbd2: capacity<PHONE_NUMBER>6 features 0xbd
[500057.805703] EXT4-fs (rbd2): mounted filesystem 610e1ce6-6e05-42c9-9cd4-c3ce4ca83f2c with ordered data mode. Quota mode: none.
[500122.052016] rbd: rbd3: capacity<PHONE_NUMBER>8 features 0xbd
[500123.067279] EXT4-fs (rbd3): mounted filesystem 99be88a2-e56e-44fe-81da-0695d0584321 with ordered data mode. Quota mode: none.
[500293.953009] EXT4-fs (rbd3): unmounting filesystem 99be88a2-e56e-44fe-81da-0695d0584321.
[616946.733262] rbd: rbd3: capacity<PHONE_NUMBER> features 0x1
[617007.308989] rbd: rbd3: encountered watch error: -107
[617068.694499] rbd: rbd3: failed to unwatch: -110
[617943.228247] rbd: rbd4: capacity<PHONE_NUMBER> features 0x1
[618005.725459] rbd: rbd4: encountered watch error: -107
[618066.085881] rbd: rbd4: failed to unwatch: -110
[618066.085955] rbd: rbd3: encountered watch error: -107
[618127.526837] rbd: rbd3: failed to unwatch: -110
[619009.270989] rbd: rbd4: encountered watch error: -107
... (and it continues with similar messages)

On node 3 (artemis) there are very few messages, and most of them seem non-erroneous. So I think this node has no issues.
dmesg | grep libceph
[141824.294159] libceph: loaded (mon/osd proto 15/24)
[141824.304591] libceph: mon0 (1)<IP_ADDRESS>:6789 session established
[141824.306008] libceph: client27604114 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[145941.536564] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[145941.536836] libceph: client27659048 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[153461.104991] libceph: mon0 (1)<IP_ADDRESS>:6789 session established
[153461.105911] libceph: client27626258 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[416462.266424] libceph: mon3 (1)<IP_ADDRESS>:6789 session established
[416462.267227] libceph: client28219851 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[434606.539135] libceph: mon2 (1)<IP_ADDRESS>:6789 session established
[434606.539721] libceph: client28316624 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1
[490011.535455] libceph: mon0 (1)<IP_ADDRESS>:6789 session established
[490011.536463] libceph: client28262058 fsid fb30d64e-7a8c-46d3-bbd7-77a3b1f080d1

# dmesg | grep rbd
[141824.296591] rbd: loaded (major 252)
[141824.345735] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[141824.453374] EXT4-fs (rbd0): mounted filesystem d2d99127-8b00-4146-a012-44d7fcb96703 with ordered data mode. Quota mode: none.
[145940.449864] EXT4-fs (rbd0): unmounting filesystem d2d99127-8b00-4146-a012-44d7fcb96703.
[145941.596996] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[145941.862886] EXT4-fs (rbd0): mounted filesystem d2d99127-8b00-4146-a012-44d7fcb96703 with ordered data mode. Quota mode: none.
[153459.904719] EXT4-fs (rbd0): unmounting filesystem d2d99127-8b00-4146-a012-44d7fcb96703.
[153461.139604] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[153461.239047] EXT4-fs (rbd0): mounted filesystem d2d99127-8b00-4146-a012-44d7fcb96703 with ordered data mode. Quota mode: none.
[416461.011693] EXT4-fs (rbd0): unmounting filesystem d2d99127-8b00-4146-a012-44d7fcb96703.
[416462.314209] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[416462.453194] EXT4-fs (rbd0): mounted filesystem d2d99127-8b00-4146-a012-44d7fcb96703 with ordered data mode. Quota mode: none.
[434605.201861] EXT4-fs (rbd0): unmounting filesystem d2d99127-8b00-4146-a012-44d7fcb96703.
[434606.578311] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[434606.727272] EXT4-fs (rbd0): mounted filesystem d2d99127-8b00-4146-a012-44d7fcb96703 with ordered data mode. Quota mode: none.
[490010.298370] EXT4-fs (rbd0): unmounting filesystem d2d99127-8b00-4146-a012-44d7fcb96703.
[490011.565491] rbd: rbd0: capacity<PHONE_NUMBER>6 features 0xbd
[490011.691196] EXT4-fs (rbd0): mounted filesystem d2d99127-8b00-4146-a012-44d7fcb96703 with ordered data mode. Quota mode: none.
[614586.612084] rbd: rbd1: capacity<PHONE_NUMBER>8 features 0xbd
[614586.760168] EXT4-fs (rbd1): mounted filesystem f96806b1-ab34-4e34-8b9e-7d4994f82917 with ordered data mode. Quota mode: none.

Sorry for so much output and logs, but I hope this will help to figure out the issue. Thanks in advance!

It definitely looks like some networking difficulties to me. The reconnecting and such are quite strong indications for that.
From some of the logs:

[617007.308989] rbd: rbd3: encountered watch error: -107
[617068.694499] rbd: rbd3: failed to unwatch: -110

errno 107 ENOTCONN: Transport endpoint is not connected
errno 110 ETIMEDOUT: Connection timed out
Note that the provisioner is only used to create the volumes (rbd-images), and is not used while mounting. The logs of the csi-rbdplugin containers of the DaemonSet are most useful in combination with the kernel logs.
Because there are so many disconnects/reconnects, you may be able to see something in the Ceph logs of the MONs and/or OSDs.
You also mention this:

I can reach ceph over 3300, but not 6789. However, the instructions said that csi-rbd only supports v1 and therefore port 6789 must be used. Is this true? Should I change ports from 6789 to 3300 in my config map and recreate all the resources?

Ceph-CSI should be able to work with Ceph Msgr v2 as well. Using the msgr1 port may cause for some confusion, I guess, not sure what is auto-detected and what isn't.

@mike-pisman also i see you are using microk8s have you already made the changes required like https://github.com/ceph/ceph-csi/issues/1067#issuecomment-629228837?

@Madhu-1, yes I did made those changes already.
@nixpanic, thanks, I will try different configurations, as well as checking logs, and will update the post.

Microk8s 1.28 was released today with ceph-rook add-on. I have reinstall Kubernetes cluster, this time on the same vlan as Ceph monitors, to make sure different vlans do not affect the connection.
I have successfully connected the rook to external Ceph.
The PVC is created, but I still cannot attach it to the pod. At first the error was:
MountVolume.MountDevice failed for volume "pvc-b04a57cf-f75e-4f7c-a8b6-cb5d6440452e" : rpc error: code = Internal desc = rbd: map failed with error an error (exit status 22) occurred while running rbd args: [--id csi-rbd-node -m <IP_ADDRESS>:6789,<IP_ADDRESS>:6789,<IP_ADDRESS>:6789,<IP_ADDRESS>:6789 --keyfile=***stripped*** map kubernetes/csi-vol-22bfffcd-d84e-4679-aaf4-7a6298acf49a --device-type krbd --options noudev], rbd error output: rbd: mapping succeeded but /dev/rbd2 is not accessible, is host /dev mounted? rbd: map failed: (22) Invalid argument

Now it just says:
MountVolume.MountDevice failed for volume "pvc-b04a57cf-f75e-4f7c-a8b6-cb5d6440452e" : rpc error: code = Internal desc = exit status 1

The rook add-on uses the same csi-rbd-plugin, so I was hoping you can help. Next thing I am going to try is to use Ceph FS instead of RBD...
logs-from-csi-rbdplugin-in-csi-rbdplugin-provisioner-5885496bf5-kxzgh.log
logs-from-csi-provisioner-in-csi-rbdplugin-provisioner-5885496bf5-kxzgh.log

@mike-pisman we need csi-rbdplugin pod which is created by damonset and its the one responsible for mounting the rbd volumes to the node. The logs you provided above is provisioner pod which is responsible for creating the PVC

@Madhu-1 is that the one?
logs-from-csi-rbdplugin-in-csi-rbdplugin-jhstc.log

Little update: the issue is cause by running Kubernetes inside of a LXC. The error hints:
rbd error output: rbd: mapping succeeded but /dev/rbd1 is not accessible, is host /dev mounted?

As discussed in #1820, possible solution is to mount /dev directory inside of lxc, which is potentially dangerous, as container may start altering the host directory.
I have decided to not risk, and simply install Kubernetes on the host, and will probably move away from proxmox in the future to a simple Debian server


Separate Container Install: nginx.tmpl:52: function "trim" not defined

Just tried the cut-and-paste example for 'Separate Container Install', nginx comes up fine, but nginx-gen gives
2015/10/09 06:40:41 unable to parse template: template: nginx.tmpl:52: function "trim" not defined

There is a trim() in https://github.com/jwilder/docker-gen/blob/master/template.go#L332, how come it does not find it?
Perhaps the image on dockerhub is behind this repo (and its readme)?
So I cloned this repo and build the image locally, but the same result.
Suggestions?

The trim function is not in the 0.4.1 release of docker-gen that the image is using. The Dockerfile needs to be updated to pull in the latest 0.4.2 release that @jwilder pushed out this morning.

I updated Dockerfile and build locally and yes it built and runs fine.
Thanks.

@Boran If you want to make a PR, I'm sure @jwilder would appreciate it.

:+1:

Well there you go. Hopefully I got that complex patch right :-)


Fix button-filled disabled + loading colors

Task: task-564823
Link: preview-361
Currently, when a filled button is both disabled and loading, it becomes a transparent button.

This PR adds disabled styles so that the button is visible, which should resolve issue 2 in the related task above.
Testing

Visit the buttons page. Scroll to the bottom to the section with buttons in loading state.
Inspect one of the filled buttons and add disabled attribute. You should still be able to see the button, but with less opacity like a disabled button.

document.querySelectorAll('.button').forEach(b => b.disabled = true); looked good!


Add support for Restricted Mode

VS Code v1.57 introduced "Restricted Mode". https://code.visualstudio.com/docs/editor/workspace-trust#_restricted-mode
When activated, the extension gets disabled. To make the extension compatible with Trusted Mode check https://github.com/microsoft/vscode/issues/120251

Closed in 1.2.0


Merge UAT ke PRD 6 Feb 2018

Coverage increased (+0.1%) to 77.186% when pulling cfae73ee8c3af613f1722811a8a0f685d13b25f0 on uat into 0bf589eb53f512c6d7ff0727d3835959c17d62d8 on master.


UX: [ERROR i18n_embed::requester] Unable to parse your locale when $LANG is not set

What were you trying to do
I tried running rage in a minimalist Docker container on Linux. In particular, most "common" environment variables were not set, including $LANG.
What happened
Running rage to encrypt a file with an ed25519 SSH key caused an error message: "Unable to parse your locale". Surprisingly though, the encrypted file was actually created.
This error message disappears when setting $LANG to a "correct" value, for example LANG=en_US.UTF-8.
$ rage -r id_ed25519.pub -o hello.txt.age hello.txt
[ERROR i18n_embed::requester] Unable to parse your locale: ParserError(InvalidLanguage)

$ LANG=en_US.UTF-8 rage -r id_ed25519.pub -o hello.txt.age hello.txt
Error: File exists (os error 17)

[ Did rage not do what you expected? Could an error be more useful? ]
[ Tell us: https://str4d.xyz/rage/report

$ rm output/hello.txt.age

$ LANG=en_US.UTF-8 rage -r id_ed25519.pub -o hello.txt.age hello.txt

$

All in all, there are two surprising things in terms of UX.

I don't expect a simple encryption/decryption tool like rage to require a particular environment variable such as $LANG to work. It could use it but should fallback gracefully if the variable is not set.
I don't expect to see an error message while an encrypted file was actually successfully created.

Thanks for the report! Translation support is brand-new in this release, and most Unix-style CLI tools don't generally tend to support any localization, so I expected some teething issues 😄

I don't expect a simple encryption/decryption tool like rage to require a particular environment variable such as $LANG to work. It could use it but should fallback gracefully if the variable is not set.

As you experienced, an unset or invalid LANG is ignored, and is not a requirement for rage to operate.

I don't expect to see an error message while an encrypted file was actually successfully created.

This is an odd situation to handle: what you were seeing is a logged error message, not a real error. I'm using the i18n-embed crate to detect supported langauges, and it internally logs when it can't parse a LANG value. If you run with RUST_LOG=info, you'd probably see this:
[ERROR i18n_embed::requester] Unable to parse your locale: ParserError(InvalidLanguage)
[INFO  i18n_embed::requester] Current Locale: []

Given that rage is a Unix-style CLI tool, it doesn't have a log file to send this to, so the logs are printed to stderr. I configured env_logger so that users would see error logs by default, as I assumed that we wouldn't get error logs without corresponding errors. I'll see if I can turn off these errors specifically, but the other option is to disable all log levels by default, and leave it to the user to set RUST_LOG=level to enable them.

I decided to go with the simpler option of disabling all log output by default. Could you test #157 and check that it addresses your issue?

Thanks for the fast answer! This would indeed address this specific issue in the short-term - but may have the drawback of hiding other real errors (from other modules). IIRC with the environment variable one can set RUST_LOG=i18n_embed=off to disable logs from a specific crate, but is it possible to do such filtering directly in code?
Given that the issue comes from this code in the i18n-embed crate, I guess the best would be to report the issue there, and maybe ask whether the DesktopLanguageRequester could be extended to take a "fallback" parameter to explicitly choose what to do if no locale can be found/parsed. This would likely be a more scalable strategy for all dependents of i18n-embed to work in a "minimalist" environment like I was trying to do.
In any case, my use case seems quite niche at the moment, and now that it's clarified that the error is actually not blocking, up to you to merge #157 or not.


Rectangular selection not possible on Chrome OS due to alt+click being used by the OS

There was an attempt to change the behavior, but it got reverted: https://bugs.chromium.org/p/chromium/issues/detail?id=248762#c60
Any chance some other key combo could also be allocated for this? Either only on CrOS or in general?
What would be really great, of course, is a system of specifying mouse bindings similar to how we can specify keybindings/keymaps. We hack around this for a good amount of functionality right now, and it'd be great to use something internally-supported/consistent.

Any suggestions for an alternative set of modifiers to use for block selection on Chrome OS?
As for making these configurable, that's not a bad idea, but it's not something I'm going to be working on anytime soon.

I played with a chromebook, and it looks like meta+click does get propagated to the JS, but even after you meta+click and drag, on keyup the OS functionality of opening a big search popup gets fired, and preventDefault doesn't help.
But, meta+shift+click does the trick, and since those buttons are physically next to each other (meta is where capslock is on other OSes), I think that would be a reasonable alternative.

Sounds good. Does attached patch work for you? (I don't have a ChromeBook to test on)

Yep, that works great! Thanks :)


.is example with querySelector

To me it seems clearer that you're only inserting only one element in that function if you're using querySelector

@Haroenv Agreed, thanks!

With pleasure.


Add state to details component

This PR is to save in localstorage the state of a details component. This will mean that when a details component is open and the user navigates back to the page in the same session it will still be open.

 Remember accordion states when returning to a page


Clear S3.collection after a few seconds

How can I clear the S3.collection so that my progress bar disappear after a few seconds?
I tried this but then when trying to upload another file I had problems.
Meteor.setTimeout(function(){
    S3.collection = null;
}, 5000);

You better use the upload callback, something like:
S3.upload({
  files: files
}, (err, res) => {
  if(err) {
    ...
  } else {
    ...
  }
});

If you want to empty the collection, you should do it like this: S3.collection.remove({})

S3.upload(props, () => setTimeout(() => S3.collection.remove({}), 5000))

Something like that would make sense as @nicooprat has stated ^_^


StackOverFlow icon?

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

An icon for StackOverFlow would be nice

Thanks for your idea 😆
but I'm sorry 🙇
stackoverflow is not a social button, so I can not think of a purpose. 🤔
If you really need stackoverflow icon, you can create it with https://vue-pixel-art.now.sh/ 👍

The only thing I can think of is to use the icon to share your stackoverflow profile by clicking on it.
I've tried to create one once but it didn't look good :smile:, so I dropped it. And then again, I agree with @BcRikko, is not exactly a social icon so is less likely to be used.

to share your stackoverflow profile by clicking on it.

Oh, I see 👍
I didn't know stackoverflow in detail, because I'm lurker. I have not user on stackoverflow😅
@renantins If you need stackoverflow icon, you can create an icon with the following tool. 🛠
https://vue-pixel-art.now.sh/

@BcRikko For share StackOverFlow story https://stackoverflow.com/users/story/join


feat: add jq and pd-recover according to plan

Why:

according to the add component plan

How:

arm64 already has  pd-recover, no need to change
add jq to amd64 pd image, and for arm64 to base image  because yum is not reliable and slow, refer https://github.com/PingCAP-QE/ci-dockerfile/pull/67.
if apk add is not acceptable for amd64, we will add jq to base image. Because tidb alse use apk add, it seems to be acceptable

/lgtm


why "click_action" parameter is not getting sent in FCM extra parameters?

Did you find anything? 'click_action' field is lost when sending notification.

Did you find anything? 'click_action' field is lost when sending notification.

@FIRDOUS-BHAT is this still an issue?  I am able to properly set the click_action param for FCM

No, Resolved for me too 🙂


Twitter handle, project refactor to using a single include, formatting

Twitter handle, project refactor to using a single include, formatting

Going to go ahead and merge, but let's work on getting policy/pipeline scan hooked up in the future.


Adding an easy way to create an sbt project with Frameless

Using giter8

Strange error ... this edit only touches the readme file.

Current coverage is 89.80% (diff: 100%)

Merging #95 into master will not change coverage

@@             master        #95   diff @@
==========================================
  Files            25         25
  Lines           471        471
  Methods         464        464
  Messages          0          0
  Branches          7          7
==========================================
  Hits            423        423
  Misses           48         48
  Partials          0          0

Powered by Codecov. Last update ce710f2...5729948

LGTM


change: [M3-7546] - Revert FW table row changes

Description 📝
Originally only the first three (3) services were listed on the table and any X additional services were included in the string "plus X more."
The new mock ups asked to list as many services possible with three (3) lines of text and if there were any additional services, then they would be denoted with an ellipsis ....
This PR reverts the changes on the Firewalls table rows back to the original implementation and removes the clamp-js dependency.
Changes  🔄
List any change relevant to the reviewer.

Removal of the clamp-js package.

Preview 📷

Before
After

How to test 🧪

Run the unit tests
Visually inspect the UI for any defects

Prerequisites

Have a Firewall with more than 3 services (Linodes or NodeBalancers) assigned to it.

Verification steps

Verify that the table row displays the first 3 services and any additional services are denoted in the "plus X more." string.

As an Author I have considered 🤔

[ ] 👀 Doing a self review
[ ] ❔ Our contribution guidelines
[ ] 🤏 Splitting feature into small PRs
[ ] ➕ Adding a changeset
[ ] 🧪 Providing/Improving test coverage
[ ] 🔐 Removing all sensitive information from the code and PR description
[ ] 🚩 Using a feature flag to protect the release
[ ] 👣 Providing comprehensive reproduction steps
[ ] 📑 Providing or updating our documentation
[ ] 🕛 Scheduling a pair reviewing session
[ ] 📱 Providing mobile support
[ ] ♿  Providing accessibility support

LGTM 🚀

There's a handful of e2e failures, but they don't look relevant to this work. Should be good to go. (might be related to https://status.linode.com/incidents/bw8zm1r1v992)


Pluggable view discovery mechanism for RazorViewEngine

Similar mechanism to Spark, and Discovery Strategy in WebForms MVP. Where you can plug in code bases strategy to find a view rather than rely just on string replacement patterns like the existing {area}/{2}/{1}/{0}

Closing because we have no plans to support this.


Support custom labels for each replica

User can specify labels to each replica by set replicaSpec[i].tfExtraLabels.
Labels size must equal to replica size, or failed at validation.

This change is

Coverage decreased (-4.6%) to 27.257% when pulling 18a7ba1805bacfac77d86d67ad676a171503ea08 on sdf611097:extraLabels into 0094aaa7ef501c0bc8b332edbe4a13781fe65a88 on kubeflow:master.

/ok-to-test

If import "github.com/kubeflow/tf-operator/pkg/trainer, there is a import cycle, so I use []*map[string]string directly.
If there are any concern or problems, please let me know.
P.S. This PR is for #340


fix(rust): Add the --identity flag to the ockam space create command...

Fixes #6125
This keeps 'create' in line with the other subcommands ('delete', 'list', 'show'). The --identity flag is added via the CloudOpts struct. Also added the help text on the CloudOpts struct.

Current behavior
The --identity option is not available for the ockam space create sub-command.
$ockam space create -h
Create a new space

Usage: ockam space create [OPTIONS] [SPACE_NAME] [-- <ADMINS>...]

Arguments:
  [SPACE_NAME]  Name of the space - must be unique across all Ockam Orchestrator users
  [ADMINS]...   Administrators for this space

Global Options:
  -h, --help        Print help information (-h compact, --help extensive)
  -q, --quiet       Do not print any log messages
  -v, --verbose...  Increase verbosity of trace messages

Proposed changes

The --identity option is available on the space create sub-command.
The --identity option provide some help text (Run the command as the given identity name)
This identity  help text is now also visible when using the other space sub-commands (delete, list, show)
$ ockam space create -h
Create a new space

Usage: ockam space create [OPTIONS] [SPACE_NAME] [-- <ADMINS>...]

Arguments:
  [SPACE_NAME]  Name of the space - must be unique across all Ockam Orchestrator users
  [ADMINS]...   Administrators for this space

Options:
      --identity <IDENTITY_NAME>  Run the command as the given identity name

Global Options:
  -h, --help        Print help information (-h compact, --help extensive)
  -q, --quiet       Do not print any log messages
  -v, --verbose...  Increase verbosity of trace messages

Checks

[x ] All commits in this Pull Request are signed and Verified by Github.
[ x] All commits in this Pull Request follow the Ockam commit message convention.
[ x] There are no Merge commits in this Pull Request. Ockam repo maintains a linear commit history. We merge Pull Requests by rebasing them onto the develop branch. Rebasing to the latest develop branch and force pushing to your Pull Request branch is okay.
[ x] I have read and accept the Ockam Community Code of Conduct.
[ x] I have read and accepted the Ockam Contributor License Agreement by adding my Git/Github details in a row at the end of the CONTRIBUTORS.csv file in a separate pull request to the build-trust/ockam repository. The easiest way to do this is to edit the CONTRIBUTORS.csv file in the github web UI and create a separate Pull Request, this will mark the commit as verified.

My pleasure Adrian.
10 Oct 2023, 14:55 by @.***:

@adrianbenavides>  approved this pull request.
Awesome, thank you so much > @axd99 https://github.com/axd99>  for your contribution! 🚀
—
Reply to this email directly, > view it on GitHub https://github.com/build-trust/ockam/pull/6437#pullrequestreview-1667791622> , or > unsubscribe https://github.com/notifications/unsubscribe-auth/AHTJA7JHB4CAKNHWA7T7SNTX6VHWPAVCNFSM6AAAAAA52BTVWWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTMNRXG44TCNRSGI> .
You are receiving this because you were mentioned.> Message ID: > <build-trust/ockam/pull/6437/review/1667791622> @> github> .> com>


Request for example: generate client token

Would it be possible to have an example with Nodejs that covers token generation for the js browser client?
I want to use Nodejs for some quick frontend prototyping but I can not figure out how to generate the token from the backend. It must be because I don't know Nodejs out of the very basics: an example would definitely help.

@synw hello, will try to post it very soon! A bit busy at moment.

Thanks ! Take your time

@synw sorry for delay:
var Client = require('jscent');

var token = new Client.Token("secret")
token.clientToken("42", "1488055494", "")
// output: '24d0aa4d7c679e45e151d268044723d07211c6a9465d0e35ee35303d13c5eeff'

Thank you FZambia!


Flyer for Tonomy Supplychain

https://www.canva.com/design/DAFbNCc_hN4/AsyiY6LpaguaBe3GNQWjlw/edit?utm_content=DAFbNCc_hN4&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton


Required virtual property in create

Describe the bug
When create a virtual property with get it is required in em.create() with the TS type
To Reproduce
Steps to reproduce the behavior:

Create a virtual property with get

@Property({ persist: false })
get fullName2() {
  return `${this.name} ${this.id}`;
}

Try to create with em.create or repository.create method
Check the TS error

Expected behavior
Works like the getFullName property, I can't set a value for that virtual key
Additional context
Line 22
https://stackblitz.com/edit/mikro-orm-esm-repro-ta8zqp?file=basic.test.ts

Use OptionalProps symbol.
https://mikro-orm.io/docs/property-validation#properties-with-default-value


Admins can assign instructors to any course, regardless of org

Regardless of the organization of the instructor, an Admin user can assign them to any course. Even if the course is in a different organization.
This solution is two fold. It includes restricting the operation in the API, but also changing the UI to request only those instructors that are in the organization of the course.

@michaeledavis-credera I know this was a bug you observed. I think it involves more change than meets the eye. Courses are only indirectly related to organizations by what session and instructor they belong to. Should they be directly associated with an organization? Otherwise, if an Admin is creating a course, what sessions and instructors should be shown? Which organization reference acts as the "source" organization? The one through the session or the one through the instructor? Do you have any thoughts?


Support setting boot parameter via template settings

ISSUE TYPE

Enhancement Request

COMPONENT NAME

template, VM

CLOUDSTACK VERSION

ACS 4.15.2

CONFIGURATION

OS / ENVIRONMENT

SUMMARY

When a template is configured with UEFI setting - UEFI=secure and a VM is deployed with the template, the boot parameters passed via the template settings does not take effect on the first boot. However, powering off the VM and restarting it, will bring up the instance using UEFI i.e., the template settings take effect
STEPS TO REPRODUCE

1. Register a template as deploy-as-is and specify UEFI=SECURE in the template settings
2. Deploy a VM using the above registered template - VM doesn't boot using uefi
3. Stop & start the VM - the boot parameters are considered

EXPECTED RESULTS

Consider template settings on the initial boot, or if not possible, prompt the user (by means of logs) that the specific setting wasn't considered

ACTUAL RESULTS

@Pearl1594 this warrants a discussion on the functionality; if it is a deploy-as-is template, the contents of the template should be honoured. I.E. it should not be altered during initial instantiation. Altering it after that no longer has anything to do with the template and is ok, afaiac.
We should either forbid altering parameters on a deploy as is template or make very explicit what is going on (and maybe apply it immediately.
what you encountered is a strange situation but is as designed, i think.

I agree with @DaanHoogland, however I think it is a bug as per design boot parameters should not be considered on deploy-as-is VMs IMO. @borisstoyanov @rohityadavcloud @andrijapanicsb what's your input on this?

with deployasis, everything should be honoured from the template, NOT from the template settings

IMHO- template settings should be honored.
How I will explain to end users/customers that this template is for BIOS and this one is for UEFI and if you do not do correct selection, it will not boot.
I think it’s a bug that deployment wizard is not obeying settings from template.
If its not "Read VM settings from OVA" with this all settings should come from OVA.
Create #5932 same problem different description.

@andrijapanicsb @DaanHoogland @nvazquez
Compromise could be that if deployment wizards see that template settings contain UEFI/SECURE it changes them to UEFI/SECURE, and if users changes them to BIOS deployment wizard assumes that he knows what he is doing and obeys.

@kricud you are wrong/missing the point:
when "read VM settings from OVA" is ticked/selected - than all the template details come from the OVF (OVA) file - and nothing can be set as template details in ACS (i.e. you can't chose OS type, disk controllers, nic controller, etc, and also can't chose bios vs uefi)
when "read VM setting from OVA" is NOT ticked/selcted - then yes, whatever is configured in ACS as the template properties, should apply.
This is how it is supposed to work, by design (i.e. supply template details from ACS vs supplying those via OVF/OVA)

But yes, after stopping VM, editing the VM settings (not the template settings), then some/all of those should apply (I know some do not apply, such as disk controller change, etc)

Thanks @kricud @andrijapanicsb - so you are saying it is ok that CloudStack applies VM settings on stopped deploy-as-is VM? In this case, this is not a bug then?

If it would be only for admins not users/customers it would be ok to instruct every admin
and force him red manual from cover to cover and shame him if he hasn’t done that.
Not in case of users/customers.
For windows I need two templates one for BIOS and one for UEFI/SECURE.
As BIOS is legacy (this can be argued lets assume that it is) we are dropping support for it.
We have templates only with UEFI/SECURE and maybe after 10 years
all of ours VM will use UEFI/SECURE as no one will intentionally reinstall working BIOS VM to UEFI.
In its existing state it’s not possible to make seamless user-friendly experience
when template is prepared for UEFI/SECURE it is deployed with it by default from first start.
No users intervention is needed.
And I don’t have ticket, from every new customer who doesn’t know that he must set UEFI/SECURE
for this templet or it will not boot, in service desk system.

@andrijapanicsb @nvazquez
In case of deploy-as-is “Root disk controller” and “NIC adapter type” are set from template settings.
Same can be done for BIOS, UEFI/SECURE

It hasn’t been communicated clearly - reason for this need of setting boot type is that
Windows and also Linux for BIOS has one partitioning and for UEFI/SECURE another and they
are not compatible, you cant switch between them seamlessly.
For BIOS:
Linux: /boot, /
Win: System Reserved, OS partition
For EFI:
Linux: /boot , /boot/efi
Win: EFI system Partition, OS partition, Recovery Partition
(why recovery partition now is at end is another topic)

Sorry @kricud - when @andrijapanicsb and I mentioned 'deploy-as-is', we are meaning 'Read VM settings from OVA'. When you select this option, the CloudStack won't let you select any setting and will clone the OVA template without any modification to its controllers or boot type
In the image you shared the option is not selected, which allows to select controller as expected. Are you proposing to also allow to select the boot type in that UI wizard?

Thant you @nvazquez for explain I have understood it incorrectly and base on that answered wrong also to @andrijapanicsb and @DaanHoogland
In #5932 I’m showing that if you add UEFI/SECURE to template settings it’s not working.
Adding this selection to template upload menu would make it admin friendly.
Making it work from temple settings also would work and maybe with this it can be assigned to 4.16.1 - if its fast fix.
Now I also agree with you that ‘’deploy-as-is/Read VM settings from OVA’’ is working exactly as it should work
and all settings must be taken from OVA.
@Pearl1594 There are many vendor OVA with custom settings for example from Juniper/PaloAlto/Aruba/Cisco that contain specific settings to run appliance and without ‘’deploy-as-is/Read VM settings from OVA’’ it would be close to impossible run them on ACS.


Updated German Translation

Linked with: #324

Found two strings that were not translated yet, fixed that


fix: correct children rendering in TSX output

Description:
This PR addresses an issue where the renderFunction was incorrectly rendering the children prop as ${children} instead of {children} in the generated TSX.
Changes:

Updated renderFunction to correctly render the children prop as {children}.
Updated the snapshot tests to reflect the correct rendering.

Impact:
This change ensures that the children prop is correctly rendered, which fixes the display issue when using the generated TSX components.
Testing:

Updated snapshots to reflect the correct rendering.
Ensured that all tests, including updated snapshots, pass.

Thank you!


Adding provisioning of MySQL databases (In Progress)

Note: This is a placeholder PR. All the changes have not yet been implemented. Do not merge!
Adding the ability to provision MySQL databases using the operator.
Changes include:
Changed the payload to provision MySQL in generate provision request function in ndb_api_helper.
Changed the manifest for provisioning MySQL database.
Tested by applying manifest with MySQL database config which led to successfully provisioning of the MySQL database in NDB Test Drive.

Duplicate and outdated


Take Users into Account in Token Generation and Account Deletion on Front-End

Make sure token generation takes users into account and allow for account deletion on front-end

Done.


Deps bump

Codecov Report

Merging #92 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop      #92   +/-   ##
========================================
  Coverage    52.88%   52.88%
========================================
  Files           28       28
  Lines         2742     2742
  Branches       596      596
========================================
  Hits          1450     1450
  Misses        1288     1288
  Partials         4        4


Navcoin 5 wallet crashing on vote change

NavCoin Core version v<IP_ADDRESS>-99e27d6f (64-bit)
Click DAO in the wallet UI --> Payment Requests --> Change and BAM wallet instantly exits.
Windows 10.
Repeatable, happens every time I do it.

Scanned the debug log, nothing of note but happy to upload somewhere if you want it.

The payment request is already expired, and also the 8 cycle is over.
This Payment request should not be displayed in the wallet anymore:
https://www.navexplorer.com/community-fund/payment-request/a54ff8870cc42666da2bd7dd89d722583f6eecd587507072953a767e152630cf
But it's interesting that there are still blocks voting for it:
https://www.navexplorer.com/block/4228030

Thanks for reporting. @yraen69 I confirm that the same steps crashes my qt wallet on Windows 10 as well. Building a local build to debug it at the moment.

I tested on windows 10, I get the crash too, testing on Ubuntu no.

Crashes on linux as well (Lucky for me so I can get the backtrace)
Thread 1 "navcoin-qt" received signal SIGSEGV, Segmentation fault.
0x0000555556aecf00 in QAbstractButton::setText(QString const&) ()
(gdb) bt
#0  0x0000555556aecf00 in QAbstractButton::setText(QString const&) ()
#1  0x0000555555b4dc10 in CommunityFundDisplayPaymentRequestDetailed::CommunityFundDisplayPaymentRequestDetailed (this=0x7fffffffca60, parent=0x5555588ec9d0, prequest=...) at qt/communityfunddisplaypaymentrequestdetailed.cpp:76
#2  0x0000555555a8d7f5 in DaoPage::onVote (this=0x5555588ec9d0) at qt/daopage.cpp:1672
#3  0x0000555555ae6695 in DaoPage::qt_static_metacall (_o=0x5555588ec9d0, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0x7fffffffcf20) at qt/moc_daopage.cpp:245
#4  0x00005555568f5031 in QMetaObject::activate(QObject*, int, int, void**) ()
#5  0x0000555556aec8d1 in QAbstractButtonPrivate::emitClicked() ()
#6  0x0000555556aedd3a in QAbstractButtonPrivate::click() ()
#7  0x0000555556aedf2d in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
#8  0x0000555556a7cd38 in QWidget::event(QEvent*) ()
#9  0x0000555556a4645c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
#10 0x0000555556a4e017 in QApplication::notify(QObject*, QEvent*) ()
#11 0x00005555568c2a78 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
#12 0x0000555556a4cf32 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
#13 0x0000555556a95e6b in QWidgetWindow::handleMouseEvent(QMouseEvent*) ()
#14 0x0000555556a984da in QWidgetWindow::event(QEvent*) ()
#15 0x0000555556a4645c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
#16 0x0000555556a4da9f in QApplication::notify(QObject*, QEvent*) ()
#17 0x00005555568c2a78 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
#18 0x00005555563cd3cb in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
#19 0x00005555563cef25 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
#20 0x00005555563a21a4 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#21 0x0000555556392b76 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
#22 0x00005555568c085f in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
#23 0x00005555568ca488 in QCoreApplication::exec() ()
#24 0x0000555555750a49 in main (argc=1, argv=0x7fffffffde08) at qt/navcoin.cpp:764

Created a PR with the fix for this crash, should be able to test on windows as soon as the gitian build is done.

@yraen69 reporting this issue honours you a bounty of 1000NAV
https://www.reddit.com/r/NavCoin/comments/bd1mku/navcoincore_dev_bounty_fund/
you can leave a navcoin address here and i will send you the coins tomorrow ;)

@aguycalled thank you, that's unexpected... long time NAV user love the project. Much appreciated and here is an address as requested:
NZKc1qXxobo5dEguJiNaE6ooQeEGgpVvas

sent 292a6a78945b43c389a209928b8229be033ac0c4faca99db82b34792e854d479