STATUS: On Pause
First Shipped Date: 9/2020

Nimolights LED Jewelry

Jewelry hasn’t really changed for thousands of years. Isn’t it about time it changed from shiny rocks and polished metal?

I designed and built my own twist on Jewelry with the Nimolights Heart, a custom artistically designed PCB with reactive lights and patterns, that cue to the environment around it. It was 100% engineered by me from idea to sold units to happy customers.

Electrical Design

The heart is powered by a ATMega32u4. This is supplemented by a IS32FL3738 IC driver and LM324 op amp for microphone amplification. This drives 16 RGB LEDs based off custom firmware that can analyze and detect the beats of music in the surrounding area. The heart is powered by a 350mAh Li-Po battery with onboard charging, protection, and monitoring. Controls are done through an on-board UI + the two center mounted buttons. The whole assembly measures only 35mm on the diagonal.

Layout was done in Eagle, with the case being completed in Fusion 360. The PCBs were manufactured by JLCPCB and further completed in my home garage.

The LED driver challenge

Finding suitable LEDs & drivers for this project was a difficult problem. The requirements mean that board space was extremely limited, and therefore required small, efficient packaging.

The first approach was to use WS2812 based LEDs. While these seemed like a good first step, they posed two major problems.

  • They had a static current reference of 20mA, while for direct view applications, a reference of 1-2mA is better. This lowered my resolution from 8 bits/channel to 3.

  • The static non-lit power consumption of 1mA per LED was significant on the small battery on the unit

Many other options were considered. Bit-banging the LEDs with the IC was considered, but adding the correct switching transistors would take up too much board space, along with the 8-bit MCU not having enough processing power for both FFT audio analysis AND bit-banged LED Matrix.

Other LED drivers were considered, but the major problem found is matrix drivers tended to have no brightness control, or provided multiple channels but not multiplexed outputs. However, I finally ran across the IS32FL3738. This chip has matrixing, 10 bit per LED, and can be addressed entirely over I2C. Additionally, it also has global current set in both software and hardware, making it a perfect, small, power efficient option for my project.