In May 2021 I worked through the Buildroot training by Bootlin on a Beaglebone black. This is not the wireless version the lab description expects, but it worked well nonetheless. I enjoyed this very much, the materials from Bootlin are excellent.
At the time they used the older
uEnv.txtmethod for booting. Since I'm also playing with an STM32MP157C-DK2, which uses distro boot, I wanted to switch the Beaglebone black over to also use it, to get a more uniform configuration across my devices.
Distro boot is becoming popular for booting embedded Linux systems, because it decouples the boot loader from the Linux system. It is no longer necessary to fiddle with U-Boot environment variables to tell U-Boot where the Linux kernel image, device tree and root file system are.
The starting point is a configuration file
extlinux.conf. More ...
I got model 20S0000HGE (Intel Core i5-10210U Comet Lake, Intel Graphics, WWAN card) with memory upgraded to 32GB, disk upgraded to 1TB and a US keyboard. I got it from lapstars.de and was quite satisfied with the service, quick delivery (UPS) and no issues.
I used Debian Buster (stable) from a netinst image on a USB stick. This time I wiped Microsoft Windows completely, no more dual boot (on my previous machine I never used it after initial installation, so good riddance).More ...
A recent PetitFoo talk at the Chaospott on how to debounce keys with a Schmitt trigger prompted me to play with a 74HC14 IC I had lying around.
A Schmitt-trigger converts an analog voltage to a digital logic level. It has two voltage thresholds, and the interesting thing happens between the two:
- Below the lower threshold the input is considered logically low, so the inverter outputs a logic high.
- Above the upper threshold the input is considered logically high, so the inverter outputs a logic low.
- Between the two thresholds the Schmitt-trigger keeps the input state, so the output doesn't change.
Here is an oscilloscope screenshot of the basic behavior of one inverter of the 74HC14, using a triangle wave from the function generator as the input: More ...
Proper Notation for Scalar Multiplication in Rust:2019-04-17
Dispatching on the Right-Hand Side of Operators and Rusts's Orphan Rule
The scalar multiplication in a vector space is written kv in math, where k is a scalar value (e.g. a number) and v is a vector. It would be nice to write
k * vin programming languages, to stay close to the familiar notation. Object-oriented languages typically only support calling methods on the first argument. But the scalar normally doesn't know about vectors, so it can't easily do that.
Python works around this with theMore ...
__rmul__special method for defining the
__rmul__is called on the right-hand side object with the left-hand side as the argument, the reverse of what
__mul__does. This works well, but feels a bit like a hack.
Disabling Secure Boot
To boot into Debian netinst on a USB stick I had to disable Secure Boot in the BIOS. More ...
The LPC804 is a new low-end microcontroller from NXP in the LPC8xx range. The LPC804 is interesting, because so far it is the only LPC microcontroller which contains a Programmable Logic Unit (PLU), a miniature FPGA with 26 5-input lookup tables and 4 bits of state. Unfortunately NXP doesn't publish the timing parameters of this circuitry. You are supposed to use NXPs proprietary PLU configuration tool, which is available only for Microsoft Windows.
Here is a quick measurement of the speed of the LUTs in the PLU: More ...
After too many years of only minor updates (mostly my CV and a small change in the address) I finally rebuilt the site using Jekyll, which is both easy to use and seems flexible enough to do whatever I want. After two days it is up and running, including tags, less time than what I spent on the unsuccessful attempt in the intervening years. More ...
In case you are curious, here is a picture of my Atmel SAM-ICE aka Segger J-Link board. More ...
Here are some pictures of the hardware of a production NXT.
This is a view of the top of the motherboard. According to the schematics released by LEGO the part missing in the upper right was a battery current sensor on AD5. The black smudge at the square speaker connector covered an additional part in the speaker cable, a 10 Ohm resistor which is not in the schematics. I unsoldered it together with the speaker cable to get the LCD daughter board out of the way for photographing the motherboard. More ...
subscribe via RSS