• Stars
    star
    497
  • Rank 88,652 (Top 2 %)
  • Language
  • License
    Other
  • Created almost 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A 3D printed, GitHub infused, smart light

Octolamp

A 3D printable, GitHub infused, wifi enabled smart light powered by WLED and compatible with Home Assistant

Picture of a fully constructed Octolamp

Components

To build the Octolamp, you'll need access to a 3D printer, soldering iron and the following components:

  • Black PLA Filament (for the base) - [US] [UK]
  • White PLA Filament (for the inner body and reflector) - [US] [UK]
  • WS2812B LED Strip, 60 LED's per meter, just under 2m worth but usually sold in spools of 5m - [US] [UK]
  • ESP8266 NodeMCU D1 Mini Module (or similar clone or other WLED compatible device) - [US] [UK]
  • USB lead (Micro or Type-C depending on the model of D1 Mini you have purchased, usually Micro-USB) [US] [UK]

If you are looking for recommended links to buy these somewhere locally then please see Purchasing Links below.

Assuming you already have the PLA filament and a spare USB lead, the construction cost for the electrical components works out at <$20 per lamp.

Instructions

The lamp itself consists of 3 printable parts, printed in regular PLA on a printer with greater than a 210mmx210mm print bed (the popular Ender 3 or Prusa i3 should both work, this was tested with an Ender 3 S1)

All models are designed to be printed without supports. I used a 10% gyroid infill.

The 3 components are:

When constructed they snap-fit together as shown.

Cross-section of the Octolamp

When you have assembled your 3d printed parts you can begin contruction.

Component parts for the Octolamp build

Step 1 - Install WLED

First, you'll want to flash your D1 Mini device with WLED and then configure it to connect to your WiFi network. the WLED project is an open source firmware for many embedded devices that allow you to create beatiful LED displays and network them together. There are controller apps for iOS and Android and it is also fully compatible with the popular Home Assistant software meaning that once built you can control your lamp from anywhere and build any number of automations so that it flashes when someone stars your GitHub repo, changes color when your build breaks or switches on and off with your office lights.

Note that for large LED displays you can need significant power, you'll also likely want a controller that has a level shifter to send a reliable 5v signal for data to your LED strip. However as we're only powering 100 or so LED's you can get away with pulling the power and data directly from the pins of an inexpensive D1 Mini.

The quickest and easiest way to install WLED on your D1 mini is to plug it into the USB socket on your computer and then visit the WLED web installer site.

Flash the device with the latest build of WLED, configure the device to connect to your WiFi network and then you are ready to go.

Step 2 - Stick the LED Strip to the White Inner

The White Inner component acts as the guide for the flexible LED strip as well as the diffuser for the lights which are stuck to the side. You only need the +5v, G and Data pins so snip off any additional power lines that might come with your strip or solder on new wires to the strip if yours didn't come with pre-soldered wires. Remove the plastic from the adhesive backing and start sticking at the bottom middle, looping around the outside then over to the inside and finally around the central part. Cut at the marked lines when you are finally done. Depending on your LED strip, the central part may require some additional adhesive, such as PLA friendly glue, to remain in place due to the reverse bend going from Octocat's body to head.

Path of the LED strip

When finished you should have around 100 LED's in your lamp, but it's worth counting at this point as you'll need the exact number later (depending how I did my sticking I've used anything from 99 to 105)

Step 3 - Add the Reflector

Next, feed the wires through the hole in the reflector. If you are using plugs to connect your strip and controller then you can do this at any time but if you are soldering the strip directly to the controller then you need to do it now.

Step 4 - Solder LED Strip to D1 Mini

Rather than use plugs, I solder my strip directly to my D1 Mini, but you can use connectors if you wish. Connect the +5v and G lines to the corresponding pins on the D1 Mini and the data line to D4 (just above the +5v and G pins).

The wires from the LED strip soldered to the D1 Mini

Step 5 - Assemble

