869 private links
In-depth and low-level knowledge about GPU.
A 4-part writeup on how GPS works and how to implement a GPS receiver: I/Q data, asynchronous CDMA, GPS C/A and P code, Heterodyne demodulation, etc.
They look really fun!
A nice explainer of the JTAG protocol. JTAG started as a protocol for testing connectivity between pins of ICs on a circuit board.
xDCI is a specification that includes features to allow programming a USB port to emulate a USB device. This article talks about kernel hardware support, BIOS flashing, PCH (Platform Controller Hub), PMC (Power Management Controller), NVRAM, efivars, and finally how to use the author's Raw Gadget tools to emulate USB devices.
A detailed description and comparison of various ESP32 models and different boards.
How to find UART on a PCB and tell the pin configuration?
5GHz band overlaps with some radar installation. Some channels are required to perform a mechanism called Dynamic Frequency Selection (DFS) to adjust the frequency to avoid colliding with radar signals. DFS can cause a slow down in the start up time and may disrupt normal usage intermittently.
To mitigate DFS events, you can pick channels that are not subjected to DFS scan. You can check out this page for information of DFS channels on different countries: https://en.wikipedia.org/wiki/List_of_WLAN_channels
IoT circuit drawing and simulation. Supports many real parts.
I learned a bit about how bluetooth low energy (BLE) works from this article.
I learned some USB HID debugging utilities from this article. Saving it for later reference.
Interesting article comparing x86 with other IA by Raymond C.
Also see: https://devblogs.microsoft.com/oldnewthing/20220418-00/?p=106489 (The x86 architecture is the weirdo, part 2)
Hacking with DDC, HDMI, i2c, SMBus, XRandR. It's such an interesting experiment and I learned a lot from the post!
Zero-dependency blink led as a demo on how to write embedded rust.
Common misconceptions about SSD and how they are different from traditional HDD.
A convenient calculator for total bytes written. In short, it is calculated by multiplying Total_LBAs_Written with the sector size (512B or 4KB). Both info can be retrieved using smartctl.
~# smartctl /dev/ada0 --all |grep "Sector Size"
Sector Size: 512 bytes logical/physical
~# smartctl /dev/ada0 --all | grep Total_LBAs_Written
241 Total_LBAs_Written 0x0032 099 099 000 Old_age Always - 25351376107
<blockquote>CPU Utilization is Wrong</blockquote>
<blockquote>An educational puzzle game. Solve a series of tasks where you build increasingly powerful components. Starts with the simplest logical components and ends up with a programmable computer.</blockquote>