If you talk about Starlink, you are usually talking about the satellites that orbit the Earth carrying data to and from ground stations. Why not? Space is cool. But there’s another important part of the system: the terminals themselves. Thanks to [DarkNavy], you don’t have to tear one open yourself to see what’s inside.
The terminal consists of two parts: the router and the antenna. In this context, antenna is somewhat of a misnomer, since it is really the RF transceiver and antenna all together. The post looks only at the “antenna” part of the terminal.
Plywood is an interesting material: made up of many layers of thin wood plys, it can be built up into elegantly curved shapes. Do you need to limit it to just wood, though? [Zach of All Trades] has proved you do not, when he embedded a light guide, LEDs, microcontrollers and touch sensors into a quarter inch (about six millimeter) plywood layup in the video embedded below.
He’s using custom flexible PCBs, each hosting upto 3 LEDs and the low-cost PY32 microcontroller. The PY32 drives the RGB LEDs and handles capacitive touch sensing within the layup. In the video, he goes through his failed prototypes and what he learned: use epoxy, not wood glue, and while clear PET might be nice and bendy, acrylic is going to hold together better and cuts easier with a CO2 laser. Continue reading “LED Layer Makes Plywood Glow”→
If you want read-only memory today, you might be tempted to use flash memory or, if you want old-school, maybe an EPROM. But there was a time when that wasn’t feasible. [Igor Brichkov] shows us how to make a core rope memory using a set of ferrite cores and wire. This was famously used in early UNIVAC computers and the Apollo guidance computer. You can see how it works in the video below.
While rope memory superficially resembles core memory, the principle of operation is different. In core memory, the core’s magnetization is what determines any given bit. For rope memory, the cores are more like a sensing element. A set wire tries to flip the polarity of all cores. An inhibit signal stops that from happening except on the cores you want to read. Finally, a sense wire weaves through the cores and detects a blip when a core changes polarity. The second video, below, is an old MIT video that explains how it works (about 20 minutes in).
Why not just use core memory? Density. These memories could store much more data than a core memory system in the same volume. Of course, you could write to core memory, too, but that’s not always a requirement.
Treat dispensers are old hat around here, but what if kitty doesn’t need the extra calories — and actually needs to drop some pounds? [MethodicalMaker] decided to link the treat dispenser to a cat wheel, and reward kitty for healthy behaviors. The dispenser can be programmed to make the cat run long enough to burn the calories of its treat. Over time, kitty can be trained to run longer between treats to really melt off the pounds.
The wheel itself is an off the shelf model called “One Fast Cat”; apparently these are quite cheap second hand as most cats don’t really see the point in exercise. [MethodicalMaker] glued evenly-spaced magnets along the rim in order to track the rotation with a hall effect sensor. A microcontroller is watching said sensor, and is programmed to release the treats after counting off a set number of revolutions. Control over the running distance and manual treat extrusion is via web portal, but the networking code had difficulty on the Arduino R4 [MethodicalMaker] started with, so he switched to an ESP32 to get it working.
The real interesting part of this project is the physical design of the treat dispenser: it uses a double-auger setup to precisely control treat release. The first auger lives inside a hopper that holds a great many treats, but it tended to over-dispense so [MethodicalMaker] methodically made a second auger that sits beneath the hopper. The handful of treats extruded by the first auger are dispensed individually by the second auger, aided by a photosensor inside the exit chute to count treats. This also lets the machine signal when it needs refilling. For precise control, continuous servos are used to drive the augers. Aside from the electronics, everything is 3D printed; the STLs are on Printables, and the code is on GitHub.
Earlier this month we covered the brewing controversy over libogc, the community-developed C library that functions as the backbone for GameCube and Wii homebrew software. Questions about how much of the library was based on leaked information from Nintendo had been circulating for decades, but the more recent accusations that libogc included code from other open source projects without proper attribution brought the debate to a head — ultimately leading Wii Homebrew Channel developer Hector Martin to archive the popular project and use its README as a central point to collect evidence against libogc and its developers.
At the time, most of the claims had to do with code being taken from the Real-Time Executive for Multiprocessor Systems (RTEMS) project. Martin and others in the community had performed their own investigations, and found some striking similarities between the two codebases. A developer familiar with both projects went so far as to say that as much as half the code in libogc was actually lifted from RTEMS and obfuscated so as to appear as original work.
While some of these claims included compelling evidence, they were still nothing more than accusations. For their part, the libogc team denied any wrongdoing. Contributors to the project explained that any resemblance between libogc code and that of either leaked Nintendo libraries or other open source projects was merely superficial, and the unavoidable result of developing for a constrained system such as a game console.
But that all changed on May 6th, when the RTEMS team released an official statement on the subject. It turns out that they had been following the situation for some time, and had conducted their own audit of the libogc code. Their determination was that not only had RTEMS code been used without attribution, but that it appeared at least some code had also been copied verbatim from the Linux kernel — making the license dispute (and its solution) far more complex.
When [Kasyan] was six years old, he saw a RADUGA computer, a Russian unit from the 1990s, and it sparked his imagination. He has one now that is a little beat up, but we feel like he sees it through his six-year-old eyes as a shiny new computer. The computer, which you can see in the video below, was a clone of the Spectrum 48K.
The box is somewhat klunky-looking, and inside is also a bit strange. The power supply is a — for the time — state-of-the-art switching power supply. Since it wasn’t in good shape, he decided to replace it with a more modern supply.
The main board was also not in good shape. A Zilog CPU is on a large PCB with suspicious-looking capacitors. The mechanical keyboard is nothing more than a array of buttons, and wouldn’t excite today’s mechanical key enthusiast.
There was a time when version control was an exotic idea. Today, things like Git and a handful of other tools allow developers to easily rewind the clock or work on different versions of the same thing with very little effort. I’m here to encourage you not only to use version control but also to go even a step further, at least for important projects.
My First Job
The QDP-100 with — count ’em — two 8″ floppies (from an ad in Byte magazine)
I remember my first real job back in the early 1980s. We made a particular type of sensor that had a 6805 CPU onboard and, of course, had firmware. We did all the development on physically big CP/M machines with the improbable name of Quasar QDP-100s. No, not that Quasar. We’d generate a hex file, burn an EPROM, test, and eventually, the code would make it out in the field.
Of course, you always have to make changes. You might send a technician out with a tube full of EPROMs or, in an emergency, we’d buy the EPROMs space on a Greyhound bus. Nothing like today.
I was just getting started, and the guy who wrote the code for those sensors wasn’t much older than me. One day, we got a report that something was misbehaving out in the field. I asked him how we knew what version of the code was on the sensor. The blank look I got back worried me. Continue reading “Version Control To The Max”→