It’s been a while since I’ve posted something really geeky here, so let’s fix it! Been busy lately making an Android TV stick baseboard you see on the pic below. A lot of build details are just under the cut.
The thing I hated most about rPI and one of the reasons I never bought one is the dumb form-factor that actually happened to become somewhat a standard. Really? You can’t even put the damn thing into a proper enclosure! No matter how hard you try – it always looks bulky with connectors on all sides.
For my homebrew home automation stuff I normally use android TV sticks. They pack way more power, they are easy to boot off an SD with debian onboard, are dirt cheap and they are really small.
Allwinner A10 now has awesome support in linux mainline kernel, so proper updates aren’t even a problem. However TV sticks lack the GPIOs raspberry and other SBC’s have. They also sometimes need a proper enclosure.
In my case I needed wifi-connected TV sticks at about 4 sites in my house, switching and controlling different things. Time to roll up the sleeves, start kicad and lay out a proper board that would fit most of my uses.
The idea was dumb simple. I needed a USB hub, since TV sticks don’t have many USB ports included. I needed GPIOs, so I threw in an attiny2313 that occupied one of the HUB’s ports, I needed a few relays and I wanted to control the power of some of the ports. Since TV sticks have their power input and usb power connected you can just supply power for the stick via the USB host port. Finally I wanted this whole thing to work from a 12-24V power supply, so an on-board 3A DC-DC was a must.
The boards looked even nicer once they arrived:
Once assembled they were even more sexy:And finally they fit awesome into an anodized aluminum enclosure. Since putting the thing inside a metal enclosure will effectively kill the wireless signal I removed the PCB antennas from the TV-sticks and add those SMA pigtails. This normally gives the wireless signal a HUGE boost, since the antennas that are put into those TV sticks usually suck.
The tech specs are:
* On-board 3A DC-DC. You can power the whole thing with anything from 7 to 24 volts DC (Should’ve put a 5A one, but I’ve still got a bag of LM2596S in the closet)
* An FE1.1s 4 Port USB HUB
* An attiny2313, armed with vusb stack (it also occupies one of the ports of the hub. USB2GPIO, PWM, etc)
* 2 USB ports on the back, with power control over GPIO lines.
* One usb port on the front (with power always on)
* 3x Relays to switch whatever load you desire
* 100% arduino-free!
* Has a cute girl on the silkscreen (Thanks to Vemarish for her art, awesome as always).
* Fits a common anodized aluminum enclosure.
Normally, all android TV sticks are all 5V-powered and have all their usb port power wired directly connected to the barrel jack (or microusb socket). If you got what I want to say – yes, you can power these things (or at least those I own) from the USB host port. That saves quite a bit on the wires.
I picked attiny2313 as the bare minimum I’ve needed and I already think I’ve made way more out of the thing can provide. (I confess, I love it when it comes to doing something in very resource-constrained environment) The USB-to-GPIO firmware I’ve created features:
* Both input and output modes for all pins.
* Save/restore GPIO state to EEPROM and auto-apply on next power-on.
* Servo Control Mode for all 8 pins (Yes, you drive up to 8 servos with this hardware!)
And all that awesomeness occupies less than 2K of avr flash. Sounds cool? Go grab it on github, it’s all GPLv2-licensed! See branch iceshard-bb.
As for the art part – it was fully created by Vemarish. (I’m still a total n00b in digital art and won’t be posting any of my own drawings any time soon, if ever). She also shared two full-size colored versions of the girl you see on the silkscreen.
For those who prefer the light colored one:
Something out there tells me, that if this post ends up on HaD – most will come here for the girl, and not the PCB or the code.