JWT online tools

https://jwt.io - Basic JWT decoder, helps you quickly inspect the JWT structure. https://www.scottbrady.io/tools/jwt - JWT generator, this tool helps you create test JWTs using asymmetric keys and also create the JWK asymmetric keys. https://jwkset.com/generate - JWK generator, it allows you to generate new JWK/PEM key sets for RSA, ECDSA, Ed25519, and X25519, and even create JWKs from existing PEM keys.

March 13, 2025

Install Arch Linux with Openbox + Luks Disk Encryption + UEFI

Disk cfdisk /dev/sda Create 3 disk partitions: EFI System - 100M boot - 512M root - rest of the disk space LUKS encryption modprobe dm-crypt modprobe dm-mod cryptsetup luksFormat -v -s 512 -h sha512 /dev/sda3 cryptsetup open /dev/sda3 sda3_crypt Disks formatting mkfs.vfat /dev/sda1 mkfs.ext4 /dev/sda2 mkfs.ext4 /dev/mapper/sda3_crypt Disks mounting mount /dev/mapper/sda3_crypt /mnt mkdir /mnt/boot mount /dev/sda2 /mnt/boot mkdir /mnt/boot/efi mount /dev/sda1 /mnt/boot/efi Install Arch pacstrap -K /mnt base linux linux-firmware genfstab -U /mnt >> /mnt/etc/fstab arch-chroot /mnt Timezone ln -sf /usr/share/zoneinfo/Region/City /etc/localtime Set locale pacman -S vim Uncomment en_US.UTF-8 UTF-8 in the file /etc/locale.gen ...

February 9, 2025

Web-based tools for embedded GUI development

https://javl.github.io/image2cpp - An online tool for converting images into byte arrays suitable for monochrome displays such as OLEDs. https://rop.nl/truetype2gfx - Online tool for TTF to Adafruit GFX font conversion. https://hexrx.github.io/mcufont-converter-web - Online font converter tool for mcufont rendering library. https://lopaka.app/sandbox - Drag and drop graphics creation for U8g2, Adafruit GFX, and Flipper Zero graphic libraries. https://wokwi.com - Simulate embedded systems online with support for microcontrollers like Arduino, ESP32, STM32, and Raspberry Pi Pico, and displays like SSD1306, SH1107, IL9341, and 2.9" e-ink. ...

January 23, 2025

SSC338Q + IMX415 IP camera, first launch

Introduction The camera is powered by dual-core ARM Cortex-A7 1.2Ghz CPU SigmaStar SSC338Q and is equipped with H.264 and H.265 hardware encoders. The main board has the label SSC338Q_38M_2.0 Pinout TODO: add screen with numbers UART access TODO ISP access by I2C The camera doesn’t require I2C pull-up resistors as it already has two 4.7K resistors. You can use CH341A programmer with a tool https://github.com/OpenIPC/snander-mstar to download and upload firmware. ...

December 10, 2024

ESP32 chips performance comparison table

CoreMark® score The table and chart presents the CoreMark® performance benchmark scores for various ESP32 models (such as general ESP32, S2, S3, C3, C4), providing insights into their one or two cores performance. The higher values are better. The data is based on the official datasheets of these chips. ESP32 ESP32-S2 ESP32-S3 ESP32-C3 ESP32-C6 One core (160 Mhz) 407.22 464.36 One core (240 Mhz) 504.85 472.73 613.86 Two cores (240 Mhz) 994.26 1181.60 ...

December 6, 2024

Get DMA, PLL with 48 MHz, 4 KB RAM, and 32 KB flash memory for PY32F002Ax5 chips

It seems that most Chinese chips PUYA PY32F002Ax5 have the core from PY32F030x6 chips inside, which gives undocumented features like DMA support, PLL with the ability to run chip on 48 MHz, additional timers like TIM3, and 4 KB RAM with 32 KB flash. How to check if you PY32F002Ax5 has more memory There you have several options: Build and flash this code to test RAM and flash https://github.com/IOsetting/py32f0-template/tree/main/Examples/PY32F0xx/HAL/Test/PY32F002A_32KF_4KR Create an empty 32kb binary file in your preferred hex editor (or use the online hex editor https://hexed.it), put some bytes to the end of the file, flash the file to the chip, then verify those bytes by reading the firmware back. How to unlock hidden features of PY32F002Ax5 If you’re using the HAL and LL libraries from the repository https://github.com/IOsetting/py32f0-template, you just need to modify Makefile, change: MCU_TYPE = PY32F002Ax5 to MCU_TYPE = PY32F003x6 and recompile the entire project. ...

October 18, 2024

Ubuntu laptop + Intel Wireless AC8262 wake up from suspend with bluetooth disabled

Sometimes after waking up form suspend mode, on a laptop with Ubuntu 22.04 (I don’t think that Ubuntu version matters) and adapter Intel Dual Band Wireless-AC 8265, bluetooth is disabled in the system and you can’t get it work back without restart your laptop. The same problem was discussed here https://askubuntu.com/questions/1036195/bluetooth-doesnt-work-after-resuming-from-sleep-ubuntu-18-04-lts The solution is to reload bluetooth module in the system by command sudo modprobe -r btusb && sleep 5 && sudo modprobe btusb ...

October 10, 2024

PY32F002 pyOCD STLink error (22): DP error

After run the command to upload firmware to chip PY32F002AA15M6TU pyocd load app.hex -t PY32F002Ax5 I got the error 0004908 C STLink error (22): DP error [__main__] But if you try to read firmware, it works fine pyocd> savemem 0x08000000 20480 py32f002.bin BTW pyOCD and ST-Link V2 work well with the PY32F003xx series. The solution is to use CMSIS-DAP based programmer instead of ST-Link V2, but instead of buying a new one you can use STM32 Blue Pill board without adding any extra components, just upload the firmware https://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO/blob/master/build/F103-DAP-SWO-CDC-BLUEPILL-SWD_PB8PB9.hex from the repository https://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO and connect 2 wires. ...

September 23, 2024

Convert multiple images to WebP

Download and unpack WebP tools (it includes the cwebp cli utility that requires to converting images to WebP) https://developers.google.com/speed/webp/docs/precompiled Set PATH to bin folder where the archive was unpacked export PATH=$PATH:~/libwebp-1.4.0-linux-x86-64/bin Execute in a folder with JPEG images for x in ./*.jpg; do cwebp ${x} -o ${x/jpg/webp}; done

August 20, 2024

Embedded font libraries font code size comparison

Only ASCII characters 0x20-0x7e The below table shows sizes in bytes Font Roboto 12 px Roboto 24 px Roboto 48 px Roboto 72 px Adafruit_GFX/TFT_eSPI (1 bpp) 3832 14589 56677 129389 u8g2 (1 bpp) 1508 3039 6632 N/A mcu-renderer 1 bpp 1473 2891 5902 9511 mcu-renderer 2 bpp 2052 4162 8743 13969 mcu-renderer 3 bpp 2695 5677 12128 18701 mcu-renderer 4 bpp 3328 7329 15533 23676 MCUFont (4 bpp) 3125 6296 12969 20045 TFT_eSPI (vlw) 7642 19387 65833 143333 Source: https://github.com/Gissio/mcu-renderer/tree/main?tab=readme-ov-file#font-compression-ratio-comparison ...

August 13, 2024