The sensor hub in all its glory, sensor itself on top, standing on 3D-printed feet, and the PCB on the bottom

Hacker-Friendly And Elegant Air Quality Sensor Hub

Ever wanted an indoor environment sensor that’s dead simple yet a complete package? That’s the anotter-sensor-hub project from [Jana Marie], designed for the Sensirion SEN05x series sensors, with a SEN055 sensor shown in the picture above. Given such a sensor, you can measure VOCs and NOCs (Volatile and Non-Volatile Organic Compounds), as well as PM1, PM2.5, PM4 and PM10 particulate matter indices, with temperature and humidity sensing thrown in for good measure. Fully open and coupled with 3D printable stand files, this alone makes for an air quality hub fit for a hacker’s desk. That’s not all, however — this board’s elegant extensibility is a good match for the sensor’s impressive capabilities!

The PCB itself might look simple, it’s simply an ESP32 and some supporting circuitry required. But you’ll notice there’s also a trove of connector footprints for different interfaces; whatever else you might want to add to your sensor hub, whether it connects through I2C, SPI or PWM, you can! As usual, the sensor itself is the most expensive part of such a project — the boards themselves are around $5 USD apiece fully assembled, but one sensor-included hub will set you back roughly $42 USD. That said, it’s a great value for the price, and the trove of sensing data you can get might just more than pay for itself in quality-of-life improvements you make. Of course, everything is open-source and comes as a complete packages for you to start using. The firmware, KiCad files, 3D holder and even Grafana dashboard files can be found on GitHub.

Such air quality sensor platforms have been getting more and more popular, and hackers have been paying attention. Having a full open-source package like this at our disposal is amazing. If you’re looking for a cheaper “baby’s first air quality sensor”, drop by your local IKEA — there’s a way less featureful but quite cheap sensor that you can equip with an ESP8266, perhaps, even on a custom PCB.

All About USB-C: Replying Low-Level PD

Last time, we configured the FUSB302 to receive USB PD messages, and successfully received a “capability advertisement” message from a USB-C PSU. Now we crack the PD specification open, parse the message, and then craft a reply that makes the PSU give us the highest voltage available.

How did the buffer contents look, again?

>>> b
b'\xe0\xa1a,\x91\x01\x08,\xd1\x02\x00\x13\xc1\x03\x00\xdc\xb0\x04\x00\xa5@\x06\x00<!\xdc\xc0H\xc6\xe7\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

The zeroes at the end might look non-significant, and they indeed are not with 99.99% certainty – that said, don’t just discard the entire tail end; one of the bytes in the beginning encodes the length of the message. We’ll read those bytes first, and then read only exactly as much as we need, making sure we aren’t reading two messages and interpreting it as one, and that we’re not discarding zeroes that are part of the message.

Today, we will write code that parses messages right after reading them from the FIFO buffer – however, keep this message handy for reference, still; and if you don’t have the hardware, you can use it to try your hand at decoding nevertheless. If you wanna jump in, you can find today’s full code here!

Continue reading “All About USB-C: Replying Low-Level PD”

All About USB-C: Talking Low-Level PD

In this USB-C series, we’ve covered quite a bit of USB-C – things that are well known, things that should beĀ  better known, and a couple things that just appeared online for the first time. We’ve covered almost everything in some depth except USB Power Delivery. I’ve described the process a bit in the “Power” article, but that was mostly about how to use PD by simply buying the right solution. However, that’s not enough for a hacker. Let’s see if we can make our own PD trigger board. Continue reading “All About USB-C: Talking Low-Level PD”

Screenshot of KiCad 7 feature that lets you overlay a PCB bitmap image and draw traces over it, being used for board reverse-engineering purposes

KiCad 7.0.0 Is Here, Brings Trove Of Improvements

