Class A Amplifiers, Virtually

If you didn’t know better, you might think the phrase “class A amplifier” was a marketing term to help sell amplifiers. But it is, of course, actually a technical description of an amplifier that doesn’t distort the input waveform because it doesn’t depend on multiple elements to handle different areas of the input waveform. Want to know more? [FesZ] has a new video covering the basics of class A amplifiers including some great simulations. You can see the video below.

A class A amplifier uses a transistor that is always biased on. It never saturates or switches off. This is good for linearity, but not always the best for efficiency so there are other classes of amplifiers, too. However, for many applications, class A is the most common configuration.

There are a number of trade-offs involved with each type of amplifier and [FesZ] covers them in detail. But the real interesting part is the simulations in Spice. Sure, you can build the circuits and look at everything with a meter or scope, but using Spice is much handier.

There is a second video upcoming. We hope he covers other amplifier types too, as you really do want to understand the differences when you need to design something. If you want more Spice stuff, check out some of our previous posts. If for some reason, you don’t like LTSpice, there’s always Micro-Cap 12.

Continue reading “Class A Amplifiers, Virtually”

Cranes made by Origami (Orizuru). The height is 35mm.

Bringing The Art Of Origami And Kirigami To Robotics And Medical Technology

Traditionally, when it comes to high-tech self-assembling microscopic structures for use in medicine delivery, and refined, delicate grippers for robotics, there’s been a dearth of effective, economical options. While some options exist, they are rarely as effective as desired, with microscopic medicine delivery mechanisms, for example, not having the optimal porosity. Similarly, in so-called soft robotics, many compromises had to be made.

A promising technology here involves the manipulation of flat structures in a way that enables them to either auto-assemble into 3D structures, or to non-destructively transform into 3D structures with specific features such as grippers that might be useful in both micro- and macroscopic applications, including robotics.

Perhaps the most interesting part is how much of these technologies borrow from the Japanese art of origami, and the related kirigami.

Continue reading “Bringing The Art Of Origami And Kirigami To Robotics And Medical Technology”

Upgraded 3D Printed Tank Gets Better Drivetrain And Controls

When it comes to 3D printed builds, they’re often limited in size due to the small build volume of most printers. However, [Ivan Miranda] has always gone big with his builds, and his latest tank design shows that off in spades.

Looks comfy!

[Ivan] has been working on printed human-sized tanks for years, and his latest revision aims to solve many of the problems that have hampered its performance in the past. A belt drive is the first major upgrade, aiming to improve the reliability of the drivetrain which has been a pain point in the past. The motor mounts also get built out of aluminium this time to help keep things cooler, as melting was a potential concern previously.

The tank’s controls are also upgraded, this time using a simple pedal system to control the brushless motors for easier driving. There’s even a printed seat for better ergonomics. The result is a giant tank big enough for an adult human, with the bonus that it’s now easy to steer and no longer requires [Ivan] to lie down inside to fit.

[Ivan’s] big printers are key to his success on big builds. One new part for the tank weighs a full 5.8 kg, printed in just 2.5 days! We can’t wait to see what giant thing he builds next. Word is the tank will be getting a turret, too. Video after the break.

Continue reading “Upgraded 3D Printed Tank Gets Better Drivetrain And Controls”

Raspberry Pi And The Story Of SD Card Corruption

Tales of Raspberry Pi SD card corruption are available online by the fistful, and are definitely a constant in Pi-adjacent communities. It’s apparent that some kind of problems tend to arise when a Raspberry Pi meets an SD card – which sounds quite ironic, since an SD card is the official and recommended way of booting a Pi. What is up with all of that?

I can start with a history lesson. Back when Raspberry Pi launched in 2012 – which is now 10 years ago – there were SD card controller driver problems, which makes sense given the wide variety of SD cards available out there. They were verifiably fixed one by one at some point in time, as debugging goes, their impact decreased and bugs with individual cards got smoothed over. This is how the “Pi SD card corruption” meme was originally born; however, if the problems were to end there, so would the meme. Yet, tales of broken SD cards plague us to this day – way less severe than they were in the beginning, but pronounced enough that you’ll see people encounter them every now and then.

Over the years, a devoted base of Pi SD card haters has grown. Their demand has been simple – Raspberry Pi has to get an ability to boot from something else, in large part because of corruption reasons, but also undeniably because of speed and capacity/cost limitations of SD cards. Thanks to their demands and work, we’ve seen a series of projects grow from unofficial efforts and hacks into officially supported Raspberry Pi abilities – USB boot being initially more of a workaround but now something you can enable out of the box, SSD-equipped Pi enclosures becoming more of a norm, and now, NVMe boot appearing on the horizon. Every few years, we get a new way to boot a Pi. Continue reading “Raspberry Pi And The Story Of SD Card Corruption”

Kia Recalls Cars Over Airbag Controller Assembly Issue

