how about a complete language reference

Classes are not decribed in the language reference at all. The only 'tutorial' is very shallow, and no complete description of the syntax is given.

Not a good start for Arduino for me. I have used other platforms years ago with much better support. Arduino seems to fall short in so many catagories that I'm seriously considering looking elsewhere:

Bad documentation (see above)
Poor hardware concepts: boards don't stack properly reducing flexibility.
Dreadful IDE - no debugger, very primitive environment.

Anyhow - at least a complete language refernce isnt too much to ask for, is it?

1 Like

Classes are not decribed in the language reference at all.

Stroustrup certainly describes classes.

no debugger

A single step debugger (which is what I imagine you're expecting) is tough on a page-based flash architecture, particularly at this price-point.

I'm seriously considering looking elsewhere

Don't let the door smack you on the way out.

yes of course C++ is described elsewhere. Its been around for more than 20yrs. But how is it implemented in arduino? I shoud be able to go to the arduino website and look it up om the arduino language reference like any other command.

PIC mictocontrollers always had debug facilities. Its not impossible on such devices. Surely you cannot deny that the arduino IDE is extremely primitive? Or perhaps you aren't familiar with proper microcontroller environments??

I'll have the door off its hinges if you want to behave like that :slight_smile:

Arduino is just a wrapper.
It's avr-gcc under the bonnet.
I'm pretty sure there's a ton of references.

It's odd, but the reason I gave up on PICs was the fact that the 16xxxx devices
a) didn't have a free C compiler
b) didn't have a debugger
c) had a tedious banked RAM page architecture
d) couldn't even implement a simple memory table, without resorting to a switch/case structure (and even that could go seriously wrong crossing page boundaries)

No, you're quite right, I haven't been programming micro controllers that long, but I've been programming microprocessors since the mid 70s.

I was using PICs about 8 yers ago with a free C compiler from a gent by the name of Knudsen - no objects though. With the IDE pod, you got a simulator and a step by step debugger, but it wasnt free. I didnt say PICs were perfect, but the environment was at least professional.

I picked up the Arduino to re-do an old project with the idea that it would be simple and modular - I wanted to introduce my son to microcontrollers (as distinct from micocomputers like the R-PI),but I quickly found that you can't stack an expansion board and an LCD as I thought you might. In addition I found many libraries not compatible with the latest IDE, and other obstacles.So far its been a bit frustrating and disappointing.

If its AVR-gcc underneath then, thankyou for the useful information. Perhaps I should abandon the Arduino front end and find a path directly through AVR. Some use visual studio, but my PC is too old to run it. Any hints on a IDE that is free or cheap and provides a complete environment gratefully received.

I'm not a software engineer, and my OOP concept understanding is weak. I was suprised not to be able to find anything on the Arduino website, but you have given me some pointers. Thankyou.

it wasnt free. I didnt say PICs were perfect, but the environment was at least professional.

IMO, it's a little oxymoronic to expect a professional environment for a product (whose development environment is free) aimed squarely at non-professionals.

Arduino is an open-source electronics platform based on easy-to-use hardware and software. It's intended for anyone making interactive projects.

Note, "anyone".

The thought of presenting a ten year-old (or their poor non-IT-savvy parent) who has just unboxed his or her Uno with a fully-fledged IDE with all its config options and jargon fills me with horror.
Imagine how frustrating and disappointing that would be.

Which would you rather - have two or three dev boards with different processors to play around with (boards which don't need any extra hardware beyond a USB cable to download programs to) or an extra
lump of dev-only hardware and a complicated IDE?

(I should point-out that I don't speak for Arduino, I'm just the non-hired help)

I shoud be able to go to the arduino website and look it up om the arduino language reference like any other command.

All of C++? I don't think that that would be helpful, or necessary, or sufficient. The "reference" provides a brief look at sort of the "minimum subset" of the language that is useful to beginners, and that's probably enough.

you cannot deny that the arduino IDE is extremely primitive?

Correct. Intentionally so.

the [PIC] environment was at least professional.

And the Arduino environment is intentionally NOT professional.

I quickly found that you can't stack an expansion board and an LCD as I thought you might.

It depends on the expansion board. and the LCD. An Arduino only has 13 digital pins; it's easy to have conflicts, and there's no overriding authority trying to keep track of which expansion boards will co-exist successfully. You could probably do fine with an I2C LCD and most other expansion boards.

Perhaps I should abandon the Arduino front end and find a path directly through AVR. Some use visual studio, but my PC is too old to run it. Any hints on a IDE that is free or cheap and provides a complete environment gratefully received.

How old is your computer? I'm running Atmel Studio 6.x (VS based) on WXP VMs with 2G of memory; it's slow to start up, but seems reasonably usable. (The newer AS7 requires a newer OS.) The only things I know of that are in between Arduino and Atmel Studio are commercial software. http://imagecraft.com comes to mind; a non-commercial license is about $100, and a full version is about $500. It's significantly different than Arduino's avr-gcc, and I don't think there has been any effort to provide any Arduino compatibility. (Free trial, BTW.)

Hi We're certainly aware that the arduino IDE has its shortcomings but it does a good job for a lot of people.

We're implementing debugging, we hope to release the first betas in Q1 2016

In the meantime you can use the free ATMEL Studio 7 which can import arduino sketches and debug them provided you have the necessary hardware (Like and AVR dragon or similar debugger )

Providing a full reference to c++ might be a bit beyond the scope of what we do and there are a lot of good resources out there already.

Glad to hear that some debug capability is in the pipeline. For educational purposes I think its a great help - once you move away from a canned example to writing your own code, then you bump into the effec of errors. For leaners like my son a blank screen and no feedback is just a turn off. Resorting to LED flash codes is clumsy and not very enlightening.

For myself and my own project, I need to debug someone elses library and I don't talk object c. Now I know where to look, but I was suprised that no description exists in Arduino of even the supported syntax. I would be nervous looking up other c implementations in case the implementation differs. This is common on microcontrollers where some concepts are just not appropriate for a small memory map.

I'll assume its AVR gcc based from here on in.

Hardware: Sainsmart LCDshield with 3.2 inch TFT, and a breaboard shield - no stack possible here... LCD needs the big connector, I might have to monkey with ribbon cables...shame.Why stackable headers weren't used is beyond me - plenty of options out there.

AS7 won't install on my old XP system. Might have t see about older versions...This is partly my fault, but XP has been ditched in an unusually violent manner (by everyone - not Arduino).I guess a new PC is in order sonn :frowning:

I'll try and persevere a bit more...

brightsparkey:
Sainsmart LCDshield with 3.2 inch TFT, and a breaboard shield - no stack possible here...Why stackable headers weren't used is beyond me

Because both of those shields are only useful at the top of the stack.

Well-that's kind of the point - I want to build some analog processing on the breadboard (using the pads, not the prototyping block), and of course the LCD TFT on top, but the led shield makes it impossible.