The Price of Space

Many engineers of a certain age have one thing in common: Their early interest in science and engineering came from watching the US and Russian space programs. To me, regardless of any other benefit from the space program (and there are many), that ability to inspire a future generation of engineers made the entire program worthwhile.

We live in a world where kids’ role models are more likely to be sports or entertainment figures that have regular visits to police stations, jails, and rehab centers. The value of having role models that “do science” is invaluable.

This time of the year is a dark time for NASA missions, though. On January 27, 1967, the Apollo I crew (Grissom, White, and Chaffee) died in a fire. The investigation led to NASA limiting how much Velcro you can use in a cabin and moving away from pure oxygen in the cabin.

Continue reading “The Price of Space”

Warbots: Is it Already Too Late?

In 1971, a non-profit formed that holds the World Economic Forum each year. The Forum claims it “Engages the foremost political, business and other leaders of society to shape global, regional and industry agendas.” This year, the Forum hosted a session: What If: Robots Go To War? Participants included a computer science professor, an electrical engineering professor, the chairman of BAE, a senior fellow at the Vienna Center for Disarmament and Non-Proliferation, and a Time magazine editor.

Continue reading “Warbots: Is it Already Too Late?”

Kids and Hacking: Electromagnetic Eggs

One of my favorite things to do is visit with school kids who are interested in engineering or science. However, realistically, there is a limit to what you can do in a single class that might last 30 to 90 minutes. I recently had the chance to work with a former colleague, a schoolteacher, and The Teaching Channel to create an engineering unit for classroom use that lasts two weeks.

This new unit focuses on an egg drop. That’s not an original idea, but we did add an interesting twist: the project develops a “space capsule” to protect the egg, but also an electromagnetic drop system to test the capsules. The drop system allows for a consistent test with the egg capsule releasing cleanly from a fixed height. So in addition to the classic egg drop capsule, the kids have to build an electromagnet, a safe switching circuit, and a test structure. Better still, teams of kids can do different parts and integrate them into a final product, closely mimicking how real engineering projects work.

There are a few reasons for the complexity. First, given ten class sessions, you can do a lot more than you can in a single day. Second, I always think it is good if you can find exercises that will appeal to lots of different interests. In the past, I’ve used robots and 3D printers for that reason. Some students will be interested in the electronics, others in the mechanics, and still others will be interested in the programming. Some kids will engage in 3D modeling (robot simulation or 3D objects). The point is there is something for everyone.

Continue reading “Kids and Hacking: Electromagnetic Eggs”

Hacking Online Reviews

For this post, I want to return the word hacking to its nefarious definition. We prefer the kinder definition of a hacker as someone who creates or modifies things to fit some purpose or to improve its function. But a hacker can also be someone who breaks into computer systems or steals phone service or breaks encryption.

There are some “hacker battlefields” that are very visible. Protecting credit card numbers from hackers is a good example. But there are some subtle ones that many people don’t notice. For example, the battle for online reviews. You know, like on Amazon when you rate the soldering iron you bought and leave a note about how it works. That might seem like a strange place for hacking until you stop and think about why people do bad hacking.

Continue reading “Hacking Online Reviews”

Messages From Hell: Human Signal Processing

Despite the title, there’s no religious content in this post. The Hell in question is the German inventor [Rudolph Hell]. Although he had an impressive career, what most people remember him for is the Hellschreiber–a device I often mention when I’m trying to illustrate engineering elegance. What’s a Hellschreiber? And why is it elegant?

The first question is easy to answer: the Hellschreiber is almost like a teletype machine. It sends printed messages over the radio, but it works differently than conventional teletype. That’s where the elegance comes into play. To understand how, though, you need a little background.

Continue reading “Messages From Hell: Human Signal Processing”

Programming with Rust

Do hardware hackers need a new programming language? Your first answer might be no, but hold off a bit until you hear about a new language called Rust before you decide for sure.

We all know real hackers use assembly language to program CPUs directly, right? Well, most of us don’t do as much assembly language as we used to do. Languages like C can generate tight, predictable code and are easier to manage.

Although some people use more abstract languages in some embedded systems, it is no secret that for real-time systems, device driver development, and other similar tasks, you want a language that doesn’t obscure underlying details or generate code that’s difficult to reason about (like, for example, garbage collection). It is possible to use special techniques (like the Real-Time Java Specification) to help languages, but in the general case a lean language is still what most programmers reach for when you have to program bare metal.

Even C++, which is very popular, obscures some details if you use things like virtual functions (a controversial subject) although it is workable. It is attractive to get the benefit of modern programming tools even if it does conceal some of the underlying code more than straight C.

About Rust

That’s where Rust comes in. I could describe what Rust attempts to achieve, but it is probably easier to just quote the first part of the Rust documentation:

Rust is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead, while eliminating all data races. Rust also aims to achieve ‘zero-cost abstractions’ even though some of these abstractions feel like those of a high-level language. Even then, Rust still allows precise control like a low-level language would.

Continue reading “Programming with Rust”

Heathkit’s Triumphant Return?

Heathkit, the storied purveyor of high-quality DIY electronics kits that inspired a generation of enthusiasts and launched the careers of many engineers, has returned from the dead. We think. At least it seems that way from this build log by [Spritle], an early adopter of the rebooted company’s first offering. But if [Spritle]’s experience is any indication, Heathkit has a long way to go to recreating its glory days. Continue reading “Heathkit’s Triumphant Return?”