Ардуино, клонирование.

Тема в разделе "Arduino & Shields", создана пользователем Paulus, 31 июл 2025.

  1. Paulus

    Paulus Нерд

    Здравствуйте, камнями не кидайте, темы похожие есть, но по воде вилами писаны. Есть некий контроллер, на чипе ATmega328p он не распаян, а на быстросеме.

    Задача следующая, вытащить из нее программу, и залить на пустой чип.

    Пытаться что-то вытащить и редактировать не нужно. Я представляю следующий процес. Вставляем чип в программатор, подключаем к компу устанавливаем необходимое по, копируем файлик двоичного кода из память чипа, вставляем новый чип и заливаем в него.

    Второй вариант , берём Ардуино Уно, вытаскиваем чип вставляем нужный, вытаскиваем двоичный код, вставляем пустой чип заливаем двоичный код.

    Внимание вопрос к знатокам!!!!!!!
    Какой из вариантов работоспособен и где есть инструкция для дурочка, следуя которой можно решить задачу? is-it-original-v0-f4iczg7g6z9c1.jpg
     
  2. ИгорьК

    ИгорьК Гуру

    Смотри что ответил Perplexity на вопрос "
    Можно ли, и если можно, то как скопировать прошивку микроконтроллера Atmega 328?":
    Да, прошивку микроконтроллера Atmega 328 можно скопировать, если не включена защита от чтения (lock bits). Для этого обычно используется программатор ISP (например, USBasp, AVRISP, Arduino-as-ISP и др.) и утилита avrdude. Процесс выглядит так:

    1. Подключите программатор к микроконтроллеру (через ISP-разъём).

    2. Установите avrdude на ваш компьютер (чаще всего она уже есть вместе с Arduino IDE).

    3. Считайте содержимое памяти командой avrdude. Например, для сохранения прошивки в файл можно использовать:


      text
      avrdude -p m328p -c usbasp -U flash:r:flash_backup.hex:i
      • -p m328p — модель микроконтроллера.

      • -c usbasp — тип программатора.

      • -U flash:r:flash_backup.hex:i — считать (r) содержимое памяти flash в файл в Intel HEX формате.
    4. Аналогично можно считать и EEPROM память, если нужно:


      text
      avrdude -p m328p -c usbasp -U eeprom:r:eeprom_backup.hex:i
    5. Полученный HEX-файл можно использовать для прошивки такого же чипа.
    Важно: Если на микроконтроллере выставлены lock bits (бит защиты), считать содержимое flash памяти не получится — останется только полностью стереть чип, но тогда вся информация потеряется1234.

    Программное обеспечение avrdude и нужные программаторы доступны на многих популярных платформах и стоят недорого. Если микроконтроллер защищён, для снятия защиты существуют только сложные аппаратные методы вроде инжекции глитчей (clock glitching), но это уже область аппаратного взлома4.

    Кратко: скопировать прошивку Atmega 328 можно стандартными средствами (ISP программатор, avrdude), если не выставлены lock bits на защиту от чтения.

    1. https://www.evilmadscientist.com/2011/avr-basics-reading-and-writing-flash-contents/
    2. https://ucexperiment.wordpress.com/2015/01/04/dump-and-disassemble-avr-µc-flash-memory/
    3. https://forum.arduino.cc/t/read-a-atmega328p-chip/362636
    4. https://www.reddit.com/r/arduino/comments/gf1una/how_to_backupdumprestore_entire_atmega_flash_and/
    5. https://blog.kvv213.com/2019/08/pro...rogrammatorami-v-tom-chisle-i-iz-pod-arduino/
    6. https://www.ic-cracker.com/clone-atmega328-atmel-microcontroller-firmware/
    7. https://forum.arduino.cc/t/atmega328p-firmware-protection-from-copying-reading/433045
    8. https://raw.githubusercontent.com/h...xtracting-firmware-from-atmega328p-part-1.pdf
    9. https://www.rapid7.com/blog/post/20...d-flash-memory-part-1-atmel-microcontrollers/
    10. https://www.instructables.com/Bootload-an-ATmega328/
    11. https://swisskyrepo.github.io/HardwareAllTheThings/firmware/firmware-dumping/
    12. https://github.com/Klipper3d/klipper/issues/4938
    13. https://www.reddit.com/r/olkb/comments/sgvzfd/ask_bootloader_and_firmware_of_atmega328p_very/
    14. https://www.reddit.com/r/microcontrollers/comments/1ecrf80/clone_atmega_microcontroller/
    15. https://github.com/pascallanger/DIY.../Advanced_Manually_Setting_ATmega328_Fuses.md
    16. https://github.com/swisskyrepo/HardwareAllTheThings/blob/main/docs/firmware/firmware-dumping.md
    17. https://www.28pins.com/contributors/how-to-compile-firmware-for-5v3v3-28pins-variant/
    18. https://groups.io/g/QRPLabs/topic/programming_atmega328_for/90620049
    19. https://electronics.stackexchange.c...n-flash-memory-instead-of-eeprom-in-atmega328
    20. https://klipper.discourse.group/t/issue-compiling-firmware-for-atmega328p/1028

    Вы можете поспрашиваеть его и позадавать дополнительные вопросы.
     
    Paulus нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    Если не стоят локбит защиты то считать НЕХ файл можно. Далее прошивать им хоть 1000000 других чипов. Если стоят локбиты то считается фуфло которое внешне и похоже на НЕХ но работать не будет. Я много лет назад проводил эксперимент и выкладывал результат. Что конкретно хотите клонировать если не секрет?
     
    ИгорьК нравится это.
  4. ИгорьК

    ИгорьК Гуру

    Если это ардуино проект, то, скорее всего, вытащить прошивку можно. А если что-то особо "интересное", то вряд ли, если только забыли залочить.
     
  5. Paulus

    Paulus Нерд

    Контроллер управления ценовыми табло. Чип общается через rs485 с регистрами сдвига выводя четырехзначные цены. Управления с пульта, разные режимы, настройка яркости , последовательное подключение ценовых табло по идеи можно до бесконечности на практике от 1 до 6, две параллельные стороны.
     
    ИгорьК нравится это.
  6. ИгорьК

    ИгорьК Гуру

    В целом Перплексити ответил и ссылки дал. Ищите программатор и пробуйте.
     
  7. Paulus

    Paulus Нерд

    А через маму плату Ардуино этот hex вытащить можно? Как на фото в посте?
     
  8. Asper Daffy

    Asper Daffy Иксперд

    Для "дурочка" точно нигде нет инструкции, даже не ищите.
     
    DetSimen нравится это.
  9. ИгорьК

    ИгорьК Гуру

    Я все таки рекомендую Perplexity:
    Считать прошивку микроконтроллера Atmega328 через Arduino-as-ISP теоретически возможно, но на практике это часто ограничено и сопровождается сложностями.

    Arduino-as-ISP — это типичный программатор ISP, и он действительно позволяет программировать память (записывать загрузчики, прошивки) в Atmega328 по интерфейсу SPI. Однако стандартная функция Arduino-as-ISP в Arduino IDE и avrdude ориентирована именно на запись и стирание, а не на чтение флеш-памяти чипа.

    Другими словами, использовать Arduino-as-ISP для чтения прошивки через avrdude можно, если микроконтроллер не защищён от чтения (lock bits не выставлены), и при этом avrdude поддерживает команду чтения флеш-памяти через данный программатор. Практически, команда чтения flash memory выглядит примерно так:


    text
    avrdude -p m328p -c arduino -P COMx -U flash:r:dump.hex:i
    где -c arduino — использование Arduino-as-ISP, а -P COMx — порт, к которому подключена плата Arduino-программатор.

    Однако многие пользователи отмечают, что Arduino как программатор (Arduino-as-ISP) может быть менее надёжным и медленным для чтения памяти, чем специализированные программаторы USBasp и подобные. Иногда возникают проблемы с таймингами и коммуникацией, особенно при чтении, а не только программировании.

    Подытоживая:

    • Arduino-as-ISP может использоваться для чтения прошивки Atmega328, если не выставлены lock bits, и правильно настроен avrdude.

    • Это не самый удобный и быстрый способ, но рабочий для обходных случаев.

    • Если микроконтроллер защищён от чтения, считать содержимое нельзя никакими стандартными средствами.

    • Для надежного считывания прошивки и ее копирования рекомендуют использовать специализированные программаторы (например, USBasp).
    Таким образом, да, можно считать прошивку через Arduino-as-ISP, но с оговорками по защите памяти и надежности процедуры15.

    Если хотите, могу помочь с примером команд или настройкой avrdude для этой задачи.

    1. https://tehnopage.ru/zagruzka-sketcha-v-atmega328p
    2. https://blog.kvv213.com/2019/08/pro...rogrammatorami-v-tom-chisle-i-iz-pod-arduino/
    3. https://voltiq.ru/flashing-bootloader-atmega328p/
    4. https://forum.amperka.ru/threads/avrdude-arduino-uno-as-isp.11219/
    5. https://alexgyver.ru/lessons/programmer-tips/
    6. https://electronix.ru/forum/topic/1...erez-spi-i-arduino-as-isp-bolshe-ne-dostupna/
    7. https://dedkusto.livejournal.com/18779.html
    8. https://tsibrov.blogspot.com/2018/07/arduino-as-isp.html
    9. https://ru.fmuser.net/content/?14476.html
     
  10. ИгорьК

    ИгорьК Гуру

    Возможно товарищ не в 80, а в 20% и хорошо играет на рояле или строгает. А здесь просто не умеет правильно задать вопросы.
     
  11. ИгорьК

    ИгорьК Гуру

    Я никогда этого не делал, но постарался показать вам путь. Следовать ли ему или нет - ваше решение.
     
  12. Paulus

    Paulus Нерд

    Вечерком почитаю подробнее, программатор жаба душит покупать, с другой стороны мамка тоже программатор, может кто знает и ответит.
     
    ИгорьК нравится это.
  13. ИгорьК

    ИгорьК Гуру

    Если у вас есть такая Ардуина - то это и есть Arduino-As-ISP.
     
    Paulus нравится это.
  14. Asper Daffy

    Asper Daffy Иксперд

    Вполне вероятно
    Настолько, что мой ответ оказался единственно верным во всей теме.

    Допускаю, что где-то есть инструкция для дурочки или для дурачка, но вот для дурочка нет нигде - абсолютно точно.

    Так что, мой ответ абсолютно верен.
     
  15. ИгорьК

    ИгорьК Гуру

    Никто не возражает.
     
  16. DetSimen

    DetSimen Гуру

    Вот поэтому нас новички и не любют. :(
     
  17. ИгорьК

    ИгорьК Гуру

    Теряют интерес. Всякий.
     
  18. parovoZZ

    parovoZZ Гуру

    зачем покупать, если можно самому сделать? Покупаешь любую дурину за 300 рублей, шьёшь в неё Arduino as ISP. В тырнетах находишь картинки, как получившийся программатор подключить к любому другому чипу от атмел, который поддерживает ISP программирование. Дальше по инструкции выше.
    Можно прошить ISP из пакета LUFA, тогда можно будет работать из Атмелстудио - там программатор гораздо юзабельнее, чем убогая аврдудка
     
  19. b707

    b707 Гуру

    А не проще это заново написать? По описанию сложным не выглядит.
     
    Paulus нравится это.
  20. Asper Daffy

    Asper Daffy Иксперд

    Было бы проще, если бы ТС хотя бы определился кто он: "дурочок" или "дурачка", а то мы даже не знаем какое именно руководство ему посоветовать!