#StackBounty: #windows #display #multiple-monitors #remote-desktop #freeze The screen freezes while moving files/apps across screens wi…

Bounty: 100

I have a Laptop(i7 and 2GB NVIDIA graphic card) with an extended monitor(27 inches). When working remotely, whenever I’m dragging some apps like file explorer/chrome to another screen, the screen seems to freeze and respond after ~20-30 seconds, which is a huge lag. When working locally, everything is just smooth.

For the system setup, I have a good stable internet connection ~100Mbps, and all other aspects of resources are pretty good. Anything I’m missing here? Something doesn’t fit right for my case?

What can be the suspect here as I already eliminated the obvious ones? Any hint/idea in the right direction will do!

Laptop details:

processor
11th Generation Intel® Core™ i7-1165G7 Processor (12MB Cache, up to 4.7 GHz)

Windows 10 Home Single Language, English

videocard
NVIDIA® GeForce® MX350 with 2GB GDDR5 graphics memory

memory
8GB, 1x8GB, DDR4, 3200MHz

harddrive
512GB M.2 PCIe NVMe Solid State Drive

FURTHER UPDATES FROM ME:

The problem statement reduces to the point that all dragging/moving is working fine, just the laptop screen is not reflecting the change at that exact moment, pressing Alt+Tab at that moment is the hack I found, pressing it is refreshing the screen all of a sudden, but it is a temporary solution as well as it is not very convenient to press it whenever I move/drag files across the screens


Get this bounty!!!

#StackBounty: #display #display-resolution #xrandr #gnome-settings-daemon Gnome Settings not showing all available Display Resolutions

Bounty: 50

I added custom screen resolution modes with xrandr, and made them permanent via ~/.xprofile:

xrandr --newmode "1344x768_60.00"   84.00  1344 1416 1552 1760  768 771 781 798 -hsync +vsync
xrandr --newmode "1344x744_60.00"   80.75  1344 1408 1544 1744  744 747 757 773 -hsync +vsync
xrandr --addmode eDP-1-1 "1344x768_60.00"
xrandr --addmode eDP-1-1 "1344x744_60.00"

Now they show as available in xrandr -q (see below),
but they do not show in Settings -> Displays -> Resolution

enter image description here

Moreover, there are many other available modes, which were not added by me, which do not show in Settings either.
I could select my custom modes via command line with, e.g.,

$ xrandr --output eDP-1-1 --mode "1344x744_60.00"

but I want to have them available also via menu.

How can I have at least my custom modes shown in Settings?

What determines which modes are shown in Settings?


Output of xrandr -q

$ xrandr -q
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1920x1080     60.01 +  60.01    59.97    59.96    59.93* 
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     60.02  
   1440x900      59.89  
   1400x900      59.96    59.88  
   1280x960      60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1360x768      59.80    59.96  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      60.00  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   960x540       59.96    59.99    59.63    59.82  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   800x512       60.17  
   700x525       59.98  
   800x450       59.95    59.82  
   640x512       60.02  
   720x450       59.89  
   700x450       59.96    59.88  
   640x480       60.00    59.94  
   720x405       59.51    58.99  
   684x384       59.88    59.85  
   680x384       59.80    59.96  
   640x400       59.88    59.98  
   576x432       60.06  
   640x360       59.86    59.83    59.84    59.32  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.63    59.82  
   400x300       60.32    56.34  
   432x243       59.92    59.57  
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
   1344x768_60.00  59.81  
   1344x744_60.00  59.90  
  1344x768_60.00 (0x2ba) 84.000MHz -HSync +VSync
        h: width  1344 start 1416 end 1552 total 1760 skew    0 clock  47.73KHz
        v: height  768 start  771 end  781 total  798           clock  59.81Hz
  1344x744_60.00 (0x2bb) 80.750MHz -HSync +VSync
        h: width  1344 start 1408 end 1544 total 1744 skew    0 clock  46.30KHz
        v: height  744 start  747 end  757 total  773           clock  59.90Hz

Related

  1. How do I set a monitor resolution that is not available in the Display Settings dialog?
  2. List item


Get this bounty!!!

#StackBounty: #display #wireless #camera #oled Sending a JPEG from one Arduino to another

Bounty: 100

So I’ve got an Arducam OV2640 which takes a picture as a JPEG that I’d like to send to another Arduino using a pair of
nRF24L01 wireless transceivers
to eventually display it on an SSD1351 OLED. Unfortunately, because the JPEG data is so large, it’s being handled in a way I’m unfamiliar with, and I’ve also never really tried sending any data between Arduinos, let alone a JPEG, but I’m hoping that won’t stop me.

The code I’ve posted below for the camera seems to be reading from a FIFO buffer that I’m assuming is on the camera module itself. Based on how it’s saving it to the SD card, I know when I send it to the Arduino I have to send it in chunks and tell it how many chunks, when to start, and when to stop, but I’m having trouble finding good resources on how exactly to do that.

Currently, the code saves it to an SD card. My plan was to send the data to the second Arduino, have it save it to the SD card, and then display the JPEG from the SD card onto the OLED, but if I could skip the SD read/write that’d be preferable.

Camera code:

#include <ArduCAM.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include "memorysaver.h"

#define SD_CS 10
const int SPI_CS = 7;

ArduCAM myCAM( OV2640, SPI_CS );

void setup(){
  uint8_t vid, pid;
  uint8_t temp;
  
  Wire.begin();
  Serial.begin(9600);
  Serial.println(F("ArduCAM Start!"));
  
  //set the CS as an output:
  pinMode(SPI_CS,OUTPUT);
  digitalWrite(SPI_CS, HIGH);
  
  // initialize SPI:
  SPI.begin();
  
  //Reset the CPLD
  myCAM.write_reg(0x07, 0x80);
  delay(100);
  myCAM.write_reg(0x07, 0x00);
  delay(100);
  
  while(1){
    //Check if the ArduCAM SPI bus is OK
    myCAM.write_reg(ARDUCHIP_TEST1, 0x55);
    temp = myCAM.read_reg(ARDUCHIP_TEST1);
  
    if (temp != 0x55){
      Serial.println(F("SPI interface Error!"));
      delay(1000);
      continue;
    }else{
      Serial.println(F("SPI interface OK."));
      break;
    }
  }
  
  //Initialize SD Card
  while(!SD.begin(SD_CS)){
    Serial.println(F("SD Card Error!"));delay(1000);
  }
  Serial.println(F("SD Card detected."));

  while(1){
    //Check if the camera module type is OV2640
    myCAM.wrSensorReg8_8(0xff, 0x01);
    myCAM.rdSensorReg8_8(OV2640_CHIPID_HIGH, &vid);
    myCAM.rdSensorReg8_8(OV2640_CHIPID_LOW, &pid);
    if ((vid != 0x26 ) && (( pid != 0x41 ) || ( pid != 0x42 ))){
      Serial.println(F("Can't find OV2640 module!"));
      delay(1000);continue;
    }
    else{
      Serial.println(F("OV2640 detected."));break;
    } 
  }
  myCAM.set_format(JPEG);
  myCAM.InitCAM();
  myCAM.OV2640_set_JPEG_size(OV2640_320x240);
  delay(1000);
}

void loop(){
  myCAMSaveToSDFile();
  delay(5000);
}

void myCAMSaveToSDFile(){
  char str[8];
  byte buf[256];
  static int i = 0;
  static int k = 0;
  uint8_t temp = 0,temp_last=0;
  uint32_t length = 0;
  bool is_header = false;
  File outFile;
  
  //Flush the FIFO
  myCAM.flush_fifo();
  
  //Clear the capture done flag
  myCAM.clear_fifo_flag();
  
  //Start capture
  myCAM.start_capture();
  Serial.println(F("start Capture"));
  while(!myCAM.get_bit(ARDUCHIP_TRIG , CAP_DONE_MASK));
  Serial.println(F("Capture Done."));
    
  length = myCAM.read_fifo_length();
  Serial.print(F("The fifo length is :"));
  Serial.println(length, DEC);
  if (length >= MAX_FIFO_SIZE) //384K
  {
    Serial.println(F("Over size."));
    return ;
  }
  if (length == 0 ) //0 kb
  {
    Serial.println(F("Size is 0."));
    return ;
  }
  //Construct a file name
  k = k + 1;
  itoa(k, str, 10);
  strcat(str, ".jpg");
  //Open the new file
  outFile = SD.open(str, O_WRITE | O_CREAT | O_TRUNC);
  if(!outFile){
    Serial.println(F("File open faild"));
    return;
  }
  myCAM.CS_LOW();
  myCAM.set_fifo_burst();
  while ( length-- )
  {
    temp_last = temp;
    temp =  SPI.transfer(0x00);
    //Read JPEG data from FIFO
    if ( (temp == 0xD9) && (temp_last == 0xFF) ) //If find the end ,break while,
    {
      buf[i++] = temp;  //save the last  0XD9     
      //Write the remain bytes in the buffer
      myCAM.CS_HIGH();
      outFile.write(buf, i);    
      //Close the file
      outFile.close();
      Serial.println(F("Image save OK."));
      is_header = false;
      i = 0;
    }  
    if (is_header == true)
    { 
      //Write image data to buffer if not full
      if (i < 256)
      buf[i++] = temp;
      else
     {
        //Write 256 bytes image data to file
        myCAM.CS_HIGH();
        outFile.write(buf, 256);
        i = 0;
        buf[i++] = temp;
        myCAM.CS_LOW();
        myCAM.set_fifo_burst();
      }          
    }
    else if ((temp == 0xD8) & (temp_last == 0xFF))
    {
      is_header = true;
      buf[i++] = temp_last;
      buf[i++] = temp;   
    } 
  } 
}

Transmitter Code:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8); // CE, CSN

const byte address[6] = "00001";

void setup() {
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
}

void loop() {
  const char text[] = "Hello World";
  radio.write(&text, sizeof(text));
  delay(1000);
}

Receiver Code:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8); // CE, CSN

const byte address[6] = "00001";

void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
}

void loop() {
  if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
    Serial.println(text);
  }
}

So I know the JPEG is too big to be saved to a variable, so I can’t just Radio.write it out and I have to hijack the loop being done in the SD card saving code. I’m just so unfamiliar with this part of Arduino, I could really use some advice on how to make it work.


Get this bounty!!!

#StackBounty: #display #power-management #screensaver #xset xset: ignore mouse movement when display is blanked

Bounty: 100

I can blank/turn off display on my laptop with following command:

xset dpms force off

then, any mouse movement or keyboard press "wakes up" the display.

Is it possible to ignore mouse movements, and only unblank the screen on keyboard action?

If this is not possible in xset at the moment, I would welcome any suggestion how to patch the sourcecode.

I am using Debian 10.


Get this bounty!!!

#StackBounty: #drivers #usb #20.04 #display #hdmi HDMI from baseus usb-c pd hub wont work on 20.04

Bounty: 100

I’m using a Baseus usb-c hub with PD. I don’t know the model, but it’s this one:

enter image description here

I’m on Ubuntu 20.04 with kernel 5.10.0-051000rc6-lowlatency. Everything works except for HDMI. I plug the cable and nothing happens on the TV.

lz@xps13:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 031: ID 2109:8817 VIA Labs, Inc. 
Bus 003 Device 030: ID 1050:0407 Yubico.com Yubikey 4 OTP+U2F+CCID
Bus 003 Device 029: ID 045e:07fd Microsoft Corp. Nano Transceiver 1.1
Bus 003 Device 028: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 003 Device 027: ID 2109:2817 VIA Labs, Inc. USB2.0 Hub             
Bus 003 Device 004: ID 0c45:672a Microdia Integrated_Webcam_HD
Bus 003 Device 003: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Bus 003 Device 002: ID 27c6:533c Shenzhen Goodix Technology Co.,Ltd. FingerPrint
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I think the usb hub is this thing called VIA labs.

How can I debug this problem and make HDMI work?

