Makefile 3.25 KB
APPLICATION=field-test-device

.PHONY: all
all:
	$(info $$DS75LX is ${DS75LX})
	$(info $$GPS is ${GPS})
	$(info $$DEVEUI is ${DEVEUI})
	$(info $$DEVADDR is ${DEVADDR})
	$(info $$OPERATOR is ${OPERATOR})
	$(info $$OTAA is ${OTAA})

# -----------------------------
# Debug
# -----------------------------

# Set this to 1 to enable code in RIOT that does safety checking
# which is not needed in a production environment but helps in the
# development process:
DEVELHELP ?= 1

# Change this to 0 show compiler invocation lines by default:
QUIET ?= 1

#CFLAGS += -DENABLE_DEBUG=1
CFLAGS += -DDEBUG_ASSERT_VERBOSE=1


include ./Makefile.git

include ./Makefile.device

# Default region is Europe and default band is 868MHz
REGION ?= EU868

ifndef BOARD
BOARD ?= im880b
# Default radio driver is Semtech SX1272 (used by the IMST iM880ab boards)
DRIVER ?= sx1272
endif

ifeq ($(BOARD),im880b)
DS75LX ?= 1
GPS ?= 0
endif

ifeq ($(DS75LX),1)
USEMODULE += ds75lx
CFLAGS += -DDS75LX=1
endif

ifeq ($(GPS),1)
CFLAGS += -DGPS=1
# define the GNSS module baudrate
CFLAGS += -DSTD_BAUDRATE=9600
endif

FEATURES_REQUIRED += periph_rtc
FEATURES_REQUIRED += periph_wdt

USEMODULE += fmt
USEMODULE += xtimer
USEMODULE += stdin

LORA_DRIVER ?= $(DRIVER)
LORA_REGION ?= $(REGION)


USEPKG += semtech-loramac
USEMODULE += $(DRIVER)
USEMODULE += semtech_loramac_rx
#
# DRPWSZ_SEQUENCE contains the sequence of triplets <datarate,tx power,payload size>
# If datarate is 255, the ADR is set to TRUE
#


# By default (for all except LLCC68)
ifndef LORAMAC_JOIN_MIN_DATARATE
ifeq ($(DRIVER),llcc68) 
LORAMAC_JOIN_MIN_DATARATE ?= 1
else
LORAMAC_JOIN_MIN_DATARATE ?= 0
endif
endif

# By default
ifndef DRPWSZ_SEQUENCE
ifeq ($(DRIVER),llcc68) 
# For LLCC68 (DR1 to DR5 @ 14 dBm)
DRPWSZ_SEQUENCE ?= 1,14,8,1,14,32,1,14,16,2,14,16,3,14,16,4,14,16,5,14,16,5,11,16,5,8,16,5,5,16,5,2,16
else
DRPWSZ_SEQUENCE ?= 0,14,8,0,14,32,0,14,16,1,14,16,2,14,16,3,14,16,4,14,16,5,14,16,5,11,16,5,8,16,5,5,16,5,2,16
endif
endif

# By default
ifndef TXPERIOD
TXPERIOD ?= 30
endif

# By default
ifndef TXCNF
TXCNF ?= false
endif

# initial ADR
ADR_ON ?= false

MIN_PORT ?= 1
MAX_PORT ?= 170


DEVELHELP ?= 1

ifeq ($(OTAA),1)
CFLAGS += -DOTAA=1
else
CFLAGS += -DOTAA=0
endif

ifeq ($(OTAA),0)
CFLAGS += -DDEVADDR=\"$(DEVADDR)\"
CFLAGS += -DAPPSKEY=\"$(APPSKEY)\"
CFLAGS += -DNWKSKEY=\"$(NWKSKEY)\"
endif

ifdef LABEL
CFLAGS += -DLABEL=\"$(LABEL)\"
endif

ifndef SECRET
# SECRET should be changed and kept secret
SECRET ?= cafebabe02000001cafebabe02ffffff
endif

ifndef DEVEUI
USEMODULE += hashes
CFLAGS += -DFORGE_DEVEUI_APPEUI_APPKEY -DSECRET=\"$(SECRET)\"
else
CFLAGS += -DDEVEUI=\"$(DEVEUI)\" -DAPPEUI=\"$(APPEUI)\" -DAPPKEY=\"$(APPKEY)\"
endif

ifndef OPERATOR
OPERATOR ?= Undefined
endif

CFLAGS += -DREGION_$(REGION)
CFLAGS += -DLORAMAC_REGION_STR=\"$(REGION)\"
#CFLAGS += -DLORAMAC_ACTIVE_REGION=LORAMAC_REGION_$(REGION)
CFLAGS += -DLORAMAC_JOIN_MIN_DATARATE=$(LORAMAC_JOIN_MIN_DATARATE)
CFLAGS += -DDRPWSZ_SEQUENCE=$(DRPWSZ_SEQUENCE)
CFLAGS += -DTXPERIOD=$(TXPERIOD)
CFLAGS += -DTXCNF=$(TXCNF)
CFLAGS += -DADR_ON=$(ADR_ON)
CFLAGS += -DMIN_PORT=$(MIN_PORT) -DMAX_PORT=$(MAX_PORT)

CFLAGS += -DOPERATOR=\"$(OPERATOR)\"

# Send a APP_TIME_REQ every 100 messages
CFLAGS += -DAPP_TIME_REQ_PERIOD=100


#CFLAGS += -DVIRT_DEV=\"$(VIRT_DEV)\"


include $(RIOTBASE)/Makefile.include