<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>KSduino Project official Blog. The project was created to connect your Arduino controllers to Internet with the Device Network.</description><title>BLOG - KSduino</title><generator>Tumblr (3.0; @ksduino)</generator><link>http://blog.ksduino.org/</link><item><title>Multitasking and real time systems at Arduino</title><description>&lt;p&gt;&lt;p style="text-align: center;"&gt;&lt;a class="fancybox" href="http://lh3.googleusercontent.com/-AstNw6YGphI/SRfVVLm_zLI/AAAAAAAAAu4/YPMs536zhzU/s804/img_%D0%9A02008_07_021.jpg"&gt;
&lt;img src="http://media.tumblr.com/03919c319204ffe6da282c49a5ab101f/tumblr_inline_mj8hi4RZV71qz4rgp.jpg" alt="image"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p style="text-align: right;" class="info"&gt;&lt;b&gt;&lt;span class="info"&gt;to make your sketch more professional&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;Real time operating system&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;A real-time operating system (RTOS) is an operating system (OS) intended to serve real-time application requests. It must be able to process data as it comes in, typically without buffering delays. Processing time requirements (including any OS delay) are measured in tenths of seconds or shorter.&lt;/p&gt;

&lt;p style="text-align: justify;"&gt;It&amp;#8217;s not a secret that the Arduino has small system resources. Is it possible to run RTOS at Arduino? Fortunately, yes! There is some RTOS which can run at Arduino. We have used some of them and our choice is ChibiOS. &lt;/p&gt;

&lt;p style="text-align: justify;"&gt;ChibiOS/RT is designed for deeply embedded real time applications where execution efficiency and compact code are important requirements. This RTOS is characterized by its high portability, compact size and, mainly, by its architecture optimized for extremely efficient context switching.&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;What plus we get when use RTOS&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;All examples which you see when study  Arduino or KSduino is a Linear program. The basic part of program are placed to Loop function and run from its begin to the end. There is a delay at the end of loop when our Arduino does nothing. This kind of program for similar tasks, for example: we read some sensors one time per second. What should we do if we need read light sensor every ten milliseconds and read temperature sensor one time per five seconds. We can write this program in standard loop using millis function and much if which will perform this task. This program will work but the loops code will very long with much conditions. Programs like this is not readable, heavily modified and may contain difficult to debug errors.&lt;/p&gt;

&lt;p style="text-align: justify;"&gt;When we use RTOS we can create separate processes (threads). Each of the processes looks like  separate loop function. So we can create a program with much loops each of they will execute its separate task. In our example the first process will read light sensor with quick delay the second process will read temperature sensors with long delay. Both of this process will send information to KSduino.&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;Setup RTOS and create sketches&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;How the RTOS for Arduino looks and what we will use to create programs? The ChibiOS is a simple library which should be copied to your Arduinos library folder. And the program is simple Arduino sketch created in Arduino IDE. &lt;/p&gt;

&lt;p style="text-align: justify;"&gt;OK, Let us download ChibiOS  and create your first ChibiOS Arduino sketch!&lt;/p&gt;

&lt;p style="text-align: justify;"&gt;We get the ChibiOS from &lt;a href="http://code.google.com/p/rtoslibs/"&gt;http://code.google.com/p/rtoslibs/&lt;/a&gt; page. This page contain information about other RTOS and link for official ChibiOS website. &lt;br/&gt;&lt;br/&gt;
There is direct download link, we use version ChibiOS20130208: 
&lt;a href="http://ksdu.in/o/45"&gt;http://ksdu.in/o/45&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
You can download also this archive from the KSduino website:&lt;br/&gt;
&lt;a href="http://ksduino.org/downloads/ChibiOS20130208.zip"&gt;http://ksduino.org/downloads/ChibiOS20130208.zip&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;The ChibiOS and KSduino example&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;We modify example from previous article:  &lt;a href="http://blog.ksduino.org/post/42862084042/pseudo-multitasking-using-timer-in-arduino-sketch"&gt;Pseudo multitasking. Using timer in Arduino sketch&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
In this example we create process:&lt;br/&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Thread 1 for sending parameters to KSduino&lt;/li&gt;
&lt;li&gt;Thread 2 for calculate DS18b20 temperature &lt;/li&gt;
&lt;li&gt;Thread 3 for read KSduino answers&lt;/li&gt;
&lt;/ul&gt;&lt;br/&gt;
To synchronize  KSduino tasks we use semafor so in one time moment only one KSduino task can run.&lt;br/&gt;&lt;pre&gt;&lt;code&gt;
// Includes
#include "SPI.h"
#include "EthernetUdp.h"
#include "OneWire.h"    // one wire library to connect ds18b20
#include "ksDS18B20.h" 	// subclass to read ds18b20 values
#include "KSduino.h"	// KSduino Library
#include "ChibiOS_AVR.h" // ChibiOS library

// DS18B20 address
uint8_t  devAddr1[] = { 0x28, 0x16, 0x05, 0xB2, 0x03, 0x00, 0x00, 0x00 };

// Define OneWire, DS18B20 &amp;amp; Timer classes
OneWire ds(7);   // OneWire on pin 7
ksDS18B20 ds18b20_1 (&amp;amp;ds, devAddr1);

// KSduino User definition -----------------------------------------

// This Arduino ID and Password
// Change this values to yours
unsigned int deviceID = 0000;	// set your Device ID
unsigned int devicePwd = 1111;  // set your Device Password

// This Arduino MAC, IP,DNS, Gateway and port 
// Change this values to yours
byte mac[] = { 0x74,0x69,0x69,0x2D,0x00,0x00 };
byte ip[] =     { 192, 168, 1, 222 };
//byte dns[] = { 192, 168, 1, 1 };
//byte gateway [] = { 192, 168, 1, 1 };
//byte subnet [] = { 255, 255, 255, 0 };  
unsigned int port = 40000 + deviceID;

