Internet Radio Built In Charming Cassette-Like Form Factor

You can listen to plenty of broadcast radio these days. There’s a lot of choice too, with stations on AM, FM, and digital broadcasts to boot. However, if you want the broadest possible choice, you want an internet radio. If that’s your bag, why not build a fun one like [indoorgeek’s] latest design?

The build is based around a PCB and 3D-printed components that roughly ape the design of a cassette tape. It even replicates the typical center window of a cassette tape by using a transparent OLED screen, which displays the user interface. In a neat way, the graphics on the display are designed to line up with those on the PCB, which looks excellent.

An ESP32 is the heart of the operation, which is responsible for streaming audio over the Internet via its WiFi connection. It’s powered by a small lithium-polymer battery, and hooked up with a MAX98357 Class D amplifier driven via the chip’s I2S hardware. Audio is played out over a small speaker salvaged from an old smartphone.

While it’s obviously possible to play whatever you like on a smartphone these days, sometimes it’s fun to have simple devices that just do a single job. Plus, we can’t deny this project looks really neat. Video after the break.

Continue reading “Internet Radio Built In Charming Cassette-Like Form Factor”

3D printed test jig to determine the yield point of a centrally loaded 3D printed beam.

One Object To Print, But So Many Settings!

When working with an FDM 3D printer your first prints are likely trinkets where strength is less relevant than surface quality. Later on when attempting more structural prints, the settings become very important, and quite frankly rather bewildering. A few attempts have been made over the years to determine in quantifiable terms, how these settings affect results and here is another such experiment, this time from Youtuber 3DPrinterAcademy looking specifically at the effect of wall count, infill density and the infill pattern upon the strength of a simple beam when subjected to a midpoint load.

A tray of 3D printing infill patterns available in mainstream slicers
Modern slicers can produce many infill patterns, but the effect on real world results are not obvious

When setting up a print, many people will stick to the same few profiles, with a little variety in wall count and infill density, but generally keep things consistent. This works well, up to a point, and that point is when you want to print something significantly different in size, structure or function. The slicer software is usually very helpful in explaining the effect of tweaking the numbers upon how the print is formed, but not too great at explaining the result of this in real life, since it can’t know your application. As far as the slicer is concerned your object is a shape that will be turned into slices, internal spaces, outlines and support structures. It doesn’t know whether you’re making a keyfob or a bearing holder, and cannot help you get the settings right for each application. Perhaps upcoming AI applications will be trained upon all these experimental results and be fed back into the slicing software, but for now, we’ll just have to go with experience and experiment. Continue reading “One Object To Print, But So Many Settings!”

A Smarter Solar Water Heater

Installing solar power at a home is a great way to reduce electricity bills, especially as the cost of solar panels and their associated electronics continue to plummet. Not every utility allows selling solar back to the grid, though, so if you’re like [Rogan] who lives in South Africa you’ll need to come up with some clever tricks to use the solar energy each day while it’s available to keep from wasting any. He’s devised this system for his water heater that takes care of some of this excess incoming energy.

A normal water heater, at least one based on electric resistive heaters, attempts to maintain a small range of temperatures within the insulated tank. If the temperature drops due to use or loss to the environment, the heaters turn on to bring the temperature back up. This automation system does essentially the same thing, but allows a much wider range of temperatures depending on the time of day. Essentially, it allows the water heater to get much hotter during times when solar energy is available, and lets it drop to lower values before running the heater on utility electricity during times when it isn’t. Using a combination ESP32 and ATtiny to both control the heater and report its temperature, all that’s left is to program Home Assistant to get the new system to interact with the solar system’s battery charge state and available incoming solar energy.

While it’s an elegantly simple system that also affords ample hot water for morning showers, large efficiency gains like this can be low-hanging fruit to even more home energy savings than solar alone provides on paper. Effectively the water heater becomes another type of battery in [Rogan]’s home, capable of storing energy at least for the day in the form of hot water. There are a few other ways of storing excess renewable energy as well, although they might require more resources than are typically available at home.

