-
Notifications
You must be signed in to change notification settings - Fork 239
Home
Ima Waltz edited this page Apr 11, 2022
·
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 |
---|---|---|
SoftwareBitBang | Single Wire | PJDL |
OverSampling | Radio | PJDLR |
AnalogSampling | Light | PJDLS |
ThroughSerial | Serial port | TSDL |
ThroughLoRa | Radio | LoRa |
EthernetTCP | Ethernet/WiFi | TCP |
LocalUDP | Ethernet/WiFi | UDP |
GlobalUDP | Ethernet/WiFi | UDP |
DualUDP | Ethernet/WiFi | UDP |
MQTTTranslate | Ethernet/WiFi | MQTT |
ESPNOW | WiFi | ESPNOW |
LocalFile | System memory | None |
Any | Virtual inheritance, any of the above | Any |
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 | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ |
Zephyr | ❌ | ❌ | ❌ | ️✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ |
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.
- 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