// KSduino Server definition ----------------------------------------

// Server address &amp;amp; port
byte serverIp[] = { 178,63,53,233 };   // Global IP address
unsigned int serverPort = 9930;        // Port number

// ----------------------------------------------------------------

// Define KSduino class
KSduino ksd (deviceID, devicePwd, serverIp, serverPort);

// Define some KSduino parameters with KSduinoParameter class
KSduinoParameter d1 (&amp;amp;ksd, "d1", 0.5, 15*60);
KSduinoParameter f1 (&amp;amp;ksd, "f1", 0.5, 15*60);

// Semaphore to trigger context switch
Semaphore sem;

// Idle time counter
volatile uint32_t count = 0;


//------------------------------------------------------------------
void setup()
{
  ksd.begin(mac, ip, port);    // start KSduino
  // ksd.begin(mac, ip, dns, gateway, port);
  // ksd.begin(mac, ip, dns, gateway, subnet, port);

  // Setup ChibiOS
  chBegin(mainThread);
}


//------------------------------------------------------------------------------
// thread 1 - this task send KSduino parameters
// 160 byte stack for KSduino task, beyond task switch and interrupt needs
static WORKING_AREA (waThread1, 160);

static msg_t Thread1(void *arg) 
{  
  #define WAIT_FOR_ANSWER 2

  for (;;) 
  {
    // Create D1 test value
    int d1_generator = random(1,1000);
    byte d1_value =  d1_generator &amp;lt; 10 ? 1 : 0; // will high ones per second

    // Send values to KSduino if something changed
    if (d1.check (d1_value) || ds18b20_1.getTemp () &amp;amp;&amp;amp; f1.check(ds18b20_1.celsius))
    {
      chSemWait(&amp;amp;sem); // only one KSduino task should run at this moment
      
      ksd.beginPacket ();
      d1.addParameter (d1_value);
      f1.addParameter( ds18b20_1.celsius);
      ksd.endPacket (WAIT_FOR_ANSWER);

      chSemSignal(&amp;amp;sem);
    }
    chThdSleepMilliseconds(10);
  }
  
  return 0;
}


//------------------------------------------------------------------------------
// thread 2 - calqulate DS18b20 thermometer every second
// 64 byte stack beyond task switch and interrupt needs
static WORKING_AREA (waThread2, 64);

static msg_t Thread2(void *arg) 
{
  
  for (;;) 
  {
    ds18b20_1.readTermometer();
    
    chThdSleepMilliseconds(1000);
  } 

  return 0;  
}


//------------------------------------------------------------------------------
// thread 3 - KSduino update 
// 160 byte stack for KSduino task, beyond task switch and interrupt needs

static WORKING_AREA(waThread3, 160);

static msg_t Thread3 (void *arg)
{
  for (;;)
  {
    chSemWait(&amp;amp;sem); // only one KSduino task should run at this moment
    ksd.update ();
    chSemSignal(&amp;amp;sem);

    chThdSleepMilliseconds(5);
  }
  
  return 0;
}


//------------------------------------------------------------------------------
void mainThread() {
  
  // initialize semaphore
  chSemInit(&amp;amp;sem, 1);

  // start blink thread
  chThdCreateStatic(waThread1, sizeof(waThread1),
    NORMALPRIO + 1, Thread1, NULL);
    
  // start print thread
  chThdCreateStatic(waThread2, sizeof(waThread2),
    NORMALPRIO + 1, Thread2, NULL);
    
  // start ksduino send thread
  chThdCreateStatic(waThread3, sizeof(waThread3),
    NORMALPRIO + 1, Thread3, NULL);
    
  // Main thread (iadle thread) loop 
  for (;;) 
  {
    // must insure increment is atomic
    // in case of context switch for print
    noInterrupts();
    count++;
    interrupts();
  }
}


//------------------------------------------------------------------
void loop()
{
  // not used
}
&lt;/code&gt;&lt;/pre&gt;

To use this example you need one DS18b20 sensor: &lt;a href="https://ksdu.in/o/3h"&gt;https://ksdu.in/o/3h&lt;/a&gt;&lt;br/&gt;
This sketch is using ksDS18B20 class. You can download this example with ksDS18B20 class at: &lt;a href="http://ksdu.in/o/46"&gt;http://ksdu.in/o/46&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Best regards,&lt;br/&gt;&lt;a href="https://plus.google.com/105433948011361828201?rel=author"&gt;Kirill Scherba&lt;/a&gt;&lt;br/&gt;
The founder and main developer of &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; project.&lt;br/&gt;
 &lt;br/&gt;&lt;br/&gt;
