Skip to content
/ PJON Public
forked from gioblu/PJON

PJON is a communication protocol and a framework for IOT, compatible with Arduino, ESP8266, Teensy, Raspberry Pi and Windows x86 machines. It is a valid tool to quickly build a network of devices.

License

Notifications You must be signed in to change notification settings

jzobac/PJON

 
 

Repository files navigation

PJON

PJON v8.2

PJON™ (Padded Jittering Operative Network) is an Arduino compatible, multi-master, multi-media communications bus system. It proposes a Standard, it is designed as a framework and implements a totally software emulated network protocol stack that can be easily cross-compiled on many architectures like ATtiny, ATmega, ESP8266, Teensy, Raspberry Pi and Windows x86 machines. It is a valid tool to quickly and comprehensibly build a network of devices. Visit wiki and documentation to know more about the PJON Standard.

Get PJON bus id Video introduction Join the chat at https://gitter.im/gioblu/PJON Donate

PJON is used in thousands of devices and its community has spread worldwide because of the following 5 key factors:

  • Increased Security: Ethernet and WiFi are exposing many smart things to ransomware, illegal cyber-warfare activities and putting privacy at risk. PJON has been engineered to enhance security not necessarily implementing the standard network protocol stack together with its vulnerabilities where it is not absolutely necessary, offering a set of alternatives covering many use cases.
  • New technology: PJON, while supporting TCP, UDP, Serial and RS485, it implements the PJDL data link able to communicate data through a single common conductive element shared by up to 255 devices, or through a single LED used as a wireless or optic fiber transceiver and also supporting many ASK/FSK radio modules available on the market, easing integration and enabling a lot of applications.
  • High flexibility: The PJON network protocol stack is modular enabling the use of the same network protocol implementation on different data links or media simply changing its configuration.
  • Fast portability: PJON is totally "software emulated" or executed by software without the use of dedicated hardware; this engineering choice and its simplicity makes it easy to be ported on any computer or microcontroller.
  • Low cost: Without any additional hardware needed to operate, minimal network wiring requirements and direct pin-to-pin or LED-to-LED low current communication, PJON is extremely energy efficient, cheap to be implemented and maintained, thanks also to the strong support of its growing community of end users, testers and developers.

Features

  • Cross-compilation support with the interfaces system calls abstraction
  • Multi-media support with the strategies data link layer abstraction
  • Master-slave or multi-master dynamic addressing
  • Hot-swap support, no need of system reset or shut down when replacing or adding devices
  • Configurable synchronous and/or asynchronous acknowledgement
  • Configurable 2 level addressing (device and bus id) for scalable applications
  • Configurable 1 or 2 bytes packet length (max 255 or 65535 bytes)
  • Collision avoidance to enable multi-master capability
  • Configurable CRC8 or CRC32 table-less cyclic redundancy check
  • Packet manager to handle, track and if necessary retransmit a packet sending in background
  • Optional ordered packet sending
  • Error handling

PJON (Padded Jittering Operative Network) Protocol specification

  • PJON v1.1
  • PJON Acknowledge v0.1
  • PJON Dynamic addressing v0.1

PJDL (Padded Jittering Data Link) specification

Compliant tools

PJON™ is a self-funded, no-profit open-source project created in 2010 and maintained by Giovanni Blu Mitolo with the support of the internet community. If you want to see the PJON project growing with a faster pace, consider a donation at the following link: https://www.paypal.me/PJON

PJON™ and its brand are unregistered trademarks, property of Giovanni Blu Mitolo gioscarab@gmail.com

About

PJON is a communication protocol and a framework for IOT, compatible with Arduino, ESP8266, Teensy, Raspberry Pi and Windows x86 machines. It is a valid tool to quickly build a network of devices.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 72.8%
  • C 21.6%
  • Other 5.6%