Go Down

Topic: Will Arduino team ever do better than this?! (Read 12880 times) previous topic - next topic

liuzengqiang

I've used Arduino stuff for a long enough time to know my complaint probably will not be heard except by a few concerned forum members. I'm doing this anyway in case the Arduino team does see.

Arduino libraries and hardware are full of **** when it comes completeness and dependability. I've used wifi shield for a while and know its problems. At least I have a call to check whether it is connected to a router. But with Ethernet library, how do I check before I send stuff out? Begin should only be called once, for really beginning things. That is the only place I can get a return of whether DHCP begun.

What about adding Ethernet.DHCP_status(), Arduino team? The maintain command seems to be related to this but it's a completeness issue. Its doc doesn't say what happens when DHCP failed and you call maintain. What is the expected reply, not guessing what it replies or trying out.

Always, there is no end to begin. Things just hang there. These status check methods should be very available to a developer but I find them missing in most arduino libraries. I can spend a good part of a Sunday making an internet-enabled fun thing but I don't want to spend days making a data logger that needs to have predefined status of everything it has in its control. Is Arduino only just for fun and play?

Endless examples: the localIP call, what should it return if DHCP fails? Post it on the ref page! I don't want to try with disconnected cable. What if things change and next time I try and get a different answer? How can they be so incomplete?!
Serial LCD keypad panel,phi_prompt user interface library,SDI-12 USB Adapter

kowalski

#1
Jun 17, 2014, 12:32 am Last Edit: Jun 17, 2014, 12:34 am by kowalski Reason: 1
Is there an Arduino (software) team?

Here is some proof of their absence. Statistics show significant drop in activity over the latest two years.
https://github.com/arduino/Arduino/graphs/contributors
https://groups.google.com/a/arduino.cc/forum/#!forum/developers

The major contributor(s) to the software part of Arduino have "left the building". There is no "software architect" as no money is made on software licensing, etc. This is good and bad. Some of the contributers the latest years are people giving back as they are trying to start businesses based on Arduino clones and rely on the software.

Arduino(TM) is about branding and marketing -- BOARDS. There is a lack of investment in software. This is the Achelles heel of this business enterprise as it should/must include software and software quality. Checkout the endless discussions on "clones" and "counterfeit". How often does the "Arduino Team" present something regarding improvements in software architecture?

My guess is that the Ethernet library is not maintained by the original author (any more) and it is only contributions from users that "develop" it further. The actual implementation is also on top of another library which is actually written by one of the more important maintainers and developers right now. If you check the source code you will see there is actually no author reference to Ethernet.h and Ethernet.cpp. The Dhcp class has the following info:
Code: [Select]

// DHCP Library v0.3 - April 25, 2009
// Author: Jordan Terrell - blog.jordanterrell.com

If you check "blame" in git you can actually see the changes to the Ethernet library over the years.

Cheers!

liuzengqiang

That is too bad. Anyone that puts their life savings to start a business will be discouraged to do anything serious with this platform then, unless they take money from the mass like some crowd funding websites.

I am exploring options of projects without arduino or with less arduino. As my 3-microcontroller rules states: open source hardware breaks down when 3 microcontrollers that depend on each other like 1->2->3 all run some open source code. I'm adding some non-open source hardware just to see how much better the stability gets.
Serial LCD keypad panel,phi_prompt user interface library,SDI-12 USB Adapter

john1a

Arduino is a community. The guys that decide which libraries will be in the IDE are absent, but who cares?
Write your desired library, the library that you want to use and #include it.
And if you can't (you aren't the software guy, you don't know about the microcontroller in the arduinos, you don't have the time, etc...) just ask for it. Right here, in this forum.

Arduino is a device that has some potential (it is much more expensive as it should be) and it is open source. Someone dropped the idea and the schematics (many years ago), but they don't have to maintain all the libraries they have created... You buy the board after all, not the support.

liuzengqiang

John,