Sea also: &lt;br/&gt;&lt;br/&gt;&lt;a href="http://help.ksduino.org/post/42696998273/how-to-skip-repeated-parameter-values" class="info"&gt;How to skip repeated parameter values?&lt;/a&gt;&lt;br/&gt;&lt;a href="http://blog.ksduino.org/post/42862084042/pseudo-multitasking-using-timer-in-arduino-sketch" class="info"&gt;Pseudo multitasking. Using timer in Arduino sketch&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.ksduino.org/post/44699789324</link><guid>http://blog.ksduino.org/post/44699789324</guid><pubDate>Wed, 06 Mar 2013 15:01:00 +0400</pubDate><category>ksduino</category><category>arduino</category><category>ChibiOS</category><category>RTOS</category><category>real time</category><category>ds18b20</category></item><item><title>Pseudo multitasking. Using timer in Arduino sketch</title><description>&lt;p&gt;&lt;p style="text-align: center;"&gt;&lt;a class="fancybox" href="http://ksduino.org/pictures/pseudo-multitasking-using-timer-in-arduino-sketch.jpg"&gt;&lt;img src="http://media.tumblr.com/96cfff54a9871b7707e4c05ec7ab7e92/tumblr_inline_mi2m0vuOJa1qz4rgp.jpg" alt="image"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p style="text-align: right;" class="info"&gt;&lt;b&gt;&lt;span class="info"&gt;to make your sketch more professional&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;The reason for using:&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;Arduino&amp;#8217;s standard sketch is a linear(plain) program. This means that all actions are performed sequentially. When we program the controller, there are situations when one sensor gives its values constantly but other one require our immediate reaction. The sketch may have no time to read the value and lost it. To prevent this we can use pseudo multitasking with timer functions.&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;Where to get:&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;There is simple and useful timer library called Timer by Simon Monk. It placed at Arduino&amp;#8217;s Playground Libraries Timing (the first one):&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Description: &lt;a href="http://ksdu.in/o/3f"&gt;http://ksdu.in/o/3f&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download library: &lt;a href="https://ksdu.in/o/3g"&gt;https://ksdu.in/o/3g&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p style="text-align: justify;"&gt;This timer library use callback functions which called after some events. We can originate calls every time period or once after needed time. This two simple functions are very useful to organize pseudo multitasking in our sketch and it use few resources of the controller.&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;For example:&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;We will use DS18b20 temperature sensor F1 parameter and one other test sensor D1 parameter.&lt;/p&gt;

&lt;p style="text-align: justify;"&gt;Algorithm of DS18b20:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Request to calculate temperature;&lt;/li&gt;
&lt;li&gt;Read the temperature after 750ms-1000ms.&lt;/li&gt;
&lt;/ul&gt;&lt;p style="text-align: justify;"&gt;Algorithm of D1 test parameter:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Most time of the D1 is LOW but some time it going to HIGH. We need read it very often (ones per 10ms) to check this high value.&lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;&lt;b&gt;Implementation:&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;To implement it in our normal sketch we will read D1 inside the one loop with delay 10ms, and will use timers after function to read DS18b20 values. In this case we will get all D1 HIGH values and read DS18b20 according its algorithm: read one value per second.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
#include "SPI.h"
#include "EthernetUdp.h"
#include "OneWire.h"    // one wire library to connect ds18b20
#include "Timer.h"       // timer library
#include "ksDS18B20.h" 	// subclass to read ds18b20 values
#include "KSduino.h"	// KSduino Library

// DS18B20 address
uint8_t  devAddr1[] = { 0x28, 0x16, 0x05, 0xB2, 0x03, 0x00, 0x00, 0x00 };

// Define OneWire, DS18B20 &amp;amp; Timer classes
Timer t;
OneWire ds(7);   // OneWire on pin 7
ksDS18B20 ds18b20_1 (&amp;amp;ds, devAddr1);

// KSduino User definition -----------------------------------------

// This Arduino ID and Password
// Change this values to yours
unsigned int deviceID = 0000;	// set your Device ID
unsigned int devicePwd = 1111;  // set your Device Password

// This Arduino MAC, IP,DNS, Gateway and port 
// Change this values to yours
byte mac[] = { 0x74,0x69,0x69,0x2D,0x00,0x00 };
byte ip[] =     { 192, 168, 1, 222 };
//byte dns[] = { 192, 168, 1, 1 };
//byte gateway [] = { 192, 168, 1, 1 };
//byte subnet [] = { 255, 255, 255, 0 };  
unsigned int port = 40000 + deviceID;

// KSduino Server definition ----------------------------------------

// Server address &amp;amp; port
byte serverIp[] = { 178,63,53,233 };   // Global IP address
unsigned int serverPort = 9930;        // Port number

// ----------------------------------------------------------------

// Define KSduino class
KSduino ksd (deviceID, devicePwd, serverIp, serverPort);

// Define some KSduino parameters with KSduinoParameter class
KSduinoParameter d1 (&amp;amp;ksd, "d1", 0.5, 15*60);
KSduinoParameter f1 (&amp;amp;ksd, "f1", 0.5, 15*60);


//------------------------------------------------------------------
void setup()
{
  ksd.begin(mac, ip, port);    // start KSduino
  // ksd.begin(mac, ip, dns, gateway, port);
  // ksd.begin(mac, ip, dns, gateway, subnet, port);

  t.after (0, ksd_loop); 	// start main loop
  t.after (0, readDS18B20);    // start ds18b20 loop
}


//------------------------------------------------------------------
void loop()
{
  // Update timers functions
  t.update();

  // KSduino update function  
  ksd.update ();
}


//------------------------------------------------------------------
/*
 * Read D1 value &amp;amp; Send Parameters to KSduino server
 */ 
void ksd_loop()
{  
  #define WAIT_FOR_ANSWER 2

  // Create D1 test value
  int d1_generator = random(1,1000);
  byte d1_value =  d1_generator &amp;lt; 10 ? 1 : 0; // will high ones per second

  // Send values to KSduino if something changed
  if (d1.check (d1_value) || ds18b20_1.getTemp () &amp;amp;&amp;amp; f1.check(ds18b20_1.celsius))
  {
    ksd.beginPacket ();
    d1.addParameter (d1_value);
    f1.addParameter( ds18b20_1.celsius);
    ksd.endPacket (WAIT_FOR_ANSWER);
  }
  
  // Loops delay
  t.after (10, ksd_loop); 
}


//------------------------------------------------------------------
/*
 * Read thermometer value
 */
