Fancy Stargate style lamp

Love this project.

I build a second neo pixel ring light for video purpose and took a crappy IPad produced video: Ring Light - kurze Zusammenbauanleitung - YouTube

So I anyone wants to see the lights in action or wants a preview of the build in web interface, here is your chance. :smiley: It is the same software I wrote for my giant clock.

The web interface as well as the rest of the software is not finished yet, but we get there!

You will also see my magic mid print layer shift fix result. I was in the room, when the printer lost a step in x and y, while driving over the supports. It was after being 7 hours already done, so I went all in. I paused the process and moved the tool head manually using
OctoPrint and continued the print. The result was spot on and 7 hours of print and filament saved.

Do you need Octoprint to accomplish that?

Well, at first you need perfect timing. I did not restart the print. I just noticed that the current layer was off.

Usually you cannot move the print head in marlin, when paused. It only accepts commands coming via serial mid print. The marlin menu items for moving the print head are not available.

This only worked because I was in the room, when it happened. After a few layers it would have looked awful with a big chunk of plastic moved to one direction. I had nothing to loose and the print was already 7 hours in. I guesstimated the offset and moved the print head by 0.2mm in both x and y direction. In the end I was lucky and spot on.

This is nothing you can do when a print is high-up or even finished. When a print is finished you would need to know where in the g-code the skip happened and you would need to remove the material over that area without breaking the part from the print bed.

So I was just lucky and this probably only happens in one of a few hundred thousand prints. :smiley:

The only thing I took from here is to use z-hop when printing a large chunk of tree support.

That leads me to another question about z hop. Why isn’t it on all the time?

That 1 is simple: it isn’t advantageous all the time. Sometimes, prints work better without it. My deck umbrella & soap pump bottle holders are 2 recent examples. They don’t have any jumps from 1 location to another – they’re printed in a continuous motion, only changing Z height for each layer. Z Hop doesn’t provide any benefit & could actually cause problems.

I figured it must be that but thought I would ask anyways. Thank you.

Z-hop requires perfect retraction settings. If retraction is wrong you get stringing like hell or, and this is worse, under extrusion every time the print head starts printing again.

I uploaded the version 1.17 of my RingLamp source code: [ATTACH]n9836[/ATTACH]

[ATTACH=JSON]{“data-align”:“none”,“data-size”:“medium”,“data-attachmentid”:9839}[/ATTACH] [ATTACH=JSON]{“data-align”:“none”,“data-size”:“medium”,“data-attachmentid”:9837}[/ATTACH] [ATTACH=JSON]{“data-align”:“none”,“data-size”:“medium”,“data-attachmentid”:9838}[/ATTACH] [ATTACH=JSON]{“data-align”:“none”,“data-size”:“medium”,“data-attachmentid”:9840}[/ATTACH]
Have Fun!

RingLightSource_1.17.zip (45.6 KB)

Just for my edification and to display my ignorance what language is the source code written in? I can’t remember code displayed like this.

It is C++, well mostly C as it is my favorite programming language.

I can remember before the age of Paypal I was actually actively trying to make a perfect online shopping experience. Once upon a time I was determined to learn everything there was to know about building the perfect web site. In spite of the fact I had lived many years off the grid and without a computer I kept buying computer magazines all the time. My friends thought I was crazy. I actually built many web sites in those days of dial up modems etc. I was terribly interested in coding as I always am. I tried in those days to perfect my skills in all the languages that you needed in those days to maintain a decent site. These were pioneer days.
And then I had a brain problem from my lightning injury and ended up starting almost from zero. So bear with me when I ask stupid questions please.

At least I have an excuse for being stupid.

It seems I wasn’t clear enough about the language.

The little ESP32 computer is programmed in C/C++. The web interface you see in the images is created in HTML/CSS/Javascript, but dynamically generated by the C/C++ code, which is also acting as a web server. So if someone accesses the IP of the computer the web page gets generated on demand.

It basically works like any router or access point. You type in the lamps IP address, log in and, change settings and save them to flash.

The ESP32 has two cores. One is handling the animations of the LED ring and the second one handles everything tied to the network. WiFi, server, webpage, software update, credentials and stuff. This way timing is not an issue when processing network data and the animations run with steady 120 frames per second.

I hope this wasn’t to complex.

You explained it well. Thank you.

I have never learned anything about C++ except that it has to be compiled at run time (whatever that means.) I did a lot of work on web sites so I am familiar with Cascading style sheets and HTML and Javascript. Of course I would have to learn it all over again because it has been a few years since I had to leave that.

According to the history on Wikipedia, C++ is a regular compiled language. It has evolved significantly over time. 1 of its main features is object orientation, but it has evolved to include other major programming concepts.

I’ve never been a huge fan of object orientation, mostly because, IMHO, it’s difficult to document, but I get the attraction. Being able to plug so-called black boxes together to create a larger program, without having to actually understand what’s going on inside the black boxes, is obviously attractive. It also mimics what’s happening with electronics. Today, people take electronic components & plug them together to create devices that would have been difficult to impossible for average people to create decades ago. The ESP32 @Geit used is 1 example. (BTW, I think using the 2 cores for separate purposes is pretty clever).

The ability of such a cheap tiny device to actually be a web server is testing my imagination, so I understand. It is a router. And it can make coffee in the morning at exactly 9 o’clock it would seem. I have actually been reading and rereading what this mysterious ESP32 does and found out I could buy one from Amazon for $10.79 can. with free shipping. Then all I would have to do is figure out what I wanted to do with it.
Please forgive my naivety about electronic devices, but I am very curious what neat little things could be done with this device? Are there wifi receivers that could activate something such as switch your coffee pot? An on off switch for the electricity run by your little doo-dad.
What about automating an aquaponics system?

Smart Plug YUTRON WiFi Plugs Timer Switch WiFi Outlets Works with Siri ,Alexa,Google Home, No Hub Required, White, 4 Pack
I suppose it could run these?

An ESP32 has about 20 pins that can be connected to external hardware like mains switches. I have several devices that contain ESP8266, which are basically the same, just less powerful and react to alexa and co.

In fact I wanted to check what is required to add Alexa functionality to my GiantClock and the RingLight. I am sure there is a plugin available and I just need a few lines of code to be able to control my light using my voice.

Also be aware that the real ESP32 board is tiny and hard to solder.

[ATTACH=JSON]{“data-align”:“none”,“data-size”:“medium”,“data-attachmentid”:9870}[/ATTACH]

This is the board I used. It is 55x30mm and provides an USB port as well as two buttons for reset and control. BUT this is a developer board for easy developing. The real ESP32 board is the one in the little red frame. It is soldered onto the developer board. The plain ESP32 is just the module within the red square and it is tiny. It is 25x18mm and contains everything you need. Once programmed you can use the plain ESP32 module itself by just adding power to it. Of course you need at least one additional line to control something.

As you can see the connector pins along the top and bottom side are bigger. The developer board can be plugged into a bread board with all the comforts of plugging wires to connect it. The small stand alone module requires soldering.