YASP: Yet Another Scalable Protocol

YASP is a simple and open protocol for building networks with small microcontrollers. It is designed to have a small footprint for easy implementation with minimal hardware resources, but without sacrifice advanced features and future growth. The protocol scalability is implemented using variable length fields. The physical layer use the NRZ encoding as in RS-232, but using dominant and recessive bus states to provide a reliable way to detect collisions in a non-destructive way.

Major features


You can download the current tarball from the project page.


YASP Specifications: PDF LyX.


The YASP stack for PIC is covered by the GNU Lesser General Public License, the rest of the code is covered by the GNU General Public License, and the protocol specifications and documentation by the Open Publication License.

YASP Devices


This is a simple YASP node written as example of a PIC based node that provides four logic inputs and four logic outputs. [io4x4.sch] [io4x4.asm]


The YASP RS232 Adapter. This is a YASP-to-ASCII interface for use with non-RTOS hosts. This device takes care of all the MAC layer tasks and timmings so the host not need to implement it. It was originally designed for use with PDAs, but it is usefull to attach any host with a rs232 port. [yasper.sch] [yasper.asm]

YASP Sniffer

This is a debugging device, it gives raw access to the bus and can be used to send test frames with yasp.py. [yasp-sniffer.sch]


Feel free to send comments, corrections, etc. to frank23@softhome.net

Copyrigth 2003 by Francisco Castro