My board design files are on Google Drive. Everything went very smoothly with the fabrication on this. I was very confused for a while because my code seemed to be working, but the LEDs were so dim that I had to look at the letter through a rolled-up sheet of paper to see them. Then I realized I had typo'd pinMode(pin, HIGH) and pinMode(pin, LOW) instead of digitalWrite(...). Somehow this caused enough of a change in the pin output to fire the transistor, but with the LEDs very dim - maybe it was effectively doing something like a very low-pulse-width PWM.

My sensor is just a potentiometer. It controls the blink rate of the LEDs, from 5x per second up to a 4 second period (2 seconds on, 2 seconds off). Only downside is that since I'm using delay(), the blink rate won't update until the next cycle.

Demonstrating the letter.

Below is my code for the ATTiny:

const int TRANSISTOR_PIN = 0; // PWM, ATTiny Pin 5
const int POT_PIN = A2; // ATTiny Pin 3
const int MIN_BLINK_TIME_MS = 100;
int blinkTime;

void setup() {
  pinMode(POT_PIN, INPUT);

void loop() {
  // Range: 100ms -> 100 + 1024*2 = 2168ms = ~2 seconds
  blinkTime = MIN_BLINK_TIME_MS + 2 * analogRead(POT_PIN);
  digitalWrite(TRANSISTOR_PIN, HIGH);
  digitalWrite(TRANSISTOR_PIN, LOW);