Oprogramowanie równie istotne jak hardware
Na szybkość projektowania ma też wpływ czas przygotowania oprogramowania i z reguły jest to zagadnienie bardziej istotne od warstwy sprzętowej. To dlatego, że wiele aplikacji składa się z mikrokontrolera razem z niewielkim otoczeniem układów pomocniczych i peryferyjnych i od strony układowej są one stosunkowo proste.
To jest normalne działanie, bo konieczność minimalizacji kosztów prowadzi do tego, aby koszt materiałowy zdefiniowany przez listę BOM był jak najniższy. Z uwagi na to korzystniej jest implementować więcej funkcji użytkowych w oprogramowaniu, bo związane z nim wydatki nie dotyczą każdej wytworzonej sztuki.
Te procesy sprawiają, że rola oprogramowania firmware cały czas się zwiększa. Staje się ono bardziej rozbudowane i złożone, a czas jego przygotowania (napisania) jest coraz dłuższy.
Podobnie jak zestawy startowe, projekty aplikacyjne lub gotowe rozwiązania dostarczane przez działy wsparcia technicznego producenta i dystrybutora ułatwiają budowę części sprzętowej, takie same zjawiska można dostrzec w zakresie oprogramowania. Podstawą są zintegrowane środowiska typu IDE, ale największą pomoc zapewniają gotowe kawałki kodu, biblioteki procedur lub nawet gotowe rozwiązania z otwartą licencją, które wystarczy przerobić pod swoje potrzeby.
Takie zasoby też się bardzo szybko zwiększają i mają duży wpływ na tempo rozwoju rynku i na akceptację nowych rozwiązań. Poza oprogramowaniem darmowym na rynku jest jeszcze wiele narzędzi płatnych związanych np. z grafiką, interfejsem użytkownika. Konieczność pracy od zera jest chyba bardzo rzadkim przypadkiem.
Coraz większe znaczenie w tworzeniu oprogramowania mają języki wysokiego poziomu, także wersje skryptowe, specjalizowane narzędzia zdolne do wygenerowania kodu na podstawie zapisanego graficznie algorytmu. Takie narzędzia najczęściej kierowane są do tworzenia aplikacji IoT i jeśli nie ma wymagań co do szybkości, a stopień komplikacji nie jest duży, to można z ich użyciem sporo sobie zaoszczędzić wysiłku.
W powstanie takich narzędzi zaangażowały się duże koncerny, a przykładem może być Microsoft, który stworzył narzędzia pozwalające prosto stworzyć oprogramowanie dla projektu IoT z wykorzystaniem chmury Azure Sphere. Wraz z kolejnymi układami SoC zawierającymi kompletne platformy sprzętowe do takich zastosowań takie narzędzia będą zyskiwać na znaczeniu i zapewne będą coraz doskonalsze. Hipotetyczny koniec takich procesów można upatrywać w tym, że w obszarze IoT najbardziej liczyć się będzie pomysł na aplikację, to, jaką korzyść (wartość) będzie można osiągnąć, a nie sprzęt i oprogramowanie.