Arduino guide
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Michael Royal 30f86ecb7d
Added OS section.
3 years ago
README.md Added OS section. 3 years ago

README.md


Arduino Guide

A guide covering Arduino devices such as the Arduino Uno and Arduino Nano. Along with the tools, applications and libraries that will make you a better and more efficient developer with Arduino devices. Also, learn about cool projects that you can build with your Arduino device.

Note: You can easily convert this markdown file to a PDF in VSCode using this handy extension Markdown PDF.

Table of Contents

  1. Models of Arduino boards

  2. Arduino Learning Resources

  3. Arduino Tools

  4. Operating Systems for Arduino

Models of Arduino boards

Back to the Top

Checkout the Arduino Starter Kit

Checkout the Arduino Uno

Arduino Uno Hardware Specs

  • Microcontroller ATmega328P
  • Operating Voltage 5V
  • Input Voltage (recommended) 7-12V
  • Input Voltage (limit) 6-20V
  • Digital I/O Pins 14 (of which 6 provide PWM output)
  • Flash Memory 32 KB (ATmega328P) of which 0.5 KB used by bootloader
  • SRAM 2 KB (ATmega328P)
  • EEPROM 1 KB (ATmega328P)
  • Clock Speed 16 MHz

Checkout the Arduino Nano

Arduino Nano Hardware Specs

  • Microcontroller ATmega328
  • Architecture AVR
  • Operating Voltage 5 V
  • Flash Memory 32 KB of which 2 KB used by bootloader
  • SRAM 2 KB
  • Clock Speed 16 MHz
  • Input Voltage 7-12 V
  • Digital I/O Pins 22 (6 of which are PWM)

Arduino Learning Resources

Back to the Top

Arduino is an open source electronic prototyping platform enabling users to create interactive electronic objects.

Arduino Reference Manual

Getting Started with Arduino

Arduino Education

Arduino Store

Arduino Forum

Arduino Courses on Udemy

Arduino Courses on Coursera

Online Arduino Classes on Skillshare

Introduction to Arduino course on Pluralsight

Arduino Training Courses on NobleProg

Arduino with Python course from Real Python

200+ Arduino Projects on Instructables

Arduino Tools

Back to the Top

Arduino CLI is an all-in-one solution that provides builder, Boards/Library Manager, uploader, discovery and many other tools needed to use any Arduino compatible board and platforms.

Arduino IDE is an open source integrated development environment(IDE) for the Arduino computing platforms based on easy-to-use hardware and software.

Arduino Pro IDE is a professional version of the Arduino IDE that brings more features for advanced users and developers. The project is currently in the experimently version.

VSCode Arduino is a VSCode extension for Arduino. The Arduino extension makes it easy to develop, build, deploy and debug your Arduino sketches in Visual Studio Code, with a rich set of functionalities.

Gobot is a framework using the Golang programming language for robotics, physical computing, and the Internet of Things(IoT).

Tasmota is an alternative firmware for ESP8266 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX.

Blynk is a C++ library for embedded hardware. It works with over 400 hardware models such as Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, ARM mbed, etc.

Arduino Thread is a library tha makes it simple to run Threads on Arduino.

PlatformIO is a professional collaborative platform for embedded development with no vendor lock-in. It provides support for multiplatforms and frameworks such as IoT, Arduino, CMSIS, ESP-IDF, FreeRTOS, libOpenCM3, mbed OS, Pulp OS, SPL, STM32Cube, Zephyr RTOS, ARM, AVR, Espressif (ESP8266/ESP32), FPGA, MCS-51 (8051), MSP430, Nordic (nRF51/nRF52), NXP i.MX RT, PIC32, RISC-V.

PlatformIO for VSCode is a plugin that provides support for the PlatformIO IDE on VSCode.

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded platforms. Tock's design centers around protection, both from potentially malicious applications and from device drivers.

TinyGo is a Go compiler(based on LLVM) intended for use in small places such as microcontrollers, WebAssembly (Wasm), and command-line tools.

LLVM is a library that has collection of modular/reusable compiler and toolchain components (assemblers, compilers, debuggers, etc.). With these components LLVM can be used as a compiler framework, providing a front-end(parser and lexer) and a back-end (code that converts LLVM's representation to actual machine code).

Chipyard is an open source framework for agile development of Chisel-based systems-on-chip. It will allow you to leverage the Chisel HDL, Rocket Chip SoC generator, and other Berkeley projects to produce a RISC-V SoC with everything from MMIO-mapped peripherals to custom accelerators.

The Eclipse Embedded CDT is a collection of plug-ins for Arm & RISC-V C/C++ developers. Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator framework(ARM, AArch64, M68K, Mips, Sparc, X86) based on QEMU.

Keystone is a lightweight multi-platform, multi-architecture(Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) assembler framework.

Operating Systems for Arduino

Back to the Top

HeliOS is an embedded operating system that is free for anyone to use. While called an operating system for simplicity, HeliOS is better described as a multitasking kernel for embedded systems.

FreeRTOS is a market-leading real-time operating system (RTOS) for microcontrollers and small microprocessors.

Simba is a small OS for an Embedded Programming Platform like Arduino. It aims to make embedded programming easy and portable.

Trampoline is a static RTOS for small embedded systems.

DuinOS is Framework (a wrapper) for use the FreeRTOSwith Arduino.

VxWorks is an industry-leading real-time operating systems (RTOS) for building embedded devices and systems for more than 30 years.

LynxOS is a native POSIX, hard real-time partitioning operating system developed by Lynx Software Technologies.

Contribute

  • If would you like to contribute to this guide simply make a Pull Request.

License

Back to the Top

Distributed under the Creative Commons Attribution 4.0 International (CC BY 4.0) Public License.