Как начать программировать микроконтроллеры на гаджеты? С чего начать?
Ваш стек даром не нужен для гаджетов. Объясню почему. У меня есть часы Moto 360. Они работают 20 часов с момента полного заряда. Какой-то недоумок реализовал для них банальный таймер (включили - отсчет пошел) на java. Работа этого таймера садит батарею  за ДВА ЧАСА. Программисты, которые учились на высоко-высоко уровневых языках ничерта не понимают в том, что они делают, применяя на себе закон дырявых абстракций (отправляйтесь читать блог Спольски) в полную силу. Хороший программист сделал бы это на нативном C, задействуя аппаратный таймер процессора часов и не выжирая батарею.
Чтобы заниматься тем, что вы тут пожелали, начните хотя бы с месячного интенсива по C. Именно по C, а не C/C++. Когда будете понимать, что такое регистровая переменная и как параметры передаются в функцию - можно будет только лишь подумать о смене квалификации. Успехов.
Микроконтроллеры это C/C++, цифровая схемотехника и специфичные протоколы типа I2C/SPI/CAN и т.п. Учите C, когда сможете написать что-то сложнее Hello World без внешних библиотек и фреймворков - берите отладочную плату и вникайте в специфику МК.