You don't have the slightest idea of Arduino libraries or open source. If you are a software guy, you CAN'T write a library that uses hardware cause you won't have the experience. If you are a hardware guy, you might write a library but lacks critically the programming skills to make it graceful and forward-thinking. It takes a blend of software and hardware and some professional training and responsibility to write and maintain a library. We have a few such talents that do this for the community, such as fat16lib who wrote and maintains the SdFat library. The Arduino official SD library is just a wrapper around a dated SdFat library. It's only able to handle 8.3 file format. You can't just ask fat16lib to make you one for long file names. How would that be fair to this person, with no pay? Would you simply do it, if you have a regular job and kids at home? I am more on the software side so I have a number of user-interface type libraries that are popular among arduino users. I rarely have time to give updates. There is also Stanley that maintains his keypad library, Shirriff with IR library, Mikal Hart with software serial (official version derived from it) and tinyGPS, Jeff Rowberg with an I2C library that includes a huge collection of I2C sensors... These are the ones that I've used. They are individuals. You can't ask too much from them for free. Even for pay they may not have much time to do it. You need the team to plan and execute a plan to write and maintain libraries. Arduino is all about libraries. Hardware and board are NOTHING without libraries. Don't be surprised if one of the abovementioned library permanently stops updating, cause people do move on to other things in their lives. Then who do you ask for an update if things don't work anymore? You ask the team, cause the team is making real money off their brand.
Serial LCD keypad panel,phi_prompt user interface library,SDI-12 USB Adapter

Jantje

Even though the arduino core team are not my best friends and I have my second thoughts about many Arduino core team decisions; I find the title at least insulting.
If you look what Arduino did in the world it comes quite unreasonable to me that you (or I ) would do better.
Indeed there are flaws, things that can improve, things I hate .... but: Were you ever close to being invited at the white house?
Or are you at the foundations of a community with several thousand enthusiasts?

If you think you can beat that: you shouldn't spend your time in writing posts with a title like this one; you should be doing it.
Honestly, I don't think I can beat them; nor can you.

I don't want to discuss the title but I do feel like a discussion with a title like "Is arduino at its top?"

Is arduino at its top?

I don't have a crystal ball and I know from past experiences my prediction ratio is not that good. But I'd like to share my observations and comment on some of the observations done.

1) Arduino is no longer as "open" as many people believe it is. Basically it is no longer possible to legally copycat any arduino board since -and including- the UNO. This must have been a "legal decision" inside the arduino offices.
2) Arduino is launching board after board but is investing little to no energy in the community. How long can the community take it? Definitely when some key players feel/say they are not being heard?
The following is becoming a common phrase: "Ask the Arduino core team ..... but don't hold your breath".
3) There are and have been efforts from arduino to increase the energy put into the community. For instance mad bob and recently Frederico.
4) Kowalski's link to the github graph doesn't prove anything because of 2 reasons.
- The graph only shows Arduino core activity. Many libraries and projects are not part of this. As such it doesn't monitor the "arduino community activity". A nice example is kowalski's development.
- Secondly (and far more important) it only shows the activity on the master branch. V1.5 is not on the master branch. V1.X is in bugfix mode. So low activity is "normal"
5) Kowalski link to the development discussion group pinpoints a flaw. First of all: why can't the discussion be on the arduino forum? Secondly: As I personally experienced: the arduino core team is not really listening to the community here as well.
6)

John,
You don't have the slightest idea of Arduino libraries or open source.

Again: why so insulting?  If I read John his comments I think he knows more about open source than you do.
Quote from: liudr

Arduino libraries and hardware are full of **** when it comes completeness and dependability.

If you know about open source; this should not be a surprise. The most libraries are code written by someone to get it to work in their environment. Other people requested the code so they published it.
If you expect "completeness and dependability" you are at the wrong address in open source.
Even adafruit -which I consider among the best "businesses' for quality- took a very long time (or didn't even do it yet) to port their library for their motor shield to the leonardo.

So; Do I think Arduino is at its top? I don't know. I see weaknesses I see strengths. I do hope it is not.

Best regards
Jantje


Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

robtillaart

#6
Jun 18, 2014, 08:42 pm Last Edit: Jun 18, 2014, 11:59 pm by robtillaart Reason: 1
+1  Jantje
imho the Arduino ecosystem has become much larger than the core team (is responsible for)

Open source is as good it gets, but at least you can improve SW or HW yourself.

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

liuzengqiang

Jantje,

If you think open source is only this quality then you have missed the whole GNU/linux project that is billions in numbers (on android phones and PCs) and very very complete and commercial quality. It took decades of making but I am not asking for a complete of everything from every lib from Arduino. But please add end to begin and add some unexpected situations and how a function call under these situations behaves and returns values.

I am very agreeing with kowalski's argument that the core team is now a board pusher. They released board after board without adequate software support or community input (they ask for input?!). Their libraries are all assuming ideal situations and references say nothing about exceptions. This is NOT how open source should develop. It needs some quality and dependability. Look at how fat16lib writes libraries and why can't arduino core team make some improvements? Since around 2011, everyone is making some arduino related boards and add improvement to theirs and more, like putting raspberry pi together with arduino. The team is being dragged into a board pushing race. The Tre has been advertised for a while but not to be seen yet. It's a complete mistake, if they asked me, what they designed. It will amplify one silly mistake of short circuiting into a costly one and a noob may not recover from his shock of losing an entire board from that one fateful short circuiting. Thing is, the arduino world depends on the community, but how often has the core team start a vote or questionnaire about some new directions they will take.

