Robot Dog In Browser

You’ve doubtlessly seen the current crop of robot dogs and, if you are like us, thought about getting one to play with. The problem is that the cheap ones are toys, and the serious ones cost serious money. But now you can experiment with a mid-range cost one for free in your browser. The sponsor will be happy to sell you a robot in kit or assembled form, although it is the OpenCat robot (we’ve covered it before), so you could simply build a real one yourself if you wanted to.

The code is all in a Web-based IDE, and the main file is deceptively simple. However, the real work is in read_serial (in the src/moduleManager.h file, for some reason) and reaction in the aptly-named src/reaction.h file. If you just want to play, you can use the buttons in the simulator or enter serial commands (documented elsewhere). For example, ksit will make the dog sit down.

Continue reading “Robot Dog In Browser”

A Brief History Of The Crazy Old 7-Segment Display

How old is the seven-segment display? Surely it is a product of the 1970s. After all, calculators started showing up, and the height of junior high humor was plugging 7734 into your calculator and showing it to someone upside down. Of course, for it to go mainstream, maybe they really originated in the 1960s, but no earlier than that, right? Actually, no. Sure, the LED seven-segment display had to wait for LEDs. But the actual idea is much older than that.

The concept of building numbers from a small set of reusable segments predates LED displays by decades. In fact, the basic idea appears in patents from the early 1900s and may have roots in even older mechanical signs and printing techniques.

The history isn’t entirely straightforward. Unlike vacuum tubes or transistors, segmented displays evolved gradually through a series of practical ideas rather than one defining invention.

Blacking out the Eight

While looking into the history of segmented displays, I was reminded of something I’d seen years ago in retail stores: reusable price tags printed with rows of eights.

Rather than printing every possible price, the clerk simply used a marker to black out portions of each figure, transforming an 8 into whatever digit was needed. Cover a few strokes, and the eight becomes a three. Remove a different set, and it becomes a zero or a five. It was, in essence, a manual segmented display.

Finding the exact origin of these price tags is akin to finding out where Romans bought sponges. They were inexpensive commercial supplies, not the sort of products that historians carefully documented. My recollection is from the middle of the twentieth century, but the underlying concept is almost certainly older.

Continue reading “A Brief History Of The Crazy Old 7-Segment Display”

Linux Fu: The Local Phonebook

I’ll admit it: I miss the simplicity of /etc/hosts. There was something elegant about it. You wanted laserprinter to mean 192.168.1.40, so you opened a text file and wrote:

192.168.1.40 laserprinter

Done. No cloud account, no discovery daemon, no dashboard with material-themed icons. Just a name and an address. The trouble, of course, is that /etc/hosts is only simple when you have one machine. The moment you have a desktop, a laptop, a Raspberry Pi, a NAS, a test box, and a phone or two, every little network change becomes a tiny distributed-database problem. Which copy of /etc/hosts is authoritative? Did you update the laptop? What about the machine you only boot once a month?

One Solution

Modern LANs solved this with mDNS, using Avahi on Linux. It resolves addresses that end in .local. Instead of asking a central DNS server “who is thing.local?”, a machine sends a multicast query on the local network: “who has thing.local?” The device that owns the name answers. This is why your Linux box named spock and usually be reached as spock.local on your LAN.

There are limits. mDNS is link-local; it is meant for the local LAN, not the whole Internet and shouldn’t route across subnets. Each device is supposed to publish its own name. That works fine when the device cooperates. But what about devices that do not publish mDNS? Or little embedded things that barely even have an IP address?

That is where I wanted the best of both worlds: keep a small authoritative /etc/hosts file on one Linux box, but publish selected entries onto the LAN using mDNS.

Continue reading “Linux Fu: The Local Phonebook”

He Comes To Bury Segmented Memory, Not To Praise It

[BillPg] has been designing a fantasy 1980s-era home computer. As part of the exercise, he’s reevaluating all the assumptions that have grown organically over time in the small computer landscape. Hindsight is, so they say, 20/20, but sometimes hindsight can also be colored by modern thinking. Sometimes an idea that seems stupid today made sense in the context of its time. In particular, [Bill] has thoughts on the much-maligned 8086 memory segments.

If you haven’t run into it before, the 8086/8088 had a problem. It wanted to be more or less conceptually software compatible with the 8080 and Z80 computers, which had 16-bit addresses, leading to a limit of 64K of memory. When Intel was designing the next generation of chips, it knew that 64K had to go, but telling developers that code would require huge reengineering was a non-starter. So the idea was to provide multiple 64K spaces broken up into segments.

