Hello again my fellow readers. Today I present you an older project of mine, the LED coffee table.

The most difficult part was building the table itself and putting all the leds manually in their place.

The schematic and working principle is really simple. It would be very impractical to connect each led by itself, we would need 64 pins from the microcontroller. A better way to do this is by making a matrix, like in the picture below.

We now only need 16 pins, which is easy to manage. The problem in this configuration is that we cannot light up 2 or more specific LEDs without turning on some that we don’t want. If we turn on led[2,2] and led[3,3] we will also light up led[3,4] and led[4,3]. To do this, we only light up one row at a time very fast, so the human eye cannot see. This is how modern display works. In this project, we first ground the first row, turn on the led we want, then go to the next row, until the 8th, then repeat.

For this project I chose to use the very popular ATMEGA328, but we won’t hook up the matrix directly, we will use a shift register. Shift registers are really smart things, u send bits to them, either 1 or 0, which will turn on or off pins of the shift registers. For example if we send 00000001 it will ground every pin, except the last one, who will be VCC (usually 5v). I won’t go into further detail, you can read about them on wikipedia. Below is the schematic I used.

ATTENTION! I need to make one small remark. In my design, I also hooked the shift register outputs to transistors, and then to LEDs, because they cannot sink a lot of current. This design is ok if you want to use a chinese 8×8 led matrix, but for other LEDs please use transistors. (NPN for row / PNP for columns, but u can change this in software).

Here is the arduino sketch (it has some commentary, ask if you need anything, you can change the update speed for example) and this is a html page that generates patterns (credits to this instructable, I just modify it to be 8×8 ), just save it as patterns.h and put it in the same folder as the sketch.

Someone on reddit asked me “The LEDs seem far away from the top.. Is there a reason for that?”.

I didn’t use normal LEDs, but the ones with a flat top which have 100° viewing angle (normal LEDs have 30° if I recall correctly).

Then with a bit of clever math I calculated exactly how deep I will have to put the LEDs for a specific size of my table.

Let’s say we have a square of l = 5cm. The diagonal is l√2 (we need diagonal because we light up even the corners) and then we imagine a triangle like this, in the bottom is the LED (50° because it is only half). We apply tan(50) = 5√2/2 (only half, remember) / X . X is our height or how deep we have to put the LED and in this case is equal to aproximate 4,20.

Below is the video I made and some pictures. Enjoy!

PS. I know this is just very basic information, if you need any help, please ask in the comments below. I will try in the future to edit the code to read the pattern from a SD card or update it via wifi (ESP8266 🙂 )

I didn’t buy a kit, I don’t recommend you do, I sourced the parts from ebay/aliexpress/local. I’ll attach my BOM.

The printer is a Prusa i3 rework . Not the best design but well suited for a first printer. I’ll just post some pictures for now and present more details later.

Here it is, my BOM . It totals to about 350$, with 10$ for some miscellaneous parts I bought locally or had already sitting, like some files (tool), cables, etc. You could go waaay cheaper, just buy an acrylic frame (although I highly disagree of it!!!) and a cheap E3D v6 clone for like 8$, but just buy the real thing. I got the E3D V6 lite and had no problems (except a burnt heater cartridge). A good hotend is a must if you want to save yourself a big headache.

Printer Working – Click to open GIF

Finished item*

Some parts for the printer

Aluminium frame and E3D hot end

Almost finished

Back side

Wiring

Frontside

*Finished item may differ to the item the printer was working on in the gif

A sketch with a simple modified webserver for the ESP8266 AT firmware using an arduino. Most credits go to this guy, where i got the basics : http://rayshobby.net/?p=9734 .

What my sketch basically does you might ask?

Well, it first boots up as an AP (access point), you connect to it (just like you connect to your wifi, it should be named something like ESP-???) and access in your browser 192.168.4.1. Here you will see a very simple webpage where you enter the SSID and password of your wifi network, and then it connects to it. After this you can do all sort of things. In this sketch it just shows the same webpage again.

I did this to learn how to use forms with GET method to send and receive data (to fiddle with sensors, use it to turn LEDs on and off, etc).

I won’t post here the full code because i will upload the file and you can also find the simple webserv on rayshobby.

The function “get_data” is very simple and reads what comes out after the /get request. Ignore if it request the favicon.ico (very annoying, chrome sends a request for every refresh of the page – arrrhh), simple display the website if it’s a simple “/get” as if you are accessing the webserver, and if there is a question mark character store the data using the sort_data function. (if you input data and press connect, i will have to add to check if the strings are empty, or if it connects successfuly, this is just a basic sketch)

Please modify the port if u want (but you will have to access the ESP like 192.168.4.1:PORT) and the baud rate. You need to update firmware to be able to change baud rate. I use this one.

I will post a simple tutorial about how to simply turn a led ON or OFF soon but if you understand the code, it should be simple enough. Enjoy!

Hello again!
A year ago I decided to make a fully automatic green house, but, because of no free time, I eventually backed out.
Anyway, before getting out of this project I made a circuit that will activate a water pump, for aproximate 2 minutes, every 24 hours.

I combined the circuit from here and the 555 timer monostable circuit from wiki.

You can see the result here :

R8 – 3M will be the jumpper from a CD4060 output pin (in my PCB you can choose from 2-3) and 555 trigger (pin 2) .
To change the duration of the “on time” you will have to modify the R7 and capacitor value (100k and 1000uF in my version).
This is the equation from wikipedia, where t is in seconds, R is in ohms and C is in farads.
To modify the time of the CD4060 , you have this table :

It uses an TL074 (any quad op-amp will work) and TL071 (any mono op-amp like LM741 will work). Most resistors are in vertical position (this is my weakness) because i wanted to be as small as posible. Tranzistor can be any NPN, i used BC547 (fore more LEDs a more powerful one will be needed).

Outputs can be modified so the leds sit on the PCB (i will attach the files for Diptrace).

Here are both with dimensions (you will have to either ask me or figure out how to put the parts that aren’t noted from the schematic, because I was too exited to get this finished when i first made it).

I hope you enjoyed this first post and, as i already said, feel free to ask me any question here, or at my email mini_cezarus@yahoo.com