Satellite 2202

Last updated: 23 Sept, 2023

I’ve been playing with idea of making tiny free-formed circuit sculptures in the shape of a satellite for a while now. I build a few LED blinker before, but this time I wanted to build something that did more than just blink an LED. I recently came across a small low power LCD module with a built-in driver and controller that you talk to over I2C. Most LCD modules out there are bare LCDs without the driver or controller, and the ones that have built-in drivers are too big. This particular one seems to be a perfect odd duck. So I decided to build a “satellite” around it using an ATtiny85 microcontroller and SHT31 sensor. The four solar cells connected in parallel charge a small super capacitor. The MCU periodically wakes up, takes a sensor measurement, displays the reading, and then goes to sleep to conserve power.

(*some of the product links include Amazon affiliate links)

Parts list

Schematic diagram

The schematic is simple. The LCD and the sensor are connected over I2C. No pull up resistors are required since the sensor board already has them built-in, but if yours doesn’t, then you’ll have to connect them separately. The four solar cells are connected in parallel and they charge the supercapacitor via a reverse polarity blocking diode. You can use any small diode with low forward voltage drop.

I would recommend first assembling the circuit on a breadboard. For programming the ATtiny85, I used the Pololu’s AVR programmer. You can also use an Arduino UNO to act as a programmer instead.

Construction

(I failed to take photos during the build process with my DSLR, so here are some crappy photos from my phone instead.)

I used a small proto PCB to align the joints. Once I soldered the sensor, I removed the proto PCB and replaced it with the LCD module.

 

The device can also directly power up from the solar cells alone in direct sunlight.

Firmware

The code requires a couple of device libraries. An SHT31 sensor library from Adafruit and a CDM4101 library for the LCD. Ensure that you have them installed via the Arduino IDE.