Skip to content

Releases: gioblu/PJON

13.1

13.0 stable

10 Nov 22:09
Compare
Choose a tag to compare

New specifications:

  • PJON v4.0 includes the hardware identification, the hop count and deprecates the asynchronous acknowledgement
  • PJDL v5.0 includes a coherent specification of timing and tolerance of each mode, a new preamble able to reduce retransmissions and specifies the timeout to be derived from the length of the frame instead of requiring a common static configuration
  • TSDL v3.0 includes a more reliable acknowledgement exchange

Changelog:

Bugfix:

This version is not backward compatible!
If you need help see update from 12.x to 13.0

12.1 stable

19 Mar 16:12
Compare
Choose a tag to compare

New specifications:

  • PJDL v4.1 includes the maximum range of each mode experimentally determined by @jdaandersj
  • PJON v3.2 is updated with more detailed description of the model and its procedures

Changelog:

Bugfix:

Backward compatibility is preserved.

12.0 stable

25 Oct 16:04
Compare
Choose a tag to compare

New specifications:

  • PJDL v4.0 includes the response initializer to avoid a set of vulnerabilities in multi-master mode
  • PJDLR v3.0 is now able to keep the medium busy in between an exchange and includes the response initializer to avoid a set of vulnerabilities in multi-master mode

