Alex Wulff
Published © GPL3+

3D-Printed RGB Wallet

Stand out from the crowd with this unabashedly ostentatious excuse for a wallet.

BeginnerFull instructions provided3 hours3,080

Things used in this project

Hardware components

Microchip ATtiny85 - DIP
×1
Adafruit Neopixel Buttons
×3
DIP-8 Socket
×1
2-Pin JST Connector
×1
LiPo - 100 mAH
×1
Arduino UNO
Arduino UNO
Just needed for programming the ATtiny85
×1
Breadboard (generic)
Breadboard (generic)
Just needed for programming the ATtiny85
×1
Stranded-Core Wire
×1

Software apps and online services

Fusion
Autodesk Fusion

Hand tools and fabrication machines

Hot glue gun (generic)
Hot glue gun (generic)
Soldering iron (generic)
Soldering iron (generic)
3D Printer (generic)
3D Printer (generic)

Story

Read more

Custom parts and enclosures

Base

Middle

Cover

Fusion Archive

Upload this in your Fusion 360 Data Panel

Schematics

Circuits.io Breadboard Simulator

You can use this to test code before uploading it to the ATtiny

Code

Light-Up-Wallet

Arduino
//Alex Wulff - www.AlexWulff.com

//##################
//IMPORTANT NOTE - BURN THE BOOTLOADER TO THE ATTINY BEFORE UPLOADING THIS OTHERWISE IT WON'T WORK
//##################
#include <Adafruit_NeoPixel.h>

#define PIN            3
#define NUMPIXELS      3
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  // put your setup code here, to run once:
  pinMode(PIN, OUTPUT);
  strip.begin();
}

void loop() {
  rainbowCycle(20); 
}

void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else if(WheelPos < 170) {
    WheelPos -= 85;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  }
}

Credits

Alex Wulff

Alex Wulff

12 projects • 236 followers
I'm a maker and student at Harvard. I love Arduino, embedded systems, radio, 3D printing, and iOS development. www.AlexWulff.com

Comments