Lapisan abstraksi perangkat keras
Lapisan abstraksi perangkat keras (Inggris: hardware abstraction layer disingkat HAL) adalah sebuah lapisan logis antara perangkat keras fisik dari sebuah komputer dan perangkat lunak yang berjalan di dalam komputer yang bersangkutan. Fungsi dari HAL adalah untuk menyembunyikan perbedaan-perbedaan di dalam perangkat keras dan maka dari itu menyediakan platform yang konsisten untuk menjalankan aplikasi di atasnya.
Arduino
Arduino juga merupakan senarai perangkat keras terbuka yang ditujukan kepada siapa saja yang ingin membuat purwarupa peralatan elektronik interaktif berdasarkan hardware dan software yang fleksibel dan mudah digunakan. Mikrokontroler diprogram menggunakan bahasa pemrograman arduino yang memiliki kemiripan "syntax" dengan bahasa pemrograman C. Karena sifatnya yang terbuka maka siapa saja dapat mengunduh skema hardware arduino dan membangunnya.