Raspberry pi as headless torrent box

June 23, 2016

raspberry-pi-as-wireless-torrent-box  Facebook  Twitter  Google +  

Raspberry pi still an expensive toy to me with it's $35 price. few years ago it was advertised as "credit card sized $5 computer" but we didn't see that number at anywhere.


19_18_52_100969867.jpg20_22_27_102877359.jpg


Few weeks ago i found an used wholesale store at a local market and purchased 2x units of camera+sdcard+board bundle for an acceptable price. my thought was installing it as a wireless security camera but that's didn't work due to it's low hardware specs. so i decided to build a torrent box with it.

Low latency HD stream possible with ffmpeg binaries but you can't go higher than 512x512@15 fps, my current analog cameras already capable to deliver 512x480@60fps with 5ghz wireless bridge. problem is related with it's architecture, specs says 700mhz but actually it's identical to an 266mhz pentium II processor when we count the cpu cycles. so we can say it's an expensive arduino with usb host and a bit extra processing power. ethernet port does not count because ethernet chip is also an usb device which attached to board's internal hub.

Anyway, sometimes i was noticing the free wifi of a nearby public mall. installed transmission torrent client and configured my portable hdd as file storage to take advantage of it. already got a high gain wifi adapter to get signal from 500 mt distance, it's driver installation was painful but i figured out at last. also there is another torrent client available for pi called deluge but transmission is more stable and also supports the remote sessions from other platforms instead single web dashboard.

Another problem!
this time torrent daemon starting before hdd automount then terminating with error. I decided to follow the way i know and installed node.js and develop a script which can handle order of system commands. sending system vitals to desktop pc is a plus.

Currently there is only node's early beta binaries available on web, you have to build it from sources if you're really need it. no joke, compilation took exact 3 days. finally installed node 4.x and created a library for measuring board vitals. then created another script to pump data to my automation server.

Final boss battle
My active node version was 5.x at the desktop and wasn't aware about memory leaks of older releases. after one week of headless execution, app's cycle latency increased day by day and finally crashed due to memory hog. so i revised my code and installed nightly 6.x version of node. compilation took another 3 days and finally we're won the game.

Setup
- Raspberry pi and sdhc card
- High gain wifi dongle
- Portable USB hdd
- Li-ion backup battery for cellphone

We're spent 1 week and $15 per unit but still result is satisfying if you don't exceed 2-3 active torrents. In my opinion spend few bucks more and purchase a more bit professional board such as beaglebone to save time or buy expendable asian variants which you can find billions of them by prefixing "pi" with other fruit names while search.

sources available on github:
libraspi.js

app.js

  Most popular entries

VR Experiences #1: Oculus Rift

The 80's childs are familiar with virtual reality term. we seen this subject in the action at johnny mnemonic, the lawnmowerman etc.if you're not living in a cave, probably should know the


Stealing sneakers from NIKE

as the whole crafty geeks knows, nike has a rvsp system via twitter. they


Bytecheleby at revision

Looks like our portable shell "Bytecheleby" still useful on scene. im started to enhance it by using my newest libraries and lots of new stuff. stay connected for latest releases


Pain and Suffer inside: Displaylink Adapter

as mentioned on my recent tweets, was looking for a low cost multi-display solution about couple weeks. gaming oriented gfx cards already


Entering system level command line

I get this trick from a sysadmin friend. it allows to enter system level shell access in Windows Vista and later versions. useful for bypass UAC and ntfs file permission issues.sc create SuperC