{"id":13418570,"url":"https://github.com/Optiboot/optiboot","last_synced_at":"2025-03-15T03:31:32.745Z","repository":{"id":28684183,"uuid":"32204117","full_name":"Optiboot/optiboot","owner":"Optiboot","description":"Small and Fast Bootloader for Arduino and other Atmel AVR chips","archived":false,"fork":false,"pushed_at":"2024-04-05T06:47:02.000Z","size":1354,"stargazers_count":1109,"open_issues_count":63,"forks_count":406,"subscribers_count":81,"default_branch":"master","last_synced_at":"2025-03-10T18:20:02.135Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Optiboot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2015-03-14T09:22:18.000Z","updated_at":"2025-03-08T20:35:27.000Z","dependencies_parsed_at":"2024-01-15T19:45:05.981Z","dependency_job_id":"43c1b8a3-5704-49b7-9e87-dc8c17af1e71","html_url":"https://github.com/Optiboot/optiboot","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Optiboot%2Foptiboot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Optiboot%2Foptiboot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Optiboot%2Foptiboot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Optiboot%2Foptiboot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Optiboot","download_url":"https://codeload.github.com/Optiboot/optiboot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243681024,"owners_count":20330152,"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":[],"created_at":"2024-07-30T22:01:03.883Z","updated_at":"2025-03-15T03:31:30.398Z","avatar_url":"https://github.com/Optiboot.png","language":"C++","readme":"## Optiboot Bootloader for Arduino and Atmel AVR ##\n\n![docs/optiboot.png](docs/optiboot.png)\n\nOptiboot is an easy to install upgrade to the Arduino bootloader within Arduino boards. It provides the following features:\n\n  * Allows larger sketches. Optiboot is only 512 bytes, freeing 1.5k of extra code space compared to older bootloaders.\n  * Makes your sketches upload faster. Optiboot operates at higher baud rates and has streamlined programming.\n  * Adaboot performance improvements. Optiboot implements \"fastboot\" that starts sketches immediate after power-on.\n  * Compatible with ATmega8, ATmega168, and ATmega328p Arduinos and derivatives including Lilypad, Pro, Nano, and many derivatives.\n  * Works with *MANY* additional Atmel AVR chips - almost anything that supports bootloads or \"flash self-programming.\"  This includes chips from ATtiny 8pin chips through the 100pin ATmega2560 used on Arduino Mega.\n  * Supports alternate serial ports, CPU frequencies and baud rates.\n  * Additional support for AVR-USB-MCUs of the families ATmegaXYu2/4/6 and AT90usbXYZS – e.g. Arduino Uno USB-MCU (ATmega16u2) and Micro (ATmega32u4).\n\n\nOptiboot (an older version) is installed by default on the Arduino Uno and (as of 2018) official Arduino Nano boards.  It can be installed on all older mega8, 168 or 328 based Arduinos.\n\n## Optiboot_X\nAs of 2019, Atmel was acquired by Microchip Inc, and released several \"new\" architectures with the AVR CPU.  These are known as the Mega-0, Tiny-0, and Tiny-1 Series.  While the basic CPU operation is about the same as older AVRs, the peripherals, including Flash self-programming, are significantly different.  This justified a new version of Optiboot with separate source code and Makefiles, which we're calling \"optiboot_x\" (the new AVR chips closely resemble the \"AVR XMega\" chips.)\n\n## Additional Documentation\nMore detailed documentation is being added (slowly) to the [repository wiki](https://github.com/Optiboot/optiboot/wiki).\n\n## Notes on IDE Version compatibility\nOptiboot is \"compatible\", in a loose sense, with all versions of the Arduino IDE.  It was originally written at about the same time as v1.0, and has some \"quirks\" that date back to that timeframe.  Most significantly, the directory structure of the git repository is \"weird.\"\n\n## To install into the Arduino software ##\nYou do NOT need to \"install\" Optiboot if you are trying to update an installed platform that already uses some form of Optiboot.  In fact, you should almost certainly NOT install Optiboot using the board manager.\nThe Optiboot GitHub repository these days is mostly useful as a source-code repository, for anyone who needs to make a highly customized version for some reason.  Or an improvement to Optiboot itself.\n\nMost end users should find a supported \"Arduino Core\" that includes Optiboot for their desired target, and install that.  Many such cores are provided by the hardware vendor, and they'll include Board definitions, Variant files, and Arduino core code needed to support the target as well as one or more Optiboot .hex files that should work.\n\nThere are also some major repositories of \"generic\" versions of cores for various targets, including:\n\n  * [MegaCore by MCUdude](https://github.com/MCUdude/MegaCore) Supports large AVRs like ATmega128, ATmega640, ATmega1280, ATmega1281, ATmega2560 and ATmega2561.\n  * [MightyCore by MCUdude](https://github.com/MCUdude/MightyCore) Supports most 40pin AVRs including ATmega1284, ATmega644, ATmega324, ATmega32, and ATmega8535.\n  * [MiniCore by MCUdude](https://github.com/MCUdude/MiniCore) Supports most 28pin ATmega AVRs, including the CPUs used by Uno/etc as well as the new CPUs like the ATmega328PB.\n  * [MajorCore by MCUdude](https://github.com/MCUdude/MajorCore) Supports a couple of relatively obsolete large AVRs, like ATmega8515 and ATmega162.\n  * [ATTinyCore by Spence Konde](https://github.com/SpenceKonde/ATTinyCore) Supports many ATtiny AVRs, including ATtiny85, ATtiny1634, ATtiny84, and ATtiny841.\n  * [MegaCoreX by MCUdude](https://github.com/MCUdude/MegaCoreX) Supports the Mega-0 Series AVRs (notably the ATmega480x and ATmega320x) (Using Optiboot_X.)\n  * [megaTinyCore by Spence Konde](https://github.com/SpenceKonde/megaTinyCore) Supports many of the Tiny-0 and Tiny-1 series AVR chips (using Optiboot_X.)\n\n\nIf you need a new Optiboot feature not included in a pre-packaged core, the recommended procedure is to download or fork the source code, manually compile the version you need, and copy the .hex file to the existing board directory (after renaming the old .hex file, in case you need it back.)\n\nNevertheless, there is an automatically installable Board Manager package that includes the .hex files for Optiboot on several popular Arduino boards (a very small subset of the possible targets.). Using the Optiboot \"install\" procedure does not install any cores or variants, so it is only useful for CPUs that are already supported by the standard Arduino core.\n\nThe following instructions are based on using the Arduino \"Board Manager\", present in IDE versions 1.6.5 and later.\n\n  1. Find the desired Optiboot release on the [Optiboot Release page](https://github.com/Optiboot/optiboot/releases).\n  2. Use the \"Copy link address\" feature of your browser to copy the URL of the associated **.json** file.\n  3. Paste this URL into the \"Additional Boards Manager URLs\" field in the Arduino IDE \"Preferences\" pane. (Separate it from other URLs that might be present with a comma or click the icon to the right of the field to insert it on a new line.)\n  4. After closing the Preferences window, the **Tools/Boards/Boards Manager** menu should include an entry for that version of Optiboot.  Select that entry and click the **Install** button.\n\nFor additional installation information, see the [Optiboot AddingOptibootChipsToIde Wiki page](https://github.com/Optiboot/optiboot/wiki/AddingOptibootChipsToIde)\n\n\n\u003c!---\n  1. Download the latest using Git or the Zip download feature of GitHub.  If you download as a zip, also extract it.\n  2. You will need to be using a recent version of the [Arduino environment](http://arduino.cc), version 18 or later.\n  3. Create a 'hardware' directory inside your sketches folder.\n  4. Copy the optiboot directory into the hardware directory.\n  5. Restart the Arduino software. New boards will appear in the Tools\u003eBoard menu.\n---\u003e\n\n## To burn Optiboot onto an Arduino board ##\n  1. Select the appropriate Optiboot board type (or non-Optiboot if you want to change back).\n  2. Connect your Arduino to an ISP programmer ([Installing](https://github.com/Optiboot/optiboot/wiki/InstallingOnChips)).\n  3. Use the 'Burn Bootloader' item in Arduino.\n  4. You can then upload sketches as normal, using the Optiboot board type.\n\n----\n\n\u003e Although it has evolved considerably, Optiboot builds on the original work of Jason P. Kyle (stk500boot.c), [Arduino group (bootloader)](http://arduino.cc), [Spiff (1K bootloader)](http://spiffie.org/know/arduino_1k_bootloader/bootloader.shtml), [AVR-Libc group](http://nongnu.org/avr-libc) and [Ladyada (Adaboot)](http://www.ladyada.net/library/arduino/bootloader.html).\n\n\u003e _Optiboot is the work of Peter Knight (aka Cathedrow). Despite some misattributions, it is not sponsored or supported by any organisation or company including Tinker London, Tinker.it! and Arduino._  \n\u003e Maintenance of Optiboot was taken over by Bill Westfield (aka WestfW) in 2011.\n\u003e Major contributions have also been made by Hans \"MCUdude\", Spence \"DrAzzy\" Konde, and majekw.\n","funding_links":[],"categories":["C++","Libraries"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOptiboot%2Foptiboot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOptiboot%2Foptiboot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOptiboot%2Foptiboot/lists"}