My holiday project: Internet-controlled lights using different flavors of Arduino.

Brace yourselves, Christmas is coming.

Even though it’s been a while since I’ve last felt the magic atmosphere of Christmas, this year I want to celebrate it in a quite different way.

In the era of IoT, I’m building some internet-controllable lights using all the Arduinos I have.

The main point is that there will be different “light clients” which are Arduino that can be connected to different light sources such as analog LED strips, 3/10W RGB LEDs (my custom driver might come in handy!) and WS2812B addressable strips (provided that they come in time).

Each of these devices can receive commands over TCP. This means that they can be controlled from any internet-connected device. I am building a “controller box” which will have some analog controls and can choose which light client to connect to, and control it through user input (sticks and pots, yay!) and will also host a web interface.

Available lighting modes will be: manual mode, fade mode (single or from one color to another), random mode, strobe mode. I might add some photo/sound sensors if I have time.

Continue reading

Worklog #2: Handling joystick input on Arduino and LinkIt ONE.

After expanding the LinkIt ONE and Arduino analog inputs, I had to find a proper way to handle user input. The easier and most convenient way was using an analog joystick, so I ordered one off AliExpress.

As I figured it will take way too much time to get here, I decided I’d open up my Xbox 360 controller and use its joysticks in the meanwhile.

 

Butchered 360 controller. Red = VCC, Violet = GND, Yellow = A0, Orange = A1.

Butchered 360 controller. Red = VCC, Violet = GND, Yellow = A0, Orange = A1.

Joysticks are made by joining two analog pots together (one for vertical movement, and one for horizontal) and a tactile button.

Continue reading

Building a 3-channel, high power RGB LED driver

Hey guys,

I built another board, which is a 3-channel (RGB) LED driver based on an inexpensive chipset called PT4115 (you can find them on eBay or Aliexpress).

The circuit is very simple and looks like Sparkfun’s PicoBuck. However, I used beefier components and a different chip. You may say it’s pretty much the same thing, but I made it to learn some more about PCB design.

Datasheet here. LED current is set through a sense resistor. The output current I is equal to 0.1/Rs. I wanted ~300mA for each channel so I chose a 0.33 ohm resistor. If you want 350mA, choose a 0.27ohm resistor.

Each channel can be controlled via PWM (you can solder male/female headers on the board), for example with an Arduino.

You can input up to 30V and control 3W/10W/20W LEDs.

The bare boards.

The PCBs.

Continue reading

A new board came in today: SeeedStudio’s LinkIt ONE!

A few days ago, Seeed Studio posted a contest in which 10 pieces of their newest board, the LinkIt ONE, would have been given away to makers who had a good idea on how to use them for an hobby project.

You can find more info about the board here, it’s basically a 32-bit MCU development board which has lots of connectivity options built-in (GPS, cellular, Wi-Fi, Bluetooth, Audio, SD card) and is compatibile with the Arduino IDE. It is based on the MT2502A microcontroller.

I immediately applied for the contest and a few days later they replied saying they liked my idea and they were kind enough to send me a LinkIt ONE.

I received the board today (fast shipping with FedEx!) and it’s very neat.

This is how the whole package looks like. The board is definitely well-made and feels solid.

 

Center: LinkIt ONE board. Left: Wi-Fi/BT, GSM and GPS antennas. Right: 1000mAh battery (included) and 2 Grove modules I needed (not included)

Center: LinkIt ONE board. Left: Wi-Fi/BT, GSM and GPS antennas. Right: 1000mAh battery (included) and 2 Grove modules I needed (not included). SD and SIM slots on the back.

 

The info sheet is included in the package: By quickly looking at it, the only complaint I have is the limited number of PWM outputs (2, might be solved with software PWM libraries) and analog inputs (3, can be increased using a demultiplexer) compared to Arduino.

However, the price (79$) is unbeatable considering all its connection options: separate Arduino shields would definitely have a much higher cost. Moreover, the MCU is a lot beefier than your average Atmega. Keep in mind that this board runs at 3.3V.

More info and photos after the jump!

Continue reading