diff --git a/Makefile b/Makefile
index 224b71f79eb3d811903d5fccfdf378a563589983..baf00b5045908793fb10fc1e779045526a018424 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,12 @@ CXXFLAGS = -std=c++14
 
 TARGETS = src/app/${app}/main.cc src/os/object/cpp_helpers.cc src/os/object/outputstream.cc
 
+QUIET = @
+
+ifneq (${verbose}, )
+	QUIET =
+endif
+
 include src/app/${app}/Makefile.inc
 
 ifneq ($(findstring lm75,${drivers}), )
@@ -118,4 +124,6 @@ help: arch_help
 	@echo "Global architectures:"
 	@echo "    $(shell ls src/arch)"
 
-.PHONY: clean help
+info: arch_info
+
+.PHONY: clean help info
diff --git a/src/arch/arduino-nano-168/Makefile.inc b/src/arch/arduino-nano-168/Makefile.inc
index de4ac8bff62687026c0ded072093012970ed9b3f..534ac275394957b8294965f83afdc3f85436bcf7 100644
--- a/src/arch/arduino-nano-168/Makefile.inc
+++ b/src/arch/arduino-nano-168/Makefile.inc
@@ -4,6 +4,8 @@ MCU = atmega168
 PORT = /dev/ttyUSB0
 BAUD = 19200
 
+cpu_freq ?= 16000000
+
 COMMON_FLAGS += -Werror=overflow
 COMMON_FLAGS += -mmcu=${MCU} -DF_CPU=16000000UL -DMULTIPASS_ARCH_arduino_nano
 COMMON_FLAGS += -flto
@@ -37,38 +39,35 @@ ifneq ($(findstring timer,${arch_drivers}), )
 	TARGETS += src/arch/arduino-nano/driver/timer.cc
 endif
 
-ifneq (${i2c_freq}, )
-	COMMON_FLAGS += -DF_I2C=${i2c_freq}
-endif
-
-ifneq (${timer_freq}, )
-	COMMON_FLAGS += -DF_TIMER=${timer_freq}
-endif
-
 OBJECTS = ${TARGETS:.cc=.o}
 
 .cc.o:
-	${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc}
+	${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc}
 
 build/system.elf: ${OBJECTS}
-	${CXX} ${COMMON_FLAGS} ${CXXFLAGS} -Wl,--gc-sections -o $@ ${OBJECTS}
-	avr-size --format=avr --mcu=${MCU} $@
+	${QUIET}${CXX} ${COMMON_FLAGS} ${CXXFLAGS} -Wl,--gc-sections -o $@ ${OBJECTS}
+	${QUIET}avr-size --format=avr --mcu=${MCU} $@
 
 build/system.hex: build/system.elf
-	${OBJCOPY} -O ihex ${@:.hex=.elf} $@
+	${QUIET}${OBJCOPY} -O ihex ${@:.hex=.elf} $@
 
 program: build/system.hex
-	avrdude -p ${MCU} -c arduino -P ${PORT} -b ${BAUD} -U flash:w:build/system.hex
+	${QUIET}avrdude -p ${MCU} -c arduino -P ${PORT} -b ${BAUD} -U flash:w:build/system.hex
 
 arch_clean:
-	rm -f ${OBJECTS} build/system.hex
+	${QUIET}rm -f ${OBJECTS} build/system.hex
 
 monitor:
-	screen ${PORT} 115200
+	${QUIET}screen ${PORT} 115200
 
 arch_help:
 	@echo "arduino-nano specific flags:"
 	@echo "    PORT = ${PORT}"
 	@echo "    BAUD = ${BAUD} (only used for programming)"
 
-.PHONY: arch_clean arch_help monitor program
+arch_info:
+	@echo "CPU   Freq: ${cpu_freq} Hz"
+	@echo "Timer Freq: ${timer_freq} Hz"
+	@echo "I2C   Freq: ${i2c_freq} Hz"
+
+.PHONY: arch_clean arch_help arch_info monitor program
diff --git a/src/arch/arduino-nano/Makefile.inc b/src/arch/arduino-nano/Makefile.inc
index 6dbd95ef7048666849bcac9e779f813ed8fca5fd..bb51b6cde63ff171660f8578e0abe91e5e29fa3b 100644
--- a/src/arch/arduino-nano/Makefile.inc
+++ b/src/arch/arduino-nano/Makefile.inc
@@ -4,6 +4,8 @@ MCU = atmega328p
 PORT = /dev/ttyUSB0
 BAUD = 57600
 
