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”

The rust language logo being branded onto a microcontroller housing

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?”

Alfred P. Morgan: A Generation’s Radio Hacker

I was surfing the web looking for interesting projects the other day when I ran into [SkyKing’s] exquisite transistor demodulator radio builds. He mentioned that they were “Alfred P. Morgan-style” and that brought back a flood of memories about a man who introduced a whole generation to electronics and radio.

[Morgan] was born in 1889 and in the early part of the twentieth century, he was excited to build and fly an airplane. Apparently, there wasn’t a successful flight. However, he eventually succeeded and wrote his first book: “How to Build a 20-foot Bi-Plane Glider.” In 1910, he and a partner formed the Adams Morgan company to distribute radio construction kits. We probably wouldn’t remember [Morgan] for his airplanes, but we do recognize him for his work with radio.

By 1913, he published a book “The Boy Electrician” which covered the fundamentals of electricity and magnetism (at a time when these subjects were far more mysterious than they are today). [Morgan] predicted the hacker in the preface to the 1947 edition. After describing how a boy was frustrated that his model train automated to the point that he had nothing actually to do, [Morgan] observed:

The prime instinct of almost any boy at play is to make and to create. He will make things of such materials as he has at hand, and use the whole force of dream and fancy to create something out of nothing.

Of course, we know this applies to girls too, but [Morgan] wrote this in 1913, so you have to fill in the blanks. I think we can all identify with that sentiment, though.

Continue reading “Alfred P. Morgan: A Generation’s Radio Hacker”

Does The Internet Make You Stupid?

A recent post by [Christian Heilmann] is one of several I’ve read lately talking about how Web sites–Stack Overflow, in particular–are breeding a new kind of developer. The kind of developer that simply copies and pastes example code or schematics with no real understanding of what’s going on. His conclusion is that developers who don’t fully understand what they are doing will become disinterested and burn out. He’s talking about software developers, but I think you could extend the argument to developers of all kinds, including hardware hackers. He concluded that–at least while learning–you stick to the old ways of doing things.

I have trouble disagreeing with [Christian] on the details, but I do disagree with the conclusion. People have copied work from other sources for a very long time. We’ve all seen circuits that were clearly either torn from a datasheet or even glued together from multiple datasheet examples way before there was an Internet.

There’s two things that are slightly different today: First, everyone has easy access to lots of examples. You don’t have to go find a book (possibly at a library), search through it, and find one or two examples. A quick Google will find dozens or hundreds of examples.

The second thing that is different is that there are places exist like Stack Overflow where you don’t even have to go looking. You can simply ask, “How do I do X?” and you will get answers from someone. It might be wrong. You might not understand it. But you’ll probably get some kind of answer.

Continue reading “Does The Internet Make You Stupid?”