Arduino core team (ACT), please look at what raspberry pi is doing. They are sticking to the education route. It's how more people will use and sustain the community. Plus, now they are making an RPI card. You can slide it into an SODIMM-2 slot and let there be a pi in your system! This is how the Tre should have been made, with slots to add a linux core, and to add ATMEGAs as will. If one is damaged, swap it out. Don't toss the entire board. Arduino doesn't have to be cheap, especially the more powerful ones.

Rob, about improving own SW and HW, no single person is expert enough to improve everything he sees as inadequate. I can do a thing or two but that's it. Some more critical SW needs to be maintained by the core team and none else.

BTW, do you guys make products with Arduino resources? I do and I'm not liking its stability too much. I'm doing what I can. I'm not trying to blame Arduino for not perfect. I'm just frustrated at how imperfect it is. You can play with it, but what about making product.

Jantje, I think arduino is still open source, only they have a GNU GPL version that allows the user of the resource to further develop on top of arduino and close the source if THEY want, not Arduino core. Please read their license portion.
Serial LCD keypad panel,phi_prompt user interface library,SDI-12 USB Adapter

Jantje

@liudr
For me it is very fatiguing to discuss with you. The main reason is that I do my research and challenge my ideas/words before I post an entry. I have the feeling you are not like this (see also the connecting the ground discussion)

Therefore I decided to only make 1 more remark and then stop being active on this discussion.

If you think open source is only this quality then you have missed the whole GNU/linux project that is billions in numbers (on android phones and PCs) and very very complete and commercial quality.

I'm the author of the arduino eclipse plugin. Which is open source. Do you really think I think my plugin code (running on Linux, windows and mac) is of bad quality?  Purely because I opened up the source code?

It looks to me that you have a problem making the distinction between a casus and a rule!
Therefore I strongly advise you to think more and to write less.

Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

liuzengqiang

Just don't reply then. I read my posts before I submit them as a rule. Glad it's not just me that does this. I don't quarrel with you.
Serial LCD keypad panel,phi_prompt user interface library,SDI-12 USB Adapter

kowalski

@liudr @Jantje

I am sorry to read the latest development on this topic. This is not heading in a nice direction. Could we be a bit more constructive?

I would like to suggest the following; How about writing an "Arduino Users and Contributors Manifest" where we put together some ground rules and expectations on maintenance, refactoring and evolution of the Arduino core software. This seems to be the core issue.

What do we expect of the Arduino software and how can we achieve this? As has been pointed out a lot is community contributions but the core is a set of libraries that should also be improved. I think the Arduino Team understands this and there is a need for a community approach to the maintenance of the Arduino Library set.

The original questions raised in this topic have merit and points to some serious issues in this process. We can all do better.

I might not be the right person to suggest this as I am not directly contributing to the Arduino software. Instead I am trying to show an alternative OOP approach to programming small scale embedded i.e. my project Che Cosa Arduino or simply Cosa. Hopefully some of my ideas can be reused in this community.

Cheers!

liuzengqiang

It would say "Please hire a couple of graduate students and pay them meager salary or free if their advisor is OK, then ask them to survey the 5,000 (or you choose) most active members on the forum about where the Arduino project should be headed." They really don't have to do it themselves. They are busy. I get it. Me too. There are a number of studies conducted by students on arduino that are not technical in nature, but surveys etc. If the core team would just ask, tons will want to do it for free and stick it on their resume "I worked with arduino core team on survey".

Problem solved. Arduino forum members feel like their voices have been heard and the core team gets vitals of their project. Publish it, and if most think about the project unlike me, I'll leave it for good.

There is one constructive suggestion I'd make: think how many people are making custom boards with 328 PDIP and how many with the larger more capable chips? It is a technical divide between the easy boards with a PDIP and easy boards that need 2560 SMD or the ARM chip on DUE. Don't let us climb it. Most of use are NOT capable! Arduino core team, you do it. Release a plugin version with vital parts on it, in a form factor that can just plug in a socket or slot. This way we worry about our project, add a slot to accept their core module and they worry about providing us the system-on-a-chip solution (low cost). Many and many more things will be made with Arduino at heart. Here is one interesting attempt:

Arduino and vital parts as a PLCC chip:
http://forum.arduino.cc/index.php?topic=246497.msg1771712