+cpu_freq ?= 16000000
+
 COMMON_FLAGS += -Werror=overflow
 COMMON_FLAGS += -mmcu=${MCU} -DF_CPU=16000000UL -DMULTIPASS_ARCH_arduino_nano
 COMMON_FLAGS += -flto
@@ -40,27 +42,32 @@ endif
 OBJECTS = ${TARGETS:.cc=.o}
 
 .cc.o:
-	${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc}
+	${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc}
 
 build/system.elf: ${OBJECTS}
-	${CXX} ${COMMON_FLAGS} ${CXXFLAGS} -Wl,--gc-sections -o $@ ${OBJECTS}
-	avr-size --format=avr --mcu=${MCU} $@
+	${QUIET}${CXX} ${COMMON_FLAGS} ${CXXFLAGS} -Wl,--gc-sections -o $@ ${OBJECTS}
+	${QUIET}avr-size --format=avr --mcu=${MCU} $@
 
 build/system.hex: build/system.elf
-	${OBJCOPY} -O ihex ${@:.hex=.elf} $@
+	${QUIET}${OBJCOPY} -O ihex ${@:.hex=.elf} $@
 
 program: build/system.hex
-	avrdude -p ${MCU} -c arduino -P ${PORT} -b ${BAUD} -U flash:w:build/system.hex
+	${QUIET}avrdude -p ${MCU} -c arduino -P ${PORT} -b ${BAUD} -U flash:w:build/system.hex
 
 arch_clean:
-	rm -f ${OBJECTS} build/system.hex
+	${QUIET}rm -f ${OBJECTS} build/system.hex
 
 monitor:
-	screen ${PORT} 115200
+	${QUIET}screen ${PORT} 115200
 
 arch_help:
 	@echo "arduino-nano specific flags:"
 	@echo "    PORT = ${PORT}"
 	@echo "    BAUD = ${BAUD} (only used for programming)"
 
-.PHONY: arch_clean arch_help monitor program
+arch_info:
+	@echo "CPU   Freq: ${cpu_freq} Hz"
+	@echo "Timer Freq: ${timer_freq} Hz"
+	@echo "I2C   Freq: ${i2c_freq} Hz"
+
+.PHONY: arch_clean arch_help arch_info monitor program
diff --git a/src/arch/blinkenrocket/Makefile.inc b/src/arch/blinkenrocket/Makefile.inc
index 1d99d0b24c83879e0467e906d729fdc9ba3b5026..1d596fd935fb8002e27c7deb1c560f9c5ab4fcfd 100644
--- a/src/arch/blinkenrocket/Makefile.inc
+++ b/src/arch/blinkenrocket/Makefile.inc
@@ -52,4 +52,9 @@ arch_help:
 	@echo "blinkenrocket specific flags:"
 	@echo "    PORT = ${PORT}"
 
-.PHONY: arch_clean arch_help monitor program
+arch_info:
+	@echo "CPU   Freq: ${cpu_freq} Hz"
+	@echo "Timer Freq: ${timer_freq} Hz"
+	@echo "I2C   Freq: ${i2c_freq} Hz"
+
+.PHONY: arch_clean arch_help arch_info monitor program
diff --git a/src/arch/esp8266/Makefile.inc b/src/arch/esp8266/Makefile.inc
index 8deaa95d78cef0feba7b0206f22bd377a91f2217..71ac350db1603cfac0dea13aee61289f259b30ef 100644
--- a/src/arch/esp8266/Makefile.inc
+++ b/src/arch/esp8266/Makefile.inc
@@ -65,4 +65,6 @@ arch_help:
 	@echo "esp8266 specific flags:"
 	@echo "    - none -"
 
