{"id":21300152,"url":"https://github.com/carlosefr/atmega","last_synced_at":"2025-06-21T07:36:37.431Z","repository":{"id":9103640,"uuid":"10883776","full_name":"carlosefr/atmega","owner":"carlosefr","description":"Bare ATmega 8/168/328 microcontrollers with the Arduino IDE.","archived":false,"fork":false,"pushed_at":"2020-09-08T13:27:34.000Z","size":167,"stargazers_count":80,"open_issues_count":2,"forks_count":24,"subscribers_count":7,"default_branch":"master","last_synced_at":"2023-08-07T05:11:01.104Z","etag":null,"topics":["arduino","arduino-ide","atmega","avr","boards-manager"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carlosefr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-23T12:11:11.000Z","updated_at":"2023-07-02T08:46:49.000Z","dependencies_parsed_at":"2022-09-10T08:41:14.370Z","dependency_job_id":null,"html_url":"https://github.com/carlosefr/atmega","commit_stats":null,"previous_names":[],"tags_count":6,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosefr%2Fatmega","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosefr%2Fatmega/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosefr%2Fatmega/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlosefr%2Fatmega/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlosefr","download_url":"https://codeload.github.com/carlosefr/atmega/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225750111,"owners_count":17518315,"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-ide","atmega","avr","boards-manager"],"created_at":"2024-11-21T15:07:56.942Z","updated_at":"2024-11-21T15:07:58.117Z","avatar_url":"https://github.com/carlosefr.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"About\n=====\n\nWith these configuration files you can program bare ATmega microcontrollers from the [Arduino IDE](http://arduino.cc), without using the Arduino bootloader. It supports chips using external or internal clocks.\n\nSkipping the Arduino bootloader means sketches start immediately after power-on, without any delay, and you have a little extra flash memory available to your programs. Using the (optional) slower internal clock options means you can save on components, but also on power (since a slower chip draws less current).\n\nSupported Chips and Clocks\n==========================\n\n  * **ATmega8/168**: The chips used in early arduino boards (e.g. Arduino NG, Arduino Diecimila).\n  * **ATmega328p**: The chips used in recent arduino boards (eg. Arduino Duemilanove, Arduino UNO).\n  * **ATmega168p/328**: Different but functionally equivalent to the above. People sometimes buy these by mistake.\n\nThe core `delay()` function is not very precise for clock rates other than external 8 and 16MHz. The internal clock should provide enough precision for most cases but external 12 and 20 MHz are useful only if your code **does not** depend on precision timing.\n\nInstall\n=======\n\nOpen the Arduino IDE preferences window and add the following URL to the `Additional Boards Manager URLs` list:\n\n  * https://raw.githubusercontent.com/carlosefr/atmega/master/package_carlosefr_atmega_index.json\n\nNow go to `Tools \u003e Board \u003e Boards Manager` and search for `Barebones ATmega Chips`. Select it from the list and click `Install`. A new section called `ATmega Microcontrollers` will immediately appear in the `Tools \u003e Board` menu.\n\n![ATmega](https://raw.githubusercontent.com/carlosefr/atmega/master/atmega_addon.png)\n\nAlternatively you can create an `\u003cArduino Sketckbook Folder\u003e/hardware` directory and `git clone` this repository inside it. The Arduino IDE must be restarted for this to take effect.\n\nProgramming\n===========\n\nTo program the microcontroller you will need an ISP programmer. An [Arduino as ISP](http://arduino.cc/en/Tutorial/ArduinoISP) works just fine (don't forget to put a 10uF capacitor between the Arduino's RESET pin and GND if your're using an Arduino UNO):\n\n![Arduino as ISP](http://arduino.cc/en/uploads/Tutorial/SimpleBreadboardAVR.png)\n\nChoose your ISP programmer in the `Tools \u003e Programmer` menu. Then choose your ATmega microcontroller family from `Tools \u003e Board`, the specific chip you have from `Tools \u003e Processor` and your choice of clock frequency and source from `Tools \u003e Clock`.\n\nTo set the ATmega configuration fuses, use the `Tools \u003e Burn Bootloader` menu item. This doesn't actually burn an Arduino bootloader onto the chip, it only sets the chip configuration for the chosen clock settings.\n\n**Note:** If you're seeing weird behavior, like things not running at the speed you're expecting, check if you're updated the chip configuration with \"Burn Bootloader\". The configuration **isn't updated automatically** when you upload a sketch to the chip.\n\nTo load programs into the microcontroller, use the `Upload` button as usual. You can also use the `Sketch \u003e Upload with Programmer` menu entry. Both will make the IDE upload the code using the selected ISP programmer.\n\nPin Mapping\n===========\n\nThe ATmega168/328 families have identical pin configurations. Check [this diagram](http://arduino.cc/en/Hacking/PinMapping168) for their correspondence to Arduino pin numbering:\n\n![ATmega168/168p/328/328p](https://raw.githubusercontent.com/carlosefr/atmega/master/atmega328p.png)\n\nThe pin layout for the ATmega8 is also identical to these, but additional functions may be missing (eg. PWM on the left-side pins).\n\nTips and Caveats\n================\n\nIf you're using an ATmega chip that already has the Arduino bootloader inside or has otherwise been configured to require an external clock source, you may get an `avrdude: Yikes! Invalid device signature.` error. In this case, connect an appropriate external clock source to it (most likely 16 MHz) and try again. Once the ATmega has been configured to use its internal clock source, you can remove the external one and the error shouldn't happen again.\n\nYou may also get this error if you're using an Arduino UNO as an ISP programmer and you forget to put a 10uF capacitor between its RESET and GND pins to prevent it from resetting on upload.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlosefr%2Fatmega","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarlosefr%2Fatmega","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlosefr%2Fatmega/lists"}