Photo of an automated plant watering system attached to four potted plants.

Automation Allows You To Leaf Your Plants Alone

The greatest threat to a potted plant stems from its owner’s forgetfulness, but [Sasa Karanovic] has created an automation system that will keep his plants from getting too thirsty. Over the past year [Sasa] has been documenting an elegant system for monitoring and watering plants which has now blossomed into a fully automated solution.

If you haven’t seen the earlier stages of the project, they’re definitely worth checking out. The short version is that [Sasa] has developed a watering system that uses I2C to communicate with soil moisture, temperature, and light sensors as well as to control solenoids that allow for individual plants to be watered as needed. An ESP32 serves as a bridge, allowing for the sensors to be read and the water to be dispensed via an HTTP interface.

In this final part, [Sasa] integrates his watering system into a home automation system. He uses a MySQL database to store logs of sensor data and watering activity, and n8n to automate measurement and watering. If something isn’t quite right, the system will even send him a Telegram notification that something is amiss.

If you think automation might be the best way to save your plants from a slow death, [Sasa] has kindly shared his excellent work on GitHub. Even if you don’t have a green thumb, this is still a great example of how to develop a home automation solution from scratch. If you’re more interested in television than gardening, check out [Sasa]’s approach to replacing a remote control with a web interface!

Continue reading “Automation Allows You To Leaf Your Plants Alone”

Photo of Pixel Pump Pick & Place Machine

Pixel Pump Pick & Place Positions Parts Precisely

You’ve finally decided to take the plunge and build a board with surface-mount parts. After carefully dispensing the solder paste with a syringe, it’s time to place the parts. You take up your trusty tweezers and reach to grab a SOIC-14 logic IC—only there’s not a great way to grab it. The IC is too long to grab one way and has leads obstructing the other. You work around the leads, drop the IC into place, and then pick up an 0402 resistor. You gently set the resistor into your perfectly dispensed solder paste, pull the tweezers away, and the resistor has stuck to your slightly magnetic tweezers. [Robin Reiter] realized that hobbyists and small manufacturers needed a better way to assemble their surface-mount designs, so he’s building the Pixel Pump Pick & Place, an open-source vacuum assembly tool.

Vacuum assembly tools use a blunt-tipped needle and suction to pick up surface-mount parts. Pressing an attached foot pedal disables the vacuum, allowing the part to be gently released. [Robin] thought to include a few thoughtful features to make the Pixel Pump even more useful. It has adjustable suction presets and a self-cleaning feature to blow out any solder paste you accidentally suck up. Most of the non-electronic parts are 3D printed, and [Robin] intends to make the entire design open-source.

[Robin] has a long history of designing tools to make surface-mount assembly easier—you may remember his 3D-printed magazines for dispensing surface-mount parts. If you want to take your PCB assembly setup to the next level, check out the PnPAssist, which shines a laser crosshair right where you should put each part.

Screenshot of debugging the Wokwi Arduino simulator

Digging Into An ATtiny Simulator Bug With GDB

Being able to track down a bug in a mountain of source code is a skill in its own right, and it’s a hard skill to learn from a book or online tutorial. Besides the trial-by-fire of learning while debugging your own project, the next best thing is to observe someone else’s process. [Uri Shaked] has given us a great opportunity to brush up on our debugging skills, as he demonstrates how to track down and squish a bug in the Wokwi Arduino simulator.

A user was kind enough to report the bug and include the offending Arduino sketch. [Uri]’s first step was to reduce the sketch to the smallest possible program that would still produce the bug.

Once a minimal program had been produced, it was time to check whether the problem was in one of the Arduino libraries or in the Wokwi simulator. [Uri] compiled the sketch, loaded it onto a ATtiny85, and compared the behavior of the simulator and the real thing. It turns out the code ran just fine on a physical ATtiny, so the problem must have been in the Arduino simulator itself.

To track down the bug in the simulator, [Uri] decided to break out the big gun—GDB. What follows is an excellent demonstration of how to use GDB to isolate a problem by examining the source code and using breakpoints and print statements. In the end, [Uri] managed to isolate the problem to a mis-placed bit in the simulation of the timer/counter interrupt flag register.

If you’d like to see more of [Uri]’s debugging prowess, check out his dive into an ATtiny’s write protection and configuration fuses. If you’ve been wowed by the power of GDB and want to learn more, check out this quick tutorial!

Continue reading “Digging Into An ATtiny Simulator Bug With GDB”

Using A Laser To Blast Away A Bayer Array

A Bayer array, or Bayer filter, is what lets a digital camera take color photos. It’s an array of tiny color filters that sit on top of a camera’s CCD. The filter makes it so that each sub-pixel in the image sensor only sees red, green, or blue light. The Bayer filter is an elegant tool that gives us color digital photos, but what would you do if you wanted to remove one?

[Les Wright] has devised a way to remove the Bayer filter from the Raspberry Pi Camera. Along with filtering red, green, and blue light for their respective sensors, Bayer filters also greatly reduce the amount of UV and IR light that make it to the CCD sensor. [Les] uses the Raspberry Pi camera in his Pi-based Spectrometer, and he wants to remove the Bayer filter to improve and expand its sensitivity.

