>_ DevTrendsen

Language

Home

Languages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Security
Unknown

A guide to the world of hardware and protocols in the awesome-iot repository

IoT development often feels like wandering through fog. Dozens of manufacturers offer hardware. Communication protocols multiply every year. Add to that the choice between MicroPython, Rust, and C++, and your head starts hurting even at the design stage. I remember spending two evenings just trying to figure out how CoAP differs from MQTT and what would run on a microcontroller when I was building my first temperature sensor dashboard.

The awesome-iot repository maintained by Khallim Carroum helps save time. This is a neatly structured collection of hardware platforms, operating systems, programming languages, and network protocols.

The project has gathered over four thousand stars on GitHub. Let's explore what interesting resources are available here and how to leverage this knowledge base.

What the catalog contains

Like any Awesome list, the project consists of links with brief descriptions. The authors have divided all resources into five major sections:

  • Hardware and single-board computers
  • Software stack (operating systems, languages, frameworks, and utilities)
  • Network protocols and communication standards
  • Alliances and industry groups
  • Books, articles, and scientific publications

This structure helps you quickly find the right component for your project without digging through search engines.

Hardware and operating systems

Beyond familiar boards like Raspberry Pi and Arduino, the collection includes solutions for specialized tasks.

For simple sensors with Wi-Fi and Bluetooth, ESP32 or NodeMCU chips work well. If you need a miniature industrial-grade computer with an operating range from -25°C to +85°C, OLinuXino comes in handy. For working with the automotive CAN bus, you'll find the AutoPi project in the list.

The software situation for hardware is similar. The catalog includes real-time operating systems:

  • FreeRTOS and Zephyr Project for devices with strict power and memory constraints.
  • Apache Mynewt with a focus on Bluetooth Low Energy.
  • OpenWrt and Raspbian for full-featured single-board computers.
  • NodeOS for those who want to run a JavaScript-based operating system.

What to write code in

You can connect hardware to logic not only in C or C++. The community has created adaptations of familiar languages for microcontrollers.

The collection features MicroPython, as well as PikaPython, which requires only 4 KB of RAM. For fans of strict typing, there's TinyGo, which can compile Go code for Arduino and BBC micro:bit. If you write in Rust, you'll also find a rich library base for it. Exotic options like AtomVM let you run Erlang and Elixir directly on microcontrollers.

Frameworks and data transfer

Connecting a sensor to a server is a separate task. The catalog clearly separates the data transfer layers.

Physical and network technologies include LoRaWAN, NB-IoT, ZigBee, and Thread. At the application level, MQTT, CoAP, and STOMP are represented.

For data processing on the device or server side, the list includes ready-made tools:

  • Home Assistant for home automation.
  • Astarte for managing fleets of Linux and ESP32 devices.
  • Eclipse Ditto for creating digital twins of physical devices.
  • ForestHub for running artificial intelligence models on edge devices like Jetson or Raspberry Pi.

Among message brokers, you can choose lightweight NanoMQ for running on the device itself or high-capacity EMQX and VerneMQ, capable of handling millions of concurrent connections.

Who will find this list useful

The repository works as a reference in situations where you need to choose a stack for a new project.

For web service developers, it shows entry points into hardware through familiar languages like JavaScript or Python. For architects, it simplifies finding the right broker or communication protocol. For beginner engineers, the collection provides a complete picture of what modern IoT systems are built from.

The project is open to the community. If you use a good open-source solution for working with hardware, you can suggest it via Pull Request.

Related projects