3. September 2021

How to flash ESP32 from WSL

WSL (Windows Subsystems for Linux) is a great way how to build projects based on ESP-IDF. The problem is how to flash the image from WSL Linux to a real chip?

Right now only WSL1 supports mapping of Windows COM ports to Linux /dev/ttyS*.

First of all, make sure that your image is running WSL1 (which is slower than WSL2):

wsl -l -v

In the case of WSL2 image, you can convert it by the following command (let assume the image of Ubuntu):

wsl -t Ubuntu
wsl --set-version Ubuntu 1

Use Windows Device Manager to determine COM ports of your ESP chip. Similar could be achieved by command:

mode

The number of COM.. device will be mapped to the /dev/ttyS.. in Linux.

Start the Linux terminal (e.g. using Windows Terminal). Grant permission so that your user can read write /dev/ttyS* or add your user to dialout group if supported by distribution. Note: on Linux, the device is often mapped to /dev/ttyUSB*, notice the difference on Windows /dev/ttyS*.

chmod a+rw /dev/ttyS*

Build and flash the project. It’s necessary to specify the device name, because autodetection in idf.py is not able to find /dev/ttyS. The second important part is to set the communication speed by “-b” option.

idf.py flash --port /dev/ttyS11 -b 115200
idf.py monitor --port /dev/ttyS11

The last command should launch idf monitor, which you can terminate by CTRL+].

If you’re WSL2 user, you can try alternative approach using idfx tool.

Facebook Comments

25. June 2021

How to disable automatic screen dimming on Windows Lenovo T14 with Intel UHD Graphics

Windows 10 on Lenovo T14 with Intel UHD Graphics has one very annoying behavior. The system automatically dims dark screens like a terminal window which becomes barely readable and the system brightens white screens like a web browser.

Here’s how you can disable this automatic dimming.

Press Windows key and type: Intel Graphics Command Center

Click icon with 4 squares a.k.a. System. Select Power tab, scroll down to Power Settings, uncheck Display Power Savings.

One other option is to dial down Power Efficiency to value like 1.

Option Enhanced Power Saving – Dims bright images for power saving – does not have effect.

Facebook Comments

25. May 2021

Windows Terminal – How to add a custom shell to dropdown menu with JSON Fragment Extension

Windows Terminal allows you to use and manage shells for CMD, PowerShell or WSL2 in one window.

Windows Terminal also allows registering custom shells to the application. One option is to edit the profile manually via Settings.

It’s also possible to use the so-called JSON Fragment Extension which lets you drop a JSON file into a directory and Windows Terminal will load information from the file. The major advantage is that you can move the file between computers without worrying about damaging HJSON format of the original configuration file.

The instructions on the Microsoft site are not very clear on how to add the JSON and I had to use debugger to determine the proper location.

First of all create a directory for your application (e.g. IPython) with following PowerShell command:

mkdir "$env:LocalAppData\Microsoft\Windows Terminal\Fragments\IPython\"

Open a file with .json file extension and specify there following content (e.g. fragment.json with full path “$env:LocalAppData\Microsoft\Windows Terminal\Fragments\IPython\fragment.json”):

{"profiles":
  [
    {
      "name":"IPython",
      "startingDirectory":"C:/",
      "commandline":"ipython"
    }
   ]
}

Save the file, close Windows Terminal, open new Windows Terminal, and IPython will be visible in the list of available terminals.

Select the IPython and you’ll get a new tab with the interpreter.

Facebook Comments

20. May 2021

Xcode: How to quickly filter only errors from the build

The best software practice tells you that you should not have build warnings in the projects. It’s easier to spot a potential problem.

Sometimes it’s necessary to import larger portion of code which generates many warnings and it’s very hard to find the error which blocks compilation of iOS or macOS application in Xcode.

The quick way to filter out warnings and see only errors in Xcode is to click X icon at the bottom of Issue Navigator with the title “Show only errors”:

Facebook Comments

13. May 2021

Windows on Lenovo T14 is sluggish after resuming from sleep? Simple solution.

One thing that you might notice on Lenovo T14 with Windows is that sometimes the whole system is sluggish, UI is not responsive. One solution is to reboot the computer and then it works without problem.
The problem occurs more often when you turn on “Night light” feature which changes the color of the whole UI.
The issue seems to be caused by some power management. To workaround, the issue clicks the battery icon and dial-up Power mode to Best Performance.

The Best Performance setting does not apply just to situations when the computer is on battery, it also changes behavior when the computer is connected to a power supply. Best Performance will also enable fans to operate at a higher speed so the computer will be noisier, but it will give you an extra nuget of CPU power.

Facebook Comments