Arduino on Xcode Project — Official Thread

New release 16 of embedXcode supports the FraunchPad MSP430FR5739.

embedXcode • Sep 25, 2012 release 16 • Support for FraunchPad

The Document target now builds a PDF file along with HTML and docset files.

Documentation is here and download there.

Obsolescence Notice
The following features are planned to become obsolete in a future release:

  • Support for Arduino 0023 is planned to be be discontinued.
  • The code for multiple platforms is managed in two ways: the MCU variables like AVR_ATmega328P and the IDE variables like ARDUINO=101. The MCU variables are going to be suspended in favour the IDE variables. This enables a more compact code and an easier maintenance.

Has this latest version:

embedXcode • Sep 25, 2012 release 16 • Support for FraunchPad,

been tested with xCode 4.5?

Thanks

Yes, it is compatible with Xcode 4.5 and even 4.5.1 :slight_smile:

Updated User Manual and Support for Xcode 4.5.1

I updated the user manual based on the feed-back I've received about the following two sections: installation and target selection.

embedXcode now supports Xcode 4.5.1.

The package includes the templates, the code snippets, and the User Manual.

As always, documentation is here and download there!

I've downloaded the latest guide and embedXcode after downloading the Arduino 1.0.1 IDE, but I'm a little lost as to where my Sketchbook\Libraries folder is (mentioned on page 23). When I launched Arduino, it created a ~\Documents\Arduino directory, but seemingly nothing else.

I see in the guide and this forum that 1.0 is supposed to be supported, and with 1.0.1 being a minor point release, I figured perhaps it would be fine. Is 1.0.1 not supported?

I loaded 1.0 and then re-ran the embedXcode installer. I still have no "Library" or "Libraries" folder under that Sketchbook path.

Any ideas where I must have gone off the road?

Thank you all for your dedication and time.

Thomas

embedXcode supports Arduino 1.0.1.

The Sketchbook/Library folder is not created by embedXcode but managed by the Arduino IDE.

Please refer to Installing Additional Arduino Libraries on how to install the Sketchbook/Library folder.

Once the Sketchbook/Library folder exists,

  • run Arduino
  • and define the path of the sketchbook in the menu Arduino > Preferences > Sketchbook location as explained page 6.

Now, launch embedXcode, create a new project and follow the instructions page 22:

  • Open the Sketchbook group on the project hierarchy. Right-click to obtain the contextual menu.
  • Choose Add file to...
  • ?Select the Library sub-folder on the sketchbook folder, tick Add to target > Index and validate with Add.

Xcode is a whole new environment and, as other advanced IDEs, requires some learning.

I recommend the book Xcode 4 Unleashed by Fritz F. Anderson I've purchased thanks to contributions.

Enjoy :wink:

Right - I knew that the Library directory was for the Arduino IDE, but the instructions in the guide regarding it confused me. It made me think that the Arduino IDE was going to also create and insert its default libraries there. And then by some quirk of the whole X Code template situation, I might need to add (but not copy) those libraries so that the compiler can find everything. In digging into the template though, I see that all default Arduino libs are actually included as part of the project.

Anyhow, my mistake. It seems this step is only relevant if one actually has additional libraries they want to include at the time of creating their project.

So just to make sure I understood everything so far, should the SKETCHBOOK_DIR be pointed at my ~/Documents/Arduino path (where the IDE identifies the Sketchbook and where Library will soon be) or the X Code project's Sketchbook directory?

Thanks again.

The SKETCHBOOK_DIR should be pointed at your ~/Documents/Arduino path to take into account your personal libraries.

Once again, Xcode is a professional IDE and, as so, requires some learning.

I strongly recommend the book Xcode 4 Unleashed by Fritz F. Anderson I've purchased thanks to contributions.

Please keep in mind the embedXcode User Guide is not an introduction to Xcode. It implies some fluency with Xcode.

Enjoy :wink:

Thanks.

At this point I can build the Build target, but code sense is still not working on PDE files despite having their type set to C++ Source and re-indexing 3 times now.

None of the other standard C/C++ file types are having this issue. It's as if the if-def header isn't being processed properly in specifically the PDE file despite it otherwise being treated like a C/C++ file.