void readDS18B20 (void)
{
  static byte cnt = 0;
  
  ds18b20_1.readTermometer();
  
  t.after (1000, readDS18B20);
}
&lt;/code&gt;&lt;/pre&gt;

To use this example you need one DS18b20 sensor: &lt;a href="https://ksdu.in/o/3h"&gt;https://ksdu.in/o/3h&lt;/a&gt;&lt;br/&gt;
This sketch is using ksDS18B20 class. You can download this example with ksDS18B20 class at: &lt;a href="http://ksdu.in/o/3i"&gt;http://ksdu.in/o/3i&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Best regards,&lt;br/&gt;&lt;a href="https://plus.google.com/105433948011361828201?rel=author"&gt;Kirill Scherba&lt;/a&gt;&lt;br/&gt;
The founder and main developer of &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; project.&lt;br/&gt;
 &lt;br/&gt;&lt;br/&gt;
Sea also: &lt;br/&gt;&lt;br/&gt;&lt;a href="http://help.ksduino.org/post/42696998273/how-to-skip-repeated-parameter-values" class="info"&gt;How to skip repeated parameter values?&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.ksduino.org/post/42862084042</link><guid>http://blog.ksduino.org/post/42862084042</guid><pubDate>Tue, 12 Feb 2013 00:25:00 +0400</pubDate><category>ksduino</category><category>arduino</category><category>timer</category><category>ds18b20</category><category>onewire</category></item><item><title>Budget Arduino WiFi with TP-LINK WR702N Router</title><description>&lt;p align="justify"&gt;The wires is not in fashion now. There is uncomfortable conducting wires in the apartment. It is not clear how to hold the wires in the garden. Yes, There is WiFi but the WiFi modules for Arduino is very expensive: &lt;a href="https://ksdu.in/o/2l"&gt;https://ksdu.in/o/2l&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p align="center"&gt;&lt;a class="fancybox" href="http://www.photoline.ru/secbase/picpart/1173/1173918493.jpg"&gt;&lt;img src="http://media.tumblr.com/7bb5dda5420a70b3041a0459b335a3ce/tumblr_inline_mgk2pnpYAL1rat3x8.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;About TP-LINK TL-WR702N:&lt;/b&gt;

&lt;/h4&gt;&lt;p align="justify"&gt;There is a low-cost and excellent performance router TP-LINK TL-WR702N which can be used with Arduino and Ethernet Shield.&lt;/p&gt;

&lt;p align="justify"&gt;TL-WR702N is the smallest wireless router in the world and very easy to use. A traveler need simply plug a hotel room’s WAN cable into the port provided and enter a default password to instantly create a wireless hotspot in the room.&lt;/p&gt;

&lt;p align="justify"&gt;The TL-WR702N is designed for use with tablets, smart phones, handheld game consoles and other portable electronic wireless devices. The device, which can be powered by an external power adapter or USB connection to a computer, can conveniently connect to the internet and share the connection around an average sized room at 150Mbps.The device’s tiny size makes it ideal for use on the road and is powerful enough to satisfy almost any basic wireless application requirement.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://ksdu.in/o/2j" class="info"&gt;See more information at the official TP-LINK website.&lt;/a&gt;&lt;/p&gt;

&lt;p align="center"&gt;&lt;img src="http://media.tumblr.com/f615f1cdb89de393715fb57af3be0d8c/tumblr_inline_mgk333QQsD1rat3x8.jpg"/&gt;&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;Where to by TP-LINK TL-WR702N:&lt;/b&gt;

&lt;/h4&gt;&lt;p align="justify"&gt;You can find it in:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;on Ebay: &lt;a href="http://ksdu.in/o/2n"&gt;http://ksdu.in/o/2n&lt;/a&gt;&lt;br/&gt; &lt;/li&gt;

&lt;li&gt;on Google: &lt;a href="https://ksdu.in/o/2k"&gt;https://ksdu.in/o/2k&lt;/a&gt;&lt;br/&gt; &lt;/li&gt;

&lt;li&gt;on Amazon: &lt;a href="http://ksdu.in/o/2m"&gt;http://ksdu.in/o/2m&lt;/a&gt;&lt;br/&gt; &lt;/li&gt;
&lt;/ul&gt;
Or look it in your local shops.

&lt;p align="justify"&gt;The price is around $20. Plus the  Arduino Ethernet shield w5100: &lt;a href="http://ksdu.in/o/2o"&gt;http://ksdu.in/o/2o&lt;/a&gt;&lt;span&gt;.&lt;/span&gt; The sum will be cheaper than price of one Arduino WiFi module.&lt;/p&gt;

&lt;p align="center"&gt;&lt;img src="http://media.tumblr.com/4903544fb08813f4be4b6ab1c95728da/tumblr_inline_mgk3je3aVM1rat3x8.jpg"/&gt;&lt;/p&gt;&lt;p align="justify"&gt;If you&amp;#8217;ll take the enc28j60 module it will be even cheaper.&lt;br/&gt; 
See price for enc28j60: &lt;a href="http://ksdu.in/o/2q"&gt;http://ksdu.in/o/2q&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;br/&gt;
See the article: &lt;a href="http://blog.ksduino.org/post/38636723785/ksduino-can-connect-your-arduino-with-enc28j60"&gt;KSduino can connect your Arduino with Enc28j60&lt;/a&gt;.&lt;/p&gt;

&lt;p align="center"&gt;&lt;img src="http://media.tumblr.com/e960efec02524dc8c9a89e5c5d925faa/tumblr_inline_mfhocadHTg1rat3x8.jpg"/&gt;&lt;/p&gt;

&lt;p align="justify"&gt;So if you&amp;#8217;ll be use the Enc28j60 Ethernet Shield and the TP-LINK TL-WR702N Router the total WiFI cost will be about $25.&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;How to use TP-LINK TL-WR702N:&lt;/b&gt;

&lt;/h4&gt;&lt;p align="justify"&gt;The WR702N Router is very easy to use. It has good documentation and intuitive Web interface. To get started:&lt;br/&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You need to connect the router to your computer and configure it to Client Mode first. After this TP-LINK will be connect to your WiFi network.&lt;br/&gt;
 &lt;/li&gt;
&lt;li&gt;Then you need to connect your Arduinu Ethernet Shield to TP-LINK Ethernet port and control Arduino as it is connected to the regular local network. You do not have to make any changes in the Arduino program to work with TP-LINK TL-WR702N Route.&lt;br/&gt;
 &lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://ksdu.in/o/2r" class="info"&gt;See the &amp;#8220;Enc28J60 and Arduino (11)&amp;#8221; article to detail instruction how to connect TP-LINK TL-WR702N.&lt;/a&gt;


&lt;p&gt;&lt;br/&gt;Best regards,&lt;br/&gt;&lt;a href="https://plus.google.com/105433948011361828201?rel=author"&gt;Kirill Scherba&lt;/a&gt;&lt;br/&gt;
The founder and main developer of &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; project.&lt;br/&gt;
 &lt;/p&gt;

&lt;p align="justify" class="info"&gt;Sea also: 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.ksduino.org/post/37480815224/welcome-to-ksduino" class="info"&gt;Welcome to KSduino&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://help.ksduino.org/post/36586795328/how-to-connect-your-device-to-the-ksduino-device" class="info"&gt;How to connect your device to the KSduino Device Network?&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://blog.ksduino.org/post/38636723785/ksduino-can-connect-your-arduino-with-enc28j60" class="info"&gt;KSduino can connect your Arduino with ENC28J60&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://blog.ksduino.org/post/40417674316</link><guid>http://blog.ksduino.org/post/40417674316</guid><pubDate>Sun, 13 Jan 2013 14:20:21 +0400</pubDate><category>ksduino</category><category>arduino</category><category>wifi</category><category>arduino ethernet shield</category><category>TP-LINK</category><category>TL-WR702N</category><category>enc28j60</category></item><item><title>Using UDP protocol with Arduino</title><description>&lt;p align="justify"&gt;The &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; uses UDP to connect Arduino to Internet to show device parameters at KSduino web site.&lt;/p&gt;

&lt;p align="center"&gt;&lt;a class="fancybox" href="http://www.photoline.ru/critic/picpart/1144/1144705843.jpg"&gt;
&lt;img src="http://media.tumblr.com/a64309b07202c25ff8b8559ed81c98f9/tumblr_inline_mg2qnl42Xl1rat3x8.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;The UDP history:&lt;/b&gt;&lt;/h4&gt;

&lt;p align="justify"&gt;The User Datagram Protocol (UDP) is one of the core members of the Internet protocol suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol (IP) network without prior communications to set up special transmission channels or data paths. The protocol was designed by David P. Reed in 1980 and formally defined in RFC 768.&lt;/p&gt;

&lt;p align="justify"&gt;UDP is most quick of basic Internet Protocols. But the UDP protocol does not guarantee 100% packet delivery since UDP has no built-confirmation as TCP for example. Stable connection using UDP releases using software protocols.&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;About KSduino UDP send-receive algorithm:&lt;/b&gt;&lt;/h4&gt;

&lt;p align="justify"&gt;Sending and receiving UDP packets embedded in KSduino Library that can be downloaded from the &lt;a href="http://ksduino.org/?downloads"&gt;DOWNLOADS&lt;/a&gt;.&lt;/p&gt;

&lt;p align="justify"&gt;There are two modes to send values:&lt;br/&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;synchronous&lt;/li&gt;
&lt;li&gt;asynchronous (default)&lt;/li&gt;
&lt;/ol&gt;&lt;br/&gt;
See functions where these modes uses: &lt;a href="http://ksdu.in/o/22"&gt;http://ksdu.in/o/22&lt;/a&gt;


&lt;p align="justify"&gt;In synchronous method we send value and are waiting answer from server. When we use this method we have not lost packets because &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; waits for answer and repeat packets if it does not get answer during timeout. This method should be used with critical values. But this method takes lot of time from sketch: time minimum = ping to server time 3-4 milliseconds. This is not acceptable for normal operation! So we created another one - asynchronous mode.&lt;/p&gt;

&lt;p align="justify"&gt;In asynchronous mode we send value, save it packet number to Queue and don&amp;#8217;t wait answer after send. It takes only 1 - 3 milliseconds as &lt;a href="https://ksduino.org/?docs=classKSduino.html#a03ca6f9e17aaa0ca47654bfadb98f8a4"&gt;ksd.getLoopTime&lt;/a&gt;() shows. We get a response from servers at next loops and check the Queue. We do not save sent Values because Arduino has not memory for it. So from time to time we have lost packets and wrong packets.&lt;/p&gt;

&lt;p align="justify"&gt;In this method:&lt;br/&gt;&lt;br/&gt;
Lost packet means: we have not got response from server but we don&amp;#8217;t sure that server hoes not got this value;&lt;/p&gt;

&lt;p align="justify"&gt;Wrong packet means: the server (or network) sends something that we are not waiting now! It may be some lost packet which going to long or broadcast or some parasite UDP network packet. We check only packets we are waiting now and drop all other. In most case Wrong packets - is packets which we don&amp;#8217;t get during timeout. Arduino has low memory to save packets we send so we decided to have lost packets instead of spending time.&lt;/p&gt;

&lt;p align="justify"&gt;In most case Lost packet means we don&amp;#8217;t got response during timeout. But it&amp;#8217;s not real lost packet.&lt;/p&gt;

&lt;p&gt;&lt;br/&gt;Best regards,&lt;br/&gt;&lt;a href="https://plus.google.com/105433948011361828201?rel=author"&gt;Kirill Scherba&lt;/a&gt;&lt;br/&gt;
The founder and main developer of &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; project.&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.ksduino.org/post/37480815224/welcome-to-ksduino" class="info"&gt;see &amp;#8216;Welcom to KSduino&amp;#8217; to more info about KSduino web site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://help.ksduino.org/post/36586795328/how-to-connect-your-device-to-the-ksduino-device" class="info"&gt;see &amp;#8216;How to connect your device to the KSduino Device Network?&amp;#8217; to learn how to connect&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://blog.ksduino.org/post/39659066923</link><guid>http://blog.ksduino.org/post/39659066923</guid><pubDate>Fri, 04 Jan 2013 19:22:00 +0400</pubDate><category>arduino</category><category>ksduino</category><category>network</category><category>UDP</category></item><item><title>KSduino can connect your Arduino with ENC28J60</title><description>&lt;p style="text-align: justify;"&gt;This allows you to add internet capability to your project. It can also be used to drive relays as only a few pins are used for the ENC28J60.&lt;/p&gt;

&lt;p style="text-align: center;"&gt;&lt;a class="fancybox" href="http://lh3.googleusercontent.com/-NqpgiKt5jL0/SQS1b7bZuHI/AAAAAAAAAig/S-_kMyopC58/s640/img_%D0%9A02008_01_012.jpg"&gt;
&lt;img src="http://media.tumblr.com/c4ce82a93a268094b79bca46f24638b3/tumblr_inline_mfhs75Igfc1rat3x8.jpg" title="KSduino can connect your Arduino with ENC28J60" alt="KSduino can connect your Arduino with ENC28J60"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;b&gt;About ENC28J60:&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;The ENC28J60 Ethernet Module utilizes the new Microchip ENC28J60 Stand-Alone Ethernet Controller IC featuring a host of features to handle most of the network protocol requirements. The board connects directly to Arduino and to most microcontrollers with a standard SPI interface with a transfer speed of up to 20MHz.&lt;/p&gt;

&lt;p style="text-align: justify;"&gt;The ENC28J60 contains all the necessary hardware to implement an Ethernet interface including the isolation transformer and LINK/STATUS LEDs. SPI interface makes this one of the easiest 10Base-T ICs yet! 3.3V with 8KB buffer.&lt;/p&gt;

&lt;p style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/e960efec02524dc8c9a89e5c5d925faa/tumblr_inline_mfhocadHTg1rat3x8.jpg" alt="image"/&gt;&lt;/p&gt;

&lt;p style="text-align: justify;"&gt;The ENC28J60 is fully compatible with &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt;. ENC28J60 performance is not inferior to the standard Arduinos w5100 Ethernet Shield. One of the biggest factors of using ENC28J60 device is its low cost.&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;


&lt;h4&gt;&lt;b&gt;Where to buy ENC28J60:&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;Use online shopping to by it

&lt;/p&gt;&lt;ul&gt;&lt;li&gt; on Ebay: &lt;a href="http://ksdu.in/o/18"&gt;http://ksdu.in/o/18&lt;/a&gt;&lt;br/&gt; &lt;/li&gt;

&lt;li&gt; on Google: &lt;a href="http://ksdu.in/o/19"&gt;http://ksdu.in/o/19&lt;/a&gt;&lt;br/&gt; &lt;/li&gt;

&lt;li&gt; on Amazon: &lt;a href="http://ksdu.in/o/1a"&gt;http://ksdu.in/o/1a&lt;/a&gt;&lt;br/&gt; &lt;/li&gt;

&lt;li&gt; on BuyInCoins: &lt;a href="http://ksdu.in/o/1b"&gt;http://ksdu.in/o/1b&lt;/a&gt;&lt;br/&gt; &lt;/li&gt;
&lt;/ul&gt;
etc, there are so many offers. Or look it in your local shops.&lt;br/&gt;&lt;br/&gt;&lt;h4&gt;&lt;b&gt;Hardware connection ENC28J60 to Arduino:&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;
ENC28J60 has 10 pins, but it used only 7 pins to connect ENC28J60 to Arduino. The ENC28J60 use standard SPI interface so you can connect 5 pins to the Arduinos ICSP connector one pin to the 3.3V and another one to the pin 8 (this is EtherCard library default ChipSelect (CS) pin).&lt;br/&gt;&lt;br/&gt;
Use this link for additional information: &lt;a href="http://ksdu.in/o/1c"&gt;http://ksdu.in/o/1c&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;


&lt;h4&gt;&lt;b&gt;How to connect ENC28J60 to KSduino:&lt;/b&gt;&lt;/h4&gt;

&lt;p style="text-align: justify;"&gt;To connect this device to &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; we have used KSduino Library for Arduino with ENC28J60 and EtherCart Ethernet library. The EtherCat Ethernet library supports all the functions of ENC28J60 Ethernet Shield and has its own very interesting examples. The KSduino library uses EtherCart UDP stack and allows uses of all functions of KSduino and EtherCart libraries.&lt;br/&gt;&lt;br/&gt;
Follow the instructions to download the librarys in the &lt;a href="http://ksduino.org/?development"&gt;DEVELOPMENT&lt;/a&gt; page.&lt;br/&gt;&lt;br/&gt;
See also:&lt;br/&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.ksduino.org/post/37480815224/welcome-to-ksduino"&gt;Welcome to KSduino&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://help.ksduino.org/post/36586795328/how-to-connect-your-device-to-the-ksduino-device"&gt;How to connect your device to the KSduino Device Network?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;Best regards,&lt;br/&gt;&lt;a href="https://plus.google.com/105433948011361828201?rel=author"&gt;Kirill Scherba&lt;/a&gt;&lt;br/&gt;
The founder and main developer of &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; project.&lt;/p&gt;

&lt;p class="info"&gt;
P.S. The short links was created with our new URL Shortener: &lt;a href="http://ksdu.in/o/"&gt;http://ksdu.in/o/&lt;/a&gt;
&lt;/p&gt;</description><link>http://blog.ksduino.org/post/38636723785</link><guid>http://blog.ksduino.org/post/38636723785</guid><pubDate>Sun, 23 Dec 2012 21:28:00 +0400</pubDate><category>ksduino</category><category>arduino</category><category>ENC28J60</category></item><item><title>How KSduino works</title><description>&lt;p&gt;The KSduino is public open source service, so you can connect your devices for free!&lt;/p&gt;

&lt;center&gt;&lt;a class="fancybox" href="http://lh5.googleusercontent.com/-tiZvGqQrCXY/TeNAdKPlpiI/AAAAAAAABaU/fHRJnaaP9Ow/s800/000003-000052B.jpg"&gt;&lt;img src="http://media.tumblr.com/tumblr_mf1rdzb7fX1rat3x8.jpg" alt="How KSduino works" title="How KSduino works"/&gt;&lt;/a&gt;&lt;/center&gt;

&lt;p align="justify"&gt;In this article I want to describe how the KSduino works inside. The KSduino consists of four main blocks:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://ksduino.org/?docs"&gt;KSduino library for Arduino&lt;/a&gt; which uses in users sketches&lt;br/&gt; &lt;/li&gt;

&lt;li&gt;KSduino server which receives packets from Arduino and sends answers back&lt;br/&gt; &lt;/li&gt;

&lt;li&gt;SQL server which gets parameters from KSduino servers, calculate average and saves values&lt;br/&gt; &lt;/li&gt;

&lt;li&gt;&lt;a href="http://ksduino.org"&gt;KSduino web server&lt;/a&gt; which displays Arduino parameters in table and graph mode, and processes users requests&lt;br/&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;p align="justify"&gt;We used UDP transport to connect between the Arduino microcontroller and KSduino server. UDP is very fast so we can send a lot of sketches parameters not overloading the microcontroller in a short time. Our protocol allows to send and receive values ​​from any local network and does not require a dedicated ip address.&lt;/p&gt;

&lt;p align="justify"&gt;KSduino server runs at Linux server. KSduino server is C language server program which uses our own technology to receive, processes and resends data from the microcontroller to SQL server.&lt;/p&gt;

&lt;p align="justify"&gt;To save, calculate and select data we use MySQL server. Our own technology (as KSduino server)  allow gets and save millions parameters received from arduino devices.&lt;/p&gt;

&lt;p align="justify"&gt;The web site has own kernel writen at PHP. We use JQuery to run in clients part, RGraph library to display graphs, fancyBox to display images and Disqus to proccess comments. The Blog and Help partitions are constructed using Tumblr, the Documentation section built using Doxygen.&lt;/p&gt;

&lt;p&gt;&lt;br/&gt;Best regards,&lt;br/&gt;&lt;a href="https://plus.google.com/105433948011361828201?rel=author"&gt;Kirill Scherba&lt;/a&gt;&lt;br/&gt;
The founder and main developer of &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; project.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.ksduino.org/post/37480815224/welcome-to-ksduino" class="info"&gt;see &amp;#8216;Welcom to KSduino&amp;#8217; to more info about KSduino web site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://help.ksduino.org/post/36586795328/how-to-connect-your-device-to-the-ksduino-device" class="info"&gt;see &amp;#8216;How to connect your device to the KSduino Device Network?&amp;#8217; to learn how to connect&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://blog.ksduino.org/post/37944359140</link><guid>http://blog.ksduino.org/post/37944359140</guid><pubDate>Sat, 15 Dec 2012 04:48:00 +0400</pubDate><category>ksduino</category><category>arduino</category></item><item><title>Welcome to KSduino</title><description>&lt;p&gt;We are opened from today so you are Welcome to KSduino device network!&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a class="fancybox" href="http://farm3.staticflickr.com/2641/4142729590_4e5999bf66_z.jpg?zz=1"&gt;&lt;img src="http://media.tumblr.com/tumblr_memtgxWeEw1rat3x8.jpg" alt="Welcome to KSduino" title="Welcome to KSduino"/&gt;&lt;/a&gt;&lt;/center&gt;
&lt;br/&gt;&lt;p align="justify"&gt;We have designed this service to connect your Arduino microcontrollers to the KSduino device network for free. You may connect your devices and monitor all its parameters. KSduino parameters can handle any Arduinos state. It may be discret or analog pins values, some sensors connected to arduino by supported protocolls like I2C or Onewire values or internal Arduinos values like current milliseconds. In other words you can display any values of your Arduino microcontroller processed at this KSduino web site.&lt;/p&gt;

&lt;p align="justify"&gt;To send your parameters to KSduino you need to have Arduino Ethernet Shield wl5100 to connect your microcontroller to Internet. And you should be registered to the KSduino web site. When you signed in to KSduino you can add new devices and create any parameters for this device. We have described connection process in the &amp;#8216;&lt;a href="http://help.ksduino.org/post/36586795328/how-to-connect-your-device-to-the-ksduino-device"&gt;How to connect your device to the KSduino Device Network?&lt;/a&gt;&amp;#8217; help topic. There are some more helps in the KSduino &lt;a href="http://help.ksduino.org"&gt;HELP&lt;/a&gt; page. The KSduino continues to develop so we&amp;#8217;ll expand &lt;a href="http://help.ksduino.org"&gt;HELP&lt;/a&gt; page and inform you about new features in this blog.&lt;/p&gt;

