Gui для avrdude linux

Программирование МК AVR в ОС Ubuntu. Часть 2 (GUI)

В прошлый раз мы научились компилировать прошивку и зашивать в контроллер через avr-gcc.
Но что делать если нам необходимо прошить фьюзы? Да и прошивать контроллер с помощью консоли не сильно удобно.
Значит нам необходимо скачать GUI оболочку для avrdude.
1. Заходим по ссылочке на файлообменник: http://narod.ru/disk/27500236000/avr8-burn-o-mat-2.1.2-all.deb.html
2. Скачиваем программку.
3. Запускаем и устанавливаем.
Далее, запустим программу: Приложения->Программирование->AVR8 Burn-O-Mat

Дальше откроем Settings->AVRDUDE

В AVRDUDE location нажимаем кнопочку File и ищем файлик под названием avrdude (должен быть здесь /usr/bin/avrdude).
Далее в alternative AVRDUDE configuration file нажимаем кнопочку File и ищем файлик под названием avrdude.conf (должен быть здесь /etc/avrdude.conf).
В AVRDUDE Options выбераем необходимый программатор, а так же порт через который будем работать. Если у вас программатор собран на преобразователе USB-RS232 то вам необходимо выбрать /dev/ttyUSB0.
Если все выставлено то нажимаем Apply->OK.
В AVR type выберем необходимый нам чип и нажмем Fuses.

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

Источник

Проба пера с AVR под Linux. Avrdude + AVRDUDESS

Сегодня решил наконец прикрутить к своей второй машинке ftdi программатор. Но на ней только 12.04 Убунта. Пришлось немного поразбираться как там шить аврки. Плюс хотелось какой нить GUI. Остановился на AVRDUDESS (спасибо товарищу с именем Zak Kemble blog.zakkemble.co.uk/).

Необходимо проделать следующе действия:

Убедится что в каталоге /etc появился конфиг avrdude.conf и добавить в него следующие строки (пример для моего программатора):

Если используете другую распиновку в своем FTDI программаторе, то соответственно поменяйте.

Запуск приложения:
mono avrdudess.exe

Картинка стырена с сайта автора

Комментарии ( 46 )

Работа в консоли через Makefile несет правоту собственных действий при решении различны проблем в работе. Это самая твердая почва. Ты сам контролируешь весь свой мир. Это мощно.

Не надо бояться, что на освоение базовых принципов функционирования утилиты make нужно затратить не много времени. Нужно просто начать ее осваивать. Просто «поиграться» пару часов с ее возможностями. А по прошествии недели или месяца станет понятно — ни какие ГУИ нафиг не нужны! Все эти ГУИ от Лукавого. Это Антураж. Это как обязательность для какой-нибудь блондинки наличия у ее авто капота, прикрывающего страшно-рычащий грязно-замасленный двигатель. Это как обязательность закрытого системного блока в компе. (У меня у всех системников крышки сняты! Я не ханжа, мне так удобнее эксплуатировать комп.)

У себя в блоге я много раз писал на тему Линукса, консоли и Makefile-ов.

Ну, будем считать, что со мной всё ясно (Хотя я ничего и не понял.)

Теперь для полноты картины, охарактеризуй себя как-нибудь. А то не понятно, кто ты — пацак, чатланин? Кто? Должны же мы как-то друг друга квалифицировать. Я вот, например, затрудняюсь, вот так, сходу определять генотип собеседника.

«Нет, генацвале! Когда у общества нет цветовой дифференциации штанов, то нет цели!» (с)

навешивание ярлыков — удел недалеких людей.

Да. Я тоже так считаю.

— Павлины (МЛМ), говоришь. Х-хы! (с) из к/ф «Белое солнце пустыни»

Вы произнесли слово «прогресс». Но что оно означает? А если об этом подумать в контексте Виндовса? А в контексте Линукса?

