Non-Newtonian Motion…?

The EM drive, weird as it sounds, just keeps passing peer review. It’s starting to look like we’ve found something genuinely new here — an inertial drive! Until recently, that was considered science-fantasy by most — a way of changing velocity without “pushing” against something else.

In short, it throws Newton’s third law of motion out the window.

This copper frustum could end up being as famous as the first transistor.

It’s a very small effect — about 1.2 milliNewtons per kilowatt, give or take ten percent or so. That’s a very subtle effect — one milliNewton is about one twentieth of the force needed to lift a dime — but one that can be constantly applied over hours, days, weeks, months, or years, with no propellent needed.

If it works — if this effect is real — we’ll be able to build much more efficient (meaning faster, cheaper, and larger) long- and medium-distance spacecraft.

And if past technologies are any indication, the test model is probably terribly inefficient. Faraday’s first electric motor, after all, was just a wire spinning around in a mercury bath. From such humble beginnings, however, came all of our modern electric motor technology.

TL;DR (physics geeks): Don’t look now, but conservation of momentum might not be a thing, after all.

TL;DR (everyone else): If this works, we just got a LOT better at building spaceships. Not faster-than-light better (at least this year), but way, way better. Like go-to-Mars-for-the-week-someday better.

Posted in Current Events, Mad Science, Science | Leave a comment

Batteries, visualized

We have some pretty amazing technology, these days. And there’s a lot more that we could be doing, if not for energy concerns. This limits us in two ways — heat dissipation (the more your smartphone has to do, the more energy it uses, and all of this energy has to be dissipated as heat), and battery capacity.

Heat isn’t terribly hard to deal with — stick a bigger heatsink on it, or make the whole case metal. Battery life, however, has been the albatross around the neck of embedded engineers for decades.

Part of the problem is that we have an imperfect understanding of the chemical and physical changes that happen inside batteries. Metal dendrites form, shorting out the battery and potentially leading to fires and explosions. Battery-managment chips help with this, but it would be nice to be able to see these changes in real time, to help come up with better battery topologies and charging/discharging methods.

So a group at the University of Michigan made one with a window. It’s a vision cell, or “vis cell,” which allows researchers to see and characterize the ways the battery changes in response to various conditions. Check out the video.

Posted in Components, Current Events, Electronics | Leave a comment

A Weather Prognosticator

I’m not what you would call a Summer Person. My usual strategy for dealing with long-term inclement weather (known to humans as May, June, July, August, and, increasingly, September) is to insulate the house as much as possible, close off rooms I don’t need, run the AC, and pretend that I actually live in northern Canada or somewhere else where the weather outside is pleasant.

It’s a good strategy, and thus far has kept me from catching on fire during the dreaded Daystar Months. However, it is not without its drawbacks: I have no idea what to expect, temperature-wise, when I open the front door. Is a short shirt appropriate for a walk to the corner store, or is it too hot to venture out without a fire suit?

Of course, I could pull out my phone, unlock the screen, pull up a weather app, wait for it to load, and look at the temperatures. But who has time for that? Wouldn’t it be nice to just be able to look up and know what the weather will be like for the next few hours?

The display, running a static color test

The Weather Prognosticator display, running a static color test

Enter the Weather Prognosticator! (Okay, right now it’s just a Temperature Prognosticator; I still need to add precipitation.) An Arduino Uno and Ethernet shield connect to the API to pull an hourly forecast once every five minutes*.

This data is translated into a color map from blue (#0000FF) through green (#00FF00) to red(#FF0000), covering temperatures from 0C to 30C. The temperature map still needs a little tweaking; I’ll probably add purple/white for temperatures below zero — but I’ll probably leave 30C-35C as the high end. Anything over that is not amenable to going outside.

Once the data has been translated into a color map, it is sent to a 1m long 30 LED strip that I bought on sale at Radio Shack a while back. The data sheet isn’t very helpful, but with some tweaking, the provided driver functions do work.

This particular LED strip has ten addressable sections of three LEDs each; all three LEDs in each section are the same addressable color. In order to separate the light from each section, I designed a linear sconce, and 3D printed five copies to cover all the sections.

Anyway, here are the plans. You’ll need your own (free) API key from .

Arduino code: Weather Prognosticator 0.1 (Alpha)

3D printed holder (print five of them): See Thingiverse

* I plan to dial it back to polling every 30 minutes once it’s more reliable. Right now, I’m still testing it, and it still pulls an all-zero forecast every so often.

Posted in 3D Printing, Arduino, C, Coding, Design, Digital, Electronics, HOW-TO, Internet, Level 2, Networking, Projects | Tagged , , , , , , | Leave a comment


Math is weird and is sometimes frustrating, but it can certainly be beautiful.

The Bit Order Shuffle. For an explanation, keep reading...

The Bit Order Shuffle. (For an explanation, keep reading.) Click for uncompressed BMP.


When I first took a Digital Electronics course years ago, the instructor started talking about what sounded like “big-Indian” and “little-Indian” formats. I wasn’t really sure what he was talking about — but then I read the textbook. (It’s actually useful, on occasion, provided that the instructor isn’t the author.)  As it turns out, there are two main ways of storing binary numbers — with the “big end” first, or the “little end” first. Thus, “Big-Endian” and “Little-Endian.” Endian-ness, not “Indian-ness.”


This can’t be what the professor meant, right? (Drawing by Millard E. Carr)


In Big-Endian format, the largest bits (and bytes) of a binary number are stored first. So, the number 0100 would represent “four,” and the number 10100000 would represent “one hundred sixty.” Motorola processors (Freescale, these days) are big-endian.

In Little-Endian format, the order is reversed: the smallest bits come first. So, 0100 would represent “two,” and 10100000 would represent “five.” Intel CPUs are little-endian.

Both systems are well entrenched (although I confess I don’t understand why someone would use little-endian when most networks use big-endian), so it’s important to know about the problem of endianness, and how to convert between the two (using LIFO buffers, if dealing with serial data.)

But back to the “Bit Order Shuffle” image, above. It turns out that when you read the numbers in backwards order like this, you shuffle the value order of the numbers. 0000 will still be first in a list of four-bit numbers and 1111 will still be last — but 0001 will become 1000, jumping to the middle of the deck — and 0011 (three) will become 1100 (twelve) etc.

I decided to visualize this, and colored the numbers 0-1023 with a continuous color spectrum in the 24-bit RRGGBB space, with Red mapped to 255-(n/8), Green mapped to 255-abs(512-n)/4, and Blue mapped to n/8. (All values clamped 0-255.) In order to try to avoid the pattern being dominated by the last lines to be drawn rather than the overall pattern, the lines are drawn in random order, with the law of averages ensuring most or all lines were drawn.

As the pattern shows, an initially well-ordered set is shuffled — repeatably and reversibly — into a homogenous mix of values. It would be a good shuffle, if it wasn’t ultimately predictable.

As for my Dad’s “Indians” — they’ve found work as corporate bit-order spokespeople.


Posted in Digital, Math, Networking | Leave a comment