Drowsiness detection mechanisms have been extensively studied in the last years since they are one of the prevalent causes of accidents within the mining, driving and industrial activities. Many research efforts were done to quantify the drowsiness levels using behavioral analyses based on camera eye tracking systems as well as by analyzing physiological features contained in EEG signals. Detection systems typically use specific drowsiness indicators from only one of these methods, leaving a risk of missed detection since not all the population presents same symptoms of drowsiness. Thus, multi-feature systems are preferable even though most of the current State-of-the-Art (SoA) solutions are based on power-hungry platforms and they have meager chance to be used in embedded wearable applications with long battery lifetime. This work presents a drowsiness detection scheme fusing behavioral information coming from user motion through an IMU sensor and physiological information coming from brain activity through a single EEG electrode. The solution is implemented and tested on a low power programmable platform based on an ARM Cortex-M4 microcontroller, resulting in a wearable device capable to detect 5 different levels of drowsiness with an average accuracy of 95.2% and a battery life of 6 hours, using a 200 mAh battery. We also study the energy optimization achievable by accelerating the sensor fusion-based drowsiness detector on a parallel ultra-low power (PULP) platform. Results show that the use of PULP as efficient processing platform provides an energy improvement of 63x with respect to a solution based on a commercial microcontroller. This may extend the battery life of the complete system up to 46 h with a 7x improvement, paving the way for a completely wearable, always-on system.