Виндовс развивается в своем направлении — управление программами с помощью мышки. Ставка делается на графические примитивы — кнопки, менющки и другие графические элементы. Считается, что если пункта меню нет или нет кнопки, то и у пользователя нет возможности вызвать то или иное действие в программе. Это в некоторой степени гарантирует безопасность (сохранность, работоспособность) программы. Нельзя сделать того, чего не отражено на экране. Поэтому пользователь может безопасно нажимать любые кнопки до которых он сможет дотянуться. С другой стороны, всё спрятано под капотом, а это значит — мир, видимый пользователем, упрощается. А поскольку все (до поры до времени) работает, то возникает ложное чувство, что пользователь полностью контролирует систему.

Прогресс в Линукс происходит не только в направлении графического интерфейса (вспомним Убунту), но и в направлении консольной функциональности. Считается, что пользователь неплохо разбирается в системе и способен руками набрать любые нужные ему команды. Что же касается опасных команд, могущих сломать систему или как-то помешать другим пользователям (не зыбываем, что Линукс — это многопользовательская ОС), то они убраны от неопытных пользователей. Количество консольных команд (и их вариаций с помощью флагов), которые набираются на клавиатуре — просто огромно! Практически невозможно изобразить из с помощью меню, кнопочек, выпадающих списков и всплывающих диалоговых окон. Поэтому у пользователя поле для выбора действий чрезвычайно широко. Широкое поле выбора влечет за собой такую же сложность в работе.

К счастью, в Линуксе существуют также способы для уменьшения сложности в управлении. В частности — утилита make и сопутствующие Makefile-ы. Сюда же относятся и всевозможные скрипты.

Линукс — это не аналог Виндовса. Для какой-нибудь блондинки, для секретаря-референта эти две операционки — почти одинаковые. Но для нас — для программистов и разработчиков эти операционки разные!

Они, конечно, частично перекрывают возможности друг друга. На Виндовсе есть консольное окно, а Линукс давно уже обзавелся графическим интерфейсом. Принципиальная разница между этими операционками в их способе предоставления пользователю управления разделяемыми (shared) ресурсами.

И вот тут возникает интересный вопрос. Допустим, мы пользуемся одинаковыми (по своемц назначению) программами в Виндовсе и Линуксе. В Виндовсе это будет IAR, а в Линуксе — тулчейн, состоящий из avr-gcc, avr-binutils, avrdude.

В случае с IAR, я даже не представляю, как я буду поступать. (Собственно, это один из тех критериев, которые подвигнул меня отказаться от Винды.) Но в случае с Линуксом, у меня созданы Makefile-ы, которые кочуют от проекта к проекту с небольшими изменениями. Я их кручу как хочу! Я могу с ними делать такие чудеса, которые для платформы Виндовс вообще могут быть недостижимы!

Читайте также:  Linux как узнать оперативку

Принципиальная разница состоит в том, что глубина контролируемости (to control == управлять) на платформе Линукс значительно больше, чем на платформе Виндовс.

И когда мне на платформе Линукса нужно спрятать промасленный двигатель под розовенький капот, я это могу сделать сам. Без участия IAR и Майкрософт.

Понимаете, в чем дело — я много лет сидел под Виндой (писал проги как для самой Винды, так и для микроконтроллеров), и много лет провел под Линуксом. И я знаю и ту, другую платформы. Знаю их специфику, знаю их слабые и сильные стороны. И на основе своих знаний и личных требований к операционке, я выбираю Линукс. У каждого свои требования. И это означает только одно — каждый идет своим путём.

Я лишь говорю, что хорошая развитость консольных фичей в Линуксе ставит под сомнение использование графических программ. Поэтому, для те, кто владеет консолью, видят в ней только преимущества. А вот, люди из Виндовс-среды, консоль не знают. Они думают, что консоль Линукса чуть-чуть отличается от командной строки Виндовса. Нет! Это серьезное заблуждение!

