Radio Build Goes Outside The Box

It’s easy to get caught up in a build and forget that the final version usually needs some sort of enclosure, especially things with sensitive electronics in them. The [Director of Legal Evil] at the LVL1 Louisville Hackerspace notes as much in his recent radio build. It seems as though the case was indeed an afterthought, but rather than throwing it in a nondescript black project enclosure it was decided to turn the idea of a project enclosure itself inside-out.

The radio build is based on an SI4732 radio receiver which is a fairly common radio module and is easily adaptable. It needs a microcontroller to run though, so a Maple STM32 platform was chosen to do all of the heavy lifting. The build includes a screen, some custom analog controls, and a small class D audio amplifier, but this is the point it begins to earn its name: the Chaos Radio. While playing around with the project design in CAD, a normal design seemed too bland so one was chosen which makes the radio look like the parts are exploding outward from what would have been a more traditional-style enclosure.

While the project includes a functioning radio receiver, we have to complement the creator for the interesting display style for this particular set of hardware. It can get boring designing the same project enclosures time after time, so anything to shake things up is often welcomed especially when it puts all of the radio components on display like this. In fact, it’s reminiscent of some of [Dmitry]’s projects, an artist known for deconstructing various common household appliances like this CD Player.

Thanks to [Jose] for the tip!

DIY USB Microphone Seems Overkill; Is Surprisingly In-Depth

Those of us who have been working from home through video calls for the past year can attest to the rising demand for conferencing gear such as webcams and microphones. Not wanting to spring for a boring off-the-shelf solution, serial hacker [Andy Brown] decided to design his own USB solution from scratch and show us the process from start to finish.

Deciding to go for a full digital design for the circuitry, the peripheral is based off of a MEMS microphone and an STM32 microcontroller doing the heavy lifting between it and a USB connection. [Andy] notes that MEMS microphones are very delicate and you have to design the PCB around the hole where the sound enters, which is why he went with a breakout board which has the component already soldered onto it.

As for the MCU, he reasons that since this is a off-one project which won’t be produced in large numbers, the 180 MHz ARM core shouldn’t be seen as overkill, since it also gives him more than plenty of headroom to do signal processing to make the sound clearer before sending it through to a computer by the USB audio device descriptor.

Once the components are chosen and the board designed, [Andy] goes into detail explaining the firmware he wrote for the STM32 to translate the PCM samples from the microphone’s I²S interface into a format better suited for the computer. He also describes how it then processes the audio, applying a graphic equalizer to reduce noise and then ST’s own Smart Volume Control filter, which works more like a compressor than a simple amplitude multiplication.

Finally, all files for the project, including board gerbers and the STM32 firmware are available at the bottom of his post, and to boot, a video demonstrating the project which you can check here after the break. [Andy]’s choice of microcontroller for this project is no surprise to us, given he’s already made his own development board for the STM32 G0 series. But if this digital microphone project is a bit too modern for you, why not try your hand at building a ribbon microphone instead?

Continue reading “DIY USB Microphone Seems Overkill; Is Surprisingly In-Depth”

Raspberry Pi RP2040: Hands-On Experiences From An STM32 Perspective

The release of the Raspberry Pi Foundation’s Raspberry Pi Pico board with RP2040 microcontroller has made big waves these past months in the maker community. Many have demonstrated how especially the two Programmable I/O (PIO) state machine peripherals can be used to create DVI video generators and other digital peripherals.

Alongside this excitement, it raises the question of whether any of this will cause any major upheaval for those of us using STM32, SAM and other Cortex-M based MCUs. Would the RP2040 perhaps be a valid option for some of our projects? With the RP2040 being a dual Cortex-M0+ processor MCU, it seems only fair to put it toe to toe with the offerings from one of the current heavyweights in the 32-bit ARM MCU space: ST Microelectronics.

Did the Raspberry Pi Foundation pipsqueak manage to show ST’s engineers how it’s done, or should the former revisit some of their assumptions? And just how hard is it going to be to port low-level code from STM32 to RP2040? Continue reading “Raspberry Pi RP2040: Hands-On Experiences From An STM32 Perspective”

3D Printer Control Board Packs A Raspberry Pi Compute Module 4

Traditionally, 3D printer control boards have used simplistic 8-bit microcontrollers to command the stepper drivers and ultimately move the machine where it needs to go. Newer boards have switched over to 32-bit microcontrollers, but they’re still relatively limited computationally. Because of this, a Raspberry Pi running OctoPrint is usually used to provide more complex features such as remote management and live video.