Of course, [Les] isn’t the first one to want to do this. Some have succeeded in physically scratching the filter off of the CCD, but because the Pi Camera has vital circuitry around the outside of the sensor, scratching the filter off would likely destroy the circuitry. Others have stripped it off using chemical means, so [Les] gave this a go and destroyed no small number of cameras in his attempt to strip the filter off with solvents like DMSO, brake fluid, and industrial paint stripper.

A look at the CCD, halfway through the process.

Inspired by techniques used in industry, [Les] eventually tried to use a several-kW nitrogen laser to burn off the filter (which seems appropriate given his experience with lasers). He built a rig that raster scans the laser across the sensor using stepper motors to drive micrometer bases. A USB microscope was included to allow progress to be monitored, and you can see a change in the sensor’s appearance as the filter is removed.

After blasting off the Bayer filter, [Les] plugged his improved camera into his home-built spectrometer and pointed it outside. The new camera gives the spectrometer much more uniform sensitivity and allows [Les] to see further into the IR and UV bands. The spectrometer can even detect the Fraunhofer lines—subtle dips in the sun’s spectrum from absorption by molecules in the atmosphere.

This is incredible for a DIY setup and instrument, and we can’t wait to see what [Les] does next to improve his measurements. If your spectrometry needs are more mass than visual, take a look at this home-built mass spectrometer. Home spectrometers aren’t just for examining light spectra—they can also be used to judge the ripeness of fruit!

Continue reading “Using A Laser To Blast Away A Bayer Array”

Tales From The Global Chip Shortage: Smoothieboard

The semiconductor shortage sparked by the pandemic is showing no signs of slowing down. Although auto manufacturers were some of the first affected, the shortage has now spread and is impacting all sorts of projects, including the Smoothieboard open-source CNC controllers.

[Chris Cecil] walks through the production woes they’ve had over the last few months. It began this spring with a batch of the V1.1 boards. The prices of some of their chips started jumping, and then they were informed that the microcontroller that serves as the brains of the Smoothieboard was only available for five times the old price. In the end, they placed a smaller order, and V1.1 Smoothieboards will likely be scarce until the microcontroller’s price returns to normal.

Getting V2 of the boards into production has been even more difficult. Just weeks before the final prototype, it was discovered that the LPC4330 microcontroller the V2 was built around was also sold out worldwide. With the shortage in mind, a hole was left in the layout of the final version of V2 so that they could finish the design around whatever microcontroller they were able to get. In the end, they were able to lock down a supply of STM32H745 controllers, which are actually substantially more capable than the original device.

If you’re interested in the origins of the chip shortage, this article from January is a good place to start. This isn’t the first time parts shortages have wreaked havoc on the world of electronics—does anyone remember the global resistor shortage of ’18?

Breaking Down The USB Keyboard Interface With Old-Fashioned Pen And Paper

What is better for gaming, old PS/2 style keyboards, or modern USB devices? [Ben Eater] sets out to answer this question, but along the way he ends up breaking down the entire USB keyboard interface.

It turns out that PS/2 and USB are very, very different. A PS/2 keyboard sends your keystroke every time you press a key, as long as it has power. A USB keyboard is more polite, it won’t send your keystrokes to the PC until it asks for them.

To help us make sense of USB’s more complicated transactions, [Ben] prints out the oscilloscope trace of a USB exchange between a PC and keyboard and deciphers it using just a pen and the USB specification. We were surprised to see that USB D+ and D- lines are not just a differential pair but also have more complicated signaling behavior. To investigate how USB handles multi-key rollover, [Ben] even borrowed a fancy oscilloscope that automatically decodes the USB data packets.

It turns out that newer isn’t always better—the cheap low-speed USB keyboard [Ben] tested is much slower than his trusty PS/2 model, and even a much nicer keyboard that uses the faster full-speed USB protocol is still only just about as fast as PS/2.

If you’d like to delve deeper into keyboard protocols, check out [Ben]’s guide to the PS/2 keyboard interface, complete with a breadboarded hardware decoder. If these keyboards have too many keys for your taste, you might consider this USB Morse code keyboard. Thanks to Peter Martin for the Tip!

Air Extractor Automatically Gives AC A Boost

Portable air conditioning units are a great way to cool off a space during the hot summer months, but they require some place to blow the heat they’ve removed from your room. [VincentMakes] got a portable AC unit for his home, but he found that the place he wanted to put it was too far from the only window he could use to dump the hot air. Having too long of a duct on the hot air exhaust increases the back pressure on the fan which could cause it to prematurely fail, so [Vincent] used an extractor fan to automatically give is AC unit’s exhaust a boost on its way to the window.

Because his AC can operate at low, medium, and high speeds, he chose an extractor fan that also supported multiple speeds and took care to match the airflow of the AC and extractor fan to avoid putting too much strain on either fan. He designed a system to automatically set the speed of the boosting fan to match that of the AC using a Hall effect current sensor to measure the AC unit’s power draw and an Arduino Nano for control. A custom PCB interfaces the Nano to the Hall Sensor and control relays, and we have to applaud [Vincent] for keeping the +5V DC and 230V AC far, far away from each other. In addition to this fine electronics work, [Vincent] also built an enclosure for the fan controller that allows the fan to be mounted on top at an angle, which helps avoid having hard bends in the exhaust duct.

If this has you thinking about smart air conditioners to keep cool this summer, check out this ESP8266-powered smart AC system, or this Raspberry Pi-based system that controls both AC and blinds!