A raspberry pi-based digital readout above an old lathe

Roll Your Own DRO With An Added Twist

When using a manual machine tool such as a lathe or milling machine, there can be a lot of pressure to read the position and feed the axes at the correct rate. That’s why modern machines typically have some form of digital read-out (DRO). [Stefano Bertelli] has created a simple Raspberry Pi based DRO with an additional twist, that of a linked motor drive output.

A view of the custom RS485 interfaced DRO readout and motor controller
Realtime encoder position reading and motor control are best done with a dedicated microcontroller, ideally with a proper RTOS.

The axes that need to be monitored should be mechanically attached to a position sensor like a linear encoder or a rotary type. Using a linear sensor with a linear axis instead of a rotary encoder on the downstream dial is better. For the readout unit, [Stefano] used a WaveShare 7-inch touchscreen module with a Raspberry Pi 3 for the UI of the readout unit. The Pi has a custom-designed HAT, that performs power conditioning and provides a robust RS485 interface. Connected via that RS485 link is another custom PCB based on an STM32F411 with a few supporting power supplies and interfacing components. The job of this board is to interface to the position encoders, reading positioning pulses using interrupts. There is an additional stepper motor drive courtesy of a ULN2003 Darlington driver to allow the control of a single motorised axis. An additional motor driver module is required, which should be no surprise since driving a milling machine axis will require a fairly beefy motor. This GitHub repo contains the FreeRTOS-based firmware for this board. This motor drive has the ability to be connected to a measuring axis in a programmable way, enabling one axis to be adjusted to follow or jump in controlled steps with another. This feature can significantly simplify certain types of machining operations, as [Stefano] elaborates in the video.

Lastly, the Raspberry Pi runs a simple Python application with Kivy for the GUI. As [Stefano] explains in the video below, this makes debugging and modification quite simple.

Adding DROs to an older machine is an obvious but valuable hack. Here’s another way to do it. If that’s too much work, then you could just hack a digital readout calliper in there.

Continue reading “Roll Your Own DRO With An Added Twist”

Eliminate That Pesky Power-Only USB Cable With This Cable Tester

Ever wondered why your Arduino wasn’t programming, only to find out that the cable doesn’t have any data conductors? Worry not, [Spencer Maroukis] has got you covered with the USB Sleuth Cable Tester!

The cable tester is a beautiful black circular PCB, with USB ports of nearly every type on the edges. It works partially through passive detection with LEDs and otherwise through active detection of things like the orientation with an STM32 powered by a coin cell battery. But it gets better: There are disconnect switches and exposed pads to test some of the conductors with a digital multimeter!

It may not be necessary for all of us, but one thing is clear: When you needed a good USB cable, you wished you had this to actually test it. The design is open-source too, which is definitely nice if you want one for yourself.

Meanwhile this isn’t the first USB cable tester we’ve seen here.

Simulating A Time-Keeping Radio Signal

As far as timekeeping goes, there’s nothing more accurate and precise than an atomic clock. Unfortunately, we can’t all have blocks of cesium in our basements, so various agencies around the world have maintained radio stations which, combined with an on-site atomic clock, send out timekeeping signals over the air. In the United States, this is the WWVB station located in Colorado which is generally receivable anywhere in the US but can be hard to hear on the East Coast. That’s why [JonMackey], who lives in northern New Hampshire, built this WWVB simulator.

Normally, clocks built to synchronize with the WWVB station include a small radio antenna to receive the 60 kHz signal and the 1-bit-per-second data transmission which is then decoded and used to update the time shown on the clock. Most of these clocks have internal (but much less precise) timekeeping circuitry to keep themselves going if they lose this signal, but [JonMackey] can go several days without his clocks hearing it. To make up for that he built a small transmitter that generates the proper timekeeping code for his clocks. The system is based on an STM32 which receives its time from GPS and broadcasts it on the correct frequency so that these clocks can get updates.

The small radio transmitter is built using one of the pins on the STM32 using PWM to get its frequency exactly at 60 kHz, which then can have the data modulated onto it. The radiating area is much less than a meter, so this isn’t likely to upset any neighbors, NIST, or the FCC, and the clocks need to be right beside it to update. Part of the reason why range is so limited is that very low frequency (VLF) radios typically require enormous antennas to be useful, so if you want to listen to more than timekeeping standards you’ll need a little bit of gear.

Jana showing the board in action, with a magnetic probe attached to it

Add The Analog Toolkit To Your…Toolkit

Analog acquisition tools are super helpful whenever you want to run an experiment, test out a theory, or improve upon your code, and you won’t realize how much you always needed one up until you’re facing a situation where it’s the only tool for the task. Well, here’s a design you might just want to add to your next PCB order — the STM32G4 Analog Toolkit from [Jana Marie].

