Arduino on Xcode Project — Official Thread

Critical Decision Ahead

Most of the open points on embedXcode are about Xcode, especially keywords on the template.

Despite numerous calls for help, they're still unresolved. The Xcode template remains undocumented and there's no sign of openness from Apple. Apple seems to restrict Xcode to OS X and iOS platforms only.

So I'm considering to change for another IDE, with NetBeans as most probable solution. It's open, and documentation is available.

What do you think?

There are people attempting to unravel the template format (why Apple had to change it in Xcode 4 to this weird new system we'll never know) for coding other projects too. You aren't alone in trying to decipher it, but only asking for help via the Arduino on Xcode project means the audience is pretty small. I'm sure someone will figure it out (or it'll get leaked from Apple) sometime.

You're right that Xcode is really designed for OS X and iOS, Apple has little interest in supporting other languages/platforms. Despite its limitations though, I'd personally rather use Xcode. NetBeans is Java, which is usually pretty clunky and un Mac-like. I don't have experience with anything but the Arduino IDE, and Xcode on the Mac however.

Elijahg,

You're right about selecting the right channel for the right audience.

I'm posting on both Xcode-related forums —of which Stack Overflow for very specific questions about the Xcode 4 template— and embedded computing related forums.

The idea is Arduino users may be interested in using Xcode and Xcode experts may have some tricks to exchange.

Thanks to this strategy, the Wiring and LaunchPad platforms are now supported by embedXcode. I hope adding more platforms may help raising interest on this project.

There are so many things one could dream about: built-in serial console, integrated help, debugging, closer integration of the tool-chains, ...

Please find the new releases for

embedXcode • Apr 16, 2012 release 9 • Code-sense reference defined by selected board
mpideXcode • Apr 16, 2012 release 12 • Code-sense reference defined by selected board
Installation Guide • Apr 16, 2012 release 6 • General update

All the manual settings are due to unknown template keywords. Your help is greatly appreciated.

Documentation is here and code is there.

embedXcode now supports Maple!

embedXcode • May 23, 2012 release 10 • LeafLabs Maple implementation
mpideXcode • May 23, 2012 release 13 • LeafLabs Maple implementation
Installation Guide • May 23, 2012 release 7 • LeafLabs Maple implementation

The Maple reset script —which sends control signals over the USB-serial connection to restart and enter the bootloader— is written in Python and requires the PySerial library:
• Read the instructions at Maple | LeafLabs and
• Download PySerial library from pyserial · PyPI.

Full documentation and download are available here.

Enjoy :slight_smile:

Please find the new releases of

embedXcode • Jun 03, 2012 release 11
mpideXcode • Jun 03, 2012 release 14
Installation Guide • Jun 03, 2012 release 8

As embedXcode manages multiple platforms, including the right libraries and dealing with syntax specificities are two cumbersome challenges.

Until now, the platform identification was solely based on the MCU, resulting on lengthy #if #elif #else #endif statements.

Now, embedXcode brings a new approach based on the IDE.

The Arduino, Wiring and Maple IDEs set an environment variable for the tool-chain.

For example, Arduino defines ARDUINO=100 and pass -DARDUINO=100 on to gcc, g++ and alike, Wiring sets -DWIRING=100 and Maple -MAPLE_IDE.

So the code is fully compatible between embedXcode and those IDEs. This new approach brings more compact and easier to read code, and doesn't require maintenance at code level when a new MCU appears.

This new IDE-based approach is optional, as not all IDEs include this approach. Let's mention Energia and chipKIT MPIDE, and hope they consider it!

As always, full documentation including features, tutorials, installation guide and code, is available at embedXcode website.

Enjoy :wink:

I'm working on the next release of embedXcode. I plan to integrate an automatic documenting feature.

After having reviewed HeaderDoc, doxygen and appledoc, I picked doxygen.

Integration with Xcode is the main challenge. The idea is to select a specific target to build the documentation, obtain a PDF and integrate a codeset Xcode could use.

There's still a lot of work to do.

Stay tuned :wink:

Please find the new release of embedXcode with the implementation of the self-documentation.

embedXcode • Jun 14, 2012 release 13
Installation Guide • Jun 14, 2012 release 9

Just add to your code and launch the Document target:

A help document is generated and closely integrated in Xcode.

Quick Help provides details on documented functions:

As always, learn more and download from here.

New version 14 of embedXcode brings a significant improvement on the size of the HEX and BIN files over the

embedXcode • Jun 25, 2012 release 14 • HEX and BIN files size optimisation

Sizes are now close to and even better than those obtained with the corresponding IDEs.

All measures are in bytes.

As always, learn more and download from here.

Hey everybody,
I believe the arduino on Xcode project is just awesome, and as i have a pretty big arduino-project coming up for myself,
i wanted to switch to Xcode for the programming part, But:

On Lion, the developer-folder changed, it is now located in Xcode/contents/developer

So now I'm not sure where to put the embedxcode template files???

i do believe here like in the photo? am i right? because there are other Xcode/template/file_temp.... in the platform-direction!!

might be a dumb question but thanks anyway!

Please refrain from modifying the Xcode directory! This is potentially dangerous!

Instead,

Installation Guide and User Manual:
1.4. Install the Template
Now, the template can be installed:
Check and create ~/Library/Developer/Xcode.

Copy the folder Templates into ~/Library/Developer/ Xcode

I wrote an Installation Guide and User Manual. I hope it's clear enough.

Enjoy :wink:

embedXcode on Dangerous Prototypes!

Read at embedXcode IDE covers multiple platforms – Dangerous Prototypes

Please find the new release of embedXcode

Sep 01, 2012 • Support for Arduino Leonardo

As the Arduino Leonardo requires a specific reset procedure due to its ATmega32U4, I had to develop a reset script in Python.

Also included in this release, support for Xcode 4.4.1 and for newly released Energia 0101E0008 and a fix for GraphWiz 2.28 crashing on Mountain Lion.

As always, find documentation and download at http://embedXcode.weebly.com

New! Installation Package

embedXcode is now installed with a standard installation package. Installation is faster and easier.

The Installation Guide and User Manual has changed for User Manual.

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

Find it at the download page!

As Arduino 1.0 is now stabilised and wide-spread, should embedXcode continue to support Arduino 23?

Answer the poll :slight_smile:

Please note this is not going to affect other platforms, like chipKIT MPIDE which is still based on Arduino 23 and continues to be supported as it.

Thank you for your input. The poll opens for one week.

Dear avenue33,
I'm a complete newbie on Xcode but since I wanted to have a bit more advance IDE than the Arduino provided one and I'm on a Mac, I went for Xcode and your template embedXcode. I've tried to follow your installation guide but I must say it could be more extensive when it comes to where a certain dropdown menu is instead of just saying "the dropdown menu", like on page 37 when selecting a target. And the pictures could also be of higher resolution so one can actually se what's written in them. But I'm not just wining, I'm giving you hopefully constructive feedback because I really want this to work! :slight_smile:

Also, when I build the default code in a new project I get the following error message:
Argument list too long: recursive header expansion failed at /Applications/Preview.app/Contents.

And loads of messages of the following type:
Warning: no rule to process file '$(PROJECT_DIR)/TestOfXcode/Arduino/cores/arduino/Arduino.h' of type sourcecode.c.h for architecture i386

Any hints to get in the right direction?

Dear Hasse,

What is the target selected?

According to the message, it seems the Index target is selected.

The Index target is a dummy target and should not be used. It always throws the error you mention.

Please select the Build target to compile only, and the All target to compile and upload.

About the quality of the images, the full quality PDF is 6 GB. I'm obliged to reduce the size because the host for the website limits the size of the files. Uploading larger files would require a non-free plan.

Please don't consider my user manual is an introduction to Xcode. There are excellent books about Xcode: for example, I recommend Xcode 4 Unleashed by Fritz F. Anderson I've purchased thanks to contributions.

The user manual I wrote only focuses on how to use the template. Xcode, like all other professional IDEs —to name a few: Visual Studio, Eclipse, NetBeans, Qt, ...—, has a steep learning curve. The magic of the Arduino IDE relies in its instant plug-and-play gratification.

As a matter of fact, I'm still using the Arduino IDE when I don't need the power of Xcode.

Thanks for the quick reply! :slight_smile:
Yeah, once I got the target right it all works like a charm!
Cheers

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