What Is X86-64-v3?

You may have heard Linux pundits discussing x86-64-v3. Can recompiling Linux code to use this bring benefits? To answer that question, you probably need to know what x86-64-v3 is, and [Gary Explains]… well… explains it in a recent video.

If you’d rather digest text, RedHat has a recent article about their experiments using the instructions set in RHEL10. From that article, you can see that most of the new instructions support some enhancements for vectors and bit manipulation. It also allows for more flexible instructions that leave their results in an explicit destination register instead of one of the operand registers.

Of course, none of this matters for high-level code unless the compiler supports it. However, gcc version 12 will automatically vectorize code when using the -O2 optimization flags.

Continue reading “What Is X86-64-v3?”

Recreating The Pop Ball

Those who were kids in the 80s may remember a sweet little toy called the Pop Ball. A simple rubber hemisphere, this rubber cup could be turned inside out and thrown on the ground, where it would hit and bounce sky high whilst knocking itself right side out. The black ones worked particularly well, and were the first to be banned from [electrosync]’s school along with yo-yos, slap bracelets, and any number of toys that eventually became weaponized by enterprising children.

An industrial Vegemite injection-molded version that only kind of worked.

You can still find Pop Balls today, but they don’t work nearly as well as they did originally because of a lower Shore hardness in the rubber. Naturally, as an adult with futuristic toys at hand, [electrosync] just had to try re-creating the ’80s version. But it wasn’t easy.

They started by studying the patents and anything else they could find. They even managed to get a hold of Peter Fish, the original creator of the Pop Ball, to get some questions answered about the things. According to Peter, the black Pop Ball was made from recycled rubber and worked almost too well. Peter sent [electrosync] an old-stock Pop Ball, which they used to modify their CAD design.

It’s easy to root for [electrosync] throughout this journey, which consists of many failed prints and injection molding attempts. At last, they are able to at least recreate the snap of the modern Pop Ball once they finally found the right filament — the extremely elastic Recreus Filaflex 60A TPU. Of course, it wasn’t all lollipops and rainbows from there, because the filament is notoriously difficult to print with, but [electrosync] made it work. Check it out after the break.

Continue reading “Recreating The Pop Ball”

Bit-Serial CPU: Ultra-Tiny VHDL-Based CPU With Forth Interpreter

Soft cores for FPGAs come in many different flavors, covering a wide range of applications. The Bit-Serial CPU (bcpu) soft core presented by [Richard James Howe] is interesting for taking up just about the most minimal amount of resources (23 slices, 76 LUTs) while providing the means to run a Forth-based (eForth dialect) interpreter. To this CPU core a UART can be added (92 LUTs), as well as other peripherals.

As [Richard] states, the entire core with UART fits in 73 slices (220 LUTs) on a Spartan 6, while requiring a single port BRAM (block RAM). It features a 16-bit accumulator and lacks features such as interrupts, byte addressability and function calls, but those are not required to run the eForth interpreter. The main purpose of this soft core (other than the challenge) is to have a UART-programmable core that can be slotted in any FPGA design. For more serious requirements [Richard] also has the H2 SoC, which can run full-fat FORTH.

Continue reading “Bit-Serial CPU: Ultra-Tiny VHDL-Based CPU With Forth Interpreter”

Tetris Goes Round And Round

You’ve probably played some version of Tetris, but [the Center for Creative Learning] has a different take on it. Their latest version features a cylindrical playing field. While it wouldn’t be simple to wire up all those LEDs, it is a little easier, thanks to LED strips. You can find the code for the game on GitHub.

In all, there are 5 LED strips for a display and 13 strips for the playing area, although you can adjust this as long as there are at least 10 rows. The exact number of LEDs will depend on the diameter of the PVC pipe you build it on.

Continue reading “Tetris Goes Round And Round”