Поэтому не утихают споры, что «Линукс не дотягивает до уровня Виндовс» (с). А позвольте спросить — по какому параметру? В области графических программ? А зачем этот подход, присущий Виндовс-платформе, нужнет в Линуксе? Тут свои средств много. Просто их Виндовс-пользователи не знают, и судят о Линуксе с позиции Виндовса.

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

У консольного интерфейса есть одна ооочень большая проблема — его надо изучать. Метод тыка там работает крайне плохо. Но для проф использования консоль необходима и удобна. Сам тащусь от консоли в автокаде, например, и Eagle.

«Линукс не дотягивает до уровня Виндовс» (с). А позвольте спросить — по какому параметру?

По интерфейсу 🙂 Чем проще интерфейс, тем больше пользователей, больше пользователей — больше стимула писать софта. Получается прямая связь развивающая систему. Так что без этого подхода «Присущего Виндовзу» Линкус так бы и останется системой написанной программистами для программистов и они там и будут вариться в собственном соку никому больше не нужные. Ну либо как чисто служебная система для серверов всяких. Обслуживать которую будет специально обученный на это профессионал, а не баба клава которая компьютер увидела месяц назад у дочки.

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

Источник

AVRDUDESS – A GUI for AVRDUDE

AVRDUDESS is a GUI for AVRDUDE, a tool for programming Atmel microcontrollers.

Some key features:

  • Supports all programmers and MCUs that AVRDUDE supports
  • Supports presets, allowing you to change between devices and configurations quickly and easily
  • Drag and drop files for easy uploading
  • Automatically lists available COM ports
  • Cross-platform with the use of Mono for Linux & macOS

Downloads

Source available on GitHub

Requirements
Windows
Requires .NET Framework 2.0 SP1 or newer. All systems since Windows Vista will have the required version already installed.

Linux & macOS
Can be ran using Mono.
Has not been tested on macOS, but should work. Might need the —arch=32 argument.
mono —arch=32 avrdudess.exe

Installing on Ubuntu 18.04
Install Mono (this is the minimum required, you can use mono-complete for a full install):
sudo apt-get install libmono-system-windows-forms4.0-cil
On older versions of Ubuntu you might need to use libmono-winforms2.0-cil instead.

Install AVRDUDE and AVR-GCC (for avr-size):
sudo apt-get install avrdude gcc-avr

Run AVRDUDESS with mono, you might have to run as root (sudo) so that AVRDUDE can access ports if you haven’t changed any permissions or rules.d stuff:
mono avrdudess.exe

482 comments

36 pings

I’m getting this error when i launch Avrdudess.exe on windows 7 Pro. It used to work fine up until recently. I tried both the installer and portable version still the same error. I tried disabled the AV still not working. I also tried another pc and it loads fine any idea why it doesn’t work on this computer anymore? Thanks

ERROR: avrdude is missing!
>>>: avrdude

  • Zak Kemble on May 19, 2020 at 12:43 pm
    Author
  • #
  • Reply

Hi Dave, in options make sure the avrdude location is blank so it tries to find it automatically. If it’s already blank then try setting it to the install location of avrdudess.

Thank you, I empty that field an it works now.

  • George on May 22, 2020 at 1:35 am
  • #
  • Reply

Hey Zak,
Is there a way to encrypt a hex file or an arduino code and upload it. Handy when sharing files but not the code itself.

  • Zak Kemble on May 24, 2020 at 7:41 pm
    Author
  • #
  • Reply

Hi George, hex files don’t contain your original code, but compiled code (in Intel Hex format). It can be disassembled, but then you end up with assembly code. If you really want to encrypt your stuff then you’ll need a bootloader that can decrypt it when uploading to the Arduino, like this one https://github.com/sirgal/AVR-EAX-AES-bootloader
Make sure to set the lock bits so that the decrypted code can’t be read from the flash afterwards.

  • Joseph T Tannenbaum on June 17, 2020 at 2:06 am
  • #
  • Reply

