Test Equipment, Shim Washers, And A 30 Year Old Space Telescope

This year marks the 30th anniversary of the Hubble Space Telescope. When you see all the great pictures today, it is hard to remember that when it first launched, it was nearly a failure, taking fuzzy pictures. The story of how that problem was fixed while the telescope was whizzing through space is a good one. But there’s another story: how did a $1.5 billion satellite get launched with defective optics? After all, we know space hardware gets tested and retested and, typically, little expense is spared to make sure once a satellite is in orbit, it will work well for a long time.

The problem was with a mirror. You might think mirrors are pretty simple, but it turns out there’s a lot to know about mirrors. For astronomy, you need a first surface mirror which is different from your bathroom mirror which almost certainly reflects off the back of the glass. In addition, the mirrors need a very precise curve to focus light.

Continue reading “Test Equipment, Shim Washers, And A 30 Year Old Space Telescope”

The Nintendo Game Boy Color Is An Aircon Remote

Those of you who are familiar with 1990s handheld consoles may recall that Nintendo’s Game Boy Color had an infra-red receiver and transmitter. The thought of a handheld computer with infra-red capabilities interested [jg], who immediately set about converting it into a remote control for an air conditioner.

The Game Boy doesn’t have dedicated infra-red remote control hardware, instead the IR diodes appear to be connected to I/O lines. Thus the bitstream bas to be bit-banged, and takes the processor’s entire attention when transmitting. The software is neatly placed on a reprogrammed bootleg cartridge.

It’s an interesting read in terms of the approach to reverse engineering, for example finding the parameters of 37 kHz infra-red remote control by trial and error rather than by a quick read up on the subject, or searching for information on National air conditioners and finding nothing, but not searching the National brand itself to find that a search on Panasonic air conditioners would likely give all the information needed. But the end result operates the appliance, so it’s good to record a success.

This isn’t the first time we’ve seen a Game Boy control something, though we can’t recall seeing another using the IR. Need a brilliant overview of the Game Boy?  We’ve got you covered.

Thanks [Roel] for the tip.

Header image: Evan-Amos / Public domain.

Using Valgrind To Track Down Known And Unknown Bugs In Your Code

We all know what bugs in code are. We don’t like them when they are in programs we use, and they’re even worse when they are in code which we have written. Clearly, the best code is bug-free, but how do we get there?

This isn’t a new question, of course, just one that has become ever more important as the total number of lines of code (LoC) that run modern day society keeps increasing and which is affecting even hobbyists more and more often now that everything has a microcontroller inside.

Although many of us know the smug satisfaction of watching a full row of green result markers light up across the board after running the unit tests for a project, the painful reality is that you don’t know whether the code really is functionally correct until it runs in an environment that is akin to the production environment.  Yet how can one test an application in this situation?

This is where tools like those contained in the Valgrind suite come into play, allowing us to profile, analyze and otherwise nitpick every single opcode and memory read or write. Let’s take a look, shall we?

Continue reading “Using Valgrind To Track Down Known And Unknown Bugs In Your Code”

Raspberry Pi Waters Your Lawn, Serves HTML

It is easy to take a Raspberry Pi and treat it like a cheap Linux PC or server. Running an ad blocker or a VPN gateway is simple and doesn’t require any real interfacing. However, it is a big leap to actually use the Pi to control something and a good example can go a long way to helping you develop your own projects. [Joeseph Luccisano] posted a tutorial with just that aim. The goal: build a low-cost lawn watering system.

It is an interesting project since it has hardware and software components, of course. But it also has a hydraulic part, so you have to deal with all three domains coming together.

Continue reading “Raspberry Pi Waters Your Lawn, Serves HTML”

Cheap Alternative Solvents For PCB Cleaning

If you’re in the habit of using isopropyl alcohol to clean your PCBs after soldering, you probably have a nice big jug of the stuff stashed away. If you don’t, you’re probably out of luck, since the COVID-19 pandemic has pretty much cleared IPA out of the retail market. But don’t fret: depending on where you live, alternative PCB cleaning solutions may be as close as your nearest auto parts store.

[Steven]’s search for a cheaper and perhaps more readily available substitute for his usual dedicated flux cleaner lead him to try automotive brake cleaner on a few test boards. He suspected that they might contain acetone, which is prone to yield unfortunate results with solder resist and silkscreen on PCBs, so some tests were in order. The brand he tried was Normfest Bremsenreiniger MC-1, a German brand that according to its Safety Data Sheet contains only hydrocarbons like alkanes, butane, and propane. It did a fine job cleaning all but the crustiest rosin flux without collateral damage.

In the video below, [Steven] goes through a few more brands with similar results, and we were encouraged enough by his results to check brake cleaners made for the US market. Alas, almost all of the cheap and readily available aerosols have acetone as the principle ingredient, mixed in with methanol, ethanol, and assorted ingredients that together will probably make for a bad day. About the only US-sold brand without acetone that we could find was Keller-Heartt, which lists only naptha and ethanol on its SDS. There may be others, but make sure you test whatever you find.

Aerosol solvents aren’t the only way to clean a PCB, of course. Ultrasonic cleaners do a great job, and as [Steven] discovered, they’re generally safe for most components.

Continue reading “Cheap Alternative Solvents For PCB Cleaning”

Modular Mouse Packs Features

Not only do console gamers complain about the use of a mouse, but PC users themselves often don’t have kind words to say even about some of the higher-end options. Granted, their gripes aren’t about game experience or balance, they’re usually about comfort, features, or longevity of the mice themselves. So far we haven’t seen many people try to solve these problems, but [benw] recently stepped on the scene with a modular mouse that can fit virtually any need.

Called the RX-Modulus, this mouse has been designed from the ground up to be completely open source from hardware to software. Most of the components can be 3D printed to suit an individual’s particular grip style by making adjustments. The electronics can be custom fitted as well. Users can swap out mouse buttons and wheels in any number of positions, and replace them when they wear out. To that end, one of the goals of this project is also to avoid any planned obsolescence that typically goes along with any current consumer-level product.

While [benw] currently only has a few prototypes under his belt, he’s far enough along with the project that he’s willing to show it off to the community. His hopes are that there are others that see a need for this type of mouse and can contribute to the final design. After all, there are all kinds of other custom mice out there that would have been much easier builds with [benw]’s designs at hand.

Beam Your Program To Another Computer

If you’ve programmed much in Linux or Unix, you’ve probably run into the fork system call. A call to fork causes your existing process — everything about it — to suddenly split into two complete copies. But they run on the same CPU. [Tristan Hume] had an idea. He wanted to have a call, telefork, that would create the copy on a different machine in a Linux cluster. He couldn’t let the idea go, so he finally wrote the code to do it himself.

If you think about it, parts of the problem are easy while others are very difficult. For example, creating a copy of the process’s code and data isn’t that hard. Since the target is a cluster, the machines are mostly the same — it’s not as though you are trying to move a Linux process to a Windows machine.

Continue reading “Beam Your Program To Another Computer”