{"id":15048866,"url":"https://github.com/icepanorama/arduinoprojectsbook_c","last_synced_at":"2026-02-01T11:31:22.712Z","repository":{"id":246710499,"uuid":"821927978","full_name":"IcePanorama/ArduinoProjectsBook_C","owner":"IcePanorama","description":"All the projects from the Arduino Projects Book, written in C.","archived":false,"fork":false,"pushed_at":"2024-12-05T19:40:09.000Z","size":191,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T16:52:10.807Z","etag":null,"topics":["arduino","arduino-uno","arduino-uno-r3","avr","avr-gcc","avr-gcc-toolchain","c","c-language","c-programming"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IcePanorama.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-29T20:46:36.000Z","updated_at":"2025-03-24T19:13:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"b723b564-6f6e-4d2e-9d5c-69bd592e7919","html_url":"https://github.com/IcePanorama/ArduinoProjectsBook_C","commit_stats":{"total_commits":20,"total_committers":2,"mean_commits":10.0,"dds":0.09999999999999998,"last_synced_commit":"ebd3549222ad624d9cf4c753e4d67711efaac287"},"previous_names":["icepanorama/arduinoprojectsbook_c"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcePanorama%2FArduinoProjectsBook_C","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcePanorama%2FArduinoProjectsBook_C/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcePanorama%2FArduinoProjectsBook_C/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IcePanorama%2FArduinoProjectsBook_C/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IcePanorama","download_url":"https://codeload.github.com/IcePanorama/ArduinoProjectsBook_C/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254442324,"owners_count":22071863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduino-uno","arduino-uno-r3","avr","avr-gcc","avr-gcc-toolchain","c","c-language","c-programming"],"created_at":"2024-09-24T21:16:55.296Z","updated_at":"2026-02-01T11:31:22.676Z","avatar_url":"https://github.com/IcePanorama.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arduino Projects Book in C\n\nAll the projects from the [Arduino Projects Book](https://store-usa.arduino.cc/products/arduino-starter-kit-multi-language), written in C.\n\n## Building and running\nEach project is separated into its own folder, with each folder having its own makefile. To run a particular project, clone the repo onto your machine, cd into the corresponding directory, run `make` to build the executable, and then flash the program onto your Arduino using the `make flash` command.\n\n**NOTE**: Please double check which port your Arduino is located on using `ls /dev/ | grep ACM` then set the `PORT` variable in that project's `Makefile` to the output of that command.\n\nIn order to build and run these projects, you will need the following libraries installed on your machine: `avr-binutils`, `avr-gcc`, `avrdude`, and `avr-libc`.\n\n## Background\nAs someone with an interest in computer engineering, low-level programming, and embedded systems, I'm using this project as an opportunity to work closer to the bare-metal of the Arduino Uno. This project was started in the hopes that it could be a stepping stone for me towards working with more professional/industry-grade boards (like the STM32 boards) in the future.\n\n## Specs\n* **Microcontroller**: ATmega328P @ 16 MHz\n* **Memory**: 2KB SRAM, 32KB FLASH, 1KB EEPROM\n* **USB-Serial Processor**: ATmega16U2 @ 16 MHz\n* Peripherals\n  * 2x 8-bit Timer/Counter with a dedicated period register and compare channels\n  * 1x 16-bit Timer/Counter with a dedicated period register, input capture and compare channels\n  * 1x USART with fractional baud rate generator and start-of-frame detection\n  * 1x controller/peripheral Serial Peripheral Interface (SPI)\n  * 1x Dual mode controller/peripheral I2C\n  * 1x Analog Comparator (AC) with a scalable reference input\n  * Watchdog Timer with separate on-chip oscillator\n  * Six PWM channels\n  * Interrupt and wake-up on pin change\n\nFor more details, [read here](https://docs.arduino.cc/hardware/uno-rev3/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficepanorama%2Farduinoprojectsbook_c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficepanorama%2Farduinoprojectsbook_c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficepanorama%2Farduinoprojectsbook_c/lists"}