I just ran into a problem I don’t remember having before. I can load an Nano with the ch340 chip from the arduino ide, but it hangs in Avrdudess ver 2.12. Does avrdudess recognize the port with the ch340? I don’t remember if I loaded a nano this way before.

  • Zak Kemble on June 17, 2020 at 10:04 am
    Author
  • #
  • Reply
Читайте также:  Защита от локальной сети windows

The CH340 shows as a standard serial port so there shouldn’t be any issues there. Are you able to press stop when it hangs, and does it show anything in the console output?

  • Micha on July 2, 2020 at 6:08 pm
  • #
  • Reply

Is there a way to load a preset automatically when it starts? I had set it up like this before, but I can’t remember how I did it. I don’t mean the “Load previous settings” Option. The presets always start with default and not with the last used preset.

  • Zak Kemble on July 2, 2020 at 7:13 pm
    Author
  • #
  • Reply

Hey Micha, you can specify the preset to as the first command line argument – C:/path/to/avrdudess.exe «Your Preset Name»

  • Micha on July 3, 2020 at 4:30 pm
  • #
  • Reply

Hi Zak. Thank you for your answer. But unfortunately I still don’t understand exactly how to do it. I created a preset for my USBasp programmer at Preset Manager. But every time I open avrdudess again, the preset is back to default. I can select my preset for my USBasp in the list, but I want it to be activated automatically when avrdudess starts. I’ve already looked in … \ AppData \ Roaming \ AVRDUDESS \ config (and) \ presets, but I can’t find a way to change it.

  • Zak Kemble on July 3, 2020 at 4:56 pm
    Author
  • #
  • Reply

In older versions it would load your previously loaded preset (which would wipe any changes you did after loading the preset), but in newer versions it loads all of the previous settings instead (hex file, fuse settings, which options were ticked etc). Preset is set to Default, however it isn’t actually loading the Default preset (I should maybe set the preset box to a blank name). The best way to specify a preset to load when opening would probably be to create a new shortcut to avrdudess.exe, right click it and go to properties then at the end of the Target box add a space then the name of your preset in quote marks.

  • Eitan on July 20, 2020 at 12:57 pm
  • #
  • Reply

Hi Zak
The GUI is not showing up,but still exist in process list.
I have installed the AVRDUDESS portable on a new win10 and it showed the GUI OK.
I have changed the avrdude path to the arduino location.
And after restart The GUI is not showing up,but exist in process list.
I have tried also the installer version of AVRDUDESS but no change.GUI does not appear anymore.
What is the solution?

  • Zak Kemble on July 20, 2020 at 1:11 pm
    Author
  • #
  • Reply

Hi Eitan, looks like you’ve found a bug! If AVRDUDESS can’t find avrdude.exe then it won’t be able to start up (arduino avrdude.exe is in arduino-x.x.x\hardware\tools\avr\bin , though AVRDUDESS already comes with its own avrdude.exe and .conf).
The easiest way to fix this is to go to C:\Users\USERNAME\AppData\Roaming\AVRDUDESS and delete config.xml.

  • Eitan on July 20, 2020 at 2:12 pm
  • #
  • Reply

Thanks Zak
It worked like a charm.
In the portable version, Why not putting the config.xml file in the same directory of the AVRDUDESS?
Best Regards
Eitan

  • Zak Kemble on July 20, 2020 at 4:11 pm
    Author
  • #
  • Reply

Awesome 😀 Yea I forgot about making the portable version read from its own directory instead of the user data folders. That will be fixed in the next release.

  • Nirosh on July 25, 2020 at 12:10 pm
  • #
  • Reply

I got “ERROR: Update check failed: Error: SecureChannelFailure (The authentication or decryption has failed.)” while I open the avrdudess application.