Changelog:

  • The Dynamic addressing feature has been moved in the OSPREY repository because of development ease
  • SoftwareBitBang now implements PJDL v4.0 and it is more secure if used in multi-master mode
  • OverSampling now implements PJDLR v3.0, it is more secure and it supports multi-master mode without requiring a common configuration for all devices
  • LocalFile strategy uses a file present on the hard drive to let multiple processes communicate on the same machine, can be used for inter-process communication, simulation, test applications and networks on a real time operative system. Developed by @DetAtHome and @fredilarsen
  • ThroughLoRa does not support anymore the synchronous acknowledgement and retransmission because of the inherent limitations of LoRa (ALOHA) and its usage policy
  • InteractiveRouter synchronous acknowledgement transmission added (#292) proposed by @chestwood96
  • SoftwareBitBang SAMD21 (Arduino Zero) supported pins added and timing optimized
  • Early support for Android added by @gnomathibus
  • Added support for STM32-duino installed via boards.json by @chestwood96
  • Optional separation of functions declarations for linux interface by @Mattze96
  • PJON data buffer was of type char now changed in uint8_t
  • PJON send functions payload parameter is now of type const void *
  • Strategy send_string and receive_string method names changed to send_frame and receive_frame
  • Security policy added

Bugfix:

  • Fixed ESP32 compilation error on Arduino 1.8.6+ by @mxbranson
  • Added to ThroughSerial and ThroughSerialAsync the full buffer handling (#288) by @chestwood96

If you want to know more and support PJON see the PJON protocol handbook and the PJON 12.0 big box.

This version is not backward compatible!

11.2

22 Jan 04:55
Compare
Choose a tag to compare

New specifications:

  • PJON Protocol specification v3.1 simplifies the model, and more clearly specifies the encoding
  • PJDL v3.0 more clearly specifies the medium access method and the communication modes
  • TSDL v2.1 more clearly describes the medium access method and the limits of multi-master mode

Changelog:

  • ThroughSerialAsync strategy developed by @sticilface, it supports non-blocking data reception and has a higher performance than ThroughSerial in most usecases
  • ESPNOW strategy developed by @xlfe added enabling communication over the ESPNOW protocol
  • DualUDP strategy combining the best of LocalUDP and GlobalUDP by @fredilarsen
  • Wiznet W5500 support added (8979977) by @fredilarsen
  • Support to Network Address Translation (NAT) in switch (72a93b0) added by @fredilarsen
  • Linux Serial system calls implemented within the interface, wiring-pi discarded, as proposed by @xlfe
  • OS_PREAMBLE_PULSE_WIDTH added to OverSampling to enable preamble length configuration (53769a4)
  • PJON_BROADCAST, PJON_MASTER_ID and PJON_NOT_ASSIGNED constants can be predefined and changed if required as requested by Adrian Slawinski
  • To ease users and developers working upon PJON all internal inclusions have been changed from include <...> to include "..." (6fcfd75) as requested by @Girgitt
  • Documentation and specifications have been expanded and corrected

Bugfix:

  • Avoid compilation error using Arduino 1.8.6 (#245) reported by @Girgitt
  • Examples receiver function moved to avoid compilation error (#205) reported by @fcastrovilli
  • Packet id forwarding in router mode bug fixed (9457bc3) reported by @Halytskyi
  • ThroughSerial WIN32 bug fixed (9b5ccdc) reported by @Girgitt
  • AnalogSampling can_start bug fixed (#240) reported by @andrei-volkau
  • ThroughSerial and ThroughSerialAsync can_start bug fixed (1f61a10)
  • PJONMaster and PJONSlave compilation error fixed (#248) reported by @maniekq

If your setup using W5x00 Ethernet shield and UDP freezes after an undetermined amount of time, it is affected by a bug present in the Ethernet library isolated and fixed by fred here.

Backward compatibility is preserved.

11.1

05 Aug 15:45
Compare
Choose a tag to compare

Changelog:

Bugfix:

  • send_packet_blocking recursion detection bugfix (220402d)
  • send_packet_blocking backoff bugfix (6e03ca9)
  • Fix to PJONSlave ESP8266 compilation error
  • Broken keywords by @per1234

11.0

26 Mar 02:21
Compare
Choose a tag to compare

Changelog:

  • The src directory now contains all the source code
  • SimpleSwitch, Switch, Router, DynamicRouter, InteractiveRouter and VirtualBusRouter classes added to handle switching and transparent routing for tree topologies by @fredilarsen
  • Any strategy added including virtual inheritance and supporting strategy dynamic handling after instantiation and dynamic collections of PJON objects using different strategies by @fredilarsen
  • ThroughLoRa documentation added by @Matheus-Garbelini
  • SoftwareBitBang mode 2 and 3 are more reliable and more easily applied on limited micontrollers
  • SoftwareBitBang ATMega1284P support by @fabpolli
  • SoftwareBitBang examples with 2 instances now use pins of different port groups to avoid cross-talk
  • OverSampling examples with 2 instances now use pins of different port groups to avoid cross-talk
  • PJONMaster with check_slaves_presence method can discard ids of slaves that are unreachable
  • PJONMaster and PJONSlave addressing documentation added
  • ThroughSerial WINX86 example building process simplified
  • Packet id parameter added to send_packet_blocking
  • The error callback parameter data type has been changed from uint8_t to uint16_t to contain all possible packet lengths and a pointer to a custom function has been added to ease integration:
  // Older versions
  void error_handler(uint8_t code, uint8_t data) {
    // User's code here
  }

  // v11
  void error_handler(uint8_t code, uint16_t data, void *custom_pointer) {
    // User's code here
  }

Bugfix:

  • ATtiny85 PJON_IO_PIN_TO_BIT bugfix (6f55069)
  • Many compiler warnings removed
  • Fix to WINX86 Serial interface (5c58e94) reported by @sigmaeo

Communication backward compatibility is preserved except for SoftwareBitBang mode 2 and 3.
All programs using the error handler must be updated as described above.

10.1

06 Feb 10:47
Compare
Choose a tag to compare

Changelog:

Bugfix:

  • PJONMaster ensure rid uniqueness on PJON_ID_REFRESH request (0188e8a)
  • PJONSlave aquire_id_multi_master bugfix (3443bc5)
  • ThroughSerial failed reception type bugfix (1a5b436)
  • ThroughSerial bytestuffing bugfix (ae58366) reported by @galitskiy
  • Fixed millis in WINX86 and LINUX interfaces (7a3fa29) by @fredilarsen
  • Fixed 9 minor compiler warnings

10.0

30 Dec 05:20
Compare
Choose a tag to compare

New specifications:

Changelog:

  • Extended header feature removed saving 200 bytes of program memory
  • Implementation updated to operate with both little and big endian byte order
  • SFSP v1.0 frame separation is more secure thanks to the new xor based flags obfuscation method
  • Packet id optional feature added to avoid duplication and to ensure uniqueness
  • Dynamic handling of known encapsulated protocols is supported with the use of ports
  • The PJON known protocols list is proposed as the shared dictionary of supported protocols
  • Dynamic addressing using a known protocol port id 1 instead of a dedicated header bit
  • ModuleInterface protocol added to the PJON known protocols list obtaining port id 100
  • Broadcast support added to GlobalUDP by @fredilarsen
  • EthernetTCP, LocalUDP and GlobalUDP little and big endian byte order support by @fredilarsen
  • Optional class member callback feature added (#122) by @fredilarsen
  • SoftwareBitBang ClassMemberCallback example added
  • SoftwareBitBang ESP8266 SpeedTest example added
  • SoftwareBitBang UsePacketId example added showcasing the packet id feature
  • SoftwareBitBang PortsUseExample example added showcasing the port identification feature

Bugfix:

  • WINX86 interface byte redefinition error bugfix (#151) reported by @gonnavis
  • LINUX interface byte redefinition fix (8b604da)
  • EthernetUdp.h inclusion error fix reported by @ibantxo
  • Dynamic addressing PJON_NOT_ASSIGNED bugfix (#152) reported by @maxidroms83
  • Removed packet state snooping from examples, using update call result instead

This version is not backward compatible!

9.1

30 Nov 16:53
Compare
Choose a tag to compare
9.1

Changelog:

  • SoftwareBitBang ATtiny84 compatibility added
  • SoftwareBitBang ATtiny84A compatibility added
  • SoftwareBitBang Digispark ATtiny85 USB board compatiblity assessed by @dontsovcmc
  • Added donation links

Bugfix:

  • PlatformIO fix broken manifest by @ivankravets
  • send_packet_blocking function bugfix (c749139)