-.PHONY: arch_clean arch_help monitor program
+arch_info:
+
+.PHONY: arch_clean arch_help arch_info monitor program
diff --git a/src/arch/msp430fr5969lp/Makefile.inc b/src/arch/msp430fr5969lp/Makefile.inc
index 037c9cd4f52796f4209c7f47d1c69ca172425b7b..2eb9dc90a019559c376673cd921d12bf1ff10e3c 100644
--- a/src/arch/msp430fr5969lp/Makefile.inc
+++ b/src/arch/msp430fr5969lp/Makefile.inc
@@ -3,9 +3,10 @@
 CPU = 430x
 MCU = msp430fr5969
 
+cpu_freq ?= 16000000
+
 INCLUDES += -I/opt/msp430/ti/gcc/include
 COMMON_FLAGS += -mcpu=${CPU} -mmcu=${MCU} -DMULTIPASS_ARCH_msp430fr5969lp
-COMMON_FLAGS += -DF_CPU=16000000UL
 COMMON_FLAGS += -DMULTIPASS_ARCH_HAS_I2C
 
 CC = /opt/msp430/ti/gcc/bin/msp430-elf-gcc
@@ -47,33 +48,45 @@ ifneq ($(findstring timer,${arch_drivers}), )
 	TARGETS += src/arch/msp430fr5969lp/driver/timer.cc
 endif
 
+ifneq (${cpu_freq}, )
+	COMMON_FLAGS += -DF_CPU=${cpu_freq}UL
+else
+	COMMON_FLAGS += -DF_CPU=16000000UL
+endif
+
+
 OBJECTS = ${TARGETS:.cc=.o}
 
 .cc.o:
-	${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc}
+	${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} -c -o $@ ${@:.o=.cc}
 
 build/system.elf: ${OBJECTS}
-	${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} \
+	${QUIET}${CXX} ${INCLUDES} ${COMMON_FLAGS} ${CXXFLAGS} \
 		-Wl,--library-path=/opt/msp430/ti/gcc/include/ \
 		-flto -o $@ ${OBJECTS}
 
 build/system.hex: build/system.elf
-	${OBJCOPY} -O ihex ${@:.hex=.elf} $@
+	${QUIET}${OBJCOPY} -O ihex ${@:.hex=.elf} $@
 
 program: build/system.hex
-	LD_LIBRARY_PATH=/home/derf/var/projects/msp430/MSP430Flasher_1.3.7 \
+	${QUIET}LD_LIBRARY_PATH=/home/derf/var/projects/msp430/MSP430Flasher_1.3.7 \
 	/home/derf/var/projects/msp430/MSP430Flasher_1.3.7/MSP430Flasher \
 	-w build/system.hex -v -g -z '[VCC]'
 
 arch_clean:
-	rm -f ${OBJECTS}
-	rm -f build/system.hex
+	${QUIET}rm -f ${OBJECTS}
+	${QUIET}rm -f build/system.hex
 
 monitor:
-	screen /dev/ttyACM1 115200
+	${QUIET}screen /dev/ttyACM1 115200
 
 arch_help:
 	@echo "msp430fR5969lp specific flags:"
 	@echo "    - none -"
 
-.PHONY: arch_clean arch_help monitor program
+arch_info:
+	@echo "CPU   Freq: ${cpu_freq} Hz"
+	@echo "Timer Freq: ${timer_freq} Hz"
+	@echo "I2C   Freq: ${i2c_freq} Hz"
+
+.PHONY: arch_clean arch_help arch_info monitor program
diff --git a/src/arch/posix/Makefile.inc b/src/arch/posix/Makefile.inc
index cb4b46ff2f3b780cc1ad304e3add6f96f9386c28..9e27b3ef72c11d63060370c0422dfa673e697c32 100644
--- a/src/arch/posix/Makefile.inc
+++ b/src/arch/posix/Makefile.inc
@@ -35,4 +35,6 @@ arch_help:
 	@echo "posix specific flags:"
 	@echo "    - none -"
 
-.PHONY: arch_clean arch_help monitor program run
+arch_info:
+
+.PHONY: arch_clean arch_help arch_info monitor program run