Next up, feed your USB lead through the back of the black outer body and connect it to your D1 Mini. Place the D1 Mini in the small inlaid portion in the center of the lamp. Then drop in the relfector and finally place the white inner onto it, and snap fit into the black outer body. This should force the white reflector down which then also secures the electronics in place. Power up your device and at this point about half of your LED's should be glowing orange.

Step 6 - Connect to WLED and configure display

All the rest of the configuration is configuring WLED for your device. Connect using the IP address from installation time, then go to Config, LED Preferences and update the Length of the LED strip to be the number of LED's you installed in Step 2 (for me that's typically between 99 - 105). When you press Save the rest of your LED's should be glowing orange.

You can now configure your light display with the amazing flexibility of WLED. Once you have your favorite setting, store it as a preset and then go back to the LED Preferences and scroll down to Defaults where you can set which preset it displayed when the lamp is powered on (i.e. Preset 1 instead of the default orange in Preset 0)

Step 7 - Share your makes!

That's it! You are now done but I'd love to see pictures of your built and assembled lamps. Feel free to share pictures of them in discussions here or on social media and tag me on them [email protected] on Mastodon or @martinwoodward on Twitter and other socials

Notes

I've tried to make the model super flexible so it includes ways to mount the lamp to a wall and different USB cable routing options.

The copyright for the invertocat logo belongs to GitHub. For acceptable use of that logo see the GitHub logo usage guidelines.

Purchasing Links

The fun part of this project is making it yourself, the lamp isn't officially sold pre-assembled (and the license is non-commercial use only so they shouldn't be doing that). But if you want to buy the components to make this them then the following components have been used and recommended by community members. Note some of these links make use of affiliate programs but they should always be linking to components the community trust.

United States

United Kingdom

Singapore

Australia

Link to these instructions

QR Code to these instructions

Instructions: https://github.com/martinwoodward/octolamp

More Repositories

1

smart-xmas

Star this repo to add some sparkle to my tree
198
star
2

DasDeployer

Raspberry Pi powered manual release approval gate for Azure Pipelines. Mit viele blinkenlighten
Python
92
star
3

PumpkinPi

Spooky build status indicator
Python
74
star
4

devrel

Come help people learn how to GitHub ✨
46
star
5

csharpworkshop

Workshop content on Learning C# on Linux using .NET Core
C#
33
star
6

covid-19-projects

List for tracking covid-19 related projects
23
star
7

dotnetweb

Mona+Dotnetbot-say
C#
17
star
8

rpi-cluster

Brief instructions about the Raspberry Pi Cluster you might see in my background on calls
14
star
9

OssAwesomenessTabulator

Azure Webjob that pulls together stats about OSS Activity into a couple of handy json files.
C#
7
star
10

pideploy

Python
6
star
11

hotkeys

Personal fork of Adafruit Macropad hotkeys example
Python
4
star
12

octo64

Commodore 64 in GitHub Pages powered by Vice.js
JavaScript
4
star
13

readme

A collection of tips for creating a good ReadMe
4
star
14

hello64

A Hello World from my childhood
Assembly
3
star
15

trinkey

Trinkey examples
Python
2
star
16

snake0417

Snake demo
JavaScript
2
star
17

rizeltest

This is test repo
2
star
18

sparklepi

JavaScript
2
star
19

beastmatch

Swift
1
star
20

gitsync

Example repo showing how to mirror your GitHub repo with another service (in this example Azure Repos)
1
star
21

pourlaurent

1
star
22

martin_public

1
star
23

dotfiles

Personal dotfiles
Shell
1
star
24

GitHub-Hackathons

Tips, Tricks, and Resources for your hackathons.
1
star
25

prime

Simple .NET Core app
C#
1
star
26

snake

Basic snake game
JavaScript
1
star
27

martinwoodward

Martin Woodward's Profile
1
star
28

repo2

C#
1
star
29

PieLight

Quick hacky test code for my raspberry pi powered build light
Python
1
star
30

actions

Example action workflows
1
star
31

martin.social

My social links
JavaScript
1
star
32

github-life

A GitHub themed, Conway's game of life simulator.
HTML
1
star