Close

Schematic Design

A project log for NoiseCard

Solar-powered decibel measuring business card

clyneClyne 06/09/2024 at 12:380 Comments

I used KiCAD to design the PCB; it's awesome and open-source. There are only a few circuits needed for this PCB, I'll walk through them in sections:

The microcontroller (+ programming port)

I chose to stick with the STM32G031 microcontroller (MCU) since it gave the best balance of physical size, performance, and efficiency that I could find. Faster Cortex-M4 MCUs were larger and required more design effort, while other MCUs of the same physical size either lacked the I2S peripheral that the microphone required or consumed more power while idle or sleeping.

For a programming connection, I went the popular Tag-Connect header. It helps keep the design flat since it doesn't require any components, and it's easy for me to use since I'm familiar with it.

The Tag-Connect header (J1) is comparable in size to a few 0603's.

Microphone

I'm using the SPH0645LM4H-B. The decibel measuring code I have is optimized for this specific part, so this choice is fixed.

Solar and power regulation

I searched Digikey for small solar cells, and came across the manufacturer ANYSOLAR Ltd that has a wide variety of options. Given that the prototype can run on just 3-4mW of power, I thought the KXOB25-02X8F-TR would be a good choice. It provides up to 26.3mW with a size of just 23mm x 8mm.

Rather than using a bulky battery, I opted for a couple of large capacitors to provide some energy storage. The super-capacitors I could find were large and cylindrical, so I instead went with some 330uF tantalum polymer capacitors. They're SMD size, and two in parallel would provide a couple of seconds of run-time when fully charged -- enough time to take a decibel measurement, though I'd later learn that this was a bit short on desirable "battery" life.

Finally, I selected a fixed 1.8V switching regulator to power the MCU and mic. The LM3670 only needs three external components and runs at >90% efficiency while consuming just 15uA for itself.

The power circuit

To control the system's power, I attached an on-off switch to the regulator's enable (EN) pin.

Decibel indication

This choice was probably the most difficult, with many trade-offs between complexity, user friendliness, and power consumption.

Option 1 was a shift register to control LEDs where each LED indicated a certain decibel threshold. This would have been used with the 8-pin MCU from the prototype. I tossed this idea since I would want more than 8 LEDs, and the added cost of shift registers vs. just an MCU with more IO pins wasn't worth it.

Option 2 was a monochrome LCD from Display Visions, a German company that makes low-power and easy-to-use displays. They have options that can run a a fraction of a milliamp, and having graphics on the business card would be awesome. I ended up turning this down though: their displays are expensive (i.e. I wanted this PCB to be inexpensive), they only come in through-hole packages, and they would add to both hardware and software design complexity.

So, I went with option three: 10 LEDs and an increase to a 20-pin MCU package. I found a bright and low-power LED option, the APTD1608LSURCK. It's an 0603 package that can achieve maximum brightness at just 2mA. Blinking these for a fraction of a second would reduce their power consumption even further without compromising on brightness.

With a forward voltage of 1.75V, I can also run them at a solid 1mA using a 51 Ohm resistor -- keeping the BOM short by reusing a value from the microphone circuit.

10 LEDs and the microphone use up nearly all of the MCU's pins

Discussions