December 2016

252627282930 31

Style Credit

Expand Cut Tags

No cut tags
Sunday, November 2nd, 2014 06:52 pm
As I'm working on my Sprinklers/Sensors controller, it is becoming more and more of a SmartHome controller. I just need to add X10 interface to it, to enable interaction with light controls and switches I have around the house to get the controller to that new role.

Unfortunately Arduino hardware is becoming more and more of a problem due to limited resources. RAM is ridiculously low (8K on Mega), CPU is pretty slow (so even parsing few hundreds kilobytes file becomes a challenge), and even simple tasks like driving decent 5"-7" display becomes pretty hard due to overhead.

I was thinking for some time about ways to overcome this problem. On one hand I like (and need) Arduino extensibility, but system resources are just too low. Arduino Due is an option, it is faster and has more RAM - but difference is not really that big. Rasberry Pi or Beagle Bone is another good option - they have way more power, although there are some problems with using sensors and devices that require precise timing - code running under high-level OS like Linux just cannot control IO with good precision.

I also looked at an interesting project called X86Duino, which is an Arduino-compatible board that uses X86 CPU running at 300 MHz. It does not use Linux or another high-level OS, and can provide precise timing, also system resources are way higher than what you could dream of in Arduino land - >20x CPU perf of Arduino, and many orders of magnitude more RAM. Sounds tempting.

But thinking more about it I came across another possible option - I can use a small, inexpensive Tablet as the controller, with Arduino board as the IO extender. There are readily available Android and even Windows mini-tablets with 7" screen for under $100, and this buys you complete system - powerful CPU (at least as good as RPi), 7" touch screen, WiFi, Bluetooth, Audio, camera/sensors and even built-in backup battery. If you simply try to assemble comparable set (e.g. RPi + 7" touch screen + WiFi/Bluetooth) - it will already cost you more than $100.
And to cover IO needs I can use a standard, inexpensive Arduino board - it can handle sensors and devices communication (essentially as an intelligent IO hub), and it can connect to the main device using readily available USB.

Both Android and Windows are good options, Android tablets are slightly cheaper (due to lower specs) but Windows devices have more power. I'm considering both options, but it appears to be a good way to move to a more powerful controller.