PJON implements a totally software emulated network protocol stack in around 1500 lines of code, thanks to the strategies abstraction it can work nominally with any data-link is in use and can be applied in a variety of media and applications. This library can be cross-compiled (-std=c++11) to work with virtually every Arduino compatible board or linux machine, for example ATtiny85 or Raspberry Pi.

Thanks to the interfaces abstraction, PJON can be easily ported on any MCU/architecture exposing random generation, timing and IO system calls (for example on Arduino: random, micros, pinMode).

Implementation model
   | Layer 3 Network                               |
   | PJON                                          |
 __| send, send_packet, send_repeatedly, ecc.      |
|  |_______________________________________________|
|  | Layer 2 data-link or strategy                 |
|  | SoftwareBitBang, OverSampling, ecc.           |
-->| can_start, send_string, receive_byte, ecc.    |__
   |_______________________________________________|  |
   | Interfaces to system calls                    |  |
 __| PJON_MICROS, PJON_RANDOM, ecc.                |<--
|  |_______________________________________________|
|  | Layer 1 physical-layer                        |
|  | System calls:                                 |
-->| micros, random, delayMicroseconds, ecc.       |

This library exposes to users a set of tools to easily configure and handle communication between devices.

This document is automatically generated from the github repository. If you have noticed an error or an inconsistency, please report it opening an issue here

Compatible devices


PJON - ATtiny85 compatible

Arduino Uno

PJON - Arduino uno compatible

Arduino Leonardo

PJON - Arduino Leonardo compatible

Arduino Mega

PJON - Arduino Mega compatible

Arduino Nano

PJON - Arduino Nano compatible

Arduino Micro

PJON - Arduino Micro compatible

Arduino Esplora

PJON - Arduino Esplora compatible


PJON - ESP8266 compatible

Node MCU

PJON - NodeMCU compatible


PJON - Teensy compatible

Raspberry Pi

PJON - Raspberry Pi compatible


PJON - WINX86 compatible