A stylized image of Haskell code from the article

Alphabet Soup: Haskell’s Single-Letter Naming Quirks

When you used punch cards or tape to write a computer program, brief variable names were the norm. Your compiler or assembler probably only allowed six letters, anyway. But times change, and people who, by habit, give array indices variable names like I, J, or K get a lot of grief. But [Jack Kelly] points out that for highly polymorphic languages like Haskell, you often don’t know what that variable represents anyway. So how are you supposed to name it? He provides a guide to one-letter variable names commonly used by Haskell developers and, sometimes, others.

Haskell’s conventions are particularly interesting, especially with i, j, and k, which are borrowed from mathematical tradition to signify indices or integers and passed on via Fortran. The article also highlights how m often refers to Monads and Monoidal values, while t can represent both traversables and text values. Perhaps more obscurely, p can denote profunctors and predicates, giving a glimpse into Haskell’s complex yet efficient type system. These naming conventions are not formal standards but have evolved into a grass-roots lexicon.

Of course, you can go too far. We see a lot of interesting and strange things written in Haskell, including this OpenSCAD competitor.

Portable Pi Palmtop Provides Plenty

We’ve seen many portable laptops using the Raspberry Pi series of boards in the decade-plus since its launch. The appeal of a cheap board that can run a desktop Linux distro without requiring too much battery is hard not to fall for. Over the years, the bar has been raised from a Pi stuck to the back of one of those Motorola netbook accessories, through chunky laptops, to some very svelte and professional-looking machines. A recent example comes from [Michael Mayer], whose Portable Pi 80 is a palmtop design that we’d be happy to take on the road ourselves.

At its heart is a Pi Zero 2, combining as it does a tiny form factor with the useful power of its Pi 3-derived processor. This is mated to a Waveshare 7-inch display, and in the bottom half of the machine sits a 40% mechanical keyboard. Alongside this are a pair of 18650 cells and their associated power modules. The little Arduino, which normally handles the keyboard, has been relocated due to space constraints, which brings us to the case. A project like this one is, in many ways, a task of assembling a set of modules, and it’s in the case that the work here really shines. It’s a 3D-printable case that you can download from Printables, and it’s very nice indeed. As we said, we’d be happy to use one of these.

Portable computing has come a very long way. Often the keyboard can make it or break it.

DIY 3D-Printed Arduino Self-Balancing Cube

Self-balancing devices present a unique blend of challenge and innovation. That’s how [mircemk]’s project caught our eye. While balancing cubes isn’t a new concept — Hackaday has published several over the years — [mircemk] didn’t fail to impress. This design features a 3D-printed cube that balances using reaction wheels. Utilizing gyroscopic sensors and accelerometers, the device adapts to shifts in weight, enabling it to maintain stability.

At its core, the project employs an Arduino Nano microcontroller and an MPU6050 gyroscope/accelerometer to ensure precise control. Adding nuts and bolts to the reaction wheels increases their weight, enhancing their impact on the cube’s balance. They don’t hold anything. They simply add weight. The construction involves multiple 3D printed components, each requiring several hours to produce, including the reaction wheels and various mount plates. After assembly, users can fine-tune the device via Bluetooth, allowing for a straightforward calibration process to set the balancing points.

If you want to see some earlier incarnations of this sort of thing, we covered other designs in 2010, 2013, and 2016. These always remind us of Stewart platforms, which are almost the same thing turned inside out.

Continue reading “DIY 3D-Printed Arduino Self-Balancing Cube”

Hackaday Links Column Banner

Hackaday Links: October 13, 2024

So far, food for astronauts hasn’t exactly been haute cuisine. Freeze-dried cereal cubes, squeezable tubes filled with what amounts to baby food, and meals reconstituted with water from a fuel cell don’t seem like meals to write home about. And from the sound of research into turning asteroids into astronaut food, things aren’t going to get better with space food anytime soon. The work comes from Western University in Canada and proposes that carbonaceous asteroids like the recently explored Bennu be converted into edible biomass by bacteria. The exact bugs go unmentioned, but when fed simulated asteroid bits are said to produce a material similar in texture and appearance to a “caramel milkshake.” Having grown hundreds of liters of bacterial cultures in the lab, we agree that liquid cultures spun down in a centrifuge look tasty, but if the smell is any indication, the taste probably won’t live up to expectations. Still, when a 500-meter-wide chunk of asteroid can produce enough nutritionally complete food to sustain between 600 and 17,000 astronauts for a year without having to ship it up the gravity well, concessions will likely be made. We expect that this won’t apply to the nascent space tourism industry, which for the foreseeable future will probably build its customer base on deep-pocketed thrill-seekers, a group that’s not known for its ability to compromise on creature comforts.

Continue reading “Hackaday Links: October 13, 2024”

A Homebrew Gas Chromatograph That Won’t Bust Your Budget

