The BIOS Woes of Two AMD Budget Processors

Image by AMD

AMD announced two weeks ago that their forthcoming B550 mainboards will work with the current Ryzen 3000 processors and the future Ryzen 4000 processors, and the Ryzen 4000 processors will work only on the 500-series mainboards.

For users of the Ryzen 3000 processor and/or the X570 mainboard, the future looks bright — if AMD continues the AM4 platform beyond 2020. The existing roadmap started in 2017 and ends this year. AMD haven’t revealed their roadmap for 2021 and beyond.

For users of the Ryzen 1000/2000 processor and/or the 300/400-series mainboard, the future looks dark. Older processor won’t run on the newer mainboards, newer processors won’t run on the older mainboards. Users are crying foul that their recent purchases are now semi-obsolete.

AMD stated that they were breaking platform compatibility because the ROM chip for the BIOS on older mainboards was too small to contain the microcode for multiple generations of processors. Without the microcode in the BIOS, the mainboard won’t recognize the processor to boot the system.

Enthusiasts — a small but very vocal user base — called BS on that specious rationalization. BIOS fragmentation began last year when the Ryzen 3000 BIOS update needed space on the now too small ROM chip. It didn’t help that AMD recommended the 400-series mainboard to users who couldn’t afford the more expensive X570 mainboard, and everyone expected to drop in a Ryzen 4000 processor when they become available later this year.

AMD backed off their initial statement and offered limited BIOS support for the Ryzen 4000 processors on the 400-series mainboard. A default BIOS that supports the existing Ryzen 1000/2000/3000 processors, and an optional “beta” BIOS that supports Ryzen 3000 and beyond (the catch being unable to downgrade the BIOS for an older processor). Not surprisingly, the 300-series mainboard won’t be getting the Ryzen 4000 BIOS update.

For those of us who went through the BIOS woes for the Athlon 200GE and 3000G last year, the Ryzen 4000 processors will probably offer the same pain to an entirely new audience that haven’t dealt with it before.

Read the rest of the essay on Medium.

Shaving My Head Bald During The Pandemic

Image by C.D. Reimer

I cut off my unmanageable naturally curly hair with the electric clippers two weeks ago. A failed attempt to grow out my hair. I haven’t had a haircut in the six months since I started working from home for my government I.T. job at a three-letter agency. My haircut—or lack thereof—didn’t matter much to my virtual coworkers. We all had black tape over the webcam of our work laptop to protect our privacy. If I were to give myself a bad haircut, there wasn’t a better time than the stay-at-home pandemic.

Since my haircut with the clippers turned out uneven and splotchy, I had to finish it off with shaving cream and razor blade. My newly shaven scalp felt raw like a rubber inner tube from a bicycle tire. I searched with my free hand for rough spots to shave with my razor hand. A smooth scalp all the way around made for a consistent haircut. That, and looking good as a man, made shaving my head bald worthwhile for me.

The only other hair that I had on my head besides my caterpillar eyebrows was my sideburns and no mustache beard, which started and ended at the indentations of my glasses at my ears. A pair of scissors kept my beard nicely trimmed to avoid interfering with wearing a medical mask in public.

Read the rest of the essay at Medium.

LM35: A Not So Simple Temperature Sensor for The Arduino

Image by C.D. Reimer

An Internet search for a temperature sensor to connect to the Arduino microcontroller board brings up the LM35DZ (or LM35 for short). An inexpensive one-wire temperature sensor from National Semiconductor. Every how-to article has a diagram or picture of three wires—power, out, and ground — connecting the sensor on the breadboard to the Arduino. A little bit of copy-and-paste code uploaded to the Arduino makes it possible to measure room temperature.

Except for one small problem — that simple circuit doesn’t work.

After I connected the three jumper wires from the LM35 on the breadboard to the 5V, A5 and GND pins on the Arduino, and uploaded the code to display a temperature every second to the serial console, the numbers alternated between zeroes and random numbers. The number I expected to see was 28°C degrees, the ambient temperature for my home office.

After reading numerous comments that the circuit doesn’t work and plenty of bad advice on how to fix it, I came across a comment that pinpointed the real problem: all those how-to articles were nothing more than copy-and-paste click bait for the websites.

The LM35 with only three wires probably worked on early Arduino boards years ago. (The LM35 came out in 1999, and the first Arduino came out in 2006.) No one tested the circuit against the newer Arduino boards to see if it still works. Updating the how-to articles would take away from the click-bait simplicity of measuring room temperature with a sensor and three wires.

After reading numerous comments that the circuit doesn’t work and plenty of bad advice on how to fix it, I came across a comment that pinpointed the real problem: all those how-to articles were nothing more than copy-and-paste click bait for the websites.

The LM35 with only three wires probably worked on early Arduino boards years ago. (The LM35 came out in 1999, and the first Arduino came out in 2006.) No one tested the circuit against the newer Arduino boards to see if it still works. Updating the how-to articles would take away from the click-bait simplicity of measuring room temperature with a sensor and three wires.

What does it take to make the LM35 work with the Arduino today?

Read the rest of the essay on Medium.