It’s a Dell XPS 13 9310. I do not have an HDMI only usb adapter to test, and it does not have HDMI output.

UPDATE:

lz@xps13:~$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 3: Dev 2, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=mt7601u, 480M
    |__ Port 6: Dev 4, If 3, Class=Video, Driver=uvcvideo, 480M
    |__ Port 6: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 6: Dev 4, If 2, Class=Video, Driver=uvcvideo, 480M
    |__ Port 6: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 8: Dev 27, If 0, Class=Hub, Driver=hub/5p, 480M
        |__ Port 1: Dev 28, If 0, Class=Vendor Specific Class, Driver=r8152, 480M
        |__ Port 2: Dev 29, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 29, If 2, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 29, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 30, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 30, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 30, If 2, Class=Chip/SmartCard, Driver=, 12M
        |__ Port 4: Dev 36, If 0, Class=Vendor Specific Class, Driver=usbfs, 480M
        |__ Port 4: Dev 36, If 1, Class=Vendor Specific Class, Driver=usbfs, 480M
        |__ Port 5: Dev 31, If 0, Class=, Driver=, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M


Get this bounty!!!

#StackBounty: #nvidia #multiple-monitors #display #hdmi Secondary Dell Display with Ubuntu on Acer Predator Helios 300

Bounty: 50

I have never used a secondary display with Ubuntu before.

For the record, my hardware is Acer Predator Helios 300 laptop. Here is the About page in settings

enter image description here

I have a Dell 27" external monitor that I am connecting with a HDMI cable.

Here’s how my settings screen looks like

enter image description here

So, it seems that the system is detecting the monitor, but my monitor says it does not read any signal from HDMI and goes to sleep after a few minutes.

As I was not the first person to come across this problem, my search turned out several of the previous questions.

  • From this question , I figured out I needed to install nvidia drivers, and so I did following this guide . (Not sure how I lived without this before. My video resolution is much better now)
  • From this question and this question , I realized I could use xrandr to troubleshoot the display, so, I installed it.

Here’s some related outputs from this

xrandr | grep connected
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm
DP-1-0 disconnected
DP-1-1 disconnected
HDMI-1-0 connected 1920x1080+0+0 600mm x 340mm

and

xrandr | grep "*"
   1920x1080    144.03*+  60.02    60.01    59.97    59.96    59.93  
   1920x1080     60.00*   59.94    50.00  

I also have to say at the time of running the above commands, the Display Mode is set to Mirror instead of Join Displays. I am unable to Apply Join Display mode because the confirmation modal dialogue appears in the second screen which is not getting the signal.

From the outputs, it seems both displays have the same resolution of 1920x1080, but have a different frame rate. I am not sure if that is the problem and how to proceed from here. I appreciate any responses.

I tried running

xrandr --output HDMI-1-0 --mode 1920x1080 --rate 144.03

but it did not help. I don’t think it was supposed to, but I tried it anyway.


Get this bounty!!!

#StackBounty: #windows-10 #audio #display #speakers #switching Automatically switch between monitor speakers and headphones

Bounty: 100

My laptop:

  • runs Windows 10
  • has built-in speakers
  • has jack port for headphones
  • is usually connected to a monitor with speakers

I want the sound to come:

  • from headphones, if they are connected
  • from monitor, if it is connected and headphones are not
  • from built-in speakers, if nothing else is connected

Is there a way to have the playback device switch automatically according to this?


Get this bounty!!!

#StackBounty: #display Size (depth) of Pi 7" Display + driver?

Bounty: 50

I’d like to know the approximate depth (as in, z-axis) measurement from the very front of the Raspberry Pi 7" display (with display driver mounted) to the furthest back piece, excluding the Pi; I’ll mount the actual Pi (4B) separately, extending the power cables and FFC. I couldn’t find dimensions of this anywhere, only the screen itself.

PS – Or, if anyone has yet found a way to extend the (orange) ribbon cables and mount the driver board separately altogether, that’d be amazing. (said cables would have to be able to last being constantly flexed though, as it’s part of a laptop)

Thanks!


Get this bounty!!!