Chances are good that most of us will go through life without ever having to perform gas chromatography, and if we do have the occasion to do so, it’ll likely be on a professional basis using a somewhat expensive commercial instrument. That doesn’t mean you can’t roll your own gas chromatograph, though, and if you make a few compromises, it’s not even all that expensive.

At its heart, gas chromatography is pretty simple; it’s just selectively retarding the movement of a gas phase using a solid matrix and measuring the physical or chemical properties of the separated components of the gas as they pass through the system. That’s exactly what [Markus Bindhammer] has accomplished here, in about the simplest way possible. Gas chromatographs generally use a carrier gas such as helium to move the sample through the system. However, since that’s expensive stuff, [Markus] decided to use room air as the carrier.

The column itself is just a meter or so of silicone tubing packed with chromatography-grade silica gel, which is probably the most expensive thing on the BOM. It also includes an injection port homebrewed from brass compression fittings and some machined acrylic blocks. Those hold the detectors, an MQ-2 gas sensor module, and a thermal conductivity sensor fashioned from the filament of a grain-of-wheat incandescent lamp. To read the sensors and control the air pump, [Markus] employs an Arduino Uno, which unfortunately doesn’t have great resolution on its analog-to-digital converter. To fix that, he used the ubiquitous HX7111 load cell amplifier to read the output from the thermal conductivity sensor.

After purging the column and warming up the sensors, [Markus] injected a sample of lighter fuel and exported the data to Excel. The MQ-2 clearly shows two fractions coming off the column, which makes sense for the mix of propane and butane in the lighter fuel. You can also see two peaks in the thermal conductivity data from a different fuel containing only butane, corresponding to the two different isomers of the four-carbon alkane.

[Markus] has been on a bit of a tear lately; just last week, we featured his photochromic memristor and, before that, his all-in-one electrochemistry lab.

Continue reading “A Homebrew Gas Chromatograph That Won’t Bust Your Budget”

Hacker Chris Edwards demonstrating his wireless Amiga

Retro Wi-Fi On A Dime: Amiga’s Slow Lane Connection

In a recent video, [Chris Edwards] delves into the past, showing how he turned a Commodore Amiga 3000T into a wireless-capable machine. But forget modern Wi-Fi dongles—this hack involves an old-school D-Link DWL-G810 wireless Ethernet bridge. You can see the Amiga in action in the video below.

[Chris] has a quirky approach to retrofitting. He connects an Ethernet adapter to his Amiga, bridges it to the D-Link, and sets up an open Wi-Fi network—complete with a retro 11 Mbps speed. Then again, the old wired connection was usually 10 Mbps in the old days.

To make it work, he even revived an old Apple AirPort Extreme as a supporting router since the old bridge didn’t support modern security protocols. Ultimately, the Amiga gets online wirelessly, albeit at a leisurely pace compared to today’s standards. He later demonstrates an upgraded bridge that lets him connect to his normal network.

We’ve used these wireless bridges to put oscilloscopes and similar things on wireless, but newer equipment usually requires less work even if it doesn’t already have wireless. We’ve also seen our share of strange wireless setups like this one. If you are going to put your Amgia on old-school networking, you might as well get Java running, too.

Continue reading “Retro Wi-Fi On A Dime: Amiga’s Slow Lane Connection”

Building An Automotive Load Dump Tester

For those who have not dealt with the automotive side of electronics before, it comes as somewhat of a shock when you find out just how much extra you have to think about and how tough the testing and acceptance standards are. One particular test requirement is known as the “load dump” test. [Tim Williams] needed to build a device (first article of three) to apply such test conditions and wanted to do it as an exercise using scrap and spares. Following is a proper demonstration of follow-through from an analytical look at the testing specs to some interesting hand construction.

Manhattan-style layout

The load dump test simulates the effect of a spinning automotive alternator in a sudden no-load scenario, such as a loose battery terminal. The sudden reduction in load (since the battery no longer takes charging current) coupled with the inductance of the alternator windings causes a sudden huge voltage spike. The automotive standard ISO 7637-2:2011 dictates how this pulse should be designed and what load the testing device must drive.

The first article covers the required pulse shape and two possible driving techniques. It then dives deep into a case study of the Linear Tech DC1950A load dump tester, which is a tricky circuit to understand, so [Tim] breaks it down into a spice model based around a virtual transistor driving an RC network to emulate the pulse shape and power characteristics and help pin down the specs of the parts needed. The second article deals with analysing and designing a hysteric controller based around a simple current regulator, which controls the current through a power inductor. Roughly speaking, this circuit operates a bit like a buck converter with a catch diode circulating current in a tank LC circuit. A sense resistor in the output path is used to feedback a voltage, which is then used to control the driving pulses to the power MOSFET stage. [Tim] does a good job modeling and explaining some of the details that need to be considered with such a circuit.

Continue reading “Building An Automotive Load Dump Tester”