Linux Fu: Tracing System Calls

One of the nice things about Linux and similar operating systems is that you can investigate something to any level you wish. If a program has a problem you can decompile it, debug it, trace it, and — if necessary — even dig into the source code for the kernel and most of the libraries the program is probably using. However, the tools to do this aren’t ones you use every day. One very interesting tool is strace. Using it you can see what system calls any program makes and that can sometimes give you important clues about how the program works or, probably more often, why it doesn’t work.

Let’s consider the least complex use of the command. Suppose you want to make symlink from testxmit.grc to the /tmp directory. That command is simple:

ln -sf testxmit.grc /tmp

But if you tell strace to run it, the command becomes:

strace ln -sf testxmit.grc /tmp

You might want to redirect the output to a file using the shell or the -o option, though. Some commands generate a lot and often the first page or two of output isn’t really what you care about anyway. Continue reading “Linux Fu: Tracing System Calls”

Real Engineering Behind Ventilators

Experts on cognition tell us that most people think they know more than they really do. One particular indicator for that is if someone is an expert in one field and they feel like all other fields relate to theirs (everything boils down to math or chemistry or physics, for example). This causes them to be overconfident on things they don’t actually know about. When it became clear that the current virus crisis might lead to a shortage of ventilators, many electronic experts set about to design low-cost easy to replicate ventilators. How hard is it, after all, to squeeze a bag once every few seconds? But it turns out, there are a lot of details you need to know to do it right. [Real Engineering] and [Real Science] joined to create an excellent video that covers a lot of what you need to know. You can see the video below. The video shows a few designs that — while motivated by altruism — would probably do more harm than good if used on real patients.

The video’s creator is a biomedical engineer who worked in the past for Medtronic — a maker of ventilators who, by the way, recently open-sourced one of their designs. They also had [Dr. Rohin Francis], who has a medical YouTube channel, fact check the video. and provide some on-screen background We learned a few new medical terms and found that a high-end ventilator made in one factory gets built at about 225 per week. They think they can increase to 500.

Continue reading “Real Engineering Behind Ventilators”

Compiling C To PowerPoint

If you have worked for a large company — or even a small one — it might seem that you spend more time writing PowerPoint charts than programming. [Tom Widenhain’s] video asks the question: Can we compile C into PowerPoint? Watch the video below to find out the answer. Would it surprise you to know that [Tom] wanted to simulate the x86? It surprised us, too, and we had to note the video appeared on April 1. It does look workable, though, other than it is a bit unwieldy.

Instead of a Turing machine, this builds a set of clever logic gates. Unsurprisingly, [Tom] is the guy who put together a Turing machine in Excel. Surprisingly, he isn’t the first one to attempt a C to PPT compiler. The University of Chicago had a similar idea over a year ago, based on [Tom’s] earlier work and executed program using inefficient Turing machines.

Continue reading “Compiling C To PowerPoint”

Making An Arduino Ventilator? Read This First

Thanks to the virus crisis, lots of people are designing makeshift ventilator designs in the hopes of saving people’s lives. Many of these are based around some sort of Arduino-powered CPU. [Armstrong Subero] things that’s a great idea, but cautions that making an electronic pair of dice is a different proposition than creating a machine to breathe for someone. But he isn’t just complaining. He talks about considerations when building a real-time and safety-critical system.

[Armstrong] has a lot of good points, although we aren’t sure you need the complexity of a real-time operating system just to squeeze a bag. If anything, that seems like it might make it more susceptible to unexpected operation. However, we agree with his comments that you should have closed-loop control to make sure the device is working, alarming when the device isn’t working, and watchdog timers to guard against lockup.

Continue reading “Making An Arduino Ventilator? Read This First”

NeoPixel Matrix Simulation Lets You Virtually Groove To The Lights

You are stuck at home quarantined and you want to do some Arduino projects. The problem is you don’t have all the cool devices you want to use. Sure, you can order them, but the stores are slow shipping things that aren’t essential these days. If you want to get a headstart while you are waiting for the postman, check out Wokwi’s Playground. For example, you can write code to drive a virtual NeoPixel 16×16 matrix. There’s even example code to get you started.

There are quite a few other choices in the playground including Charlieplexed LEDs, a keypad, and an LCD. There are also challenges. For example, in the traffic light challenge, you are given code that uses a task scheduler library to implement a traffic light. You have to add a turn signal to the code.

In addition to LEDs in various configurations, the site has some serial bus components, an LCD, a keypad, and a NeoPixel strip. There are also a few tools including an EasyEDA to KiCad converter and a way to share sourcecode similar to Pastebin.

Of course, simulations only get you so far, but the site is a fun way to play with some different I/O devices. It would be very nice if you could compose for the different components together, but you could work your code in sections, if necessary. You can do similar things with TinkerCad circuits. If you want to install software, there’s a simulator for you, too.

Making Aerogel, It’s Not For The Faint-Hearted

Aerogel — that mixture of air and silica — is one of those materials that seems like a miracle. It is almost not there since the material is 99% air. [NileRed] wanted to make his own and he documented his work in a recent video you can see below.

If you decide to replicate his result, be careful with the tetramethyl orthosilicate. Here’s what he says about it:

And the best part is, that when it’s in your eyes, it gets under the surface, and the particles are way too small to remove. For this reason, you could go permanently blind.

It can also mess up your lungs, so you probably need a vent hood to really work with this. It isn’t cheap, either. The other things you need are easier to handle: methanol, distilled water, and ammonia.

Continue reading “Making Aerogel, It’s Not For The Faint-Hearted”

A Really Garbage Project

No matter who you are,  you produce garbage of some kind or another. Two students decided they wanted to create a smart garbage can that could alert them when the can is full or even when it is stinky.

We will go on on the record: we didn’t know that an alcohol sensor could tell if your garbage is stinky, so if that works, that’s a new one on us. However, it makes a certain kind of sense because garbage ferments. We thought garbage smelled because of hydrogen sulfide and methane.

Trash cans have a tough life, so if you really want to duplicate this, you’ll probably want to mount things a bit more securely. The software, however, runs everything through a cloud service and from there can use Blynk for a phone app and IFTTT to ship things to a spreadsheet, should you care to track your garbage history statistics.

Continue reading “A Really Garbage Project”