logo

Reverse Engineering the Nike+iPod Protocol

logo

I just got a Nike+iPod gadget thingy. It’s pretty cool, and stores all the running stats in xml files on the iPod, making for easy hacking of the running data. However, that’s not what I really want to do with it.

I got one of Sparkfun’s USB serial adapters for it, and can now get the raw data off of it. What I need to be able to detect is whether the sensor received an impact.

Before I bought this, I had heard that the sensor in the shoe transmits its ID every time the runner takes a step. However, after a little experimentation, I found this is not the case. Stepping on the sensor activates it, and once active, broadcasts some data chunks every 1 second. The dump below is from me dropping the sensor on the table, then letting it sit there until it stopped sending. You can see it took 13 seconds of just sitting there before it stopped sending data.

FF 55 1E 09 0D 0D 01 70 C5 07 30 A5 FD AE FA C4 BF 32 0C 52 86 08 AF C9 EA 1C 56 31 CA B8 02 33 32 79
FF 55 1E 09 0D 0D 01 70 C5 07 30 A6 45 59 1F 91 DC 8E C4 FB 66 37 DB 010 9E 75 69 6F 99 08 C4 0A 95 BE
FF 55 1E 09 0D 0D 01 70 C5 07 30 A7 1C 94 06 1A 84 A8 010 9A 22 E8 F8 8B F9 67 44 0E 6B AB BB E0 C2 53
FF 55 1E 09 0D 0D 01 70 C5 07 30 A8 57 53 73 39 0F 14 DE 0E 3B 5C 38 73 22 72 23 AD 3A 49 C9 1A 4A EF
FF 55 1E 09 0D 0D 01 70 C5 07 30 AA 06 85 D1 B6 9F AB B7 20 3C B9 CD EF DA 6B E5 5D E8 86 A7 42 36 B0
FF 55 1E 09 0D 0D 01 70 C5 07 30 AB EF DC BC ED 7F FB 7E 9B 89 31 07 57 4B B5 B3 79 DA FC E2 4B 8F CA
FF 55 1E 09 0D 0D 01 70 C5 07 30 AC 78 B4 0B 79 76 3D 08 B8 F2 B8 C6 D5 B2 AB 13 C7 68 0E 6B E2 78 CC
FF 55 1E 09 0D 0D 01 70 C5 07 30 AD 2B 17 0E DA E4 E3 B2 AF 65 5B 90 1F D5 72 F7 85 89 A8 9F A6 FD AE
FF 55 1E 09 0D 0D 01 70 C5 07 30 AE A1 3E 49 7C 5E C4 4A 5B 29 0A 9A 9D A3 E5 D0 EE 66 D4 53 F9 010 F3
FF 55 1E 09 0D 0D 01 70 C5 07 30 AF AC CD 2A 92 46 79 E4 53 34 32 D1 6A F7 22 E8 6D C6 D1 9D CB 67 03
FF 55 1E 09 0D 0D 01 70 C5 07 30 A0 B3 69 55 76 07 76 11 CC 9D A8 AD 29 3B B9 87 A4 17 F1 F9 CB 06 65
FF 55 1E 09 0D 0D 01 70 C5 07 30 A1 23 53 40 C5 F5 22 50 BD 83 F1 5D 69 EC D0 4D 1C D0 DA 49 EA A9 2D
FF 55 1E 09 0D 0D 01 70 C5 07 30 A2 6F 27 1A 08 2A 93 81 B6 33 2F A0 6B BF B6 D1 4C 9B 0F 33 D1 16 41

(If you look closely, you’ll see some 010′s in there. That is obviously not a real hex byte, and has something to do with the VB program that Sparkfun put together. I can’t actually get the checksums to work out, otherwise I’d be able to tell what it should be.)

Here is what we know so far, compiled from here and here

FF 55 : Apple Accessory Protocol header
1E : length of packet data (from mode through data before checksum)
09 : mode for Nike+
0D 0D : command
01 : unknown (start of parameter)
70 C5 07 30 : my transmitter’s ID
A5 : appears to be a counter, always starts with A, counts from 0-F
next 21 bytes : unknown

79 : 8 bit additive checksum ((sum of all length/mode/command/parameter bytes) & 0xFF) Note: I can’t actually get this to calculate out correct on any of the rows. I must be doing something wrong.

Currently I don’t have enough information in order to be able to tell whether a packet contains a footstep or not, since it continues to transmit even after it stops getting footsteps.

