buixuanan / fritzing

Automatically exported from code.google.com/p/fritzing
0 stars 0 forks source link

Add Arduino support to the programming window #1101

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The Arduino syntax file has already added in r4210
(/trunk/fritzing/translations/syntax/arduino.xml).

This syntax file needs to be modified to fully support the Arduino syntax.
I also need to add the language to the programming drop-down.

Original issue reported on code.google.com by bryant.m...@gmail.com on 4 Jun 2010 at 3:15

GoogleCodeExporter commented 9 years ago
r4215: changed the language name attribute in arduino.xml: 'Arduino' will now 
automatically show up in the programming drop-down.

Original comment by irasc...@gmail.com on 4 Jun 2010 at 6:07

GoogleCodeExporter commented 9 years ago

Original comment by irasc...@gmail.com on 9 Jun 2010 at 6:15

GoogleCodeExporter commented 9 years ago

Original comment by irasc...@gmail.com on 16 Jun 2010 at 8:18

GoogleCodeExporter commented 9 years ago

Original comment by irasc...@gmail.com on 30 Jun 2010 at 6:14

GoogleCodeExporter commented 9 years ago
http://johanneshoff.com/arduino-command-line.html
http://www.arduino.cc/en/Hacking/BuildProcess
http://www.arduino.cc/playground/Code/WindowsCommandLine

These discuss some of the ways people have been using the command line to 
compile/program for Arduino.

Original comment by bryant.m...@gmail.com on 6 Jul 2010 at 6:49

GoogleCodeExporter commented 9 years ago
Two more:
http://code.google.com/p/arduino/issues/detail?id=124
http://code.google.com/p/angbt/

And a comment from mellis from the Arduino team:
"I think angbt might be a decent option; it's probably similar to what we'll 
end up doing for Arduino 1.0.  That is, a command line interface to Java code 
that does basically the same thing as the current IDE (as opposed to a makefile 
or alternative build tool that replicates the build process)."

Original comment by andre.knoerig@gmail.com on 6 Jul 2010 at 7:21

GoogleCodeExporter commented 9 years ago
So for programming the Arduino you need to specify the board for compilation 
and programming. How would we integrate a Target UI element into our GUI? I 
imagine just a dropdown that could appear/disappear based on the language you 
have selected.

I'm going to look into the angbt project. It hasn't had any activity recently, 
but looks like it's stable. I'm going to also try to get in touch with the 
Arduino devs to figure out a deadline for official CLI support.

Original comment by bryant.m...@gmail.com on 6 Jul 2010 at 11:49

GoogleCodeExporter commented 9 years ago
I notice that the angbt page doesn't list mac as a supported platform, so it 
would be good to determine whether that's really the case, and if so, why not.

As to the target chip UI element, one thought would be use the chip that they 
had already dropped into the sketch.  The question is whether users would want 
to be able to program independently of sketch content.  In which case, still 
use the dropdown, but if there's already an arduino in the sketch, then default 
the dropdown to that choice.

Note that PICAXE handles the same problem by having different 
compilers/downloaders for different microcontrollers, so the chip is chosen 
when you select the programmer executable. 

Original comment by irasc...@gmail.com on 7 Jul 2010 at 6:34

GoogleCodeExporter commented 9 years ago
on further thought, maybe rather than adding a second dropdown, change the 
"language" dropdown to the "microcontroller" dropdown, and the default choice 
is the microcontroller that exists in the sketch.

Original comment by irasc...@gmail.com on 7 Jul 2010 at 7:41

GoogleCodeExporter commented 9 years ago
The angbt FAQ say that the reason why there is no Mac support is just that the 
developer doesn't have a Mac. :)

Concerning the UI, it's all there, no? The label "Language" could be changed to 
"Microcontroller", but it should just be "Arduino". The type of Arduino should 
be selected in the "Programmer" drop-down. In there, select "Locate.." to point 
to the Arduino directory, and then the drop-down should be populated with all 
the various Arduinos. The default selection could then still be the one in the 
sketch.

Bryant, if you want to get in touch with the Arduino team to find out about 
their roadmap, I can hook you up with mellis.

Original comment by andre.knoerig@gmail.com on 7 Jul 2010 at 8:59

GoogleCodeExporter commented 9 years ago
Clarifying comment 10:  the label "language" could be changed to 
"microcontroller type" but the value there should remain "arduino" or "picaxe"; 
the specific microcontroller (i.e. mini, nano, etc.) should be chosen in the 
second dropdown, based on the value of the first dropdown.

Original comment by irasc...@gmail.com on 7 Jul 2010 at 10:36

GoogleCodeExporter commented 9 years ago
I've been checking out the angbt project and it looks like there's a lot of 
extra configuration to get it set up correctly on a given system. It relies on 
a host of external tools to do everything for it and so the location of these 
tools all has to be determined ahead of time.

I would think moving the Programmer button into a preferences dialog that can 
store the programmers for all the languages would be the way to go at this 
point. I'll whip up an example GUI and attach it once it's done. I don't think 
we should rely on a user to configure angbt externally.

Original comment by bryant.m...@gmail.com on 11 Jul 2010 at 5:53

GoogleCodeExporter commented 9 years ago
Are the external tools all separate installations, or do they get installed 
along with with arduino and java?  Do we know enough about these tools to be 
able to search for them in the file system programmatically?

Original comment by irasc...@gmail.com on 12 Jul 2010 at 8:45

GoogleCodeExporter commented 9 years ago
Angbt relies partially on all the configuration files from the Arduino install, 
but requires installation of avr-dude, avr-gcc, avr-libc on Linux and for 
Windows you can just install winavr to get all the programs that are required.