&lt;p align="justify"&gt;The &lt;a href="http://ksduino.org/?downloads"&gt;DOWNLOADS&lt;/a&gt; page contains latest version KSduino library for Arduino. This library has online documentation placed at the &lt;a href="http://ksduino.org/?docs"&gt;DOCUMENTATION&lt;/a&gt; page. In the &lt;a href="http://ksduino.org/?development"&gt;DEVELOPMENT&lt;/a&gt; page you can find some new versions for testing and some aditional advices and offers for developers. You may ask your questions at the &lt;a href="http://ksduino.org/?contacts"&gt;CONTACTS&lt;/a&gt; page and you can participate in conversations located under articles.&lt;/p&gt;

&lt;p align="justify"&gt;The &lt;a href="http://ksduino.org/?devices"&gt;DEVICES&lt;/a&gt; page contain list of yours and other KSduino members devices, lists and graphs with device parameters. This is main page for monitoring your devices.&lt;/p&gt;

&lt;p align="justify"&gt;The KSduino project is financed by its members and by donations. You can read more about it at the &lt;a href="http://ksduino.org/?donate"&gt;DONATE&lt;/a&gt; page.&lt;/p&gt;

So welcome to KSduino device network!&lt;br/&gt;&lt;br/&gt;
Best regards,&lt;br/&gt;&lt;a href="https://plus.google.com/105433948011361828201?rel=author"&gt;Kirill Scherba&lt;/a&gt;&lt;br/&gt;
The founder and main developer of &lt;a href="http://ksduino.org"&gt;KSduino&lt;/a&gt; project.&lt;/p&gt;</description><link>http://blog.ksduino.org/post/37480815224</link><guid>http://blog.ksduino.org/post/37480815224</guid><pubDate>Sat, 08 Dec 2012 20:21:00 +0400</pubDate><category>arduino</category><category>ksduino</category><category>arduino ethernet shield</category><category>device network</category></item><item><title>KSduino Library 90 percent ready to Release</title><description>&lt;p&gt;We are 90% ready to Release KSduino Library for Arduino&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a class="fancybox" href="http://lh5.googleusercontent.com/-ghDrhekHwhU/SQS3qB7UMOI/AAAAAAAAAoY/gi0ytr6_Q6Y/s640/img_%25D0%259A02008_03_009.jpg"&gt;&lt;img src="http://media.tumblr.com/tumblr_memv4f4mCv1rat3x8.jpg" alt="KSduino Library 90 percent ready to Release" title="KSduino Library 90 percent ready to Release"/&gt;&lt;/a&gt;&lt;/center&gt;
&lt;br/&gt;&lt;br/&gt;
You may look to the &lt;a href="http://ksduino.org/?development"&gt;Development&lt;/a&gt; Page now to test it.&lt;br/&gt;&lt;br/&gt;&lt;pre&gt;&lt;code class="cpp"&gt;/**
 * Setup this library
 */
void KSduino::begin (byte *mac, unsigned int port)
{
  Ethernet.begin (mac);
  getSocket();
  _port = port;
  Udp.begin (port);
} 

void main(void)
{
  printf ("Hello World!\n");
}
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><link>http://blog.ksduino.org/post/36046437256</link><guid>http://blog.ksduino.org/post/36046437256</guid><pubDate>Thu, 08 Nov 2012 22:54:00 +0400</pubDate><category>ksduino</category><category>arduino</category><category>c++</category><category>library</category><category>class</category><category>device</category><category>network</category></item><item><title>KSNews support was added to this web site Posted on Sun Sep 16, 2012</title><description>&lt;p&gt;&lt;h3&gt;&lt;a href="http://ksnews.org/"&gt;KSNews&lt;/a&gt; support was added to this web site &lt;span class="info"&gt;&lt;br/&gt;Posted on Sun Sep 16, 2012&lt;/span&gt;&lt;/h3&gt;&lt;/p&gt;</description><link>http://blog.ksduino.org/post/36116632627</link><guid>http://blog.ksduino.org/post/36116632627</guid><pubDate>Sun, 16 Sep 2012 20:04:00 +0500</pubDate><category>ksduino</category><category>ksnews</category></item><item><title>The Development of KSduino Web Server was started on Sun September 9, 2012</title><description>&lt;p&gt;&lt;h3&gt;The Development of KSduino Web Server was started &lt;span class="info"&gt;&lt;br/&gt;on Sun September 9, 2012&lt;/span&gt;&lt;/h3&gt;&lt;/p&gt;</description><link>http://blog.ksduino.org/post/36111164770</link><guid>http://blog.ksduino.org/post/36111164770</guid><pubDate>Sun, 09 Sep 2012 18:08:00 +0500</pubDate><category>ksduino</category><category>web</category><category>server</category></item><item><title>The development of KSduino Server was started on Tue September 2, 2012</title><description>&lt;p&gt;&lt;h3&gt;The development of KSduino Server was started &lt;span class="info"&gt;&lt;br/&gt;on Tue September 2, 2012&lt;/span&gt;&lt;/h3&gt;&lt;/p&gt;</description><link>http://blog.ksduino.org/post/36111069002</link><guid>http://blog.ksduino.org/post/36111069002</guid><pubDate>Sun, 02 Sep 2012 17:32:00 +0500</pubDate><category>ksduino</category><category>server</category></item></channel></rss>