Looking to combine these different devices into a single all-in-one board, [pkElectronics] developed the Sigmoid S7P. With an STM32 microcontroller, TMC2209 stepper drivers, a Raspberry Pi Compute Module 4, and plenty of room for expansion, it promises to be a drop-in upgrade for essentially any 3D printer running on an open source firmware that could be ported over.

An earlier concept for the Sigmoid

According to [pkElectronics], the idea for the Sigmoid had been floating around for several years, but never got off the ground due to the difficulties in dealing with the SO-DIMM interface used by previous iterations of the Compute Module. But with the switch to smaller and denser connector for the CM4, the board finally started to take shape.

Whether you just used it as a convenient way to integrate OctoPrint into your printer, or want to get into something more advanced like Klipper, the Sigmoid S7P looks like a very exciting project. [pkElectronics] says they are considering producing the board commercially if there’s interest, so if you want one of these for your own custom 3D printer build, let them know.

Bare-Metal STM32: Please Mind The Interrupt Event

Interruptions aren’t just a staple of our daily lives. They’re also crucial for making computer systems work as well as they do, as they allow for a system to immediately respond to an event. While on desktop computers these interrupts are less prominent than back when we still had to manually set the IRQ for a new piece of hardware using toggle switches on an ISA card, IRQs along with DMA (direct memory access) transfers are still what makes a system appear zippy to a user if used properly.

On microcontroller systems like the STM32, interrupts are even more important, as this is what allows an MCU to respond in hard real-time to an (external) event. Especially in something like an industrial process or in a modern car, there are many events that simply cannot be processed whenever the processor gets around to polling a register. Beyond this, interrupts along with interrupt handlers provide for a convenient way to respond to both external and internal events.

In this article we will take a look at what it takes to set up interrupt handlers on GPIO inputs, using a practical example involving a rotary incremental encoder.

Continue reading “Bare-Metal STM32: Please Mind The Interrupt Event”

Your Plants Can Take Care Of Themselves Now

One of [Sasa]’s life goals is to be able to sit back in his home and watch as robots perform all of his work for him. In order to work towards this goal, he has decided to start with some home automation which will take care of all of his house plants for him. This project is built from the ground up, too, and is the first part of a series of videos which will outline the construction of a complete, open-source plant care machine.

The first video starts with the sensors for the plants. [Sasa] decided to go with a completely custom module based on the STM32 microcontroller since commercial offerings had poor communications designs and other flaws. The small board is designed to be placed in the soil, and has sensors for soil moisture as well as other sensors for amount of light available and the ambient temperature. The improvements over the commercial modules include communication over I2C, allowing a large number of modules to communicate over a minimum of wires and be arranged in any way needed.

For this build everything is open-source and available on [Sasa]’s GitHub page, including PCB layouts and code for the microcontrollers. We’re looking forward to the rest of the videos where he plans to lay out the central unit for handling all of these sensors, and a custom dashboard for controlling them as well. Perhaps there will also be an option for adding a way to physically listen to the plants communicate their needs as well.

Continue reading “Your Plants Can Take Care Of Themselves Now”

Reliable Frequency Reference From GPS

GPS technology is a marvel of the modern world. Not only can we reliably locate positions on the planet with remarkable accuracy and relatively inexpensive hardware, but plenty of non-location-based features of the technology are available for other uses as well. GPS can be used for things like time servers, since the satellites require precise timing in order to triangulate a position, and as a result they can also be used for things like this incredibly accurate frequency reference.

This project is what’s known as a GPSDO, or GPS-disciplined oscillator. Typically they use a normal oscillator, like a crystal, and improve its accuracy by pairing it with the timing signal from a GPS satellite. This one is a standalone model built by [Szabolcs Szigeti] who based the build around an STM32 board. The goal of the project was purely educational, as GPSDOs of various types are widely available, but [Szabolcs] was able to build exactly what he wanted into this one including a custom power supply, simple standalone UI, and no distribution amplifier.

The build goes into a good bit of detail on the design and operation of the device, and all of the PCB schematics and source code are available on the projects GitHub page if you want to build your own. There are plenty of other projects out there that make use of GPS-based time for its high accuracy, too, like this one which ties a GPS time standard directly to a Raspberry Pi.