I tried to find a solution in google but unfortunately couldn’t find a proper solution for that.
Can you give me a solution? please..

  • Zak Kemble on July 25, 2020 at 12:17 pm
    Author
  • #
  • Reply

This is usually caused by using an old operating system (like Windows XP) that does not support the newer encryption methods used by the web server.

  • Hugo on December 17, 2020 at 6:15 pm
  • #
  • Reply

Hi Zak
After installing mono (MonoFramework-MDK-6.12.0.107.macos10) and avrdudess 2.13 version on macOs 10.11, and print in the terminal:
mono –arch=32 /Applications/avrdudess-2.13/avrdudess.exe (the –arch=32 argument was mandatory otherwise it caused a big native failure)
I get:
WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319
However the avrdudess window is displayed after 3 min and looks OK, but i haven’t tried yet to upload
what is the runtime lib version it tried to find ?
Thanks

  • Zak Kemble on December 17, 2020 at 6:29 pm
    Author
  • #
  • Reply

Hey Hugo, it was probably looking for v2.0.50727 as I’ve included it as a supported runtime so the program can run on Windows XP. The warning can be safely ignored.

  • plouf on February 28, 2021 at 5:33 pm
  • #
  • Reply

when trying to identify a TPI device (tiny4-5-9-10..) in DETECT avrdudess adds a -p m8 in the end making it unreadable
but via command line with -p t10 it does recognise

is this configurable in avrdudess so when changing CPU the “detect” will add the corespoding -p XYZ_AVR ??

  • Zak Kemble on February 28, 2021 at 5:54 pm
    Author
  • #
  • Reply

Hi Plouf, this is a known issue that I’ll be improving at some point. See this: https://github.com/zkemble/AVRDUDESS/issues/26

  • plouf on February 28, 2021 at 6:26 pm
  • #
  • Reply

to me eitehr a new button should be added like “verify id” where the above selected MCU will send the correct command (imho relative easy)

or try sequent all protocols (very slow)

  • Zak Kemble on February 28, 2021 at 6:38 pm
    Author
  • #
  • Reply

I could add a verify ID button then. It will be a separate function from auto-detect as that is not supposed to know what the MCU is which is why it needs to try each protocol. Checking each protocol isn’t slow, avrdude usually exits with an error pretty much instantly.

  • plouf on February 28, 2021 at 6:51 pm
  • #
Читайте также:  Node js windows powershell

whatever is easier , i think button is easy enough, i see post for the “problem” last some time so
i think this would help 🙂

personaly i had spend a lot of days to uderstand what going on (i had additional problem with programmer)

and the above propblem was mention only in github, i mean it would help some more ppl 😉

  • janek on March 22, 2021 at 11:34 pm
  • #
  • Reply

Program is very nice, i haven’t problems yet. I only miss the fusebit editor 🙂

  • Ajay Kumar on April 9, 2021 at 9:38 am
  • #
  • Reply

Every time i try to READ Flash from my Arduino Mega, It reads but says FAILED to write to file and also say cannot open file.

I have tried running it in admin mode, and changed the file to some other locations (Desktop, D:\ etc) but it never writes.

I have Windows 10 x64 Installed.

  • Zak Kemble on April 9, 2021 at 9:58 am
    Author
  • #
  • Reply

Hey Ajay, post the output log of avrdudess.

  • sergei granin on April 10, 2021 at 3:06 pm
  • #
  • Reply

hi, try to work atxmega128a1 – dont see fuses and other with errors.
what to do?

  • Zak Kemble on April 10, 2021 at 3:13 pm
    Author
  • #
  • Reply

Hi, AVRDUDESS only supports extended, high and low fuse bytes. Xmega devices don’t have these fuses, though I do plan on adding support for the xmega fuse bytes at some point.

  • Inacio Morais on May 7, 2021 at 12:25 am
  • #
  • Reply