Continue reading “He Comes To Bury Segmented Memory, Not To Praise It”

Hackaday Podcast Episode 376: Modern Retro Projects, Retro Modern Projects, And The Teen Years For 3D Printing

Hackaday’s Elliot Williams and Al Williams were in a retro mood this week. There was a new ‘486 computer, a new mechanical TV, and a USB stick with a magnetic personality. Can you watch YouTube on a Game Boy? Maybe.

For the can’t miss articles, this week, Elliot and Al reflected on the awkward phase of 3D printers when they transformed from being expensive commercial machines, to where they are now. Meanwhile, Al was interested in how airplanes know how fast they are going. Along the way, there were musical hacks, precision machine tools, and a quantum 8 ball.

Check out the links if you want to follow along, and as always, tell us what you think about this episode in the comments! Or write or record something for our mailbag segment.

Direct download in authentic retro DRM-free MP3.

Continue reading “Hackaday Podcast Episode 376: Modern Retro Projects, Retro Modern Projects, And The Teen Years For 3D Printing”

The Teenage Angst Of 3D Printing: Solidoodle, Printrbot, And Bridges

Bridges are a part of our constructed landscape that we take for granted. And bridges by themselves aren’t especially important. What is important is that bridges let you get from one place to another. Technology is often the same. We get from point A to point B through some bridge technology that, probably, most normal people never even notice.

Years ago, point A was commercial 3D printing. Industry had stereolithography, selective laser sintering, fused deposition modeling, and other rapid-prototyping technologies. These were not toys. They were expensive industrial systems used by companies that needed prototypes badly enough to pay serious money for them.

Fast Forward to Today

Today, you can go to a big box store and buy a 3D printer for well under $1,000, and often far less. Modern machines are almost plug-and-play and tend to do all the hard parts for you. That’s point B. How we got between points is a story of hackers who had a dream, and many Hackaday readers lived through it and even played a part in that bridging.

For a long time, RepRap was synonymous with hobby-level 3D printing. The project, started by [Adrian Bowyer] at the University of Bath in 2005, was built around a powerful idea: a machine that could print many of its own parts, thereby helping make more machines. RepRap Darwin reached its early self-replicating milestones in 2008, and the movement produced a thicket of descendants, variants, and arguments about rods, belts, bearings, extruders, firmware, and what “self-replicating” really meant. Of course, the machine could only print some of the parts you needed, but it was still impressive how much of a printer you could make with one printer.

Without RepRap, the desktop 3D printer boom would have looked very different. It created a common pool of ideas: Cartesian frames, printed brackets, hobbed bolts, heated beds, RAMPS boards, Marlin firmware, and a whole common vocabulary. It also created the expectation that a 3D printer was something you could understand, modify, repair, and improve. That expectation would not survive everywhere, but it defined the early culture.

Continue reading “The Teenage Angst Of 3D Printing: Solidoodle, Printrbot, And Bridges”

Linux Fu: Upcycling An Old Router

You’re wandering through a thrift store and spot an old router for ten bucks. Worthless, right? But in this case, it was a Google OnHub, which, at the time, was pretty premium and still isn’t anything to sneeze at. Of course, Google abandoned it long ago, and it runs Chrome, so pass, right? Of course I didn’t. In fact, I bought two for less than $20. The question is always the same: what do you do with it?

OpenWrt will run on the device. That’s a good start, but merely replacing the firmware isn’t much of a project. The more interesting question is whether the hardware can still do something useful. I had a specific need: connect a wired workstation to a reasonably distant WiFi network without running cable and without suffering the usual double-NAT headaches that come from turning the router into yet another subnet. For this, the OnHub turned out to be nearly perfect.

The Hardware

The OnHub was Google’s first Wi-Fi router, built by TP-Link and ASUS in different versions. Mine was the TP-Link model, and one was missing a bit of plastic cowl trim. Under the hood, it has a Qualcomm IPQ8064 dual-core processor — a dual-core ARMv7 — multiple radios, gigabit Ethernet, and enough memory to run OpenWrt comfortably: 1 GB of RAM and 4 GB of flash. The processor also has two network offload processors, but it isn’t clear to me that the stock OpenWrt build uses them.

These devices were expensive when new, but now show up regularly at thrift stores and surplus sales. Installing OpenWrt was straightforward. You do need to remove a screw that covers the magic switch at the bottom, but that’s not a big problem. You can just peel the rubber foot back if you don’t want to remove it. However, the interesting part came afterward.

Continue reading “Linux Fu: Upcycling An Old Router”