Android-based TV sticks should be in more projects. They are readily available and inexpensive. They have a lot of horsepower for the price, and they can even boot a mainline Linux kernel, unlike some single-board computers we know. They’re smaller than the Pi Zero, so they’ll fit almost anywhere.
The one thing they don’t have, though, is I/O. Sure, it’s got a USB port, but that’s just about it. [Necromant] considered these problems and created a carrier board that fixes all that.
- On-board 3A DC-DC. You can power the whole thing with anything from 7 to 24 volts DC
- A 4-Port USB hub
- An ATtiny 2313, connected to the hub via the V-USB stack
- 2 USB ports on the back, with power control via GPIO lines
- One USB port on the front (with power always on)
- 3 relays
- Fits a common anodized aluminum enclosure
The ATtiny code is on GitHub and allows for full I/O control, saving the state of the pins in EEPROM, and providing up to eight channels of servo control. The device connects through the USB port (consuming one port on the hub).
Repurposing consumer gear for embedded service is nothing new. We’ve seen it with phones. We’ve even seen remotes used as a mouse. But this is such a nice template for adding cheap and easy computing power to your projects that we’re surprised we don’t see it more often. Why aren’t you hacking a TV stick into your projects?
24 thoughts on “TV Stick Out-Raspberries Raspberry Pi”
very nice project. :)
Executed very well! I agree with his comments about the poor form factor of the RPi, but would have to say it was due to cost/size as it originated as an educational tool. However, you would think by now that there would be an RPi equivalent that fits off the shelf extruded enclosures properly as he has done.
Nice, depending on how much this thing costs I can see TV sticks getting a lot more popular. Oh yea, and the chick is hot!
“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.”
Curious enough to click the link after you posted, saw what you referenced, and then read that. I am amused.
Very elegant, and the board design is too.
“USB-to-GPIO firmware I’ve created” – my favourite part..!
someone could explain this : “Allwinner now has awesome mainline linux support, so mainline is not even a problem. ” , please ?
The sticks are based off allwinner a10. The chip’s now mostly mainlined.
It means you need to learn English better.
Sorry for my nooby experience here, but what’s the app that runs on the Android host?
There’s no android. I ditched android in favor of debian with a mainline kernel the day I got these sticks.
Any noob guides on how to do that and what sticks are compatible?
Nah, I just used common sense and sunxi wiki. There may be some guides, but I never came across one.
Thanks for the reply. So I guess that on the Linux host, your application would have to use libusb to communicate with the ATTiny? Do you have that code in your github? Just trying to understand the whole picture. Thanks
Yep, libusb, but not directly. I use my own RPC library that has a ‘simpleusb’ backend: https://github.com/nekromant/aura . It simplifies the task, since it has lua bindings.
Basically, these are the 2 files you need besides libaura:
https://github.com/nekromant/aura/blob/master/examples/shard-ctl (The script that does the job)
https://github.com/nekromant/aura/blob/master/simpleusbconfigs/iceshard.conf (The configuration file for aura simpleusb transport)
I’m also making a web interface for that using jquery-mobile and aura-httpd: https://github.com/nekromant/aura-httpd
Thanks very much for the info. Wow, really a lot of very nice work you have put through this whole thing. Very impressive
sorry, i accidentally reported you. Mods please disregard. AND MOVE THE DAMN BUTTON
Is there a list of devices supported by the mainline linux kernel somewhere???
Look in the Linux sunxi page. There are some information about compatible devices and another info like how to compile a kernel for Allwinner processors
Very nicely done! But I’m starting to recoil when I see V-USB in a polished project, or worse, a commercial product. V-USB is a cool hack for non-critical applications. But a couple of bucks more for an ATmega8u2 with free LUFA, and you get a much more capable (and standards-compliant) USB peripheral for the same effort.
Well, so far v-usb has been proven to be VERY reliable to me for most of my projects. The board in the picture above has been sitting connected to the usb bus with no problem in dmesg for over 6 months (!) already and counting, sometimes switching a few times an hour.
As for the 8-channel servo control, this was an optional feature – I just wanted to test if attiny2313 would be enough to handle it. Since it has only 2 hw output compares, I use hw timer for counting and the whole output-compare logic done in software. The result is crappy at 12Mhz, and working awesome at 20Mhz.
As for spec compliance, AFAIK if you don’t break them by adding bulk endpoints to your low-speed device, don’t screw up when routing usb data lines, you’re good.
The Rho board is quite interesting and has an Android GPIO interface
Another USB/power board for cheap WiFi router: https://github.com/rororor/a5v11-mod-01
Please be kind and respectful to help make the comments section excellent. (Comment Policy)