AVR Studio for Linux

Go To Last Post
8 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

hey there, I was told that there is an increasing demand for an Atmel Studio alternative for linux.
Well I've been developing one for the past year or so and I think it is now polished and ready to be used, bare in mind though that it is not as professional as Atmel Studio's IDE, but it gets the job done. I've tested it on Ubuntu 14.04, though any debian distro should work, and windows and it works fine.

here's a link to the github repository:
https://github.com/abdalmoniem/AVR-Studio

feel free to contact me if there are any issues.

AbdAlMoniem AlHifnawy

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Interesting! I definitively will have a look!

But... The name is extremely badly chosen, since there has already existed an "AVR Studio".

Happy 75th anniversary to one of the best movies ever made! Rick Blane [Bogart]: "Of all the gin joints, in all the towns, in all the world, she walks into mine."

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

yes I noticed, but I suppose I've been working on ubuntu for too long that I've forgot windows and its softwares :D

AbdAlMoniem AlHifnawy

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thd point was that you should, for your own sake and for the projects sake, change the name ASAP before you get tangled in a mess of confused and possibly irritated people. I'll leave it to you to check whether Atmel registered "AVR Studio" as a trademark (which would now be owned by Microchip).

Happy 75th anniversary to one of the best movies ever made! Rick Blane [Bogart]: "Of all the gin joints, in all the towns, in all the world, she walks into mine."

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

Last Edited: Sun. Jun 18, 2017 - 01:22 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

With so many IDE already available what do you think this one offers to AVR users that the others don't?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It starts, but at the same time (in the CMD window which I start from):

 


C:\Users\MyUserName\AVR\abdalmoniem\AVR-Studio-master\Binaries\bin>java -jar AVR-Studio.jar
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "Thread-2" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:123)
        at mainPckg.Studio$3.run(Studio.java:968)
        at java.lang.Thread.run(Unknown Source)

 

If you catch this exception then you could produce a much more helpful error message to the user. (How many of your potential users do you think will know what rxtxSerial is?) Something probably went wrong in your project setup, since...

C:\Users\MyUserName\AVR\abdalmoniem>dir /s /b rxtx*.*

C:\Users\MyUserName\AVR\abdalmoniem\AVR-Studio-master\Binaries\bin\dependencies\RXTXcomm.jar
C:\Users\MyUserName\AVR\abdalmoniem\AVR-Studio-master\Binaries\bin\lib\RXTXcomm.jar
C:\Users\MyUserName\AVR\abdalmoniem\AVR-Studio-master\Source Code\AVR-Studio\RXTXcomm.jar
C:\Users\MyUserName\AVR\abdalmoniem\AVR-Studio-master\Source Code\AVR-Studio\dist\lib\RXTXcomm.jar

C:\Users\MyUserName\AVR\abdalmoniem>

 

First reactions: 

 

The UI is "wiggly". When moving the mouse-cursor over the textbox for searching the list of AVR models, the tex-tbox changes size and the combo-box to the right of it moves as a result.

 

I give that text-box focus and type a few characters, then erase them. Now the text-box has lost focus..

 

Are you planning on releasing the sources?

 

Any support for newer programmers, e.g. JTAGICE-II, JTAGICE3 or Atmel-ICE?

 