This was all obtained from http://code.google.com/p/angbt/wiki/AngInstall.

Original comment by bryant.m...@gmail.com on 12 Jul 2010 at 4:11

GoogleCodeExporter commented 9 years ago
It looks like at least for some of the packages on linux, he asks for a 
separate installation, even though there actually are versions installed along 
with Arduino.  So would angbt still work if you pointed it to the versions 
installed with the arduino installation.  And how different would this be 
across platforms.  

In other words, I wonder if it would be possible for the user only to tell 
fritzing where the arduino installation was, and from there the software 
figures out the rest of the pointers to give angbt.

Original comment by irasc...@gmail.com on 13 Jul 2010 at 8:37

GoogleCodeExporter commented 9 years ago
I'll try that out and see what happens. I only have access to a Mac, though, so 
I'll see how far I can get with this this week.

Also you mentioned you know an Arduino dev you could put me in touch with. 
Could you introduce me? It'd be nice to see their plans for this functionality.

Original comment by bryant.m...@gmail.com on 13 Jul 2010 at 4:20

GoogleCodeExporter commented 9 years ago
So it looks like Ang can compile Arduino code correctly using only the programs 
included with the Arduino download.

I'm going to work now to see if I can hook up Ang to the programming window 
codebase. After that will come the configuration of Ang, which should only rely 
on knowing the location of the Arduino executable and the Ang executable.

So if we wanted to use Ang with Fritzing, would we distribute it with it or 
rely on it as a separate download? It uses the MIT license, so we could 
distribute it with Fritzing, but I'm not certain of what needs to be done if we 
do that. I assume we should contact the author.

Original comment by bryant.m...@gmail.com on 24 Jul 2010 at 7:49

GoogleCodeExporter commented 9 years ago
Great news--looking forward to the hookup.  

I'm guessing it would be a separate download, but maybe we'd provide a pointer. 
 For example, if the user selected "arduino", maybe the first time he clicked 
the "Programmer: locate" button, it would explain that both the arduino and 
angbt packages needed to be installed and where to get them.  We should 
probably do something similar with the picaxe package.

Original comment by irasc...@gmail.com on 24 Jul 2010 at 9:36

GoogleCodeExporter commented 9 years ago
Maybe a first-run help screen would be helpful for the programming window? It 
could open when you first open the programming window and introduce the window, 
some of its paradigms, and explain the toolchain and any required downloads.

Original comment by bryant.m...@gmail.com on 25 Jul 2010 at 1:39

GoogleCodeExporter commented 9 years ago
I like that idea.  Perhaps, since the programming window is already a text 
window, the help text could just be the default opening text, disappearing as 
soon as you type something in or load a file.  Maybe it's a different 
color/face/font to distinguish it from actual program text.

Original comment by irasc...@gmail.com on 25 Jul 2010 at 5:56

GoogleCodeExporter commented 9 years ago
I would vote to separate the help text from the programming window text. A 
popup window would be ideal, preferably with a checkbox to disable help for 
next time. A lot of programs do it this way and I think it makes a lot of sense.

Original comment by bryant.m...@gmail.com on 25 Jul 2010 at 4:58

GoogleCodeExporter commented 9 years ago
I'd argue that the first time help for sketches appears in the window itself 
rather than a separate popup, so adding it to the programming window itself 
keeps things more consistent (and gives you fewer windows to wrestle with).  

But I don't feel particularly passionate about it either way, so if there's 
another strong opinion out there, speak up.

Original comment by irasc...@gmail.com on 25 Jul 2010 at 5:17

GoogleCodeExporter commented 9 years ago
I'd throw it in a popup as it's more clear that it's help text. This way we can 
also include the checkbox.

The reason the help within the first-time help in the sketch works is it's a 
graphical environment and so the help is cleanly separated to stand out, with 
text in a textbox, that won't be the case. I have a pretty good idea of how 
this should look, so I'll try to whip up some code for it at some point.

Back to actually integrating Ang with Arduino, it's not very easy to do, at 
least on the mac. I've attached a patch that does what I need on the mac, but 
it's not complete. The mac version also can't run to completion with only 
Arduino installed as Ang calls things with a different name than they are in 
the Mac binary.

At this point I believe Ang can't work on a Mac. This is my only testing 
machine, so I'm not certain how it will work in other environments. I've posted 
an issue to the Ang project, so we'll see how he responds.

I'm going to try to get in touch with the Arduino devs and see if they can give 
me a timeline on Arduino support.

Original comment by bryant.m...@gmail.com on 25 Jul 2010 at 6:06

Attachments:

GoogleCodeExporter commented 9 years ago
So an update from the Arduino dev community: a command-line interface will be 
included in the 1.0 September release. I'm still not certain if I will be 
involved in its development or not, but it's gonna happen. I'm going to propose 
excluding Arduino support from Fritzing releases until that release ships.

Original comment by bryant.m...@gmail.com on 9 Aug 2010 at 9:08

GoogleCodeExporter commented 9 years ago

Original comment by irasc...@gmail.com on 7 Feb 2012 at 11:33

GoogleCodeExporter commented 9 years ago
Arduino command-line functionality is finally coming with their version 1.5.2:
http://code.google.com/p/arduino/issues/detail?id=124

Original comment by andre.knoerig@gmail.com on 16 Jan 2013 at 6:38

GoogleCodeExporter commented 9 years ago

Original comment by irasc...@gmail.com on 20 Jan 2013 at 8:25