Proprietary Fan Blows, Gets PWM Upgrade

Proprietary components are the bane of anyone who dares to try and repair their own hardware. Nonstandard sizes, lack of labeling or documentation, and unavailable spare parts are all par for the course. [Jason] was unlucky enough to have an older Dell computer with a broken, and proprietary, cooling fan on it and had to make some interesting modifications to replace it.

The original fan had three wires and was controlled thermostatically, meaning that a small thermistor would speed up the the fan as the temperature increased. Of course, the standard way of controlling CPU fans these days is with PWM, so he built a circuit which essentially converts the PWM signal from the motherboard into a phantom thermistor. It’s even more impressive that it was able to be done with little more than a MOSFET and a Zener diode.

Unfortunately, there was a catch. The circuit only works one way, meaning the fan speed doesn’t get reported to the motherboard and the operating system thinks the fan has failed. But [Jason] simply disabled the warning and washed his hands of that problem. If you don’t want to use a CPU fan at all, you can always just dunk your entire computer in mineral oil.

Apollo Guidance Computer Saved From The Scrap Yard

NASA needed a small and lightweight computer to send humans on their journey to the Moon and back, but computers of the day were made out of discrete components that were heavy, large, complicated, and unreliable. None of which are good qualities for spaceflight. The agency’s decision to ultimately trust the success of the Apollo program on the newly developed integrated circuit was an important milestone in computer history.

Given the enormity of the task at hand and the monumental effort it took, it’s surprising to learn that there aren’t very many left in existence. But perhaps not as surprising as the fact that somebody apparently threw one of them in the trash. A former NASA contractor happened to notice one of these historic Apollo Guidance Computers (AGC) at an electronics recycling facility, and thankfully was able to save it from getting scrapped.

The AGC was actually discovered in 1976, but it was decided to get the computer working again in time for the recent 50th anniversary of the Moon landing. A group of computer scientists in California were able to not only get the computer up and running, but integrate it into a realistic simulator that gives players an authentic look at what it took to land on the Moon in 1969.

Restoring a computer of this age and rarity is no easy feat. There aren’t exactly spare parts floating around for it, and the team had to go to great effort to repair some faults on the device. Since we covered the beginning stages of the restoration last year, the entire process has been extensively documented in a series of videos on YouTube. So while it’s unlikely you’ll find an AGC in your local recycling center, at least you’ll know what to do with it if you do.

Continue reading “Apollo Guidance Computer Saved From The Scrap Yard”

Where The Work Is Really Done – Casual Profiling

Once a program has been debugged and works properly, it might be time to start optimizing it. A common way of doing this is a method called profiling – watching a program execute and counting the amount of computing time each step in the program takes. This is all well and good for most programs, but gets complicated when processes execute on more than one core. A profiler may count time spent waiting in a program for a process in another core to finish, giving meaningless results. To solve this problem, a method called casual profiling was developed.

In casual profiling, markers are placed in the code and the profiler can measure how fast the program gets to these markers. Since multiple cores are involved, and the profiler can’t speed up the rest of the program, it actually slows everything else down and measures the markers in order to simulate an increase in speed. [Daniel Morsig] took this idea and implemented it in Go, with an example used to demonstrate its effectiveness speeding up a single process by 95%, resulting in a 22% increase in the entire program. Using a regular profiler only counted a 3% increase, which was not as informative as the casual profiler’s 22% measurement.

We got this tip from [Greg Kennedy] who notes that he hasn’t seen much use of casual profiling outside of the academic world, but we agree that there is likely some usefulness to this method of keeping track of a multi-threaded program’s efficiency. If you know of any other ways of solving this problem, or have seen causal profiling in use in the wild, let us know in the comments below.

Header image: Alan Lorenzo [CC BY-SA 3.0].

Here’s The First Person To Put A Pi In The Raspberry Pi Keyboard

Last week, the Raspberry Pi foundation released the first official Raspberry Pi-branded keyboard and mouse. As a keyboard, it’s probably pretty great; it’s clad in a raspberry and white color scheme, the meta key is the Pi logo, there are function keys. Sure, the Ctrl and Caps Lock keys are in their usual, modern, incorrect positions (each day we stray further from God’s light) but there’s also a built-in USB hub. Everything balances out, I guess.

The Pi keyboard started shipping this week, and it took two days for someone to put a Pi zero inside. Here’s how you do it, and here’s how you turn a Pi keyboard into a home computer, like a speccy or C64.