Links:
http://www.ipodlinux.org/Apple_Accessory_Protocol
http://www.ipodlinux.org/forums/viewtopic.php?t=24578
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-02/0005.shtml
http://www.cs.washington.edu/research/systems/privacy.html
http://en.wikipedia.org/wiki/Nike%2BiPod
http://www.apple.com/ipod/nike/

10 Responses to “Reverse Engineering the Nike+iPod Protocol”

  1. ren says:

    I was hoping you had info to tap into the nike +.
    Im a programmer as well.

  2. fjen says:

    Seems the magic “0×01″ before the UID is the type of Nike+ sensor. All my foot sensors send “0×01″, my heart rate sensor (Polar) sends “0×05″.

    The heart rate sensor behaves similar to the foot sensor btw., it sends:

    ff551e090d0d051a5f0050a8ae3545cb165cf238fc4bb06e7f5b108cae1f4d1e5453
    ff551e090d0d051a5f0050a9260bca4f7045284687eb8876a5f37c5e130e7b5ae221
    ff551e090d0d051a5f0050aa9c67275549c7fb90d5de5e7f66736e23155e93915b41
    ff551e090d0d051a5f0050aba7f4cad8eac93d1a91f818d0e865dce86562274296b7
    ff551e090d0d051a5f0050ac17489dfa6b793a7d20ba8b790e07cc41c3a395a2be59
    ff551e090d0d051a5f0050adea8e2b93e4da039fbc478e55cb4796125f0d82098c8b
    ff551e090d0d051a5f0050ae1e5c263ac17904abd8a76d1135afdcadbecbe7af9a5d

    F

  3. James says:

    Guys,
    What is the wireless communication protocol that these devices use? Is it ANT/ANT+ or Nordic, etc?
    I can’t find the answer anywhere on the web. I might have to get my hands on one and crack it open to see what’s inside.

  4. Cornelius says:

    Any news on the protocol? I would be very interested!

  5. @fjen:

    Here’s your sensor’s data explained:
    I know how to decode the payload for nike+ sensor, for other things (like heart rate monitor) i can only decrypt and it make sense of SOME decrypted data. You can see the entire decrypted payload below, as well as the two fields I guessed at based on some disassembly.

    dmitrygr@DGV-PC:/COOL$ cat data_heart_rate_mon.txt
    0d051a5f0050a8ae3545cb165cf238fc4bb06e7f5b108cae1f4d1e5453
    0d051a5f0050a9260bca4f7045284687eb8876a5f37c5e130e7b5ae221
    0d051a5f0050aa9c67275549c7fb90d5de5e7f66736e23155e93915b41
    0d051a5f0050aba7f4cad8eac93d1a91f818d0e865dce86562274296b7
    0d051a5f0050ac17489dfa6b793a7d20ba8b790e07cc41c3a395a2be59
    0d051a5f0050adea8e2b93e4da039fbc478e55cb4796125f0d82098c8b
    0d051a5f0050ae1e5c263ac17904abd8a76d1135afdcadbecbe7af9a5d

    dmitrygr@DGV-PC:/COOL$ gcc nike_decode.c -o /tmp/test && /tmp/test packet is from device ‘KV336CWWC4X’
    ->payload: 01 1F 45 00 49 00 B7 12 BE 15 48 39 03 FF FF FF FF FF FF 02 00
    ->on hours: 1823 [?not guranteed valid value for sensor type 0x05]
    ->Tc: 69 [?for sensor 0x5: heartRate]

    Packet 2:
    ->packet is from device ‘KV336CWWC4X’
    ->payload: 01 1F 45 00 48 00 B8 12 BF 15 49 46 03 FF FF FF FF FF FF 02 00
    ->on hours: 1823 [?not guranteed valid value for sensor type 0x05]
    ->Tc: 69 [?for sensor 0x5: heartRate]

    Packet 3:
    ->packet is from device ‘KV336CWWC4X’
    ->payload: 01 1F 45 00 45 00 B9 12 C0 15 4A 6B 03 FF FF FF FF FF FF 02 00
    ->on hours: 1823 [?not guranteed valid value for sensor type 0x05]
    ->Tc: 69 [?for sensor 0x5: heartRate]

    Packet 4:
    ->packet is from device ‘KV336CWWC4X’
    ->payload: 01 1F 44 00 40 00 BA 12 C1 15 4B AA 03 FF FF FF FF FF FF 02 00
    ->on hours: 1823 [?not guranteed valid value for sensor type 0x05]
    ->Tc: 68 [?for sensor 0x5: heartRate]

    Packet 5:
    ->packet is from device ‘KV336CWWC4X’
    ->payload: 01 1F 43 00 3D 00 BB 12 C2 15 4C D1 03 FF FF FF FF FF FF 02 00
    ->on hours: 1823 [?not guranteed valid value for sensor type 0x05]
    ->Tc: 67 [?for sensor 0x5: heartRate]

    Packet 6:
    ->packet is from device ‘KV336CWWC4X’
    ->payload: 01 1F 42 00 3E 00 BC 12 C4 15 4D CD 03 D4 03 FF FF FF FF 02 00
    ->on hours: 1823 [?not guranteed valid value for sensor type 0x05]
    ->Tc: 66 [?for sensor 0x5: heartRate]

    Packet 7:
    ->packet is from device ‘KV336CWWC4X’
    ->payload: 01 1F 42 00 3F 00 BD 12 C5 15 4E B9 03 FF FF FF FF FF FF 02 00
    ->on hours: 1823 [?not guranteed valid value for sensor type 0x05]
    ->Tc: 66 [?for sensor 0x5: heartRate]
    ->walking steps: 12386367

    =======================
    as for the original poster’s data:

    dmitrygr@DGVPC:/COOL$ cat data_third_party.txt
    0D0170C50730A5FDAEFAC4BF320C528608AFC9EA1C5631CAB802333279
    0D0170C50730A645591F91DC8EC4FB6637DB109E75696F9908C40A95BE
    0D0170C50730A71C94061A84A8109A22E8F88BF967440E6BABBBE0C253
    0D0170C50730A8575373390F14DE0E3B5C3873227223AD3A49C91A4AEF
    0D0170C50730AA0685D1B69FABB7203CB9CDEFDA6BE55DE886A74236B0
    0D0170C50730ABEFDCBCED7FFB7E9B893107574BB5B379DAFCE24B8FCA
    0D0170C50730AC78B40B79763D08B8F2B8C6D5B2AB13C7680E6BE278CC
    0D0170C50730AD2B170EDAE4E3B2AF655B901FD572F78589A89FA6FDAE
    0D0170C50730AEA13E497C5EC44A5B290A9A9DA3E5D0EE66D453F910F3
    0D0170C50730AFACCD2A924679E4533432D16AF722E86DC6D19DCB6703
    0D0170C50730A0B3695576077611CC9DA8AD293BB987A417F1F9CB0665
    0D0170C50730A1235340C5F52250BD83F15D69ECD04D1CD0DA49EAA92D
    0D0170C50730A26F271A082A9381B6332FA06BBFB6D14C9B0F33D11641
    dmitrygr@DGVPC:/COOL$ /tmp/test packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 2:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 3:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 4:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 5:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 6:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 7:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 8:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 9:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 10:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 11:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 12:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 13:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124


    Dmitry Grinberg
    dmitrygr@gmail.com

  6. As for the packets in the initial article, they all decode to the same thing (assuming 010 means 10):

    dmitrygr@DGVPC:/COOL$ cat data_third_party.txt
    0D0170C50730A5FDAEFAC4BF320C528608AFC9EA1C5631CAB802333279
    0D0170C50730A645591F91DC8EC4FB6637DB109E75696F9908C40A95BE
    0D0170C50730A71C94061A84A8109A22E8F88BF967440E6BABBBE0C253
    0D0170C50730A8575373390F14DE0E3B5C3873227223AD3A49C91A4AEF
    0D0170C50730AA0685D1B69FABB7203CB9CDEFDA6BE55DE886A74236B0
    0D0170C50730ABEFDCBCED7FFB7E9B893107574BB5B379DAFCE24B8FCA
    0D0170C50730AC78B40B79763D08B8F2B8C6D5B2AB13C7680E6BE278CC
    0D0170C50730AD2B170EDAE4E3B2AF655B901FD572F78589A89FA6FDAE
    0D0170C50730AEA13E497C5EC44A5B290A9A9DA3E5D0EE66D453F910F3
    0D0170C50730AFACCD2A924679E4533432D16AF722E86DC6D19DCB6703
    0D0170C50730A0B3695576077611CC9DA8AD293BB987A417F1F9CB0665
    0D0170C50730A1235340C5F52250BD83F15D69ECD04D1CD0DA49EAA92D
    0D0170C50730A26F271A082A9381B6332FA06BBFB6D14C9B0F33D11641
    dmitrygr@DGVPC:/COOL$ /tmp/test packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 2:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 3:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 4:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 5:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 6:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 7:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 8:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 9:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 10:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 11:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 12:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    Packet 13:
    ->packet is from device ’4H745976VSX’
    ->payload: 06 02 DA 00 1C 01 00 23 00 00 22 01 00 7C 00 00 A7 EC 02 23 11
    ->on hours: 2
    ->Tc: 218
    ->walking steps: 284
    ->running steps: 290
    -> lifetime walking miles: 35
    -> lifetime running miles: 124

    dmitrygr@TV-PC:/STORE$


    Dmitry Grinberg
    dmitrygr@gmail.com

  7. lorenzo says:

    Hello guys!!!

    I need your help. I have this:

    26 74 47 30 A1 37 E6 24 39 84 78 2C 30 EF 88 A0 EC 27 98 30 BE 80 A1 3E FA D8 59

    “26 74 47 30″ is my ID.
    A1 is a counter

    but i need to know what’s mean the other bytes “37 E6 24 39 84 78 2C 30 EF 88 A0 EC 27 98 30 BE 80 A1 3E FA D8 59″

    Thanks !!!

  8. @lorenzo. hare you go:

    dmitrygr@DGV-PC:/COOL$ cat data_third_party.txt
    0D0126744730A137E6243984782C30EF88A0EC279830BE80A13EFAD859
    dmitrygr@DGV-PC:/COOL$ gcc test.c -o /tmp/test && /tmp/test < data_third_party.txt

    Packet 1:
    ->packet is from device ’4H943FH0VSX’
    ->payload: 06 57 C6 01 1C E2 03 4A 75 00 9A 02 01 86 31 00 A7 EC 02 74 64
    ->on hours: 87
    ->Tc: 454
    ->walking steps: 254492
    ->running steps: 66202
    -> lifetime walking miles: 30026
    -> lifetime running miles: 12678

    dmitrygr@DGV-PC:/COOL$

    looks like you’ve walked 125.44 miles using this sensor, and ran 42.82 miles.

  9. diana says:

    Hello, just wanted to tell you, I loved this article. It was funny. Keep on posting!

    Hi, I just wanted to mention, I disagree. Your article doesn’t make any sense.

    What’s up, how’s it going? Just shared this post with a colleague, we had a good laugh.

    Touche. Outstanding arguments. Keep up the good effort.

    This post is invaluable. When can I find out more?

    Highly energetic post, I enjoyed that a lot. Will there be a part 2?

    Ridiculous story there. What occurred after? Thanks!

    Can you tell us more about this? I’d care to find out some additional information.

    Peculiar article, exactly what I needed.

    Hello, I log on to your new stuff daily. Your writing style is witty, keep doing what you’re doing!

    Hello to every single one, it’s in fact a pleasant for me to pay a quick visit this web site, it consists of helpful Information.

    I am actually glad to read this website posts which consists of tons of valuable data, thanks for providing such information.

    This video post is actually fantastic, the echo quality and the picture quality of this video post is truly amazing.

    Hi there to every body, it’s my first visit of this weblog; this web site consists of amazing and really good data in support of visitors.

    Hurrah, that’s what I was seeking for, what a stuff! existing here at this website, thanks admin of this web page.

    What’s up, for all time i used to check weblog posts here in the early hours in the dawn, as i like to learn more and more.

    Hi to all, for the reason that I am actually eager of reading this web site’s post to be updated daily. It includes nice data.

    I for all time emailed this webpage post page to all my associates, since if like to read it after that my links will too.

    Can you please send me the code for this script or please tell me in detail in relation to this script?

    Your means of describing everything in this article is genuinely nice, all be capable of simply know it, Thanks a lot.

    Good way of describing, and pleasant article to obtain information on the topic of my presentation subject, which i am going to present in university.

    Hi, I want to subscribe for this weblog to get most recent updates, thus where can i do it please help.

    What’s up, after reading this awesome paragraph i am as well glad to share my knowledge here with colleagues.

    Excellent, what a web site it is! This blog presents valuable data to us, keep it up.

    What’s up all, here every one is sharing such experience, thus it’s fastidious to read this weblog, and I used to pay a visit this web site daily.

    What a funny blog! I really enjoyed watching this funny video with my family unit as well as together with my colleagues.

    Pictures are in fact pleasant source of instruction instead of text, its my familiarity, what would you say?

    Hi, its good piece of writing regarding media print, we all understand media is a wonderful source of facts.

    What’s up, this weekend is fastidious designed for me, for the reason that this point in time i am reading this great educational article here at my home.

    This is my first time visit at here and i am truly pleassant to read everthing at one place.

    Good answer back in return of this matter with solid arguments and describing everything regarding that.

    I go to see each day some websites and websites to read posts, except this website offers quality based articles.

    Certainly high resolution film quality includes much memory, that’s why it presents enhanced feature.

    If you are going away to watch comical videos on the web then I suggest you to pay a visit this web site, it consists of truly so humorous not only movies but also additional material.

    I know this site presents quality dependent articles or reviews and extra material, is there any other web site which presents these kinds of information in quality?

    Hi there friends, its enormous paragraph on the topic of tutoringand completely defined, keep it up all the time.

    Downloading data from this web page is as easy |as clicking the mouse rather than other web sites which shift me here and there on the internet pages.

    What’s up everybody, I am sure you will be enjoying here by watching such funny video lessons.

    I always spent my half an hour to read this web site’s content all the time along with a mug of coffee.

    Wow! At last I got a webpage from where I be capable of really get useful information concerning my study and knowledge.

    Hello, the whole thing is going sound here and ofcourse every one is sharing information, that’s in fact fine, keep up writing.

    If you would like to grow your familiarity only keep visiting this site and be updated with the most up-to-date news posted here.

    Hi to all, the contents present at this website are genuinely remarkable for people experience, well, keep up the good work fellows.

    No one can refuse from the feature of this video posted at this web site, pleasant job, keep it all the time.

    No matter if some one searches for his required thing, thus he/she wishes to be available that in detail, therefore that thing is maintained over here.

    For the reason that the admin of this web site is working, no uncertainty very quickly it will be well-known, due to its feature contents.

    Quality articles is the important to invite the visitors to go to see the web site, that’s what this web page is providing.

    What’s up everyone, it’s my first go to see at this site, and post is in fact fruitful in favor of me, keep up posting these types of articles or reviews.

    Wow, what a video it is! Truly good feature video, the lesson given in this video is in fact informative.

    If you are going for finest contents like myself, just go to see this web page all the time because it presents quality contents, thanks

    It’s amazing for me to have a web site, which is useful designed for my knowledge. thanks admin

    I visited multiple web sites except the audio quality for audio songs present at this web site is actually marvelous.

    I’m gone to tell my little brother, that he should also go to see this blog on regular basis to get updated from hottest news update.

    Appreciation to my father who told me on the topic of this website, this weblog is truly amazing.

    Hi Dear, are you really visiting this site on a regular basis, if so then you will absolutely obtain good experience.

    I am John, how are you everybody? This article posted at this web page is really nice.

    Hi there it’s me Fiona, I am also visiting this website regularly, this web site is in fact nice and the viewers are genuinely sharing fastidious thoughts.

    Really when someone doesn’t know then its up to other visitors that they will assist, so here it occurs.

    Now I am ready to do my breakfast, after having my breakfast coming over again to read further news.

    Wow, this paragraph is pleasant, my younger sister is analyzing such things, thus I am going to convey her.

    These are in fact impressive ideas in regarding blogging. You have touched some nice points here. Any way keep up wrinting.

    Asking questions are in fact fastidious thing if you are not understanding anything completely, but this piece of writing provides nice understanding yet.

    That’s genuinely a pleasant YouTube movie stated inside this paragraph on the topic of how to write a article, so i got clear idea from here.

    This paragraph offers clear idea in support of the new people of blogging, that in fact how to do running a blog.

    This piece of writing regarding SEO provides clear idea designed for new SEO people that how to do SEO, therefore keep it up. Fastidious work

    Thanks in support of sharing such a pleasant idea, post is pleasant, thats why i have read it completely

    If some one desires expert view on the topic of running a blog after that i advise him/her to pay a visit this blog, Keep up the good work.

    Very soon this web site will be famous among all blogging viewers, due to it’s pleasant articles

    Every weekend i used to go to see this site, as i want enjoyment, as this this web page conations genuinely good funny information too.

    It is not my first time to pay a quick visit this web site, i am browsing this web site dailly and take fastidious facts from here daily.

    Hurrah, what a quality it is! For the reason that mostly YouTube video clips have no fastidious quality, but this is genuinely a pleasant quality video.

    Hi there to all, the YouTube video that is posted at at this juncture has actually good quality along with nice audio feature

    Awesome video, genuinely a good quality, this YouTube video touched me a lot in terms of quality.

    Its fastidious comical YouTube video, I every time go to visit YouTube website in support of comical videos, for the reason that there is much more stuff available.

    For my schoolwork reasons, I at all times used to get the video lectures from YouTube, for the reason that it is trouble-free to fan-out from there.

    Hahahaha, what a comical this YouTube record is! I’m still laughing, thanks to admin of this site who had posted at this website.

    Such are actually awesome YouTube video tutorials, its my fortune to visit this site and finding such awesome YouTube video clips.

    Remarkable YouTube videos posted at this web site, I am going to subscribe for daily updates, because I don’t want to miss this series.

    It’s my first pay a quick visit to this web site, and I am in fact surprised to see such a nice feature YouTube video posted at this place.

    When I saw this web site having amazing featured YouTube movies, I decided to watch out these all video tutorials.

    Hahahahahahaha, this politics related YouTube video is really so comical, I loved it. Thanks for sharing this.

    What’s up everyone, I know YouTube video contains less bytes of memory due to that its quality is poor, however this YouTube video has fantastic picture features.

    My grand father all the time used to watch YouTube comical movies, hehehehehe, as he wants to be cheerful forever.

    YouTube is world’s biggest video sharing web site, no one can defeat it. Every one upload videos at YouTube then obtain embed code and post anywhere.

    Its extremely brilliant YouTube video in terms of quality, in fact pleasant, its quality is in fact appreciable.

    This site gives fastidious featured YouTube videos; I always down load the dance competition show video tutorials from this web page.

    What a fastidious YouTube video it is! Amazing, I liked it, and I am sharing this YouTube record with all my mates.

    Sharing some thing is better than keeping up-to our self, therefore the YouTube video that is posted here I am going to share by means of my relatives and mates.

    Because the YouTube video clips are posted here same like I also embed YouTube video code at my own site, because it is trouble-free to take embedded code.

    Now YouTube video clips quality is more superior and better, therefore that’s the reason that I am watching this video at at this time.

    These all YouTube gaming video clips are really in fastidious quality, I watched out all these along through my mates.

    I and my colleagues watch the football game clips at YouTube all the time, for the reason that they have in good quality.

    In my house when I take bored, afterward I simply ON my PC and open YouTube web site to watch the YouTube video tutorials.

    Hello, its understandable paragraph along with this YouTube video; I can’t think that one can not understand this effortless post having with video demo.

    This piece of writing concerning how to embed a YouTube video code is truly helpful for fresh internet access visitors. Fastidious occupation, keep it up.

    In YouTube video embed code you can also stipulate parameters according to your hope like width, height or even border colors.

    YouTube videos are well-known in entire world, as it is the leading video sharing site, and I turn out to be too cheerful by watching YouTube videos.

    YouTube contains not only funny and humorous videos but also it consists of educational related video tutorials.

    Hello dear, are you enjoying with this comical YouTube video? Hmmm, that’s nice, I am also watching this YouTube joke video at the moment.

    I am cheerful to watch this you tube video at this web page, therefore right now I am also going to upload all my video lessons at YouTube web site.

    Its my luck to go to see at this webpage and find out my required paragraph along with video presentation, that’s YouTube video and its also in quality.

    Oh! Wow its actually a comic and jockey YouTube video posted here. thanks for sharing it.

    I got so bored at the moment afternoon, but as soon as I watched this YouTube comical clip at this blog I become fresh and happy as well.

    Hi there my colleagues, how is everything? Here it is in fact nice YouTube video clips collection. i enjoyed a lot.

    My boss is also keen of YouTube comic videos, he also watch these even in company hehehe..

    Hi there, can any body assist me how to download this video tutorial from this web site, I have watched and listen it at this place but would like to download it.

    This article is truly a fastidious one it helps new web visitors, who are wishing in favor of blogging.

    When someone writes an post he/she keeps the plan of a user in his/her mind that how a user can know it. Therefore that’s why this post is perfect. Thanks!

    all the time i used to read smaller articles that as well clear their motive, and that is also happening with this piece of writing which I am reading now.

    Piece of writing writing is also a fun, if you be acquainted with then you can write or else it is difficult to write.

    It’s awesome to pay a visit this site and reading the views of all colleagues concerning this piece of writing, while I am also keen of getting experience.

    I got this website from my buddy who informed me concerning this site and at the moment this time I am visiting this website and reading very informative articles or reviews at this place.

    I don’t waste my free time in watching movies but I be fond of to read content on net and get updated from hottest technologies.

    If some one wants to be updated with most recent technologies then he must be visit this web site and be up to date every day.

    I think a visualized presentation can be better then just a trouble-free text, if information are defined in sketches one can effortlessly be familiar with these.

    What a material of un-ambiguity and preserveness of valuable know-how regarding unexpected feelings.

    Hello, is it rite to simply study from publications not to visit world wide web for most recent updates, what you say guys?

    I read this paragraph fully concerning the difference of newest and previous technologies, it’s amazing article.

    Why YouTube movies are shared everywhere? I think one motive is that these are trouble-free to obtain embed script and paste that script everyplace you desire.

    This webpage is containing a nice stuff of humorous YouTube video clips, I loved it a lot.

    For most up-to-date news you have to pay a visit world wide web and on web I found this website as a best web page for latest updates.

    It’s very effortless to find out any topic on web as compared to books, as I fount this piece of writing at this website.

    You have to waste less time to explore your necessary topic on world-wide-web, because nowadays the searching methods of search engines are pleasant. That’s why I fount this article at this place.

    If you are concerned to learn Search engine optimization techniques then you must read this post, I am sure you will take much more from this post regarding Search engine marketing.

    Really it’s referred to as Search engine marketing that when i search for this piece of writing I found this web page at the top of all websites in search engine.

    This piece of writing about Web optimization is in fact pleasant one, and the back links are truly very useful to promote your web site, its also referred to as Search engine optimisation.

    Hello, for Search engine optimisation real contents are in fact required, if you only make a copy and paste then you can not rated in search engines.

    Ahaa, its good conversation about this paragraph at this place at this web site, I have read all that, so at this time me also commenting at this place.

    Wow, good YouTube video about how to set up virtual directory, I fully got it. Thanks keep it up.

    My family all the time say that I am killing my time here at net, however I know I am getting experience every day by reading thes good articles or reviews.

    Hi there i am kavin, its my first time to commenting anywhere, when i read this paragraph i thought i could also make comment due to this good piece of writing.

    It’s really very complex in this full of activity life to listen news on TV, thus I only use web for that reason, and obtain the latest information.

    I am sure this post has touched all the internet visitors, its really really pleasant piece of writing on building up new web site.

    This article will assist the internet people for creating new web site or even a blog from start to end.

    I am truly keen of reading content concerning building up new web site, or even concerning Search engine optimisation.

    Awesome! Its genuinely awesome article, I have got much clear idea about from this article.

    What a lovely story! The tale in this YouTube video that is posted at this time is in fact a pleasant one with having nice picture feature.

    I have read so many articles on the topic of the blogger lovers but this post is genuinely a nice article, keep it up.

    I always download a complete movie in parts, that’s always existing at YouTube, as my network connection is extremely slow and YouTube fulfils my needs.

    I think the admin of this web site is actually working hard for his web site, since here every information is quality based material.

    Wow! this cartoon type YouTube video I have seen when I was in primary level and at this time I am in university and watching that over again here.

    If you desire to get much from this article then you have to apply such techniques to your won weblog.

    The methods pointed out in this post concerning to increase traffic at you own website are genuinely pleasant, thanks for such fastidious paragraph.

    If you apply such methods for increasing traffic on your own webpage, I am as expected you will get the difference in few days.

    There is also one additional technique to increase traffic in support of your website that is link exchange, so you also try it

    Link exchange is nothing else however it is only placing the other person’s weblog link on your page at proper place and other person will also do same in support of you.

    One other method for advertising your webpage is posting comments on different directories with your website link.

    I have read much on the topic of without charge blogging web pages, except I have no clear idea regarding that, can any one tell me which one is most excellent in support of free blogging?

    Hi, yes brother there are certainly various blogging blogs, however I recommend you to use Google’s free of charge blogging services.

    Yup, you are correct Google is the finest for blogging, Google’s blog also come quickly in search engines too.

    Hmmm, yup no doubt Google is best for blogging however now word press is also nice as a blogging because its Search engine marketing is nice defined already.

    One more thing that I desire to share at this place is that, whatever you are using free blogging service but if you don’t update your blog on on a regular basis basis then it’s no more worth.

    All right, you are correct buddy, regularly updating weblog is really needed in favor of SEO. Pleasant discussion keeps it up.

    Hello mates, you are sharing your feelings regarding webpage Search engine optimisation, I am also new user of web, thus I am also getting more from it. Thanks to everything.

    It’s fantastic that you are getting thoughts from this piece of writing as well as from our discussion made here.

    I am genuinely eager of watching comical movies at youtube, and this video clip is really so humorous, hehehhe.

    What’s up dear, me plus my mother are as well watch humorous videos but after I completed my homework

    What’s up children, you all have to watch hilarious videos, but remember that first study then enjoyment ok.

    Hi I am from Australia, this time I am watching this cooking related video at this site, I am truly delighted and learning more from it. Thanks for sharing.

    Please upload more video tutorials related to cooking if you have, since I would like to learn more and more regarding all recipes of cooking.

    Hello, thanks for all the people, I will upload many more movies in upcoming days, admin

    Hi friend, what a quality is! For this YouTube video, I am in fact happy, as I have never seen pleasant quality YouTube video before,

    There are also so many video uploading web pages, and these also give facility for distribution their movies, but I think YouTube is the finest.

    Yes you are true, YouTube is most excellent video sharing web site, because YouTube is a lightly no much streaming time rather than other websites.

    I am in fact thankful to the owner of this site who has shared this fantastic article at at this place.

    Hi to all, how is everything, I think every one is getting more from this site, and your views are nice designed for new users.

    This article is related to web programming is truly pleasant in favor of me as I am website programmer. Thanks for sharing keep it up.

    Wow! It’s also good paragraph about JavaScript, I am in fact eager of learning JavaScript. thanks admin

    If any one wants to be a successful blogger, after that he/she must look at this paragraph, for the reason that it contains al} techniques related to that.

    What’s up, yup this article is genuinely pleasant and I have learned lot of things from it on the topic of blogging. thanks.

    It’s an remarkable article designed for all the web users; they will obtain advantage from it I am sure.

    I all the time used to read paragraph in news papers but now as I am a user of web therefore from now I am using net for articles or reviews, thanks to web.

    What’s up friends, is there any other good web site related to JavaScript articles or reviews, while this one is nice in favor of PHP programming.

    Hello, I also wish for to share my view at this place, when i don’t know even about a easy thing related to PHP, I always go to search that from web.

    Wow! It’s a nice jQuery script; I was also seeking for that, thus i got it right now from at this time. Keep it up admin.

    |When I would like to place gallery or LightBox or even a slider on my web page I forever attempt to use jQuery script in support of that.

    Genuinely programming is nothing however it’s a logic, if you take handle on it after that you are the professional else nothing.

    I like to work on PHP rather than .NET, even if .NET offers the ability of drag and drop elements, but I like Personal home pages a lot.

    Okay you are accurate, actually PHP is a open source and its help we can get free from any community or website since it occurs at this place at this site.

    What’s up to all, I am also in fact keen of learning PHP programming, but I am new one, I every time used to examine posts related to PHP programming.

    What a video it is! Truly remarkable and pleasant quality, please upload more video clips having such nice quality. Thanks.

    A number of users are keen to watch comical videos, however I like to watch terrible videos on YouTube.

    Genuinely movie is the presentation of some one’s feelings; it gives the lesson to the people.

    Hi there friends, nice piece of writing and good urging commented at this place, I am really enjoying by these.

    Okay this YouTube video is much superior than previous one, this one has nice picture quality as well as audio.

    Now I was so tired, and now this time I have got some rest by watching this comical YouTube video, thanks, keep it up.

    On every weekend, we all mates jointly used to watch film, because fun is also essential in life.

    I am eager of learning Flash, is there any paragraph related to Flash, if okay, then please post it, thanks.

    All right I am also in look for of Flash tutorials, since I wish for to learn more about flash, therefore if you have please post it here.

    I also like Flash, however I am not a good designer to design a Flash, but I have software program by witch a Flash is automatically created and no extra to hard working.

    What’s up friends, I am again here, and reading this article related to Search engine optimization, its also a fastidious article, therefore keep it up.

    Can any one tell me that is there any on the net classes for Web optimization, as I desire to learn more about Search engine optimisation.

    Hi there every buddy, it’s a wonderful enjoyment at here viewing these funny YouTube movies at here, nice data, thanks to admin

    It is the happiest day of my life so far, when I am watching these} funny videos here, because after whole day working I was so tired and now feeling perfectly.

    It’s going to be end of mine day, but before end I am reading this impressive post to improve my knowledge.

    Why people still use to read news papers when in this technological globe everything is existing on web?

    This paragraph is fastidious and fruitful in support of all new Personal home pages related web programmers; they must study it and do the practice.

    What’s up mates, how is the whole thing, and what you would like to say about this article, in my view its truly awesome in support of me.

    Hi Jackson, if you are a new web user then you have to go to see every day this web page and read the updated articles at at this place.

    Yes, and further more if you would like update alerts from this site then you must subscribe for it, it will be a suitable for you Jackson. Have a nice day!

  10. Hi. I absolutely would like to place a brief note and inform you know that I’ve been reading your blog for quite some time. Keep up the very impressive task and I’m going to be looking back again another time in a short time.

Leave a Reply

logo
logo
Powered by WordPress | Designed by Elegant Themes