-
Notifications
You must be signed in to change notification settings - Fork 239
Home
Giovanni Blu Mitolo edited this page Oct 25, 2019
·
306 revisions
PJON is a tool created to simplify network engineering and communication between devices. Choose the medium you prefer, build your own network of devices and make it work with few lines of code. There are 13 strategies available to communicate data with PJON on various media:
Strategy | Physical layer | Protocol |
---|---|---|
AS AnalogSampling | Light pulses over air or optic fiber | PJDLS |
OS OverSampling | Electrical/radio impulses over wire/air | PJDLR |
SB SoftwareBitBang | Electrical impulses over conductive element | PJDL |
TS ThroughSerial | Electrical/radio impulses over wire/air | TSDL |
TS ThroughSerialAsync | Electrical/radio impulses over wire/air | TSDL |
ET EthernetTCP | Electrical/radio impulses over wire/air | TCP |
LU LocalUDP | Electrical/radio impulses over wire/air | UDP |
GU GlobalUDP | Electrical/radio impulses over wire/air | UDP |
DU DualUDP | Electrical/radio impulses over wire/air | UDP |
TL ThroughLoRa | Radio impulses over air | LoRa |
EN ESPNOW | Radio impulses over air | ESPNOW |
LF LocalFile | Shared file system in memory | None |
Any | Virtual inheritance, any of the above | Any of the above |
Device | AS | OS | SB | TS | ET | LU | GU | DU | TL | EN | LF |
---|---|---|---|---|---|---|---|---|---|---|---|
Arduino Duemilanove | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ |
Arduino Nano | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ |
Arduino Uno | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ |
Arduino Leonardo | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ |
Arduino Micro | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ |
Arduino Mega | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ |
Arduino Zero | ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Arduino Due | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
ATMega1284P | ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
ATtiny84/84A | ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
ATtiny85 | ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
ESP8266 | ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
ESP32 | ❌ | ❌ | ✔️ | ✔️ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
STM32F103 | ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ |
Nucleo L053R8 | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Nucleo F401RE | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Teensy 3.1 | ❌ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Raspberry Pi | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ |
Windows X86 | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ |
Linux | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ |
Mac | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ |
Android | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ |
✔️ compatible - ❌ not compatible
For a simple test you can use a couple of Arduino boards, connect together their ground and pin 12.
Arduino UNO Arduino UNO
_________ wire _________
| || |_||___ | |
|| || | || ||
|| || | || ||
|| || |____|| ||
|_________| |_|_|__||_|
Flash on both arduinos the programs present in the BlinkTest directory. You should see the receiver device blinking every second.
If you want to know more and support the PJON project see the PJON protocol handbook and the PJON 12.0 big box.
- Update PJON 12.x to 13.0
- Addressing
- Configuration
- Data reception
- Data transmission
- Error handling
- IO pins setup
- Routing
- ATtiny interfacing
- ESP8266 interfacing
- Nucleo interfacing
- Raspberry Pi interfacing
- WINX86 interfacing
- Troubleshooting