diff --git a/examples/libs/energest/Makefile b/examples/libs/energest/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..64b84e45e59dd66dc051dcb658c77cc48d39938b
--- /dev/null
+++ b/examples/libs/energest/Makefile
@@ -0,0 +1,5 @@
+CONTIKI_PROJECT = example-energest
+all: $(CONTIKI_PROJECT)
+
+CONTIKI = ../../..
+include $(CONTIKI)/Makefile.include
diff --git a/examples/libs/energest/example-energest.c b/examples/libs/energest/example-energest.c
new file mode 100644
index 0000000000000000000000000000000000000000..1509493f2e0ea66f1449655b7645bbebdd3bcc9e
--- /dev/null
+++ b/examples/libs/energest/example-energest.c
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2017, RISE SICS.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+
+#include "contiki.h"
+#include "sys/energest.h"
+
+PROCESS(energest_example_process, "energest example process");
+AUTOSTART_PROCESSES(&energest_example_process);
+/*---------------------------------------------------------------------------*/
+static inline unsigned long
+to_seconds(uint64_t time)
+{
+  return (unsigned long)(time / ENERGEST_SECOND);
+}
+/*---------------------------------------------------------------------------*/
+/*
+ * This Process will periodically print energest values for the last minute.
+ *
+ */
+PROCESS_THREAD(energest_example_process, ev, data)
+{
+  static struct etimer periodic_timer;
+
+  PROCESS_BEGIN();
+
+  etimer_set(&periodic_timer, CLOCK_SECOND * 10);
+  while(1) {
+    PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&periodic_timer));
+    etimer_reset(&periodic_timer);
+
+    /*
+     * Update all energest times. Should always be called before energest
+     * times are read.
+     */
+    energest_flush();
+
+    printf("\nEnergest:\n");
+    printf(" CPU          %4lus LPM      %4lus DEEP LPM %4lus  Total time %lus\n",
+           to_seconds(energest_type_time(ENERGEST_TYPE_CPU)),
+           to_seconds(energest_type_time(ENERGEST_TYPE_LPM)),
+           to_seconds(energest_type_time(ENERGEST_TYPE_DEEP_LPM)),
+           to_seconds(ENERGEST_GET_TOTAL_TIME()));
+    printf(" Radio LISTEN %4lus TRANSMIT %4lus OFF      %4lus\n",
+           to_seconds(energest_type_time(ENERGEST_TYPE_LISTEN)),
+           to_seconds(energest_type_time(ENERGEST_TYPE_TRANSMIT)),
+           to_seconds(ENERGEST_GET_TOTAL_TIME()
+                      - energest_type_time(ENERGEST_TYPE_TRANSMIT)
+                      - energest_type_time(ENERGEST_TYPE_LISTEN)));
+  }
+
+  PROCESS_END();
+}
+/*---------------------------------------------------------------------------*/
diff --git a/examples/libs/energest/project-conf.h b/examples/libs/energest/project-conf.h
new file mode 100644
index 0000000000000000000000000000000000000000..d31cc2030c82bfb2be995c6a317f0a7cc3c2d634
--- /dev/null
+++ b/examples/libs/energest/project-conf.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017, RISE SICS.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PROJECT_CONF_H_
+#define PROJECT_CONF_H_
+
+#define ENERGEST_CONF_ON 1
+
+#endif /* PROJECT_CONF_H_ */
diff --git a/os/sys/energest.h b/os/sys/energest.h
index a9620c351dd788ca671bc282cfa1859649857888..0875eaba7c7daf8f638d103288a1f56c150680b2 100644
--- a/os/sys/energest.h
+++ b/os/sys/energest.h
@@ -42,6 +42,11 @@
 
 #include "contiki.h"
 
+#ifndef ENERGEST_CONF_ON
+/* Energest is disabled by default */
+#define ENERGEST_CONF_ON 0
+#endif /* ENERGEST_CONF_ON */
+
 #ifndef ENERGEST_CURRENT_TIME
 #ifdef ENERGEST_CONF_CURRENT_TIME
 #define ENERGEST_CURRENT_TIME ENERGEST_CONF_CURRENT_TIME
diff --git a/tests/01-compile-base/Makefile b/tests/01-compile-base/Makefile
index 77cc30005270ecd5500a58ef403417491626bb86..b02e202cd28977711b3b752358bf2a05c3371b66 100644
--- a/tests/01-compile-base/Makefile
+++ b/tests/01-compile-base/Makefile
@@ -7,6 +7,8 @@ hello-world/sky \
 storage/eeprom-test/native \
 multicast/sky \
 libs/logging/native \
+libs/energest/native \
+libs/energest/sky \
 rpl-udp/sky \
 rpl-border-router/native \
 rpl-border-router/sky \
diff --git a/tests/02-compile-arm-ports/Makefile b/tests/02-compile-arm-ports/Makefile
index c6dddad5e805c42e6f31b14625b25a9e92c0e385..78487d7542bdea89e48511b03676e0478cd9cead 100644
--- a/tests/02-compile-arm-ports/Makefile
+++ b/tests/02-compile-arm-ports/Makefile
@@ -52,6 +52,7 @@ libs/logging/zoul \
 6tisch/sixtop/zoul \
 http-socket/zoul \
 libs/timers/zoul \
+libs/energest/zoul \
 libs/trickle-library/zoul \
 nullnet/zoul \
 slip-radio/zoul \
diff --git a/tools/viewconf.c b/tools/viewconf.c
index 61666b77c962c46975905d7a55933fe0550d6d5e..f742b66a084c52cbb9b965be88199ba3a1b72e25 100644
--- a/tools/viewconf.c
+++ b/tools/viewconf.c
@@ -8,6 +8,7 @@
 #include "os/net/queuebuf.h"
 #include "os/net/nbr-table.h"
 #include "os/sys/log-conf.h"
+#include "os/sys/energest.h"
 
 #ifdef PROJECT_CONF_PATH
 ##### "PROJECT_CONF_PATH": _____________________ == PROJECT_CONF_PATH
@@ -139,6 +140,8 @@
 ##### "SICSLOWPAN_CONF_COMPRESSION": ___________ -> SICSLOWPAN_COMPRESSION
 #endif
 
+##### "ENERGEST_CONF_ON": ______________________ == ENERGEST_CONF_ON
+
 ##### "LOG_CONF_LEVEL_RPL": ____________________ == LOG_CONF_LEVEL_RPL
 ##### "LOG_CONF_LEVEL_TCPIP": __________________ == LOG_CONF_LEVEL_TCPIP
 ##### "LOG_CONF_LEVEL_IPV6": ___________________ == LOG_CONF_LEVEL_IPV6