Yesterday, the KiCad team has released KiCad 7.0.0 – a surprise for those of us who have only gotten used to the wonders of KiCad 6, and it’s undoubtedly a welcome one! Some of these features, you might’ve seen mentioned in the KiCad 2022 end-of-year recap, and now, we get to play with them in a more stable configuration. There’s a trove of features and fixes for all levels of KiCad users, beginners, hobbyists and professionals alike – let’s start with some that everyone can appreciate! Continue reading “KiCad 7.0.0 Is Here, Brings Trove Of Improvements”

High-contrast pictures described on the article, put onto a wall beside a crib

High-Contrast Images For Hacker Family Harmonics

There’s a new addition to the Adafruit family, and it’s not a microcontroller board as you’d expect – however, we will still find plenty to learn from. On the Adafruit blog, [Phillip Torrone] shares a set of high-contrast images with us; the idea for such images is that they’re more appealing for a child during the first few months of its life, and not just that – they can support a kid’s development, too. The idea behind high-contrast images is twofold. During the first few months of life, a baby’s visual systems are only taking shape, and are nowhere near being advanced – so, sources of easily discernible and varied visual input can help it develop, as well as, perhaps, aid in holding attention.

The second part is – they look nice in their own way, and one would hope that a baby can appreciate them in the same way parents do. The images are quite varied, with some being somewhat electronics-themed (including an Adafruit logo, of course) and many being fairly neutral, which has to be an upside for us hackers when it comes to the spouse acceptance factor. For any of us interested, there are downloadable PDFs and

In a way, these are just like AprilTags – aiming to be helpful in development of visual algorithms. With such a family, we can’t wait to see what comes next – computer engineering books? Baby monitors with machine learning? Sleep-data-driven knit blankets? No matter what’s in store for us, we hope that for the Adafruit family, this journey will be smooth sailing.

Picture of a DualShock 4 controller PCB, with two joysticks on the sides

Challenging A Broken DualShock 4 Controller To A Duel

A broken PlayStation controller would normally be a bummer, and if the issue is losing calibration that’s stored in a non-documented format, you might as well bin it. For [Al] of [Al’s blog], however, it’s a challenge, turning into a four-part story – so far. The first installment was published January 1st this year, and seeing the pure enthusiasm [Al] has reverse-engineering the DualShock 4 controller, you might guess that this is a New Year’s gift from someone who knows [Al] very well. The list of problems with the joystick is numerous, to begin with – it’s easier to list all the things that work properly, and it isn’t many of them. Perhaps, the firmware problem is is the most interesting one to start with. Continue reading “Challenging A Broken DualShock 4 Controller To A Duel”

Screenshot of Wireshark, showing that source and destination port for ArtNet packets are the same

ArtNet Not Going Through? Your Switch Might Be Protecting You

Cool technology often comes at a cost, and it’s not always that this cost is justified. For instance, [Rainfay] tells us about how the the ArtNet protocol’s odd design choices are causing incompatibility with certain Ethernet switches. ArtNet is a protocol for lighting control over DMX-512 – simply put, it allows you to blink a whole ton of LEDs, even literally. Unlike DMX-512 which can use different physical mediums, ArtNet uses Ethernet, taking form of the usual kind of network packets – and it does seem to do a great job about that, if it weren’t for this one thing.

For some reason, ArtNet connections are required to use the same destination and source port – unlike the usual network traffic, where the destination port is protocol-dependent and the source port is randomized. This behaviour violates RFCs, and not just in an abstract manner – such behaviour is indicative of certain kinds of attacks, that switches on the smart side are able and are supposed to prevent. As a result, ArtNet traffic actually triggers some protections on switches at the fancier end, specifically, so-called BLAT protection.

In short, if your ArtNet stream is mysteriously not going through and your switch is on the fancier side, [Rainfay] says you might need to disable some security mechanisms. Sadly, as she points out, this problem isn’t even a direct consequence of some inherent property of ArtNet, but merely a consequence of a bizarre design choice. Once you’re done disabling protections, however, do check out some ArtNet projects for inspiration – it’s a genuinely useful protocol supported in a ton of fancy software, and it might be that you want to use it in the firmware of your RGB strip controller board!