Did you write the flash programming yourself? (One idea would be to use AVRDude, which for a long time now has been divided into one library with the programming code proper and one application with the (command line) UI. You would "only" need the library and then all programmers supported would be available to your IDE. AVRDude has firm support and has been around for a long time. It is extremely well tested and supports most all existing and decent programmers.

 

Next, I tried to build (I assumed that is what you call "Verify"). It failed, since avr-gcc and all the binutils could not be found. You need to document that this needs to be installed separately and that it needs to be in the path.

 

Just for fun I tried "Upload". Then everything hangs (no, no programmer attached). No chance to stop the application via it's UI. It's looping hard somewhere, the mouse cursor flickers between the arrow and an I-bar, but apart from that the IDE is completely dead UI-wise.

 

Switching over to the command window from which I started the IDE there is a steady flow of:

1 error, 0 warning
Compilation Terminated, could not generate hex file !!!
avr-gcc -std=c99 -g -Os -mmcu=attiny28 -c "C:\Users\MyUserName\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.c" -o "C:\Users\MyUserName
\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.o"
avr-gcc -g -mmcu=attiny28 -o "C:\Users\MyUserName\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.elf" "C:\Users\MyUserName\AppData\Local
\Temp\sketch_jun18_17\sketch_jun18_17.o"
avr-objcopy -j .text -j .data -O ihex "C:\Users\joMyUserName\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.elf" "C:\Users\MyUserName\AppD
ata\Local\Temp\sketch_jun18_17\sketch_jun18_17.hex"
rm -f "C:\Users\MyUserName\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.o" "C:\Users\MyUserName\AppData\Local\Temp\sketch_jun18_17\ske
tch_jun18_17.elf"

1 error, 0 warning
Compilation Terminated, could not generate hex file !!!
avr-gcc -std=c99 -g -Os -mmcu=attiny28 -c "C:\Users\MyUserName\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.c" -o "C:\Users\MyUserName
\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.o"
avr-gcc -g -mmcu=attiny28 -o "C:\Users\MyUserName\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.elf" "C:\Users\MyUserName\AppData\Local
\Temp\sketch_jun18_17\sketch_jun18_17.o"
avr-objcopy -j .text -j .data -O ihex "C:\Users\MyUserName\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.elf" "C:\Users\MyUserName\AppD
ata\Local\Temp\sketch_jun18_17\sketch_jun18_17.hex"
rm -f "C:\Users\MyUserName\AppData\Local\Temp\sketch_jun18_17\sketch_jun18_17.o" "C:\Users\MyUserName\AppData\Local\Temp\sketch_jun18_17\ske
tch_jun18_17.elf"

  .
  .
  .

So, something goes very wrong there..

 

More questions and observations:

 

The reason I wanted to just build was that I was curious as to what compiler and linker options you are using. Will there be any provision to set those? Immediate things I come to think of is include, directories, .o libraries to link with and a search path for such, provisions for defining a preprocessor symbol, options for removing unused functions (needs to be set on both compilation and linking commands).

 

The File, New file command does absolutely nothing. (I wanted to try having several source files, partly to see if I could spot how you do linking in such a scenario).

 

I switched to using a makefile, and generated its content. I now see you're using AVRDude. This is not in the furbished in your installation. You need to document that it needs to be installed separately and that it needs to be in the path.

 

Also, since you are using AVRDude, why is rxtxSerial needed? (AVRDude does not need it on Windows as far as I know, but I might be wrong..)

 

-----

 

I hope my first reactions does not make you lose your motivation. I like the initiative!

 

But without proper testing you will get disappointed users and the come-back from that is not easy. It'll be up-hill.. For anything new released, commercial or open-source or "free", it is important to get the best possible start. Test, test and test again. Get a few "beta-testers" that will help find the bugs you won't because you know how "it ought to be used and work". Expect to spend just as much time testing as you do writing code. Divide the application so that you can write automated unit-tests for as much of the application as at all possible. (The only thing not being testable like this is a very thin layer of UI. If you do it "right"..) Now you can code and refactor with much more security and much less risk of introducing regression bugs etc.

 

-----

 

I'm about to connect my Atmel-ICE now and see how your IDE reacts.. (The STK500/600s are tucked away deep somewhere..)

 

-----

 

NOTE: All testing above done on Windows 7 Professional.

 

Java version:

C:\Users\MyUserName\AVR\abdalmoniem>java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

 

Happy 75th anniversary to one of the best movies ever made! Rick Blane [Bogart]: "Of all the gin joints, in all the towns, in all the world, she walks into mine."

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

Last Edited: Sun. Jun 18, 2017 - 02:34 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
With so many IDE already available what do you think this one offers to AVR users that the others don't?

Depends on what you're after. Whenever I see "AVR IDE for Linux" I'm hoping for something with these properties:

 

- One-shot install with minimal hazzle

- Support for all good known programmers (probably just build AVRdude into it ...)

- Support for On-Chip debugging without having to be intimately knowledgeable about the intricacies of avarice and GDB.

- A UI that is at least "decent" (preferably "excellent ;-) ).

- Most alla of the bells-and-wgistles that Atmel Studio sports. (Toolchain options etc...)

- "Free", and preferably open-source.

 

I would prefer it to be based on one of the ubiquitous "meta-IDEs" like Eclipse or NetBeans, which would give such a project better chances to survive should some key people "fall off". Also, this makes for leveraging off existing plugins (Eclipse CDT, NetBeans GCC plugin, GDB support, version control system plugins for e.g. Git and SVN, editor extensions,...).

 

While this project is not very close to that, I still think that the initiative is interesting and should be encouraged.

 

But as it stands right, it is not a competitor to either of the two AVR IDE approaches I see out there:

 

- Full-feathered IDEs. Eclipse with CDT, NetBeans with the GCC plugin or Code::Blocks does (almost) everything this IDE does. And with all the bells and whistles. (The only thing that is lacking in those is AVRDude integration.) The IDE presented here can't compete with those "on their terms".

 

- Simplest-of-simple IDEs, i.e. Arduino. Upon first look, the IDE presented in this thread seems to have a lot in common with Arduino in terms of it's look-and-feel and in terms of exposed functionality. Now, I have not tried Arduino on Linux, but if it is of similar quality like the one on Windows then the IDE presented here can not compete with Arduino. It falls on quality. (Arduino "just works".)

 

I really don't feel nice saying all this right up from the start, but that's how it is right now. I really like the initiative but the quality needs to be improved. The installation needs to be streamlined. And it needs an "edge" to compete with Arduino. (For me, that would be on-chip debugging.)

Happy 75th anniversary to one of the best movies ever made! Rick Blane [Bogart]: "Of all the gin joints, in all the towns, in all the world, she walks into mine."

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

woooooh :"D, that was a lot, I'm going to try to address each of your comments fairly :'D

1. yes it uses avrdude, though not all the options are listed since this what I had access to. (arduinos, avrisp programmers, etc...)

2. Windows versions has not been updated since the second or third commits or so since, obviously, It is a linux IDE afterall, windows falls in second priority.

3. yes the documentation for the windows version is not extensive, and that is because I mainly work on a linux machine and I have little access to windows machines

4. rxtxSerial is used to search usb and serial ports (com ports) and communicate with them via the serial terminal, this is the only way I know.

5. yes it resembles Arduino IDE, this where I got my inspiration in the first place, I know the gui is a bit sloppy, but it is a one man job and I cannot tackle everything :"D

6. it gets the job done like the Arduino does, I use it daily to program my AVRs

hope this addressed all the issues and concerns, and I will try to make it better through your suggestions :D

AbdAlMoniem AlHifnawy