This one for raspberry pi:
http://www.newark.com/raspberry-pi-accessories?ICID=HP-RR-Rasp-Pi
Serial LCD keypad panel,phi_prompt user interface library,SDI-12 USB Adapter

Robin2

I can understand @liudr's frustration but I do think you are expecting too much.

My perception of the Arduino system is that it is an educational and a hobby thing and was never intended to be a rock-solid commercial product.

It makes no sense to compare the Arduino project with Linux.

What I find very frustrating is my sense that there are some Arduino folk (don't know if there are 3, 30, 300 or 3000) in an ivory tower somewhere who are deciding about new Arduino boards and completely ignoring the large community (us) without whose support the Arduino system would only be a fraction of its current success.

There is no consultation before anything is done and no obvious means to give feedback after.

They made significant changes to the Forum software (about a year ago?) and in the process made it a much poorer browsing experience - I have heard this was for the purpose of linking to the Arduino store.

They brought out the Yun which seems to me to have got them completely out of their depth and before that was sorted out they announced the Tre - which probably means neither will work properly. From what I know now, if I wanted something like this I would buy a BeagleBone and an Uno rather than a Yun.

I have been appealing for ages for someone from the "Arduino Team" to participate regularly (daily?) in the "Website and Forum section of the Forum with very welcome support from @Jantje and others. But apart from a brief appearance by @MadBob recently nothing has happened.

So, yes, I share a lot of @liudr's frustrations - just not all of your expectations.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

avenue33

I discovered embedded computing with Arduino but, as my projects are now larger and more complex, I've changed for the LaunchPad boards from Texas Instruments.

Those boards are cheaper, more powerful with a built-in hardware debugger, and most important, supported by the chipmaker and the very engineers who designed the MCUs.

There's the same Processing-based IDE called Energia which is compatible with the Wiring / Arduino framework. So I can reuse all my projects with no or minimal adaptation. Moreover, Energia manages the MSP430 and the Cortex M4 ARM TM4C platforms in a very clean way.

For a more professional IDE, there's the Code Composer Studio based on Eclipse. It imports the Energia sketches and debug them.


  • The LaunchPad Tiva C TM4C123 is a real bargain at US$13 with 256 KB flash, 32 KB RAM, 80 MHz ARM M4 with FPU, 40 pins and an integrated programmer/debugger.

  • The Connected LaunchPad Tiva C Series TM4C129 goes even further: for US$20, 1 MB of flash, 256 KB of RAM, 120 MHz ARM M4 with FPU, 98 pins, built-in Ethernet and an integrated programmer/debugger.


There's the same vibrant hobbyists community (43oh and Stellarisiti forums) but also professional support at the E2E engineer-to-engineer forum hosted by Texas Instruments.

Of course, I'm using embedXcode :)

westfw

Quote
Anyone that puts their life savings to start a business will be discouraged to do anything serious with this platform

Do remember that they're NOT the "target audience."
I hate to tell you this, but library code provided by fully commercial entities that is aimed directly are real business customers is still full of bugs and issues.  If you're really going to put your life's savings into a business, you'd better be ready to do a lot of your own HW and SW and library work (and tool work, too!), rather than counting on some vendor to provide perfectly working things...

IMO, having done commercial and community SW development for most of my career, Arduino is doing "not too bad."  It could be better.  AFAICT, the "wiring" project was going to take back the "too slow" development of Arduino and more aggressively pursue improvements and new platforms.  But their last commit was about a year ago, and they had a whopping six commits in 2013.  ChipKit (the PIC32 arduino-like board) is doing considerably better, but I wouldn't say its doing "great."   (Energia is pretty much flying along, though!)  Microchip users are ambivalent about the switch to Harmony from the previous SW libraries, and have historically been "not happy" with licensing issues.  Atmel users are not thrilled with ASF.  NXP and ST users don't even like the documentation, much less the vendor-provided libraries.  TI has the whole Tiva vs Solaris thing smoldering in the background.

Doing stuff with microcontrollers is pretty tough.  Doing it profitably is tougher.  Doing it for decade time frames is...

Quote
look at what raspberry pi is doing. They are sticking to the education route.

Really?  So there's a whole set of courses, online and otherwise, on doing "stuff" with RPi?   My impression is that most people were doing sort of generic unix system kiosk-like applications (anything where you need a HD video display...)

Quote
1) Arduino is no longer as "open" as many people believe it is. Basically it is no longer possible to legally copycat any arduino board since -and including- the UNO.

How do you figure that?  Not that Uno really has any significant improvements since the last "open source HW crisis" in the diecimilla timeframe (spurring "Freeduino.")  There are more clones and derivatives than ever.



Go Up