Skip to content
Giovanni Blu Mitolo edited this page Apr 3, 2018 · 17 revisions

PJON Documentation

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 ...                |
  |   |_______________________________________________________|
  |   | Layer 2 data-link or strategy                         |
  |   | AnalogSampling, OverSampling, SoftwareBitBang ...     |
  --->| can_start, send_string, receive_byte ...              |___   
      |_______________________________________________________|   |
      | Interfaces to system calls                            |   |
   ___| PJON_MICROS, PJON_RANDOM, PJON_DELAY_MICROSECONDS ... |<---
  |   |_______________________________________________________|
  |   | Layer 1 physical-layer                                |
  |   | System calls:                                         |
  --->| micros, random, delayMicroseconds ...                 |
      |_______________________________________________________|

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

Join the chat at https://gitter.im/gioblu/PJON Donate

Feel free to write me personally gioscarab@gmail.com