Thank you, Zek! Your sotware is great. My FTDI232 worked fine after selecting ‘Wiring’ and disabling flash erase (-D).

  • DeepDivingDelight on May 19, 2021 at 10:50 pm
  • #
  • Reply

Just an FYI to you: AVRDUDESS will not function under any version of MacOS beyond Mojave 10.13. This is because Apple completely and totally removed any capacity to run 32-bit software of any sort.

I’ve been trying to get this program to run on MacOS Big Sur 11.3.1, and I did keep getting this error:

“WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319
WARNING: The Carbon driver has not been ported to 64bits, and very few parts of Windows.Forms will work properly, or at all”

I’m not sure how big of an ask this would be for you, but is it possible for you to port this program over to a different framework instead of using WinForms?

  • Zak Kemble on May 20, 2021 at 1:15 am
    Author
  • #
  • Reply

Heya, well, it would take waayyy too much time to learn and port everything to a different cross-platform framework. Though it looks like Mono might add 64-bit support at some point, scroll right to the bottom and there’s been some new comments in the past few weeks – https://github.com/mono/mono/issues/6701
But I’m not very familiar with Mono and Carbon and all that stuff so they could be going on about something completely unrelated hah.

Hello, Zak!
I use STK200 programmer on LPT1 under WXP SP2
AVRdude 6.3 with your installable GUI reports problems with LPT (all issues with NET Frameworks and GiveIO were solved). At the same time AVRdude with alternative GUI works OK with this programmer (as well Ponyprog does). I need AVRdudess because it is anounced to be compatible with all chips supported by current version of the AVRdude (I need to read/write Xmega32D4. Please suggest some steps to fix it.

  • Zak Kemble on May 25, 2021 at 11:36 am
    Author
  • #
  • Reply

Hey Alex, what exactly does the error message say?

  • Alexij on May 25, 2021 at 3:41 pm
  • #
  • Reply

Hi!
thanks for your reply 🙂

the exact message is:
>
Unable to detect MCU
avrdude.exe: port name “LPT1” is neither lpt1/2/3 nor valid number
avrdude.exe: can’t open device “LPT1”
avrdude.exe: failed to open parallel port “LPT1”
>
AVRDUDE command prefix is
-c stk200 -p m8 -P LPT1

Also I can send you snaps of the “success message” from AVRPROG with the same port (LPT1), the same chip (Atmega8) and the same programmer (STK200)

  • Zak Kemble on May 25, 2021 at 4:44 pm
    Author
  • #
  • Reply

Looks like you’re running a very old version where LPT was in uppercase (it should be lowercase lpt), you’ll need to update your AVRDUDESS or manually type lpt1 into the port box. Screenshots can be uploaded here https://imgur.com/

[…] Saya mengunakan avrdudess, […]

[…] a mikrokontroller programozásával kezdtem. Ehhez egy Arduino-ISP programozót és az Avrdudess programot használtam. A mikrokontrollert egy próbapanel és 6db összekötő vezeték […]

[…] bir kristal veya internal kristali kullanacaksanız kristal değerine uygun sigorta ayarlarını AVRDUDES adlı yazılımla çipinize […]

[…] knapp 10 EUR, das Treiber-Programm „zadig“ der Firma Akeo für den USBasp, das Programm AVRDUDESS und die neue Firmware als *.HEX-Datei (letztere ist „gut versteckt“, den Weg dorthin […]

[…] von Simon, VK3ELH, zum Vorgehen gelesen und meinen USBasp-Programmer angeschlossen hatte (zadig und AVRDUDESS waren bereits installiert), lief alles wie am Schnürchen. Das Flashen dauerte keine 20 Sekunden […]

[…] forums and blogs people were using either Windows or Linux. I was using the software AVRDUDES from https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/ in particular the portal exe […]

[…] with these directions and my new found confidence, I fired up AVRDUDESS (which I just recently discovered is a cool GUI for the avrdude program, NEAT) and got to […]

Источник

Оцените статью