Monday, June 22, 2009

Wii Motion Plus + Arduino = Love

Ok so I, after much research, have been able to read the gyro data of the new wii motion plus peripheral with the arduino microcontroller. With this code and the code previously developed for the wii nunchuck (here), we are able to create a 6 DOF IMU for under $40. Thanks Nintendo! Best of all, everything is I2C so only 2 analog inputs (A4 and A5 needed for the wire library) are needed to read 6 sensors and no ADC conversion happens on the arduino board.

Links and Thanks:
First off, I'm going to link(and thank) a few sites that have helped me immensely with this undertaking:
Arduino.cc
original nunchuck code
Wii brew WM+ info
Propeller forums

Hardware connections:
I used full 5V TTL signals and power and have had no problems thus far (a week going strong) but if you have a 3.3v arduino or a level converter and 3.3v regulator, i would suggest that over a 5v connection. Furthermore, twi.h under the wire library does not need to be changed for my setup but might under some setups. Start with the default 100khz TWI_FREQ and if that doesnt work, use 400khz. Websites disagree about which is the proper speed for direct I2C on wii peripherals. Connections to WM+ are same as nunchuck and look like this:
| 1 2 3 |
| |
| 6 5 4 |
|_-----_|

1 - green - data
2 - nothing
3 - red - 3.3+v
4 - yellow - clock
5 - nothing
6 - white - ground

So its pin 3 to 5v, 6 to ground, 1 to A4, and 4 to A5

Adapters such as the one sold here should (theoretically) work; I use jumper wires and hot glue

Software:

I have commented the demo code pretty well so it should be easy to follow, if not comment here or on Arduino.cc Forums->Exhibition

#include <Wire.h>
byte data[6]; //six data bytes
int yaw, pitch, roll; //three axes
int yaw0, pitch0, roll0; //calibration zeroes

void wmpOn(){
Wire.beginTransmission(0x53); //WM+ starts out deactivated at address 0x53
Wire.send(0xfe); //send 0x04 to address 0xFE to activate WM+
Wire.send(0x04);
Wire.endTransmission(); //WM+ jumps to address 0x52 and is now active
}

void wmpSendZero(){
Wire.beginTransmission(0x52); //now at address 0x52
Wire.send(0x00); //send zero to signal we want info
Wire.endTransmission();
}

void calibrateZeroes(){
for (int i=0;i<10;i++){
wmpSendZero();
Wire.requestFrom(0x52,6);
for (int i=0;i<6;i++){
data[i]=Wire.receive();
}
yaw0+=(((data[3]>>2)<<8)+data[0])/10; //average 10 readings
pitch0+=(((data[4]>>2)<<8)+data[1])/10;
roll0+=(((data[5]>>2)<<8)+data[2])/10;
}
Serial.print("Yaw0:");
Serial.print(yaw0);
Serial.print(" Pitch0:");
Serial.print(pitch0);
Serial.print(" Roll0:");
Serial.println(roll0);
}

void receiveData(){
wmpSendZero(); //send zero before each request (same as nunchuck)
Wire.requestFrom(0x52,6); //request the six bytes from the WM+
for (int i=0;i<6;i++){
data[i]=Wire.receive();
}
yaw=((data[3]>>2)<<8)+data[0]-yaw0;
pitch=((data[4]>>2)<<8)+data[1]-pitch0;
roll=((data[5]>>2)<<8)+data[2]-roll0;
}
//see http://wiibrew.org/wiki/Wiimote/Extension_Controllers#Wii_Motion_Plus
//for info on what each byte represents
void setup(){
Serial.begin(115200);
Serial.println("WM+ tester");
Wire.begin();
wmpOn(); //turn WM+ on
calibrateZeroes(); //calibrate zeroes
delay(1000);
}

void loop(){
receiveData(); //receive data and calculate yaw pitch and roll
Serial.print("yaw:");//see diagram on randomhacksofboredom.blogspot.com
Serial.print(yaw); //for info on which axis is which
Serial.print(" pitch:");
Serial.print(pitch);
Serial.print(" roll:");
Serial.println(roll);
delay(100);
}



Orientation:

Sorry for the arrows being all in the negative direction. Picture was done quickly.

Image and video hosting by TinyPic

ENJOY!

