Category Archives: Other Projects

Other projects i’ve taken up

VSX-822K Telnet interface

One of my new projects is figuring out how to automate my Pioneer VSX-822-K AVR. There have been posts before on how to do this with telnet for higher end AVRs (VSX-1022). But there doesn’t seem to be any documentation on mine.

My plan is to make a PHP web interface for controlling it because:

1. The Pioneer Control App for Android is laggy and crappy

2. I can control it from a web browser as well

The VSX-822-K uses port 8023 for telnet commands. Only some of the commands that worked with the VSX-1022 worked with the 822. Many of the function commands are changed. I went through every possible FN combination below. This information doesn’t seem to be available anywhere else but here.

Function number:
02FN Tuner
06FN Sat/Cbl
10FN Video H
17FN iPod/USB
33FN Adapter
38FN Netradio
41FN Pandora
44FN Media Server
45FN Favorites
49FN Game H

TO get the rest of the commands like tuner preset+/-, I installed Shark for Root on Android. This application is like WireShark in that it captures packets to and from the device. I then opened the AVR application and made sure I pressed every button that was available.

But then I remembered that the app downloaded device specific data when I first opened it. I went on a hunt inside ESFileExplorer for the related application files. I found them in /data/data/jp/
I zipped that up for inspection.
And then I found the jackpot
Screen Shot 2014-01-03 at 2.56.30 AM


Every command the AVR uses, implemented in HTML and JS, by japanese programmers at Pioneer Electronics. I can’t blame them for using HTML, It’s easy, but it’s not responsive at all. No wonder the app was laggy.

After sifting through the code, here’s what I got out

?RGD ReceiveGenerationInfo
?RGF ReceiveEnableInputFunctionInfo
?RGC ReceiveNetworkStanbyInfo
?PWR ReceivePowerStatus
	PWR0 Power on
	PWR1 Cold standby
	PWR2 Network standby
?VOL ReceiveVolumeStatus
?MUT ReceiveMuteStatus
	MUT0 Mute on
	MUT1 Mute off
?FN ReceiveInputStatus
?ICA ReceiveiPodFunctionInfo
?GAP Prints OSD info
?GEP ReceiveDisplayInformation
?GDP ReceiveListAndLineInformation
?GCP ReceiveScreenInformation

Function number:
FU: Function up
FD: Functon down
02FN Tuner
06FN Sat/Cbl
10FN Video H
17FN iPod/USB
33FN Adapter
38FN Netradio
41FN Pandora
44FN Media Server
45FN Favorites
46FN AirPlay
47FN DMR (doesn't do anything?)
49FN Game H

Power Mode:
PO Power On
PF Power Off

VU Volume Up
VD Volume Down
MO Mute On
MF Mute Off
MZ Mute toggle (doesn't work?)

FM Presets:
##PR (30 avail)

Surround Sound:
0100SR Advanced Surround
0005SR Auto/Direct
0010SR ALC/Standard

10PB Play
11PB Pause
12PB Skip Reverse
13PB Skip Forward
20PB Stop
30PB Enter
31PB Return
40PB iPod Control30

Some other things to note:

The AVR only allows one telnet session at a time, otherwise it will refuse the initial connection.

The remote is a huge pain in the ass to use, if you want to change settings you have to go into the internet radio function menu, just to get the 80’s style menu to open.

What’s worse is the menu goes from digital in the CPU, to analog in the DAC (so it can be outputted to composite video), THEN it gets converted back to digital for use in HDMI. It looks really ugly to say the least.

How to get away with tethering on T-Mobile

This is the method I used. I didn’t feel like paying for Clockworkmod tether, so I found a solution that is almost identical, with alternate software.

No root needed

I’ve tested this with my Nexus 5 running 4.4.2

The problem:
Using the stock tethering method, only redirects you to the T-Mobile page where they advertise their tethering option. By default you can’t access any other internet site.

How they do this:
T-Mobile counts the hops to their servers using the TTL function, if an extra hop appears, T-Mobile will assume you are tethering without permission.

On your phone:
Get Proxoid
Go into your settings>More>Tethering & Portable hotstpot, check the box that says “Portable Wi-Fi Hotspot”
Take note of the Wi-Fi password
Open Proxoid and check the ‘Start’ box

On your computer:
Connect to the Wi-Fi Network, and enter the password noted previously
Open a command prompt and type ipconfig
Look for the default gateway for your current Wi-Fi adapter (usually
Take note of this IP address

Checking if the connection works:
In command prompt type ping (ip address)
e.g. ‘ping’
The response should not time out
Close the window

For firefox:
Go into Settings>Network under connections, click “settings”
Select manual proxy configuration
In HTTP proxy, Address: (IP noted earlier) Port: 8080
Check the box that says “Use this proxy server for all protocols”
Click OK

Your tethering is now configured

Server i’ve been working on.

Just got RAM for my server, esiso sent me a broken DIMM, so I had to make due with 25GB of ram (4Gx4Gx4Gx4Gx4Gx512Mx4Gx512M).

Now I finally have 32GB.


  • Intel PowerEdge 1950 III (originally had a 1st gen board, upgraded that)
  • 2x Intel Xeon E5450 @ 3.0GHz, 2x12M L2 Cache (Xeon equivalent to two QX9650’s, total equivalent to an i5 4670)
  • 32GB DDR2 PC2-5300 667MHz ECC FB-DIMM
  • 240GB Samsung 840 Pro SSD
  • 500GB Seagate Barracuda 7200
  • OS: Windows Server 2012 R2, previously ran ESXI 5.5, switched back because It wasn’t necessary.
  • PERC 5/i RAID(by LSI), DRAC 5
  • 3x Gigabit NICs, 2 Broadcom, 1 Intel PCI-e
  • Total, less than $400 for everything
  • Idles at 300w


ROM for the GooPhone i5s

A few months ago I decided to buy a GooPhone i5s (MT6577).

After some searching I noticed that no one had put out a stock AOSP ROM for this device.

The iOS skin was particularly laggy and terribly designed so I went searching for some ROMs from other phones I could port.

Here’s where it gets cool. The MediaTek flashing software allows you to write any data you want to any address of the NAND. This gives you full control over what OS you want to run, like a Nexus device.

The best of both worlds right? Hardware from Apple(almost) and Software from Google.

Anyway, I ended up finding a usable ROM from another iPhone 5 clone, before the iOS skin was added. I originally wanted to build a ROM from source, but that wasn’t going to happen.

I took note of the applications and did my best to recreate a stock Android experience on the GooPhone i5S. The product is ‘I Can’t Believe It’s not AOSP’

It works for the most part, calls, texting, web browsing. Only a few bugs:

  • Mute switch won’t work
  • Front facing camera is rotated 90 degrees

Other than that. It runs great, much faster than the stock ROM. It benchmarks at about the same level as the Galaxy Nexus although it only has 512MB RAM. I found the web browsing experience to be surprisingly responsive. Once your app is loaded, this thing flies! Mostly because the graphics chip only has to push 480×854 pixels.

In the end, I learned a lot. Hacking together an Android ROM isn’t that hard, I just had to edit build.props, and patch kernel modules.

Unfortunately, I did end up selling this phone, so I won’t be able to continue development for the ROM. And KitKat is a definite ‘no’ unless someone else releases kernel modules that work for 4.4

Now i’m using a real iPhone 5S, it’s a really nice phone, and you can tell between the two in terms of build quality.