Path forward from Arduino to embedded C/C++

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/embedded

Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • Scout APM - Truly a developer’s best friend
  • Zigi - Workflow assistant built for devs & their teams
  • SonarLint - Clean code begins in your IDE with SonarLint
  • CoopCommand

    CoopCommand aims to increase automation in small scale egg-laying chicken flocks for the hobby farmer. Final product aims to have ease of installation and use for non-technical users.

    I've spent roughly the last 2 years dabbling in the extreme shallow end of embedded development. What started as a desire to automate my chicken coop door has grown into something else altogether. Here is a link to my most complete project so far, that is actually currently in the process of being ported over to an ESP32 directly, without the Atmega328P. https://github.com/hms-11/CoopCommand

  • ArduinoCore-avr

    The Official Arduino AVR core

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Data Platform where developers build real-time applications for analytics, IoT and cloud-native services in less time with less code.

  • esp-idf

    Espressif IoT Development Framework. Official development framework for Espressif SoCs.

    (e.g. gpio_set_direction, gpio_set_level, gpio_get_level all defined here https://github.com/espressif/esp-idf/blob/master/components/driver/gpio.c - eventually calls things defined in https://github.com/espressif/esp-idf/blob/master/components/hal/esp32/include/hal/gpio_ll.h for example on ESP32)

  • Arduino-Libs

    Arduino Libs & Examples: ADS1147, ADS7846, DAC8760, DS1307, RV8523, MCP2515, WS2812, S65-Display, MI0283QT-2/-9/-11, HX8347D, ILI9341, SSD1331

    There are some design decisions Arduino made that maybe restrict in one aspect, but there's nothing wrong with dropping down to a lower level or jumping sideways to a slightly customized version that does just the right thing. e.g. If digitalWrite() isn't fast enough, somebody wrote a digitalWriteFast() that works with some AVRs. Otherwise, you can probably just hunt down the source yourself, make your own copy of it, and change it to be the way you need. That's a great way to learn, too

  • PlatformIO

    A professional collaborative platform for embedded development :alien:

    I'm a big fan of PlatformIO for that reason. Switch a few lines in an INI file to switch from TM4C to STM32, rebuild, voila. That is, assuming the frameworks the app's written in are available for it. (Arduino is probably the most common one)

  • Scout APM

    Truly a developer’s best friend. Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts