Операционная система для умного дома на C++ c полного нуля. Как?
А почему арм и малина? Это ж несолидно. Делайте свои микроконтроллеры! Добывайте кремний, разрабатывайте схему. А там и свой ASM и ось подтянутся.
Вот ваш вопрос примерно из той же категории, если что.
Для любой идеи нужна прежде всего концепция, а также понимание, что вы ожидаете получить в конце. Могу сразу сказать, что вам потребуется понять, кто из вас каким направлением будет заниматься.
Думаю Вам стоит посмотреть, как разрабатывается простейшее устройство (система), обычно разработка включает в себя:
- создание ТЗ
- создание эскизного проекта
- разработка Э1 (создание структурной схемы устройства (системы))
- разработка Э2 (создание функциональной схемы устройства (системы))
- разработка принципиальной схемы и программ
- предварительные испытания (используется прототип устройства (системы))
- заключительные
Для разработки нужно будет изучить следующие основные направления:
- Работа с встраиваемыми решениями (МК, периферия,  оборудование и т.п.)
   а. разработка Э1, Э2, подбор компонентов и создание Э3, выбор протоколов взаимодействия 
   б. создание прототипа на отладочных платах
   в. разработка прошивки для МК 
   г. тестирование
- Работа с сервером и клиентом
   а. разработка структурной и функциональных схем
   б. разработка сервера и клиента (Использование готового решения / использование готового решения, но с изменениями учитывающих специфику вашего проекта / создание собственного решения)
   в. тестирование взаимодействия сервера и клиента
- Сетевое взаимодействие
- Интеграция встраиваемых решений в информационные системы (здесь в основном выбор протокола)
Еще важным пунктом является конечный интерфейс и стабильность работы системы. Конечный клиент должен получить красивый и простой интерфейс управления.