The parts required for this build include the official Pi keyboard, a Pi Zero W, an Adafruit Powerboost, which is basically the circuitry inside a USB power bank, and a LiPo battery. The project starts by disassembling the keyboard with a spudger, screwdriver, or other small wedge-type tool, disconnecting the keyboard’s ribbon cables, and carefully shaving down the injection molded webbing that adds strength to the keyboard’s enclosure. The project is wrapped up by drilling holes for a power LED, a button to turn the Pi on and off, and the holes for the USB and HDMI ports.

One shortcoming of this build is the use of a male-to-male USB cable to connect the keyboard half of the circuitry to the Pi. This can be worked around by simply soldering a few pieces of magnet wire from the USB port on the Pi to the USB input on the USB hub. But hey, doing it this way gives the Official Pi keyboard a convenient carrying handle, and when one of the ports breaks you’ll be able to do it the right way the second time. Great work.

A Nurse Call System Becomes Turing Complete

George Mallory, a famous English mountaineer, once suggested that it was of no use to climb mountains. Instead, he posited, the only reason to climb a mountain is because it is there. Likewise, when you become an expert in nurse call systems like those found in hospitals, you may find that you do things with them that are of similar use. Making a Turing-complete nurse call system is something you do because you can.

[Erik] has been working on this particular call system, known as Netrix, and used Wireshark to sniff out all of its protocols. With this information he realized that it would be possible to use the system’s routing features to perform all of the tasks that any Turing complete system can do: conditional branching and memory access. He set up a virtual machine and set about implementing all of these tasks using the nurse call system’s features.

The setup for this project is impressive, and belies an extensive knowledge of this one proprietary system but also of computer science in general. It’s interesting to see how something can be formed into a working computer system from parts that otherwise might not be used that way. Even things that aren’t electronic can be used as Turing-complete computers.

Photo via Wikimedia Commons

A Compiler In Plain Text Also Plays Music

As a layperson reading about some branches of mathematics, it often seems like mathematicians are just people who really like to create and solve puzzles. And, knowing that computer science shares a lot of its fundamentals with mathematics, we can assume that most computer scientists are also puzzle-solvers as well. This latest project from [tom7] shows off his puzzle creating and solving skills with a readable file which is also a paper, which is also a compiler for C programs, which can also play music.

[tom7] started off with the instruction set for the Intel 8086 processor. Of the instructions available, he wanted to use only instructions which are also readable in a text file. This limits him dramatically in what this file will be able to execute, but also sets up the puzzle. He walks through each of the hurdles he found by only using instructions that also code to text, including limited memory space, no obvious way of exiting the program once it was complete, not being able to jump backward in the program (i.e. looping), and a flurry of other issues that come up once the instruction set is limited in this way.

The result is a sort of C compiler which might not be the most efficient way of executing programs, but it sure is the most effective way of showing off [tom7]’s PhD in computer science. As a bonus, the file can also play an antiquated type of sound file due to one of the available instructions being a call for the processor to interact with I/O. If you want to learn a little bit more about compilers, you can check out a primer we have for investigating some of their features.

Thanks to [Greg] for the tip!

Continue reading “A Compiler In Plain Text Also Plays Music”

The Embroidered Computer

By now we’ve all seen ways to manufacture your own PCBs. There are board shops who will do small orders for one-off projects, or you can try something like the toner transfer method if you want to get really adventurous. One thing we haven’t seen is a circuit board that’s stitched together, but that’s exactly what a group of people at a Vienna arts exhibition have done.

The circuit is stitched together on a sheet of fabric using traditional gold embroidery methods for the threads, which function as the circuit’s wires. The relays are made out of magnetic beads, and the entire circuit functions as a fully programmable, although relatively rudimentary, computer. Logic operations are possible, and a functional schematic of the circuit is also provided. Visitors to the expo can program the circuit and see it in operation in real-time.

While this circuit gives new meaning to the term “wearables”, it wasn’t intended to be worn although we can’t see why something like this couldn’t be made into a functional piece of clothing. The main goal was to explore some historic techniques of this type of embroidery, and explore the relationship we have with the technology that’s all around us. To that end, there have been plenty of other pieces of functional technology used as art recently as well, but of course this isn’t the first textile computing element to grace these pages.

Thanks to [Thinkerer] for the tip!