Yes, the configure script would have to be modified to support PJON. But I'm not sure that's enough. I ran ./configure and then edited Makefile.inc, where I replaced -DMY_RADIO_RF24 with -DMY_PJON. This was the result: g++ -MT build/examples_linux/mysgw.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_PJON -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o In file included from ./hal/transport/PJON/driver/PJON.h:62, from ./MySensors.h:390, from examples_linux/mysgw.cpp:82: ./hal/transport/PJON/driver/PJONDefines.h: In static member function ‘static void PJONTools::parse_header(const uint8_t*, PJON_Packet_Info&)’: ./hal/transport/PJON/driver/PJONDefines.h:415:31: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct PJON_Packet_Info’; use assignment or value-initialization instead [-Wclass-memaccess] memset(&info, 0, sizeof info); ^ ./hal/transport/PJON/driver/PJONDefines.h:207:8: note: ‘struct PJON_Packet_Info’ declared here struct PJON_Packet_Info { ^~~~~~~~~~~~~~~~ In file included from ./MySensors.h:390, from examples_linux/mysgw.cpp:82: ./hal/transport/PJON/driver/PJON.h: At global scope: ./hal/transport/PJON/driver/PJON.h:1043:31: error: ‘A0’ was not declared in this scope uint8_t _random_seed = A0; ^~ ./hal/transport/PJON/driver/PJON.h:1043:31: note: suggested alternative: ‘y0’ uint8_t _random_seed = A0; ^~ y0 ./hal/transport/PJON/driver/PJON.h: In member function ‘void PJON<Strategy>::begin()’: ./hal/transport/PJON/driver/PJON.h:149:20: error: there are no arguments to ‘PJON_ANALOG_READ’ that depend on a template parameter, so a declaration of ‘PJON_ANALOG_READ’ must be available [-fpermissive] PJON_RANDOM_SEED(PJON_ANALOG_READ(_random_seed) + tx.id); ^~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h:149:20: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated) ./hal/transport/PJON/driver/PJON.h: In member function ‘uint16_t PJON<Strategy>::dispatch(const PJON_Packet_Info&, const void*, uint16_t, uint32_t, uint16_t)’: ./hal/transport/PJON/driver/PJON.h:222:31: error: there are no arguments to ‘PJON_MICROS’ that depend on a template parameter, so a declaration of ‘PJON_MICROS’ must be available [-fpermissive] packets[i].registration = PJON_MICROS(); ^~~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h: In member function ‘uint16_t PJON<Strategy>::receive(uint32_t)’: ./hal/transport/PJON/driver/PJON.h:456:19: error: there are no arguments to ‘PJON_MICROS’ that depend on a template parameter, so a declaration of ‘PJON_MICROS’ must be available [-fpermissive] uint32_t time = PJON_MICROS(); ^~~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h:462:19: error: there are no arguments to ‘PJON_MICROS’ that depend on a template parameter, so a declaration of ‘PJON_MICROS’ must be available [-fpermissive] ((uint32_t)(PJON_MICROS() - time) <= duration) ^~~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h: In member function ‘bool PJON<Strategy>::reset_packet(uint16_t)’: ./hal/transport/PJON/driver/PJON.h:506:31: error: there are no arguments to ‘PJON_MICROS’ that depend on a template parameter, so a declaration of ‘PJON_MICROS’ must be available [-fpermissive] packets[id].registration = PJON_MICROS(); ^~~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h: In member function ‘uint16_t PJON<Strategy>::send_packet_blocking(const PJON_Packet_Info&, const void*, uint16_t, uint32_t)’: ./hal/transport/PJON/driver/PJON.h:695:20: error: there are no arguments to ‘PJON_MICROS’ that depend on a template parameter, so a declaration of ‘PJON_MICROS’ must be available [-fpermissive] uint32_t start = PJON_MICROS(); ^~~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h:701:18: error: there are no arguments to ‘PJON_MICROS’ that depend on a template parameter, so a declaration of ‘PJON_MICROS’ must be available [-fpermissive] (uint32_t)(PJON_MICROS() - start) <= timeout ^~~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h:721:5: error: there are no arguments to ‘PJON_DELAY’ that depend on a template parameter, so a declaration of ‘PJON_DELAY’ must be available [-fpermissive] PJON_DELAY((uint32_t)(strategy.back_off(attempts) / 1000)); ^~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h: In member function ‘uint16_t PJON<Strategy>::update()’: ./hal/transport/PJON/driver/PJON.h:932:19: error: there are no arguments to ‘PJON_MICROS’ that depend on a template parameter, so a declaration of ‘PJON_MICROS’ must be available [-fpermissive] (uint32_t)(PJON_MICROS() - packets[i].registration) > ^~~~~~~~~~~ In file included from ./hal/transport/PJON/driver/PJONSoftwareBitBang.h:5, from ./MySensors.h:391, from examples_linux/mysgw.cpp:82: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘bool SoftwareBitBang::begin(uint8_t)’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:66:14: error: ‘PJON_RANDOM’ was not declared in this scope PJON_DELAY(PJON_RANDOM(SWBB_INITIAL_DELAY) + did); ^~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:66:14: note: suggested alternative: ‘PJON_NAK’ PJON_DELAY(PJON_RANDOM(SWBB_INITIAL_DELAY) + did); ^~~~~~~~~~~ PJON_NAK ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:66:3: error: ‘PJON_DELAY’ was not declared in this scope PJON_DELAY(PJON_RANDOM(SWBB_INITIAL_DELAY) + did); ^~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:66:3: note: suggested alternative: ‘PJON_DEBUG’ PJON_DELAY(PJON_RANDOM(SWBB_INITIAL_DELAY) + did); ^~~~~~~~~~ PJON_DEBUG ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘bool SoftwareBitBang::can_start()’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:76:3: error: ‘PJON_IO_MODE’ was not declared in this scope PJON_IO_MODE(_input_pin, INPUT); ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:76:3: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_MODE(_input_pin, INPUT); ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:78:3: error: ‘PJON_DELAY_MICROSECONDS’ was not declared in this scope PJON_DELAY_MICROSECONDS(SWBB_BIT_SPACER / 2); ^~~~~~~~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:79:6: error: ‘PJON_IO_READ’ was not declared in this scope if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:79:6: note: suggested alternative: ‘PJON_NO_HEADER’ if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:83:6: error: ‘PJON_IO_READ’ was not declared in this scope if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:83:6: note: suggested alternative: ‘PJON_NO_HEADER’ if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:88:7: error: ‘PJON_IO_READ’ was not declared in this scope if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:88:7: note: suggested alternative: ‘PJON_NO_HEADER’ if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:93:6: error: ‘PJON_IO_READ’ was not declared in this scope if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:93:6: note: suggested alternative: ‘PJON_NO_HEADER’ if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:98:6: error: ‘PJON_IO_READ’ was not declared in this scope if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:98:6: note: suggested alternative: ‘PJON_NO_HEADER’ if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:102:27: error: ‘PJON_RANDOM’ was not declared in this scope PJON_DELAY_MICROSECONDS(PJON_RANDOM(SWBB_COLLISION_DELAY)); ^~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:102:27: note: suggested alternative: ‘PJON_NAK’ PJON_DELAY_MICROSECONDS(PJON_RANDOM(SWBB_COLLISION_DELAY)); ^~~~~~~~~~~ PJON_NAK ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:103:6: error: ‘PJON_IO_READ’ was not declared in this scope if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:103:6: note: suggested alternative: ‘PJON_NO_HEADER’ if(PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘void SoftwareBitBang::handle_collision()’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:130:27: error: ‘PJON_RANDOM’ was not declared in this scope PJON_DELAY_MICROSECONDS(PJON_RANDOM(SWBB_COLLISION_DELAY)); ^~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:130:27: note: suggested alternative: ‘PJON_NAK’ PJON_DELAY_MICROSECONDS(PJON_RANDOM(SWBB_COLLISION_DELAY)); ^~~~~~~~~~~ PJON_NAK ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:130:3: error: ‘PJON_DELAY_MICROSECONDS’ was not declared in this scope PJON_DELAY_MICROSECONDS(PJON_RANDOM(SWBB_COLLISION_DELAY)); ^~~~~~~~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘uint8_t SoftwareBitBang::read_byte()’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:140:3: error: ‘PJON_DELAY_MICROSECONDS’ was not declared in this scope PJON_DELAY_MICROSECONDS(SWBB_BIT_WIDTH / 2); ^~~~~~~~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:143:18: error: ‘PJON_IO_READ’ was not declared in this scope byte_value += PJON_IO_READ(_input_pin) << i; ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:143:18: note: suggested alternative: ‘PJON_NO_HEADER’ byte_value += PJON_IO_READ(_input_pin) << i; ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:148:17: error: ‘PJON_IO_READ’ was not declared in this scope byte_value += PJON_IO_READ(_input_pin) << 7; ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:148:17: note: suggested alternative: ‘PJON_NO_HEADER’ byte_value += PJON_IO_READ(_input_pin) << 7; ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘uint16_t SoftwareBitBang::receive_response()’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:175:4: error: ‘PJON_IO_WRITE’ was not declared in this scope PJON_IO_WRITE(_output_pin, LOW); ^~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:175:4: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_WRITE(_output_pin, LOW); ^~~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:178:19: error: ‘PJON_MICROS’ was not declared in this scope uint32_t time = PJON_MICROS(); ^~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:178:19: note: suggested alternative: ‘MOD_MICRO’ uint32_t time = PJON_MICROS(); ^~~~~~~~~~~ MOD_MICRO ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:180:4: error: ‘PJON_IO_WRITE’ was not declared in this scope PJON_IO_WRITE(_input_pin, LOW); ^~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:180:4: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_WRITE(_input_pin, LOW); ^~~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:185:5: error: ‘PJON_IO_MODE’ was not declared in this scope PJON_IO_MODE(_output_pin, OUTPUT); ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:185:5: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_MODE(_output_pin, OUTPUT); ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:187:5: error: ‘PJON_DELAY_MICROSECONDS’ was not declared in this scope PJON_DELAY_MICROSECONDS(SWBB_BIT_WIDTH / 4); ^~~~~~~~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:188:5: error: ‘PJON_IO_PULL_DOWN’ was not declared in this scope PJON_IO_PULL_DOWN(_output_pin); ^~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:188:5: note: suggested alternative: ‘PJON_INCLUDE_PORT’ PJON_IO_PULL_DOWN(_output_pin); ^~~~~~~~~~~~~~~~~ PJON_INCLUDE_PORT ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘uint16_t SoftwareBitBang::receive_frame(uint8_t*, uint16_t)’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:203:20: error: ‘PJON_MICROS’ was not declared in this scope uint32_t time = PJON_MICROS(); ^~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:203:20: note: suggested alternative: ‘MOD_MICRO’ uint32_t time = PJON_MICROS(); ^~~~~~~~~~~ MOD_MICRO ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘void SoftwareBitBang::send_byte(uint8_t)’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:248:4: error: ‘PJON_IO_WRITE’ was not declared in this scope PJON_IO_WRITE(_output_pin, b & mask); ^~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:248:4: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_WRITE(_output_pin, b & mask); ^~~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:249:4: error: ‘PJON_DELAY_MICROSECONDS’ was not declared in this scope PJON_DELAY_MICROSECONDS(SWBB_BIT_WIDTH); ^~~~~~~~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘void SoftwareBitBang::send_response(uint8_t)’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:262:3: error: ‘PJON_IO_PULL_DOWN’ was not declared in this scope PJON_IO_PULL_DOWN(_input_pin); ^~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:262:3: note: suggested alternative: ‘PJON_INCLUDE_PORT’ PJON_IO_PULL_DOWN(_input_pin); ^~~~~~~~~~~~~~~~~ PJON_INCLUDE_PORT ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:263:19: error: ‘PJON_MICROS’ was not declared in this scope uint32_t time = PJON_MICROS(); ^~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:263:19: note: suggested alternative: ‘MOD_MICRO’ uint32_t time = PJON_MICROS(); ^~~~~~~~~~~ MOD_MICRO ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:266:8: error: ‘PJON_IO_READ’ was not declared in this scope !PJON_IO_READ(_input_pin) ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:266:8: note: suggested alternative: ‘PJON_NO_HEADER’ !PJON_IO_READ(_input_pin) ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:271:7: error: ‘PJON_IO_READ’ was not declared in this scope PJON_IO_READ(_input_pin) ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:271:7: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_READ(_input_pin) ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:273:3: error: ‘PJON_IO_MODE’ was not declared in this scope PJON_IO_MODE(_output_pin, OUTPUT); ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:273:3: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_MODE(_output_pin, OUTPUT); ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘void SoftwareBitBang::send_frame(uint8_t*, uint16_t)’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:296:3: error: ‘PJON_IO_MODE’ was not declared in this scope PJON_IO_MODE(_output_pin, OUTPUT); ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:296:3: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_MODE(_output_pin, OUTPUT); ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:301:3: error: ‘PJON_IO_PULL_DOWN’ was not declared in this scope PJON_IO_PULL_DOWN(_output_pin); ^~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:301:3: note: suggested alternative: ‘PJON_INCLUDE_PORT’ PJON_IO_PULL_DOWN(_output_pin); ^~~~~~~~~~~~~~~~~ PJON_INCLUDE_PORT ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘bool SoftwareBitBang::sync(uint32_t)’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:324:3: error: ‘PJON_IO_PULL_DOWN’ was not declared in this scope PJON_IO_PULL_DOWN(_input_pin); ^~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:324:3: note: suggested alternative: ‘PJON_INCLUDE_PORT’ PJON_IO_PULL_DOWN(_input_pin); ^~~~~~~~~~~~~~~~~ PJON_INCLUDE_PORT ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:328:19: error: ‘PJON_MICROS’ was not declared in this scope uint32_t time = PJON_MICROS(); ^~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:328:19: note: suggested alternative: ‘MOD_MICRO’ uint32_t time = PJON_MICROS(); ^~~~~~~~~~~ MOD_MICRO ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:330:7: error: ‘PJON_IO_READ’ was not declared in this scope PJON_IO_READ(_input_pin) && ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:330:7: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_READ(_input_pin) && ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:337:4: error: ‘PJON_DELAY_MICROSECONDS’ was not declared in this scope PJON_DELAY_MICROSECONDS((SWBB_BIT_WIDTH / 2) - SWBB_READ_DELAY); ^~~~~~~~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:338:8: error: ‘PJON_IO_READ’ was not declared in this scope if(!PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:338:8: note: suggested alternative: ‘PJON_NO_HEADER’ if(!PJON_IO_READ(_input_pin)) { ^~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘void SoftwareBitBang::pulse(uint8_t)’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:371:4: error: ‘PJON_IO_WRITE’ was not declared in this scope PJON_IO_WRITE(_output_pin, HIGH); ^~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:371:4: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_IO_WRITE(_output_pin, HIGH); ^~~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:372:4: error: ‘PJON_DELAY_MICROSECONDS’ was not declared in this scope PJON_DELAY_MICROSECONDS(SWBB_BIT_SPACER); ^~~~~~~~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘void SoftwareBitBang::set_pin(uint8_t)’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:382:3: error: ‘PJON_IO_PULL_DOWN’ was not declared in this scope PJON_IO_PULL_DOWN(pin); ^~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:382:3: note: suggested alternative: ‘PJON_INCLUDE_PORT’ PJON_IO_PULL_DOWN(pin); ^~~~~~~~~~~~~~~~~ PJON_INCLUDE_PORT ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h: In member function ‘void SoftwareBitBang::set_pins(uint8_t, uint8_t)’: ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:395:3: error: ‘PJON_IO_PULL_DOWN’ was not declared in this scope PJON_IO_PULL_DOWN(input_pin); ^~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/strategies/SoftwareBitBang/SoftwareBitBang.h:395:3: note: suggested alternative: ‘PJON_INCLUDE_PORT’ PJON_IO_PULL_DOWN(input_pin); ^~~~~~~~~~~~~~~~~ PJON_INCLUDE_PORT In file included from ./MySensors.h:395, from examples_linux/mysgw.cpp:82: ./hal/transport/PJON/MyTransportPJON.cpp: In function ‘void _receiver_function(uint8_t*, uint16_t, const PJON_Packet_Info&)’: ./hal/transport/PJON/MyTransportPJON.cpp:56:84: warning: unused parameter ‘packet_info’ [-Wunused-parameter] void _receiver_function(uint8_t *payload, uint16_t length, const PJON_Packet_Info &packet_info) ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ In file included from ./MySensors.h:390, from examples_linux/mysgw.cpp:82: ./hal/transport/PJON/driver/PJON.h: In instantiation of ‘uint16_t PJON<Strategy>::update() [with Strategy = SoftwareBitBang; uint16_t = short unsigned int]’: ./hal/transport/PJON/MyTransportPJON.cpp:47:13: required from here ./hal/transport/PJON/driver/PJON.h:932:30: error: ‘PJON_MICROS’ was not declared in this scope (uint32_t)(PJON_MICROS() - packets[i].registration) > ~~~~~~~~~~~^~ ./hal/transport/PJON/driver/PJON.h:932:30: note: suggested alternative: ‘MOD_MICRO’ (uint32_t)(PJON_MICROS() - packets[i].registration) > ~~~~~~~~~~~^~ MOD_MICRO ./hal/transport/PJON/driver/PJON.h: In instantiation of ‘void PJON<Strategy>::begin() [with Strategy = SoftwareBitBang]’: ./hal/transport/PJON/MyTransportPJON.cpp:69:12: required from here ./hal/transport/PJON/driver/PJON.h:149:36: error: ‘PJON_ANALOG_READ’ was not declared in this scope PJON_RANDOM_SEED(PJON_ANALOG_READ(_random_seed) + tx.id); ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h:149:36: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_RANDOM_SEED(PJON_ANALOG_READ(_random_seed) + tx.id); ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/PJON.h:149:19: error: ‘PJON_RANDOM_SEED’ was not declared in this scope PJON_RANDOM_SEED(PJON_ANALOG_READ(_random_seed) + tx.id); ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./hal/transport/PJON/driver/PJON.h:149:19: note: suggested alternative: ‘PJON_NO_HEADER’ PJON_RANDOM_SEED(PJON_ANALOG_READ(_random_seed) + tx.id); ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PJON_NO_HEADER ./hal/transport/PJON/driver/PJON.h: In instantiation of ‘uint16_t PJON<Strategy>::receive(uint32_t) [with Strategy = SoftwareBitBang; uint16_t = short unsigned int; uint32_t = unsigned int]’: ./hal/transport/PJON/MyTransportPJON.cpp:88:35: required from here ./hal/transport/PJON/driver/PJON.h:456:30: error: ‘PJON_MICROS’ was not declared in this scope uint32_t time = PJON_MICROS(); ~~~~~~~~~~~^~ ./hal/transport/PJON/driver/PJON.h:456:30: note: suggested alternative: ‘MOD_MICRO’ uint32_t time = PJON_MICROS(); ~~~~~~~~~~~^~ MOD_MICRO ./hal/transport/PJON/driver/PJON.h: In instantiation of ‘uint16_t PJON<Strategy>::dispatch(const PJON_Packet_Info&, const void*, uint16_t, uint32_t, uint16_t) [with Strategy = SoftwareBitBang; uint16_t = short unsigned int; uint32_t = unsigned int]’: ./hal/transport/PJON/driver/PJON.h:552:10: required from ‘uint16_t PJON<Strategy>::send(uint8_t, const void*, uint16_t, uint8_t, uint16_t, uint16_t) [with Strategy = SoftwareBitBang; uint16_t = short unsigned int; uint8_t = unsigned char]’ ./hal/transport/PJON/MyTransportPJON.cpp:46:85: required from here ./hal/transport/PJON/driver/PJON.h:222:42: error: ‘PJON_MICROS’ was not declared in this scope packets[i].registration = PJON_MICROS(); ~~~~~~~~~~~^~ ./hal/transport/PJON/driver/PJON.h:222:42: note: suggested alternative: ‘MOD_MICRO’ packets[i].registration = PJON_MICROS(); ~~~~~~~~~~~^~ MOD_MICRO make: *** [Makefile:99: build/examples_linux/mysgw.o] Error 1 So it seems more changes are needed. Maybe @Giovanni-Blu-Mitolo or @4ib3r have some information.