$25 WiFi Webcam from China – I am livin’ on the edge!

Rock on – what could possibly go wrong with cheapest-possible piece of equipment that is designed to capture both sound and video, is made in China and costs about 25 USD, and comes with real internet connectivity – you know: cloud backends and all.

So, I went off to dig some more blood from my nose. I bought one – no, I bought three Xiaomi Xiaoyi Ants web cameras, and went to see what’s inside and how (in)secure they are. Continue reading

My Air Purifier is in the Internet – should I be worried?

Typical IoT system level components

Typical IoT system level components

It is 2016 and everything is connected to internet in a way or another, what’s the big fuzz about privacy and security of these little devices? After all we have made consumer gadgets since ages, and one in a while malfunction or vulnerability gets discovered and shotly it gets fixed, right?

By looking closely at some of my connected devices, I found interesting stuff that has gone largely unnoticed. And more interesting is to come, for reasons I am about to explain.

Continue reading

Smart’ifying a wall clock with – time to wake up! [part 2]

Panic, get up, or stay in bed and continue sleep?

Panic? Get up? Or stay in bed and continue sleep?

Ok, so sandwiching a clock on clock wasn’t the greatest idea there – what would be the next marginally smarter idea? Adding wake up alarm! In the vast sea of alarm implementations there isn’t much to be celebrated in terms of unique and clever design. So going for the context around it: How about hose dark moments in the middle of night when one suddenly wakes up wondering if the alarm goes off at the next moment.

Continue reading

Turning a wall clock to smart one, what does it take? – Part 1


Wall clock with electronics in back. Below motion sensor without casing.

Ikea wall clock with electronics installed to backside. Below motion sensor without casing.

It is 2016 and we are about to have flying cars soon, it would about the time to start turning old non-smart objects to smart ones. How would one make a wall clock smarter, say by an epsilon?

For long I have played with the idea on turning the most mundane objects into something completely different – so when I saw  ¢ 50 Ikea RUSCH wall clock, made from semi-transparent plastic I knew it would be an opportunity to add some oddball functionality there. Ikea tuning it is, lets start putting the steroids in.

Continue reading

Fireworks in xmas tree, why not!

Here in KL fireworks are almost dai^H^H^H nightly fun at this time of year (new year, Chinese new year, birthday party, wedding – you name it, there is probably good reason to fire off a shell or two).

In the spirit of New Year and those tons of fireworks exploding out, and in the spirit of  over-the-air updates and in the spirit of reusing existing designs – I coded rudimentary fireworks emulation onto my xmas tree LED strip. Continue reading

Programmable led pixels – which model should I choose?

It is tempting to think dream led pixels strips as one-dimensional displays, but when the pixel count of the display is limited, and individual dots are far apart, and surrounding brightness can be anything between zero lux and full on daylight, number of factors come to play in design – even if the design is just a bit-more-advanced x-mas tree decoration. Here are some of my experiences when playing around with these.

I have been using TM1809 and APA 102c programmable “dream” LED strips and while they are easy to use in principle, there has been number of issues to troubleshoot. Below some findings:

APA 102C led strip

Led strip with questionable solder joint quality

  • 12Volt is bad. Programmable 12V led strips seem to drive individual pixels with current-limiting resistors, thus never getting good efficiency: 12 volt source voltage dropped to 3..4 volt for LED results roughly 60%..75% power dissipation into resistor. See, there goes that five start energy star rating.
  • 5 Volt led strips have issues too. On greater lengths (I have a four meter with 240 LED pixels) these seem to suffer from voltage drop when pushed to highest brightness levels. The drop is easy to detect with multimeter, my APA strip voltage got down to three volts on the far end, resulting nasty flickering for last meter or so. One can overcome this by installing extra cables to support 5V and ground from both ends of the strip.
  • Since I am cheap and I like to source the cheapest option from China, the quality is what it is; the picture above tells story shows mass-produced connector with, eh, less than stellar success in soldering work. (Yes, it still works, but how long? Reliably? Also, we run about 10 Amps over those connectors for brighter moments – any additional resistance adds to rather uncontrolled heat dissipation there)
  • APA102c != APA102c. Identical LED pixel type does not guarantee color channel order: I have a four meter and a one meter string, both with APA 102c pixels. Magically the red and the blue channels have been swapped between those strips. This presents some challenges if one were to design a controller that can drive number of different led strips. (No, this is not a wiring issue, it is in the chip itself.)
  • Five volt led strips hog quite nice amount of current – I drive 240 pixel strip with 50W/10A power supply – and it is barely enough for it. Now, take another look at those connectors in the pic above.
  • When thinking about brightness levels, eight bits per colour is ok, but since we are talking about led strips and not displays, their intended use environment may present additional challenges:
    • at the darkest levels human eye can easily detect the difference between lowest levels 0,1,2,3 – brightness change is visible as a jump
    • at these darkest levels, LED strip color reproduction becomes, quantized – again, human eye can see this as a color change. Note that in dark human eye will detect colors from these strips as they still are bright enough if they are the only light source.
    • currently common libraries (aka FastLED) that support these strips on Arduino or Raspberry PI do not support global brightness setting (on APA 102c it would add 5 bits to brightness control)
  • For smooth animation, the same applies as for screens: 24 Hz will do, 30 Hz is better, 70Hz is even better. Above that I cannot see any difference.
  • RGB led strips do not provide high CRI light. Yes, one can set the color freely, but it will not result in great quality light for color rendering. Not today at least. Maybe when RGBW strips become more common.

Continue reading