420 comments:

  1. great! i will have a try later

    ReplyDelete
  2. Any snaps of your set up? Very impressive and cheap as chips! Good work knuckles

    ReplyDelete
  3. Great stuff! Soon the sky will be swarming with homebrew UAVs and the streets teeming with balancing robots thanks to Nintendo!

    ReplyDelete
  4. Thanks, I know where to turn for 6dof!

    ReplyDelete
  5. I'm confused, wouldn't this just give you 3 dof? Just rotation on 3 axes?

    ReplyDelete
  6. Since that it is using information from both the Nunchuck (using it's accelerometer) and the Wii Motion Plus (using it's gyroscope), it can detect acceleration as well as tilt (the tilt data is more accurate coming from the gyro than the accelerometer, especially during acceleration). You get 3 readings from each device (which is 6 readings).

    ReplyDelete
  7. Has anyone fried there arduino chip with this?
    I bought the Wii-Motion-Plus and cabled it up as the example states.. ran it just fine.
    Started to modify the code.. ie. was going to average the results for less bouncy-ness.. and I couldn't upload the code.. come to find out, the chip is dead.
    I beleive it is the microcode (ie arduino-firmware) that is messed up.
    Tried it on a second chip.. same thing happened.
    Tried it on a second hardware-board and third chip.. same thing happened.

    Really puzzled here.. and I hope someone else might clue me in..

    Thanks

    ReplyDelete
  8. I'm mainly after this to get a straight rotational sensor, not even the 3 full axes of data, but I've hit a stumbling block after just opening the case...

    My wiring to the Wii-extension port on the unit from the PCB, has 7 Wires. Not normally a big deal, but the colours do not even remotely match up to what's listed here, in terms of pin numbering.

    I don't have the connector here to reference, but has anyone else seen a different wiring layout used in their WiiM+?

    ReplyDelete
  9. I tried your code with the 2 transistors. Works great ! Now for the Kalman filter. I want to use this to replace the expensive IR sensors in the Ardupilot. I also have been making an autopilot with the Parallax Propeller micro.
    Hope to see the Kalman filter soon.
    Earl

    ReplyDelete
  10. @mad robot : Never ever fried a chip yet. Have experimented with several ardunio boards no problem. This code works great. No problem here.

    @k can we post pics of our projects that use the MP+ and Nun here ?

    ReplyDelete
  11. Mad_Robot here...
    I did re-flash the chips. they were hosed.
    The values I get from the sensor sometimes are low.. but most of the time are very large numbers.
    So, if I were to make a guess, the homemade PCB-wii-adapter that I made might not be thick enough and maybe they are getting errorneous values. Values that might be bigger than an 'Arduino int' (>32k).. and possibly overwriting memory? (Not sure how Arduino would handle it).

    So, I would ask (as I build a new PCB-wii-adapter) what is the average response range that people get from this code ie.(0-255)?

    Thanks for the feedback.

    MadR.

    ReplyDelete
  12. Does anyone know if the motion plus can cause trouble on the bus. I have hooked an i2C two axis accelerometer on the I2C bus and a wii motion plus, but it seems that i can't access the accelerometer (always reading zeros on accelerometer registers). I don't know if the trouble comes from the accelerometer or if the wii motion plus control the bus for every address ...

    ReplyDelete
  13. Hey,

    I couldn't find any info on getting the MotionPlus to work with the passthrough (for the Nunchuck and Classic Controller), so I hooked it up to my logic analyzer and RE'd it.

    Just wanted to let you know I updated my MotionPlus object for the Propeller (from the thread linked above) to work w/ the passthrough port: http://obex.parallax.com/objects/471/ . The code/comments should explain everything pretty well, so it should be easy to modify for the Arduino.

    It alternates MotionPlus and Extension data on every other read, and you lose the LSBit of each accelerometer axis in Nunchuck mode (and the LSBit of each axis on the left joystick in Classic Controller mode), and it moves a couple bits around. I assume this is so you can tell the difference between MP data and Ext data (MP ends in 10, Ext ends in 00).

    DogP

    ReplyDelete
  14. Muy bueno, genial.....muchas felicidades..
    Solo le falta kalman....un 10

    ......
    Very good, great ..... many congratulations ..
    Only lacks kalman

    ReplyDelete
  15. Hi, great work here.

    I've been able to interface with the nunchuck before but I can't get it to work with the M+. Can't even get the I2C start sequence to work.

    I don't have a proper oscilloscope but it seems my clock and data lines are always low. Usually when I connect the nunchuck the lines would go high, not the case of the M+ though. And there's nothing wrong with my M+, works great in Sports Resort.

    Any ideas?

    Dan

    ReplyDelete
  16. Oh nevermind. I figured it out. It seems the M+ needs external pull-up resistors on the clock and data lines whereas the nunchuck doesn't. I tried 1K and 4K7 resistors, both worked fine (100KHz, 3.3V).

    Dan

    ReplyDelete
  17. Hi,
    Can this be used as an accellerationtest of a car?

    ReplyDelete
  18. PLEASE HELP My WM+ worked ok til yesterday. when I came back from lunch it show random data on roll axis, I tried everything but nothing works. please note that I'm alone at home and nobody touched the wm+. at a certain point in my trials I obtained aonly yaw output and no roll and pitch. I'm desperate I just mounted on my rc airplane...and stopped working just by itself! He hate me :D

    ReplyDelete
  19. Thanks a lot for your work,

    I have ordered new Wii motionPlus from DealExtreme and they wonderfully came with IDG650 series. I wonder if your code would work with them. I suppose it has to.

    Check out my post here http://carancho.com/AeroQuad/forum/index.php?topic=218.0 for more info.


    Farshid
    farshidjh.wordpress.com

    ReplyDelete
  20. Hi there, firstly thanks very much for your work on this - it's really great stuff.

    But I have a problem with my set up... it's probably a very silly mistake I'm making but I'm not getting any output in the serial monitor other than "wm+ tester". That is when the motion plus is plugged in but if I unplug it I get "yaw:0 pitch:0 roll:0" etc

    I have used one of the nunchucky adapters so don't think my wiring is at fault and have tried changing the frequency in twi.h but still no luck. Any ideas? I only need pitch/yaw values so don't need to connect a nunchuck. Any help would be REALLY appreciated!

    ReplyDelete
  21. ^^ I'm having the same problem, all I get is 0's! However I don't unplug anything, when I boot up it just gives me 0's for values. I've tried changing wires, frequencies, pull up resistors, pull down resistors...

    Where did you buy your WMP? I ordered mine from eBay and there is a slightly different board, I wonder if this is affecting my results?

    ReplyDelete
  22. To be honest Jeff, I borrowed the WM+ from a friend so not sure exactly where it was bought. Most likely from a high street store though. Did you find a solution to your problem yet? I've even started to look at using the playstation 3 controller but that isn't going any better...

    ReplyDelete
  23. Is it possible to remove the pass through port and use it as an adapter without affecting the wiimotion plus?

    ReplyDelete
  24. Thank you very much

    But how can I get the absolute value in degrees?

    Peter

    ReplyDelete
  25. Hi fantastic stuff here,
    Can anyone help me out with the upper and lower limits output from the gyro's?

    Thanks a lot

    ReplyDelete
  26. What attracts the professionals is "The Blueberry Nights" is the fruit of cooperation between luis vitton and the film industry.

    The general term is one to three days and designer handbags rent is together with a commission fee but you must pay the full deposit.


    In 1997 when Fendi was inspired by the "French bread", Fendi launched Baguette discount fendi handbags to the preferences of many.

    Plus a layer of waterproof PVC, the louie viton handbags do seem long-standing, fresh and durable with the main customers royalty.

    ReplyDelete
  27. hello friend amazing and very interesting blog about Wii Motion Plus + Arduino = Love I really would like to have any update about, thanks for sharing this information

    ReplyDelete
  28. Wow! awesome,. Thanks for the great information, very helpful and informative. Thank you for the sharing of information.^^

    Kinda Hong
    Handbags clutches Shop

    ReplyDelete
  29. That was really genius.
    I dont think that it would be happened. Geez!

    ReplyDelete
  30. Thank you for sharing information. It is quite useful for us also. I always love to read such type of things.

    ReplyDelete
  31. Very informative and probably ground breaking at the time/ Wii just doesn't rattle the walls anymore!

    ReplyDelete
  32. These articles are fantastic; the information you show us is interesting for everybody and is really good written.

    ReplyDelete
  33. Nice tutorial.

    I already tried this, and its work best. Hope you post more like this.

    ReplyDelete
  34. nice way to discover new thing about this console

    ReplyDelete
  35. Thanks for the info on the DX forum about the wm+ and the gyro :-)

    ReplyDelete
  36. Doctor endorsed and rated #1 for results by clients of penis enlargement consumers. rated two penis pills is vimax. if you find about male enhancement this products is the best and proven to work, there products have money-back guarantee in effectiveness and result.

    Justin Bieber News Today | Justin Bieber club | Movie News | GeeNooZ | Hot Game | Lee Dewyze

    ReplyDelete
  37. Thanks man, awesome jump off post for getting back into hacking the wm.

    Chemmyone

    ReplyDelete
  38. Hello this is really very interesting blog post here, your blog is very informative for reading, I found very unique information from your blog. Keep posting such an informative information.

    ReplyDelete
  39. PS3 is going to destroy Wii now that it has a hand controller

    RegCure

    ReplyDelete
  40. Just blog walking and want to say hi to the owner, I'm enjoying reading your review/story thanks

    ReplyDelete
  41. Nice post....will definitely refer to it.
    Regards,
    Lisa Green
    generic viagra

    ReplyDelete
  42. It is better to stop snoring exercise program, but if it does not respond to simple remedies, including non-surgical ones, should be discussed with a physician or sleep specialist. stop snoring without surgery

    ReplyDelete
  43. I have been exploring for some time for a quality articles or blog posts with regard to this unique subject matter . Scouting in Bing I now saw this site. Reading this information So i'm truly satisfied to imply that I've got a good sensation I ran across precisely what I needed. Most definitely i'll ensure to remember this site and look it over on a constant basis. Indonesia Siap Bersaing di SERP

    ReplyDelete
  44. Hello, I do not agree with the previous commentator - not so simple

    ReplyDelete
  45. Just blog walking and want to say hi to the owner, I'm enjoying reading your review/story thanks

    ReplyDelete
  46. I happen to land to this blog and it is a good written article, a little bit on the short end, but a pretty satisfactory one.
    I definetly adore the layout too, it is altogether easy to navigate. Diskon Gila Disdus.Com | Diskon gila-gilaan tiap 2 hari sekali dari disdus.com

    ReplyDelete
  47. What a nice blog I liked it very much thanks for your creative work done by you.

    ReplyDelete
  48. I have never ever come across such a wonderful piece of information. Today I am proud to say that I have finally gain knowledge on this topic and here on I shall also spread the same preaching ahead so that the world become a better place to live in.

    buy zenegra online

    ReplyDelete
  49. I now saw this site. Reading this information So i'm truly satisfied to imply that I've got a good sensation I ran across precisely what I needed. Most definitely i'll ensure to remember this site and look it over on a constant basis.
    britney spears perfume
    ed hardy perfume
    vera wang perfume
    calvin klein perfume
    paris hilton perfume

    ReplyDelete
  50. What a nice blog I liked it very much thanks for your creative work done by you.

    ReplyDelete
  51. Great Stuff One has to read and bookmark such a nice blog.

    ReplyDelete
  52. You got a really useful blog I compel ought to been here reading as a replacement for close to an hour. I am a newbie and your ascendancy is selfsame much an insight in the direction of me…. Diskon Gila Disdus.Com

    ReplyDelete
  53. Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work. Diskon Gila Disdus.com

    ReplyDelete
  54. Nice work on putting together a very interesting post. Fabulous ideas and very helpful information. Well thought out and well written.

    ReplyDelete
  55. Doctor endorsed and rated #1 for results by clients of penis enlargement consumers. rated two penis pills is vimax. if you find about male enhancement this products is the best and proven to work, there products have money-back guarantee in effectiveness and result.
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat
    rumah mungil yang sehat

    ReplyDelete
  56. one thinks of Win real money playing online slots at Karamba.com, Las Vegas, slots - traditionally, a coin-operated device with a single handle that when pulled, causes Win real money playing online slots at Karamba.com.

    Today's Win real money playing online slots at Karamba.com and video slots operate the same way. including adult slots for Win real money playing online slots at Karamba.com the more adventurous.

    Louvered Doors - Bedding Mattresses - Contract Management Software

    ReplyDelete
  57. What youre saying is completely true. I know that everybody must say the same thing, but I just think that you put it in a way that everyone can understand. I also love the images you put in here. They fit so well with what youre trying to say. Im sure youll reach so many people with what youve got to say.


    Ekodok Cell
    Rumah Mungil Yang Sehat
    Mobil Keluarga Ideal Terbaik Indonesia
    Rumah Mungil Yang Sehat
    Rumah Mungil Yang Sehat
    Tips Menambah 1000 follower Twitter dengan Cara Instan

    ReplyDelete
  58. I was very pleased to find this site.I wanted to thank you for this great read!! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you post.

    ReplyDelete
  59. I am bowled by your level of knowledge. I am so impressed. I think you have got a deep insight into this topic. Could not think on those lines ever…I think you are gifted…keep going. Thumbs up!

    ReplyDelete
  60. This is the perfect blog for anyone who wants to know about this topic. You know so much its almost hard to argue with you (not that I really would want...HaHa). You definitely put a new spin on a subject thats been written about for years. Great stuff, just great!

    Stop Korupsi Dan Suap Di Indonesia | Stop Korupsi Dan Suap Di Indonesia | Stop Korupsi Dan Suap Di Indonesia | Stop Korupsi Dan Suap Di Indonesia | CARA BERIKLAN DI INTERNET | Stop Korupsi Dan Suap Di Indonesia >

    ReplyDelete
  61. Great stuff from you, man. Ive read your stuff before and youre just too awesome. I love what youve got here, love what youre saying and the way you say it. You make it entertaining and you still manage to keep it smart. I cant wait to read more from you. This is really a great blog.

    Stop Korupsi Dan Suap Di Indonesia

    Dengan berkosupri kita bisa melakukannya dengan sedikit sentuhan putaran sapi untuk terbang keawan dan itu sangat mungkin karena kita sangat berbahagia bisa mengatasi banjir untuk membantas kekalahan indonesia sebaranya jika kita pejajari dengan tekun matematika itu tidak susah.

    ReplyDelete
  62. This is the perfect blog for anyone who wants to know about this topic. You know so much its almost hard to argue with you (not that I really would want...HaHa). You definitely put a new spin on a subject thats been written about for years. Great stuff, just great!

    Stop Korupsi Dan Suap Di Indonesia | Stop Korupsi Dan Suap Di Indonesia | CARA BERIKLAN DI INTERNET | Stop Korupsi Dan Suap Di Indonesia | Stop Korupsi Dan Suap Di Indonesia | Stop Korupsi Dan Suap Di Indonesia | Stop Korupsi Dan Suap Di Indonesia | Info Kontes SEO Stop Korupsi Dan Suap Di Indonesia

    ReplyDelete
  63. I am happy to find this very useful for me, as it contains lot of information. I always prefer to read the quality content
    587

    ReplyDelete
  64. this info is excellent....
    happy new year 2011, and visit please to my blog, thank's

    ReplyDelete
  65. Whoa!!! I'm bowled with your high level of knowledge. I am so impressed. I believe you have immense knowledge on the matter. I think you are too good? Keep working and keep it up!!

    ReplyDelete
  66. A very good post and certainly these are points really useful.diskon gila disdus.com | diskon gila disdus.com

    ReplyDelete
  67. yeah... its good article thanks for your article

    ReplyDelete
  68. Thanks for this one. GREAT post.

    |double din car stereo|

    ReplyDelete
  69. I can see that you are putting a lots of efforts into your blog. Keep posting the good work.Some really helpful information in there. Bookmarked. Nice to see your site. Thanks!

    ReplyDelete
  70. I was so engrossed while reading it. Man, you have got a flair for writing.
    January 19, 2011 9:27 PM

    ReplyDelete
  71. Hi, I recently clicked to your site and started reading along your articless. I thought I would leave my first comment. I dont know what to say except that I have adore reading your website. It is a realy nice website. I will keep visiting this blog very often…

    ReplyDelete
  72. Hi, I recently clicked to your site and started reading along your articless. I thought I would leave my first comment. I dont know what to say except that I have adore reading your website. It is a realy nice website. I will keep visiting this blog very often…

    ReplyDelete
  73. This is great information. The diagram is easy to understand. We will share this information with the class.

    ReplyDelete
  74. Thanks very much for sharing this amazing information... Just Keep posting... I'm looking for some more information from your blog.

    ReplyDelete
  75. I was very encouraged to find this site. I wanted to thank you for this special read.. I definitely savored every little bit of it and I have you bookmarked to check out new stuff you post.
    perlunya web komunitas event organizer
    busana muslim terbaru I admire the valuable information you offer in your articles.
    Cara Membuat Radio Streaming Murah Finally, an issue that I am passionate about.

    ReplyDelete
  76. your post looks very interesting for me, Great blog! I am loving it!! Will come back again. I am totally excited about this blog
    foto gadis smu, camera,komputer game, film, Pencairan Es Greenland

    ReplyDelete
  77. Thank you for another essential article. Where else could anyone get that kind of information in such a complete way of writing? I have a presentation incoming week, and I am on the lookout for such information.

    Arsenal vs Huddersfield Town live streaming | Lazio vs Fiorentina live streaming | Everton vs Chelsea live Streaming | Technology News | News Today | Live Streaming

    ReplyDelete
  78. This is the perfect blog for anyone who wants to know about this topic. You know so much its almost hard to argue with you (not that I really would want...HaHa). You definitely put a new spin on a subject thats been written about for years. Great stuff, just great!

    cara beriklan di internet | cara beriklan di internet | cara beriklan di internet | cara beriklan di internet | CARA BERIKLAN DI INTERNET | cara beriklan di internet | CARA BERIKLAN DI INTERNET | cara beriklan di internet

    ReplyDelete
  79. I was very encouraged to find this site.Free Download I wanted to thank you for this special read.perlunya web komunitas event organizer. I definitely savored every little bit of it and I have you bookmarked to check out new stuff you post.|perlunya web komunitas event organizer | busana muslim I admire the valuable information you offer in your articles.fashion | Cara Membuat Radio Streaming Murah | News Technology, Gadget, Computer Finally, an issue that I am passionate about. | Tutorial blog | Belajar Kimia | Valen Sport Damper| bali villa rental|bali villa rental
    jasa pembuatan tesis Thank you for another essential article.Baju Bali
    tutorial blog,jas hujan murah, jas hujan motor, jas hujan wanita, Komodo Island is the NEW 7 Wonders of The World

    ReplyDelete
  80. Resources like the one you mentioned here will be very useful to me! I will post a link to this page on my blog. I am sure my visitors will find that very useful.

    ReplyDelete
  81. Well, I dont know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often, thanx for the share.

    ReplyDelete
  82. Some well written articles on this blog

    ReplyDelete
  83. Thank you for another essential article. Where else could anyone get that kind of information in such a complete way of writing? I have a presentation incoming week, and I am on the lookout for such information.
    jasa pembuatan skripsi
    pempek
    busana muslim

    ReplyDelete
  84. This is a smart blog. I mean it. You have so much knowledge about this issue, and so much passion. You also know how to make people rally behind it, obviously from the responses. Youve got a design here thats not too flashy, but makes a statement as big as what youre saying. Great job, indeed.
    cara mengobati keputihan
    mengobati keputihan
    belajar kimia
    bacterial vaginosis cures

    ReplyDelete
  85. This is the perfect blog for anyone who wants to know about this topic. You know so much its almost hard to argue with you (not that I really would want...HaHa). You definitely put a new spin on a subject thats been written about for years. Great stuff, just great!
    jasa penerjemah
    penerjemah tersumpah
    penerjemah bahasa

    ReplyDelete
  86. ane gak ngerti bahasa ente gan..tapi good luck numpang cari BL...

    ReplyDelete
  87. sama kaya yg diatas ane, ane juga gak ngerti bahasanya...tapi thanks atas lapaknya buat pamnye

    ReplyDelete
  88. This comment has been removed by the author.

    ReplyDelete
  89. This is the perfect blog for anyone who wants to know about this topic. You know so much its almost hard to argue with you (not that I really would want...HaHa). You definitely put a new spin on a subject thats been written about for years. Great stuff, just great!

    susu colostrum
    susu
    susu terbaik

    ReplyDelete
  90. Greetings I recently finished reading through your blog and I'm very impressed. I do have a couple questions for you personally however. Do you think you're thinking about doing a follow-up posting about this? Will you be going to keep bringing up-to-date as well?

    ReplyDelete
  91. Harga Jual Blackberry iPhone Laptop Murah

    This is the perfect blog for anyone who wants to know about this topic. You know so much its almost hard to argue with you (not that I really would want...HaHa). You definitely put a new spin on a subject thats been written about for years. Great stuff, just great!

    By. Harga Jual Blackberry iPhone Laptop Murah

    Oleh:Harga Jual Blackberry iPhone Laptop Murah

    ReplyDelete
  92. When I originally wrote this article, Converse soldes I was mistaken about the sequence of events.

    ReplyDelete
  93. I love the equation at the top of the page. I know you are smart but it is nice to show your soft side as well.

    ReplyDelete
  94. Wow quite a few followers you have got here. And all of them are keen contributors. I love to know your secret of attracting this many readers.

    ReplyDelete
  95. Thank you for another essential article. Where else could anyone get that kind of information in such a complete way of writing? I have a presentation incoming week, and I am on the lookout for such information.

    ReplyDelete
  96. Great post!!! Fabulous writing!! Totally endure the fact!!!

    ReplyDelete
  97. Discover Louis Vuitton collections online: luggage, handbags, wallets, shoes ...

    ReplyDelete
  98. I think that I’m hoping that we’ll end up with a slew of prototyped ideas and a bunch of happy people. I’m sure there’ll be a lot more hard work until we can turn those embryonic proofs of concept..

    ReplyDelete
  99. I always enjoy reading such posts which provide knowledge based information like this blog. Thanks for sharing it with us.

    ReplyDelete
  100. Nice I’m hoping that we’ll end up with a slew of prototyped ideas and a bunch of happy people. I’m sure there’ll be a lot more hard work until we can turn those embryonic proofs of concept into living here as soon as possible.

    ReplyDelete
  101. Hello to everyone who has blog.first I congratulate the blog owner.he is got excellent blog.That is really very good article. I am glad to know. Thanks for sharing !
    kızlarla chatcetavrupa chatchat odalari
    Mersin Chatsohbet odalari

    ReplyDelete
  102. Impressive I’m hoping that we’ll end up with a slew of prototyped ideas and a bunch of happy people. I’m sure there’ll be a lot more hard work until we can turn those embryonic proofs of concept into living there..

    Best Shed Plans

    ReplyDelete
  103. I am happy to visit and read useful articles here. I hope you continue to do the sharing through the post to the reader. and good luck for the visitors site Busana Muslim Javahostindo Web Hosting Indonesia
    Javahostindo Web Hosting Indonesia

    ReplyDelete
  104. Hello,
    This is an interesting information here.... Great Blog, Keep posting such an amazing blog post.
    Thanks!

    ReplyDelete
  105. greetings brother...
    i like your site and your article...

    very helpul..

    ReplyDelete
  106. Great post I loved it and twittered it

    ReplyDelete
  107. This is an amazing blog post, Thanks very much for the share.... Keep posting....

    ReplyDelete
  108. spamernya banyak yg dari indonesia....gila....
    a kawatir kalo ntar negara kita dianggap negara spamer...

    ReplyDelete
  109. beneran deh, banyak yg dari indo, orang2 kita emg luar biasa menjelajahnya....
    oya, nitip kiwod websasdesign.com cinta blogger ya...

    ReplyDelete
  110. . I wanted to thank you for this special read

    ReplyDelete
  111. many thanks for sharing this informative post i think your blog needs a bookmark haha

    ReplyDelete
  112. I am going to say what everyone else have not said above, but i must say , you are genuinely well-informed.I cannot believe how much of this I just was not

    ReplyDelete
  113. This weblog is solely wonderful, I believed I know a lot, but I’m so improper, like the old saying the more you realize, the extra you learn the way little you know. Thanks for the info.

    Aqiaqh di Jakarta-PercetakanPercetakan di tangerang- Aqiqah -Madu anak-Baju Anak

    ReplyDelete
  114. Shopping from cheap lasix it about 6 month still want to say that service is excellent cheap prices very fast delivery and good quality generics

    ReplyDelete
  115. Great software..and you did a great job here by writing this code and methods..i definitely try this later.

    ReplyDelete
  116. I think that I’m hoping that we’ll end up with a slew of prototyped ideas and a bunch of happy people. I’m sure there’ll be a lot more hard work until we can turn those embryonic proofs of concept..

    ReplyDelete
  117. This is great information. The diagram is easy to understand. We will share this information with the class.

    ReplyDelete
  118. I believe this blog post is one of the most informative thing not only for the technique learner but also for necessary for all stage people.

    ReplyDelete
  119. I am thoroughly convinced in this said post. I am currently searching for ways in which I could enhance my knowledge in this said topic you have posted here. It does help me a lot knowing that you have shared this information here freely. I love the way the people here interact and shared their opinions too. I would love to track your future posts pertaining to the said topic we are able to read.

    ReplyDelete
  120. I am thoroughly convinced in this said post. I am currently searching for ways in which I could enhance my knowledge in this said topic you have posted here. It does help me a lot knowing that you have shared this information here freely. I love the way the people here interact and shared their opinions too. I would love to track your future posts pertaining to the said topic we are able to read.

    ReplyDelete
  121. I am thoroughly convinced in this said post. I am currently searching for ways in which I could enhance my knowledge in this said topic you have posted here. It does help me a lot knowing that you have shared this information here freely. I love the way the people here interact and shared their opinions too. I would love to track your future posts pertaining to the said topic we are able to read.

    ReplyDelete
  122. Saw that post on Twitter and came in to read it completely. Thanks for sharing was really interesting.

    ReplyDelete
  123. Very interesting concept, although it begs the question of credibility and persistence: if all your online info comes through a stream, can you be sure to access the info you want when you want it?

    ReplyDelete
  124. well I do have a couple questions for you personally however. Do you think you're thinking about doing a follow-up posting about this i will visit soon..

    ReplyDelete
  125. Really you have done great job,There are may person searching about that now they will find enough resources by your post.I like this blog..

    ReplyDelete
  126. You made some good points there. I did a search on the topic and found most people will agree with your blog

    ReplyDelete
  127. Wonderful blog..This is something unique and most important information written on your blog..I like your blog very much.

    ReplyDelete
  128. Thank you For Great Posts Admin! keep up the good work!

    ReplyDelete
  129. I could enhance my knowledge in this said topic , But its really very interesting topic .

    ReplyDelete
  130. thank you so much for posting this!! ^^ very helpful!

    ReplyDelete
  131. I am very much interested in these types of topics from childhood and it's my habit to read this.

    ReplyDelete
  132. Thanks for your shared, we'll wait your visit in my blog

    ReplyDelete
  133. This impressive information like each reader. Thank you!

    ReplyDelete
  134. Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts into the stuff you post!! Thumbs up

    ReplyDelete
  135. I am happy to visit and read useful articles here. I hope you continue to do the sharing through the post to the reader. and good luck for the visitors site.
    SARONG

    ReplyDelete
  136. That is very good comment you shared.Thank you so much that for you shared those things with us.Im wishing you to carry on with ur achivments.All the best.
    Austin Real Estate

    ReplyDelete
  137. Thanks for sharing this post, now that i know your blog I will read from it more often,very nice and so true

    ReplyDelete
  138. Normally I don’t comment on your posts but I wanted to let you know that I have trouble loading your site. I dunno if it is me or what but I get like 500 error all the time. Whatever 500 error means. Just FYI stop snores

    ReplyDelete
  139. I admire the way you express yourself through writing. Your post is such a refreshing one to read. This is such an interesting and informative article to share with others. Keep up the good work and more power. Thanks!

    ReplyDelete
  140. I could tell how great you are in your field of interest. You could relate in each detail very well. Thank you for spending a time on sharing such informative writings to us. I will bookmark your page and looking forward to read some more of your writings soon.

    loans till payday | android app developers

    ReplyDelete
  141. Thanks for sharing this post, now that i know your blog I will read from it more often,very nice and so true

    ReplyDelete
  142. This is a smart blog. I mean it. You have so much knowledge about this issue, and so much passion. You also know how to make people rally behind it, obviously from the responses. Youve got a design here thats not too flashy, but makes a statement as big as what youre saying. Great job, indeed.
    8.

    ReplyDelete
  143. Hi Everybody,
    You really did a great job. I found your blog very interesting and very informative. I think your blog is great information source & I like your way of writing and explaining the topics. Keep it up. I'm going to follow your blog.

    ReplyDelete
  144. Hello,
    This is an interesting information here.... Great Blog, Keep posting such an amazing blog post.
    Thanks!
    Isdale Construction

    ReplyDelete