Browsing posts in: EagleDecorations

Connecting the Eagle Controller to a WS2812 strip

To connect the Eagle controller is simple; there are only three connections to make:

image

The following connections need to be made:

  1. The black wire from the strip (or globe) should be connected to the ground pin
  2. The red wire should be connected to the 5V (5 volt) pin
  3. The data wire (purple from the globe) should be connected to the RX pin.

This will be enough for the controller to work if powered through the USB mini jack. This is fine for testing, but has several drawbacks:

  1. Each WS2812 LED will draw 60 mA of current if it is full bright. There are 33 on the globe, which means that full white will draw 60 * 33 = 1980 mA = 2 amps. The USB connector will not be able to supply that amount of power, so you will not get full brightness.
  2. The Eagle controller has a diode so that external power will not power the USB jack. This means that instead of getting 5V to the strip, you get about 4.4 volts to the strip. It also means that there is a lot of power being dissipated by that diode, and it will get *hot*; hot enough that it or other components on the board may fail.

To avoid these issues and enable full brightness, you need an external 5V power supply that can supply sufficient current. It can be connected to the 5 volt and ground connections.

Using the connection board

Newer versions of the controller ship with a small adapter board to make these connections easier.

image

We will start by soldering a male header to the series of pins on the right side of the controller with the pins sticking out underneath. You can get by with just using pins for 5V, ground, and RX, but there’s no harm in soldering all 8 pins. Here’s how I do it:

image

Place the header pins into a solderless breadboard with the appropriate spacing. We put pins in on both sides so the board will sit level, but we are only going to be soldering the ones at the top.

This step may have been done for testing purposes.

It should look like this when the pins are soldered:

image

Now, we need to solder a female header to the adapter board:

image

The header should stick out above the board in this orientation. To do the soldering, I balance the board on the female header and use the other strip of female header to hold the board level:

image

Solder all 8 pins across the top.

image

This is the controller with the male header and the adapter board with the female header. The male header simply plugs into the female header.

image

The wires to the LEDs are then connected to the upper 3 terminals on the adapter board, and the 5V power supply is connected to the lower two terminals.

Compact option

If the controller and the adapter are too thick, there is an option that is thinner:

image

In this option, the female header is omitted and the adapter board is soldered directly to the male header pins.

If you are really tight for space, you can solder the male header, remove the black plastic that separates the pins, and then slide the adapter board right next to the controller.




DLE (Globes of Fire) Part 5 – First Board!

When a new telescope is completed, one of the big milestones is known as “first light” – the first time that the telescope is used as it is intended.

Now that I am the proud owner of a reflow oven – a modified Black & Decker toaster oven fitted with Whizoo’s Controleo3 reflow oven kit – and I have a new version of my boards back – it’s time to think about how to build these things in a reasonable way.

The plan is obviously to switch from hand-soldering to reflow. To do that, the first thing that I need is a stencil that I can use to apply solder paste. Thankfully, kicad makes this really easy; you can modify the solder pad tolerances in the program, and the pcb editor can write out SVG files (thanks to Rheingold Heavy for this post). If I have the pads, I can easily cut a stencil, likely out of mylar because it’s a bit cheaper than Kapton is.

That would give me a way to do a single board if I could hand-align it closely enough. But each of the globes needs 12 of these boards, and hand-aligning is a pain.

So… what my real plan to do is to cut holes in a piece of hardboard (or cardboard) that will hold a number of the boards (12 or 24) and then a matching stencil. If I align the stencil one, then I can put solder paste on all of them.

IMG_9223

So, here’s the test. I took the pad svg and the board edge svg, joined them in inkscape and then cut them on the glowforge. As you can see, the boards fit perfectly into the cutouts, and the solder pads cut correctly. Next I will need to do a better version of this, with different colors for the pads and board edge so I can turn them off and off when laser cutting. I’m also probably going to cut holes for some posts that will give me registration between the board with cutouts and the stencil.

You can also see the first two boards that ran through the reflow oven. I did the solder paste without a stencil and I also skipped baking the LEDs since they showed up in a factory-sealed pack and have been sealed since, and both boards came out fine. And a 10 minute reflow cycle is a lot quicker than hand soldering…


Provisioning and using the ESP8266 controller

The ESP8266 controller is preprogrammed with the ability to connect to your local wifi network and be remotely controlled.

Provisioning

Initially, the controller does not know how to connect to your network, so it sets up its own network. Here is how to set it up:

  • Using your phone/laptop/tablet, connect to the network named something like “EDP_1002170403”. The password is the same as name of the node.
  • One you are connected, open up your browser and navigate to http://192.168.4.1. That should enter the provisioning page. Enter the SSID of your wireless network and the password, and click on connect.
  • If everything is working correctly, that will connect to your wireless network. You can find out the IP address by looking for the “EDP_…” name in your browser’s host table, or you can hook the esp board up to your computer and watch what it writes out the serial port when it boots.
  • Controlling via http

    You can control the LEDs via http by sending textual commands to controller. The format looks like this:

    http://[ip address]/message?content=[message]

    Controlling vs UDP

    If you want realtime control of the LEDs, http may have too much latency, which may result in unexpected pauses. The controller also supports communicating through UDP.

    To connect via UDP, use the same IP address and pass commands directly. The internal controller code runs at 100 Hz; if you drive with UDP messages at 60 Hz everything should just work great.

    Supported Messages

    All commands are three letters long, followed by another character (the examples use an underscore (“_”), followed by numeric parameters.

    The following commands are supported:

    Alternate

    Alternate between two colors.

    alt_r1,g1,b1,r2,g2,b2,time

    r1, g1, b1: the rgb values (0,255) for the first color (0-255)
    r2, b2, b2: the rgb values for the second color
    time: the time for each color

    Example: alt_0,100,000,000,000,000,250


    Blend to

    Blend from the current color to a specified color

    rgb_r,g,b,time

    r, g, b: the rgb values (0,255) for the new color
    time: the time for the blend

    Example: rgb_255,255,255,1000

    Color rotate

    Rotate through a bunch of different colors.

    col_speed,brightness

    speed: the speed of the rotate
    brightness: The brightness of the colors

    Example: col_5000,200

    Flash decay

    fdc_decay,min,max

    decay: the speed of the decay
    min: the minimum pause before the next flash
    max: the maximum pause before the next flash

    Example: fdcx250,10,500

    Full control

    Full control is used to control the color of all the leds directly.

    ind_chunk,data-bytes

    chunk: the number of leds to apply each set of data to.
    data-bytes: colors express as two digit HEX values in the format RRGGBB

    Example: ind_011,000044440000004400

    Each color in data-bytes will apply to 11 LEDs. The data-bytes contain 3 color values:

    000044 – a blue value
    440000 – a red value
    000044 – a green value

    Save

    Save the current animation so that it will use that animation when rebooting.

    s

    Set pixel count

    Set the number of pixels that the controller will use. This will result in a reboot of the controller.

    n_count

    count: the number of pixels

    Example: n_13