Last month Kia Motors announced a large recall due to possibly defective airbag controller units (ACU). The recall spans many models and model years — in the United States alone it covers over 400K cars, and over half a million cars worldwide. From the NHTSA report we learn that the problem happened at assembly when the cover of some ACUs interfered with the pins of an EEPROM chip. This can cause some of the pins to open-circuit. If your car had this problem, a warning light would come on, but more seriously, the airbags would not deploy in an accident. Kia estimates that less than 1% of the cars using this ACU have this issue. Cars which have this fault will get a new ACU, and other cars will get a firmware upgrade to keep this from happening should the EEPROM pins break loose in the future.

We think this EEPROM is used for logging errors and crash events, and is therefore not in the critical path for airbag deployment. The original firmware apparently prevented deployment if the EEPROM had a fault. Presumably, after this patch, if pins break in the future, the fault indicator still lights up but you’ll have functioning airbags.

It’s not clear if these broken EEPROM pin solder joints were present from the start and the factory test procedures didn’t catch the problem. Or did the pins left the factory intact and were subsequently broke due to bumps and vibrations. Hardware issues aside, having safety critical firmware perform its primary function even when faults exist in non-essential parts of the circuit seems like a requirement that should have been applied to the ACU from the beginning.

This is a reminder of the importance of enclosure design and making sure your PCB layouts take into account all clearances necessary for the entire assembly. How many times have you got your PCB back and realized you forgot to even put mounting holes?

We covered a similar issue a couple of years ago regarding the Takata airbag fiasco. If you have a Kia, this form on their website tells you whether your vehicle is subject to the recall or not.

Modern CPUs Are Smarter Than You Might Realize

When it comes to programming, most of us write code at a level of abstraction that could be for a computer from the 1960s. Input comes in, you process it, and you produce output. Sure, a call to strcpy might work better on a modern CPU than on an older one, but your basic algorithms are the same. But what if there were ways to define your programs that would work better on modern hardware? That’s what a pre-print book from [Sergey Slotin] answers.

As a simple example, consider the effects of branching on pipelining. Nearly all modern computers pipeline. That is, one instruction is fetching data while an older instruction is computing something, while an even older instruction is storing its results. The problem arises when you already have an instruction partially executed when you realize that an earlier instruction caused a branch to another part of your code. Now the pipeline has to be backed out and performance suffers while the pipeline refills. Anything that had an effect has to reverse and everything else needs to be discarded.

That’s bad for performance. Because of this, some CPUs try to predict if a branch is likely to occur or not and then speculatively fill the pipeline for the predicted case. However, you can structure your code, for example, so that it is more obvious how branching will occur or even, for some compilers, explicitly inform the compiler if the branch is likely or not.

As you might expect, techniques like this depend on your CPU and you’ll need to benchmark to show what’s really going on. The text is full of graphs of execution times and an analysis of the generated assembly code for x86 to explain the results. Even something you think is a pretty good algorithm — like binary search, for example, suffers on modern architectures and you can improve its performance with some tricks. Actually, it is interesting that the tricks work on GCC, but don’t make a difference on Clang. Again, you have to measure these things.

Probably 90% of us will never need to use any of the kind of optimization you’ll find in this book. But it is a marvelous book if you enjoy solving puzzles and analyzing complex details. Of course, if you need to squeeze those extra microseconds out of a loop or you are writing a library where performance is important, this might be just the book you are looking for. Although it doesn’t cover many different CPUs, the ideas and techniques will apply to many modern CPU architectures. You’ll just have to do the work to figure out how if you use a different CPU.

We’ve looked at pieces of this sort of thing before. Pipelining, for example. Sometimes, though, optimizing your algorithm isn’t as effective as just changing it for a better one.

There’s More In A Cardboard Box Than What Goes In The Cardboard Box

The cardboard box is ubiquitous in our society. We all know what makes up a cardboard box: corrugated paper products, glue, and some work. Of course cardboard boxes didn’t just show up one day, delivered out of nowhere by an overworked and underpaid driver. In the video below the break, [New Mind] does a deep dive into the history of the cardboard box and much more.

Starting back in the 19th century, advancements in the bulk processing of wood into pulp made paper inexpensive. From there, cardboard started to take its corrugated shape. Numerous advancements around Europe and the US happened somewhat independently of each other, and by 1906 a conglomerate was formed to get the railroads to approve cardboard for use on cargo trains.

By then though, cardboard was still in its infancy. Further advancements in design, manufacturing, and efficiency have turned the seemingly low tech cardboard box into a high tech industry that’s heavy on automation and quality control. It’ll certainly be difficult to think of cardboard boxes the same.

There also numerous ways for a hacker to re-use cardboard, be it in template making, prototyping, model making, and more. Of course, corrugation isn’t just for paper. If corrugated plastic floats your boat, you might be interested in this boat that floats due to corrugated plastic.

Continue reading “There’s More In A Cardboard Box Than What Goes In The Cardboard Box”