The recommended STM32G431 is a wonderful tool for the task in particular. For a start, this board exposes nine 16-bit ADC inputs, with six of them capable of differential mode and three of them having the PGA (Programmable Gain Amplifier) feature. There’s also two 12-bit DAC pins, two timer outputs, three GPIOs, and UART with I2C for the dessert. As a bonus, it can work as a PD trigger, giving you higher-than-5V voltages out of USB-C for any experiments of yours.

The board requires only a few components, most of them easily solderable, with the STM32 in the TQFP32 package. The BOM is optimized, the GPIOs are used up to the max, with two spare GPIOs driving an RGB LED using a witty control scheme. There’s even a place to clip an alligator clip, in case that’s what your probing hardware wants! All in all, this is a carefully crafted design certainly worth having on hand.

Make sure to get a few of these made before you find yourself desperately needing one! That said, there’s always a backup option, the venerable ATtiny85.

Open Source DC UPS Keeps The Low-Voltage Gear Going

We all like to keep our network gear running during a power outage — trouble is, your standard consumer-grade uninterruptible power supply (UPS) tends to be overkill for routers and such. Their outlet strips built quickly get crowded with wall-warts, and why bother converting from DC to AC only to convert back again?

This common conundrum is the inspiration for [Walker]’s DC UPS design, which has some interesting features. First off, the design is open source, which of course invites tinkering and repurposing. The UPS is built for a 12 volt supply and load, but that obviously can be changed to suit your needs. The battery bank is a 4S3P design using 18650 cells, and that could be customized as well. There’s an ideal diode controller that prevents DC from back-feeding into the supply when the lights go out, and a really interesting synchronous buck-boost converter in place of the power management chip you’d normally see in a UPS. The converter chip takes a PWM signal from an RP2040; there’s also an ESP32 onboard for web server and UI duties as well as an STM32 to run the BMS. The video below discusses the design and shows a little of the build.

We’ve seen a spate of DC UPS designs lately, some more elaborate than others. This one has quite a few interesting chips that most of us don’t normally deal with, and it’s nice to see how they’re used in a practical design.

Continue reading “Open Source DC UPS Keeps The Low-Voltage Gear Going”

Don’t Look Up, Or You’ll See The Time From This VFD Projection Clock

Ceiling clocks were a bit of a thing back in the days when clock radios were a fixture of nightstands. The idea was to project the time onto the ceiling so you’d only have to roll over onto your back and open your eyes to check the time, instead of potentially disturbing your slumber by craning your neck around to see the front of the clock.

As we recall, what sounded like a good idea was iffy in practice, with low-end optics and either weak incandescent bulbs or blazing LEDs. This nifty VFD projection clock by [Thomas Shupfs] seeks to fix those problems, and from the look of it does a pretty good job. It takes advantage of something else that fell out of favor with consumers — analog photography — by tapping into the ready supply of unwanted lenses. He paired that up with an IVL2-7/5 vacuum fluorescent display inside a 3D printed case with a cone-shaped extension to hold the lens at the right distance above the display. [Thomas] says that the STM32 software only supports JSON-RPC over USB at this time, and includes a couple of Python programs with examples of how to set the time and check the accuracy of the clock.

[Thomas] compares the clock head-to-head against his old LED projection clock, as seen in the featured image above; we flipped it for a better idea of what it would look like from bed. We’ve got to say the soft blue glow of the VFD would be a lot more pleasant to wake up to than the bright red LED projection. But this soft white projection clock is nice too.

Thanks to [skymab] for the tip.

STM32 Offers Performance Gains For DIY Oscilloscope

There’s no shortage of cheap digital oscilloscopes available today from the usual online retailers, but that doesn’t mean the appeal of building your own has gone away — especially when we have access to powerful microcontrollers that make it easier than ever to spin up custom gear. [mircemk] is using one of those microcontrollers to build an improved, pocket-sized oscilloscope.

The microcontroller he’s chosen is the STM32F103C8T6, part of the 32-bit STM family which has tremendous performance compared to common 8-bit microcontrollers for only a marginally increased cost. Paired with a small 3-inch TFT color display, it has enough functions to cover plenty of use cases, capable of measuring both AC and DC signals, freezing a signal for analysis, and operating at an impressive 500 kHz at a cost of only around $15. The display also outputs a fairly comprehensive analysis of the incoming signal as well, with the small scope capable of measuring up to 6.6 V on its input.

This isn’t [mircemk]’s first oscilloscope, either. His previous versions have used Arduinos, generally only running around 50 kHz. With the STM32 microcontroller the sampling frequency is an order of magnitude higher at 500 kHz. While that’s not going to beat the latest four-channel scope from Tektronix or Rigol, it’s not bad for the form factor and cost and would be an effective scope in plenty of applications. If all you have on hand is an 8-bit microcontroller, though, we have seen some interesting scopes built with them in the past.