EDIT - Per your suggestion, I eliminated the larger if-def block in place for just Android.h since that's the only platform I am working with. After re-indexing, everything seems to be fine.

Thank you so much for setting this whole thing up.

Normally, code-sense should work after the first build even for the pde or ino file.

Try closing the project and opening it again.

Xcode has sometimes strange behaviours.

Please find the new release of embedXcode

Oct 21, 2012 • Selection of pde, ino or cpp extension for the sketch

When creating a new project, select the extension on the drop-down list:
• Choose pde for Arduino 0023, chipKIT MPIDE, Wiring and Leaflabs Maple,
• Choose ino for Arduino 1.0 and Energia,
• Choose cpp optionally for a standard C++ file.

Using a pde or ino extension allows to edit the sketch with the standard IDEs of the boards.

Find documentation at http://embedxcode.weebly.com
and download from http://embedxcode.weebly.com/download.html

Enjoy :wink:

I'm implementing support for Due on embedXcode.

Building and linking work fine.

Unfortunately, I can't proceed with the uploading tests as I don't own an Arduino Due board.

Learn more :slight_smile:

Same here. The amazing invisible board :slight_smile:

I'm implementing support for Due on Xcode for Mac OS X with the template embedXcode.

Building and linking work fine.

Unfortunately, I can't proceed with the uploading tests as I don't own an Arduino Due board.

Can an Arduino Due owner post the verbose output for upload?

Thanks!

Dear avenue33 (or anybody else who may help),

I have installed embedXcode but get stuck since a couple of days when trying to execute the build target.
I get errors that suggest that the compiler would not accept overloading functions. (screenshot attached)
Also, the UDPbytewise library seems to request a "Types.h" include that cannot be found.
What kind of confuses me is also that those are "Shell Script Invocation Errors".
Any idea if this is a compiler flag not set or something of that sort? I really would like this to work, as I have a project that I need to separate into different libraries and classes to be maintainable, and the Arduino IDE is just not made for that.

Any help would be greatly appreciated.

Does the project compile with the standard Arduino IDE?

The "already defined here" message occurs when the same libraries are in two places:

  • first under the sketchbook / libraries folder
  • and second under the project folder.

The screenshot doesn't provide enough clues to help you more. What is the board used?

Thank you for your input.

I try to build for Arduino Mega 2560

On the standard IDE, I get the following error:

main.cpp:45:25: error: BlinkTest.ino: No such file or directory

If I remove main.cpp from the project, it compiles (this does not seem strange, as the main.cpp is probably already "hidden" in the Arduino IDE), but I get some warnings:
Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/HardwareSerial.cpp: In function 'void store_char(unsigned char, ring_buffer*)':
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/HardwareSerial.cpp:82: warning: comparison between signed and unsigned integer expressions
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/HardwareSerial.cpp: In member function 'virtual size_t HardwareSerial::write(uint8_t)':
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/HardwareSerial.cpp:390: warning: comparison between signed and unsigned integer expressions
and
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.cpp: In member function 'size_t Print::print(const __FlashStringHelper*)':
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.cpp:44: warning: 'progmem' attribute ignored
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Tone.cpp:93: warning: only initialized variables can be placed into program memory area

Attached is the path of the project folder. The Sketchbook folder is empty, except for the .txt file, the others have all the .h and .cpp files in them.
Does that seem right?

Any clues?

Screen Shot 2012-11-05 at 18.24.57.png

Well, it seems your project is having some issues even in the Arduino IDE.

How complex is your project?

The sketchbook folder is the place were you place a link to the libraries you've developed.

Please refer to section 3.3. Add User's Libraries on pages 25 et sq. of the User Manual.

it's really just the test project that appears when you create a new embedxcode project. I haven't changed a line of code and just wanted to try if it compiles, at all... :~
maybe I should try a regular c++ project to see what's wrong with the environment?

Which release of embedXcode are you using?

Which release of the Arduino IDE are you using?

Is the Arduino IDE installed on the folder /Applications?

Current version 17 of embedXcode doesn't invoque any HardwareSerial in the default sketch.

According to the messages, it seems Arduino 23 and 1.0 are mixed. Best solution consists on deleting the Arduino IDEs and proceeding with a clean install.