Extra-Output Arduino Idea - Page 1
Forum section: electronics / projects

author: christheman200
author_rank: Newbie
timestamp: April 03, 2015, 04:40:59 pm
content: Hi guys,I'm a 16 year old high school student with some big ambitions! After designing and manufacturing my first custom Arduino back in March (a rocket flight controller,) I've started to think about bringing one of my ideas to a mass-market. I've nicknamed the project the "Extruino." The idea is to use a large number of shift registers in conjunction with an Atmel 328p to create an arduino with a large number of outputs. I've also had suggestions to use multiple micro controllers in the design to act as a master-slave configuration, increasing the number of inputs/outputs as well, while adding more functionality. Yes, you could just hook up some shift registers to any Arduino out there and have similar functionality, but it would be built in, saving a lot of hassle.So do you guys think this is an interesting concept? Could it get off the ground? Would it just be a big flop? Give me your input!Thanks!Chris

author: LA7SJA
author_rank: Regular Contributor
timestamp: April 03, 2015, 04:51:14 pm
content: I thinkthisis a better solution than the shift registers.Johan-Fredrik

author: Monkeh
author_rank: Super Contributor
timestamp: April 03, 2015, 04:51:38 pm
content: And just how much I/O are you planning on? Because, y'know, they do AVRs in 100 pin packages, and if you move up to a better micro you can get over 200 I/O pins..

author: Seekonk
author_rank: Super Contributor
timestamp: April 03, 2015, 04:53:31 pm
content: I hate making connections and you do run out of pins quickly with an arduino. I had an animation project and I used a Majic like board (8 opto22 plug in relays from a competitor) this communicated on the 9600 baud serial port. Nice clean and easy to hook up. Picked up the board and eight modules for less than $5 That t is exactly what you can use the $3 MINI AT328 boards are for, another dozen remote channels for cheap Just give each an address.

author: Kalvin
author_rank: Super Contributor
timestamp: April 03, 2015, 05:01:18 pm
content: How fast rate you would like to be able to toggle those output pins? if the toggle rate is low, then the shift registers are just fine.On the other hand, using one or more inexpensive Arduinos or any other suitable microcontrollers as slave devices connected to SPI or I2C bus, you could create flexible peripheral circuits which could also provide more analog and digital inputs along with the digital outputs.

author: picandmix
author_rank: Frequent Contributor
timestamp: April 03, 2015, 05:04:17 pm
content: Thought thats what the Arduino Mega 2560 was made for .. more i/os , more memory , more power.

author: Yansi
author_rank: Super Contributor
timestamp: April 03, 2015, 05:34:17 pm
content: Quote from: Kalvin on April 03, 2015, 05:01:18 pmYou talk like if it would ever matter, how fast that mbed shit gets, still will be slow.christheman200:Hi Christheman, don't throw your career away with this stupid arduino stuff. There are a lot of things, you can learn, if you forget that arduino thingy. Get yourself bigger AVR (they are made in much bigger packages, than 28pins on M328P), download ATMEL Studio, learn C and program whatever you want on whatever AVR will fit your needs. There is NO need for arduino, or mbed. Opensource hardware can be done without it, with better results and probably you get the most skill out of it. As you will grow up, you might get what I am trying to say, you will recognize the benefits (I hope).Have a nice Easter!

author: picandmix
author_rank: Frequent Contributor
timestamp: April 03, 2015, 10:07:42 pm
content: Quote from: Yansi on April 03, 2015, 05:34:17 pmI would not argue against the general path Yansi suggests, but do not make the mistake of learning to walk before you can run.While I do not think your shift register idea is mass marketable, there is no reason why you cannot prove the idea for yourself, there will be a lot to learn hardware and software wise; the Arduino has been the first stepping stone to micros for many folk and should be applauded for what it is.Studio 6 is a massive program but it can still be used with the Arduino if you download the free version of Visual Micro.http://www.visualmicro.com/

author: christheman200
author_rank: Newbie
timestamp: April 03, 2015, 10:15:59 pm
content: I think I will keep going with this project. I like the idea of using port expanders, since they are about as cost effective as shift registers. If any of you could have a dream microcontroller, what features would it have?

author: dannyf
author_rank: Super Contributor
timestamp: April 03, 2015, 10:17:13 pm
content: QuoteRather than a new arduino, you could have made a shield using just the shift registers, potentially with isolation.Yeah, it would work.

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: April 03, 2015, 10:23:51 pm
content: I've kind of done this once. Not sure if my library is still on the playground (AlphaBeta and cascade would be my best guess search terms).If you're trying to sell it I'd make a library for abstracting the interaction so that the user could do simple digitalWrite calls as she is used to.What I did for this is to make some public symbols for your extreme pin range, for fun lets call it Ex12 for the 12th extended pin on your board.Code:template<int _id>class ExtendedPin {public: const int id = _id;};#define Ex12 (ExtendedPin<12>())template<int _ID>void digitalWrite(ExtendedPin<_ID> pin, int state) { //int state to stay compliant, since last time I checkedExtender &ext = ExtendedPins::getExtenderForPin(pin.id);ext.update(pin.id, state);}*Untested off the top of my head trying to recall what I did when I barked up the same tree some years agoIf a board with a high pinout were made with theuser experiencebeing so simple as to just up the numbers in sketch, then I think there's a market for it.*Updated because of what @dannyf pointed out (my abstraction was not complete and as such a poor suggestion)

author: dannyf
author_rank: Super Contributor
timestamp: April 03, 2015, 10:26:17 pm
content: Quotethat would be very difficult to use.I would suggest that you think of a buffer / shadow variable that keep track of the port / pin status.

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: April 03, 2015, 10:32:42 pm
content: Sorry, I did not complete the abstraction. Inside the templated digitalWrite you would call into a state manager for the registers, then update as little as possible for what corresponds to that pin. F.ex selecting one I2C slave and sending it an updated status register. Nothing hard about that. If you want to talk more about providing a familiar digitaWrite interface for this project, feel free to contact me OP* Updated post above with a more concrete abstraction

author: christheman200
author_rank: Newbie
timestamp: April 03, 2015, 11:10:54 pm
content: Thanks! I'll certainly contact you as I go down this road. For now, I'll stay on the hardware side, however.

author: BlueBill
author_rank: Regular Contributor
timestamp: April 04, 2015, 12:45:43 am
content: Quote from: christheman200 on April 03, 2015, 10:15:59 pmAs mentioned the Arduino is a nifty training tool, much like your first bicycle with training wheels.Get an AVR programmer, the Dragon is a good choice and try programming the 328p without the Arduino or boot-loader.As for me I'm a PIC guy. I can pretty much choose from a couple of I/O pins to hundreds with all sorts of peripheral options to choose from.

author: Mechatrommer
author_rank: Super Contributor
timestamp: April 04, 2015, 12:49:26 am
content: Quote from: Yansi on April 03, 2015, 05:34:17 pmthere are... for educational purpose, and quick test a concept or prototype. not everyone is capable or have enough time to solder a bunch of chips, passives and connectors together based on OSHW info in the net, and experience several iteration of failures, shorts, waiting for supplies, try errors and reading the datasheets. and have a dedicated programmer to program a chip. consider arduino board is like an evaluation board, what is "not quite right" is assuming it can be used as a working board in a product, but well, some people dont like to reinvent the wheel soldering a bunch of chips, passives and connectors together, again, when the "evaluation board" is already there sold everywhere for cheap, documentation, code examples and supports everywhere. they dont have a full fledged pcb software, 300 pins limitation free version only, not even enough to layout a basic arduino board. kicad is too hard to comprehend. so decision is sound. then they made a shield and add-on functionality specifics to their product needs, thats what you see blossomed in arduino community... saying there is NO need for them? well... lest wish we can get back to the future or the past and do something better...

author: Yansi
author_rank: Super Contributor
timestamp: April 04, 2015, 01:37:08 am
content: If you would actually spend some time to learn stuff (not slap together stuff with arduino), you wouldn't ever struggle connecting such stupid chip as AVR. All things you mentioned are only pure excuses for your own laziness. You (arduino community) are just against itself with this attitude. Just saying...It is not that long time ago, my friend told me he bought an LCD module with SSD1963 controller. And it didn't work. Soon he found why - thin long 10mil trace as a supply path and lack of decoupling (one or two 100n caps for around 30 pairs of supply pins is NOT a decouplig, that is funny shit). Shame, that at arduino snails speeds, the module works just enough. But when connected to an adult microcontroller at full speed, there is no way it can work. Because some undereducated jerk (see - I do not say arduinist) haven't read the damn manual for whatever reason, finaly making it wrong.The moral outcome of this story is, that you should not underestimate the need for deeper undestanding of thing you do or use, ever. If it is arduino or not.I really don't see why pure C code or even assembly running directly on whatever MCU shouldn't be educational, or why only the damn blue italian board is more educational, when it actually teaches you all things wrong or at least without enough understanding of whats going on. Sure, you can use libraries and pre-built blocks, but let me tell ya, you should better understand that stuff at least a little, before you take it. Otherwise you will make yourself so much trouble...Maybe the current generation is somewhat odd in thinking, searching and interpreting information. I am not so old, as you would think. But I started low and built my way to the upper levels. Started in MSDOS with pascal, simple circuits, ... and now ended up working in world class semiconductor company as a trainee (and then maybe as their future engineer). And I recommend you to do the same: Start with basics, then make your way up. It is for your own good. I am not attacking anyone, only recommendation and opinion.Note: I also do not see, why hobby electronics couldn't be done without arduino, embed and so. But maybe I am too old to accept the new opinions and direction the world is going now. I have electronics as a hobby since I was 7 years old and never needed or have to use any arduinos. (The even didn't exist back then) And I do not have trouble soldering bunch of chips or connecting el stupido AVR according to datasheet.Hope you will take from this something useful.

author: christheman200
author_rank: Newbie
timestamp: April 04, 2015, 02:03:39 am
content: While I respect your opinion, not everyone has the time to do what you describe. The Arduino provideseveryoneaccess to the world of micro controllers, with easy to understand documentation. As well, not everyone wants to spend their time designing the micro controller system. As the world moves toward higher-level interfacing, few people need to understand it in the first place. A pre-made board is suitable for many applications. As such, I'm designing this board to help those people, while furthering the electronic design knowledge that I have. I have nothing against Pics, and will be using them next year in my highschool electrical engineering course, but for now, this is what I am familiar with and feel I can be successful with.I hope you get where I'm coming from now.

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: April 04, 2015, 04:50:21 am
content: Why don't you put a location flag so we know where you are? I have several Aerotech motors and tubes to get rid of and it's getting difficult to arrange auctions and shipping of this kind of stuff.If you're near Montreal I'd offer you the stuff for a nice price.

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: April 04, 2015, 09:54:42 am
content: The whole idea behindWiring, and by extension Arduino, is to enable people who would otherwise never have the inclination to ever touch microcontrollers (or even electronics) to pick on up and get their project done.I'll call it a win. For those who get interested in micros and electronics - it is only natural for them to grow out of the ecosystem at one point or another. The Wiring Framwork is not intended to be the end-all of hard work and knowledge. It's a stepping stone and an enabler.

author: dannyf
author_rank: Super Contributor
timestamp: April 04, 2015, 10:44:18 am
content: QuoteInability + unwillingness to read and comprehend the datasheet.

author: Yansi
author_rank: Super Contributor
timestamp: April 04, 2015, 11:49:13 am
content: Quote from: christheman200 on April 04, 2015, 02:03:39 amAt first, the pre-made board should be done by COMPETENT engineers, not by incompetent individuals (not offending anyone, talking about the principles). And still, you didn't get that right. I call for better understanding of the problematic, not for everyone to make everything from scratch, as somebody said "reinventing the wheel". If the arduino OSHW community wants to make their own board and modules, it must learn how to do it first. The other way it doesn't work and you will run into problems very quickly.In this thread I only offeredchristheman200to choose, between the engineering world and the arduino OSHW community, which sits on its level making no progress, cause of itsunwillingness to learn. (dannyf +1) My offer was due to my thought christheman seems to be spending too much time inventing unneccessary thing, wasting his talent, that I think could be used better way in some real project.The arduino OSHW community works like giving blinds on individuals eyes, as exactly in this case happened: Not even a bit of a clue, that higher and high GPIO count microcontrollers do exist and can do the bussiness much better.

author: alexanderbrevig
author_rank: Frequent Contributor
timestamp: April 04, 2015, 12:07:52 pm
content: ITT: you need to learn!But:Do not learn how to use port expanders, there's already micros with more pins.Do not learn how to meet the expectations of a preexisting user base, they are all misguided.Do not learn to work within a set of restrictions (although they may very well be artificial), you will learn the wrong things.The project that is outlined in this post is a perfectly good way to learn for OP, and a perfectly good way to contribute to a OSHW project. It is innovating in terms of I/O count - presumably there is someone that wants this project. At least one, and that's enough.It's not about doing it perfectly, it's about getting it to work. Then nothing is stopping OP from iterating on the concept, and he may very well be finding himself re-releasing the project in the future using a different µCU and different components. That's just fine.

author: mjkuwp
author_rank: Unknown
timestamp: April 04, 2015, 12:12:29 pm
content: http://shieldlist.org/I fully applaud a person wanting to make their own design of something even if it can be readily purchased. This is a personal choice often done for education.I am a professional engineer (20 years as Mechanical and learning electronics over the last 5) and I use Arduino hardware, but I also make Arduino clone boards in some cases. I also go outside of the Arduino library quite quickly because I don't like some parts of it.For coding AVR based Arduino I highly recommend codebender.cc as compared to the Arduino IDE.on the other hand, I think it may be wise for the long run to move to the ARM based Arduino boards such as the DUE.

author: Yansi
author_rank: Super Contributor
timestamp: April 04, 2015, 12:22:50 pm
content: yea, lets move to ARM, cause we cannot produce even bit of optimized code to be run in the AVR.Thats a way how to teach beginner, sure. :-DBtw, if your unwillingness would allow you to forget arduino and mbed, there exist some more professional toolchains, compared to that arduino gizmo, that even can't do basic debug

author: Mechatrommer
author_rank: Super Contributor
timestamp: April 04, 2015, 06:47:55 pm
content: Quote from: Yansi on April 04, 2015, 12:22:50 pmi thought i heard someone said.... the willingness to learn and forget the laziness. assembly, pure C and optimized code are certainly possible with arduino board/mcu.Quote from: Yansi on April 04, 2015, 12:22:50 pminstead of a simple generic statement, how about suggesting what that is exactly? cheap, including tutorials, code examples, step by step code->debug->compile->program. that way its more educational and avoiding talent be wasted digging everything from the scratch.

author: Siwastaja
author_rank: Super Contributor
timestamp: April 05, 2015, 11:12:40 am
content: Yansi is about right... Like it or not. This has nothing to do with bashing anything. The Arduino stuffreallyis like those training wheels, or putting labels on piano keys. By the way, Arduino does not suckthatmuch... Before Arduino, there was Basic Stamp and things like that, and they never gained popularity. And gaining popularity is the most important thing for such a project.Arduino may be necessary for some people, and some people really benefit from such a feat that softens the initial learning curve, to prevent initial panic -- microcontrollers ARE difficult. The very idea of Arduino is to steer you away from understanding the thing at all -- to abstract the wrong things. This is not necessarily bad, because sometimes you need exactly this to be able to take your first steps. You need the training wheels so that you don't fall when you still don't believe in that bicycle thing at all. But it will prevent you from understanding how to maintain stability, which you will really learn at a later point, after removing the wheels (or adjusting them so much that you really don't use them anymore - like people stop using the fundamentally unusable Arduino libraries while still using the Arduino PCB.)You asked about a dream microcontroller... But no such thing exists. The great thing about microcontrollers is that you have so many options. For about 30 years now, microcontrollers have been a basic circuit building block, like a resistor! And there are literally tens of thousands to choose from. So it's not a trivial task.After I started using MCU's, using Atmel's official demo board (STK200 IIRC) for a first few projects in 1999, I have never looked back at demo boards. I always design my own circuits, and I did that even when I totally sucked at it. It can be constructed with any style, and at simplest, it's much simpler than an Arduino - something like a DIP packaged AVR MCU glued and soldered to some things you need, programmed using a simple connector and a $1 Ebay programmer. This teaches you to make custom solutions, because using a demo board will only work for those specific demo projects. Also, it will teach you that making custom solutions is not that slow or complicated.Need more IOs? Just add those shift registers or I2C IO expanders, or whatever is most handy at that point! This is everyday in electronic design, and when you understand this, you have unlimited possibilities. You pick the right tool for every job (or at least the best solution you can think of with your current knowledge), which makes it simple. No need to overdesign a fancy demo board that tries to work for all cases - no demo board has ever succeeded in this. When your design is as simple as just a bare microcontroller, you can easily try all kind of stuff and it's not a big deal like designing and publishing, let alone commercializing an "Arduino shield".And the reason the Arduino stuff suck is that people who are left behind designing those things are quite clueless, because they still believe that everybody should use training wheels in their bicycles and never stop doing that.

author: dannyf
author_rank: Super Contributor
timestamp: April 05, 2015, 11:32:38 am
content: QuoteMaybe a little bit too elitist. Just like training wheels, arduino has its place, and plays a vital role for someone. Its ease of use and availability make it idea for someone starting out on mcu.Plus, the whole arduino environment can easily accommodate a seasoned programmer in C/C++ if s/he wishes.The fact that it doesn't work for some people doesn't mean it cannot work for others.

author: Siwastaja
author_rank: Super Contributor
timestamp: April 05, 2015, 12:38:22 pm
content: Quote from: dannyf on April 05, 2015, 11:32:38 amIf you specifically agree with exactly what I said and repeat my exact points, let's be "elitists" together then.No matter how important "training wheels" can be for some, it is still important torecognizethat it is the training wheel thing. This is hugely important, because it's not always obvious. Sometimes people get really lost thinking that Arduino and the related gimmicks are the core of electronics.And it takes either huge dedication or cluelessness to create a large business model around training wheels. The focus is easily lost there, so it's mostly done by the clueless. Base Arduino project is a prime example of miserably failing many important technical points, but still getting enough popularity to benefit people by exposing general public to electronics and microcontrollers. Those people may suck at electronics (and even teaching), but not marketing, and I admit marketing is hugely important.So I'm generally quite happy that Arduino exists. It has done more good than bad. A lot more.

author: Rick Law
author_rank: Super Contributor
timestamp: April 06, 2015, 04:56:47 am
content: Quote from: Yansi on April 04, 2015, 11:49:13 amCompetency is always just a matter of degree. However competent, there is always someone more competent.In the business world, a pre-made board should be the least cost that meets the requirement. That may well translate to the least competent one who know just enough to do the job right.This actually goes well with growing talent. Assign to a person the most important task that the person has a good chance in completing when stretched; rather than assigning the task to an over-qualified person who is sure to succeed but sure to be bored by such assignments.In the hobbyist world, who cares about what is "right" or "best". It is whatever turns the hobbyist on. Hobbyist by definition do it just for fun. Whichever approach is most fun for the person is the right way for him/her.

author: mikerj
author_rank: Super Contributor
timestamp: April 06, 2015, 10:10:50 am
content: Quote from: Yansi on April 04, 2015, 12:22:50 pmNo matter how awesome your optimisation skills are, they aren't capable of adding more pins to an AVR.Shift registers and other I/O exanders have their place, but if you have a typical Arduino project that requires more pins (i.e. one off, not hugely cost sensitive), then why not just start with something more suitable such as the Arduino Mega 2560 or one of the numerous ARM based equivalents?

author: dannyf
author_rank: Super Contributor
timestamp: April 06, 2015, 10:32:05 am
content: QuoteIf so, maybe you can do a better job than the arduino folks. What about YOU create a better arduino that will cure arduino ills?I am sure you will take that on and will excel easily in the end, given how clueless those arduino people are, :0

author: Siwastaja
author_rank: Super Contributor
timestamp: April 06, 2015, 12:07:55 pm
content: Quote from: dannyf on April 06, 2015, 10:32:05 amWhy would I want to create a proper Arduino equivalent, when I just carefully explained why I think demo boards, no matter how good they are, are not My Thing?I might be able to fix some of the catastrophic design failures in Arduino, but I don't care, and why should I? If a friend of yours says that a movie sucks and they didn't like it, do you go like "create a better one then!!"? Sure, they could be able to point out some scenes that particularly suck, but at the end of the day, movie making wouldn't still be their thing, and different people are good at different things.And as I said before, it takes either cluelessness or huge dedication. It's not easy to create a good demo board. I don't have the dedication, because I don't care about demo boards. They are tools with limited usability. I don't have skills to create one, because I lack a vision of a good demo board. I don't believe in demo boards in any other sense than as training wheels or special-purpose kludge tools.It's not only about Arduino sucking. Many other demo systems have sucked much much more. Even a perfectly well designed and engineered demo board is still just a demo board. They have their place as learning curve softening tools and in some quick kludges, and in the cases when you only need to replicate the demo with slight modifications.But very quickly, they really start to actually hinder the learning process. At that point, it's time to start thinking outside of the box.Of course, different people have different taste, but for me, getting stuck inside a small box with huge limitations and side-stepping stupid issues stops being fun after a while; and then you can see there's a limitless view of bright sky and green grass outside the box, and you kinda want to come out! But we might need the safety of the closed, small womb in the beginning of our journeys... And that's ok.But I think my point is now well enough stated, so I'm not going to feed the troll any more; it's off-topic anyway, as IO expanding is an interesting topic (and, surprise surprise, has nothing to do with Arduino). If you don't want to think about it, it's your loss. I don't care -- I only care about people with open minds and willingness to experiment and learn, and that's why I love electronics. Because electronics really is a wide and interesting world with endless views on every direction.

author: Kalvin
author_rank: Super Contributor
timestamp: April 06, 2015, 01:54:49 pm
content: One should always remember that even competent engineers make mistakes.Let's think about Intel's 8088/86 architecture and its "clever" 64KB segmentation was supposed to "encourage modular program design". And the horror it created with near/far/huge pointers.Now, let's think IBM PC and the brilliant decision of placing the VGA memory in the middle of the 1MB memory space. Maybe it was done so, because "640KB will be enough for everyone". This decision plagued software design for many years to come.These two innocent, subtle engineering solutions made by competent engineers kept the PC industry in dark ages for many years.There are many more similar examples of engineering solutions which turned out to be bad, but were too late to be fixed and undone as the beast had escaped from the laboratory.Arduino is not perfect, it has its limitations, its development environment is brutally simple, its software base is hacked together, but despite of its shortcomings it has survived. Mostly because it is free, and the Arduino modules are cheap enough for the hobbyists and easily available (for example, no significant economical losses if you burn your board), and one can find huge amount of information and projects from the internet.

author: Yansi
author_rank: Super Contributor
timestamp: April 06, 2015, 03:48:56 pm
content: Arduino is as free as anything else. You are also free to buy any other similar MCUs and their debug tools. The only difference is, that the basic principle of arduino is to make people dumb.And again, exactly as I've sad. Blinds on ur eyes. Cause you seem to think that only arduino is the one available for hobbyists. But ur wrong, very wrong... And if you think that arduino is the cheapest for hobbyist, then ur wrong again.

author: Kalvin
author_rank: Super Contributor
timestamp: April 06, 2015, 04:25:22 pm
content: Quote from: Yansi on April 06, 2015, 03:48:56 pmThat is true that AVR and Arduino are not only free MCU and development environment available for the hobbyists. I guess the difference between Arduino and the others is that Arduino is very popular and thus it is very easy to find help if you need it. And Arduino has become popular because it might have done something right compared to other similar development system. For a person who wants to enter embedded world, a simple introductory system is better than a complex all-included top-notch system with hundreds of pages of manual to be read in order to get started. Arduino makes it easy to try something and get something done fast and easily - it encourages to learn more.What comes to programming in C, I would say that C/C++ are the worst languages of all. Why? Because they are so popular and it is so easy to write totally crappy code with lots of opportunities to shoot yourself into foot or back. For a software engineering language Ada would be the best choice - or better yet, its SPARK subset which provides tools for mathematical validation of the software. Unfortunately C/C++ are too popular and Ada is too little known. Yes, I do program in C (or C++) as the compilers are available for free for almost any MCU from the smallest to the largest. I have seen too much crappy code which shouldn't passed the compilation and proper type checking in the first place - and I have written my share of crappy code too, so I know what I am talking about.

author: Stupid Beard
author_rank: Regular Contributor
timestamp: April 06, 2015, 04:58:37 pm
content: Quote from: Kalvin on April 06, 2015, 04:25:22 pmThe language doesn't matter. Inexperienced people will write utterly shitty code regardless of the language. Good code requires a solidgeneralunderstanding of algorithms, how programming languages work, etc. That is completely independent of the programming language and it takes time and practice to build an instinct for.

author: Yansi
author_rank: Super Contributor
timestamp: April 06, 2015, 05:06:28 pm
content: Quote from: Kalvin on April 06, 2015, 04:25:22 pmNo, it might have not. The only thing arduino is good for is making money out of lazy people.

author: Yansi
author_rank: Super Contributor
timestamp: April 06, 2015, 05:10:26 pm
content: Quote from: Rick Law on April 06, 2015, 04:56:47 amSo lets change my statement a bit for you to better understand it: COMPETENT ENOUGH.What can I say you... If you (arduinists) like to be dumb, leave em dumb. But one thing I can't understand: How these "arduino educated" people will become our engineers in the future. I smell dark times are already coming...

author: Alex Eisenhut
author_rank: Super Contributor
timestamp: April 06, 2015, 05:16:37 pm
content: Quote from: Yansi on April 06, 2015, 05:06:28 pmArduino:DIY:Hey, I'll eat both if you don't stop me, but...

author: paulie
author_rank: Frequent Contributor
timestamp: April 06, 2015, 05:57:13 pm
content: Quote from: Yansi on April 06, 2015, 05:06:28 pmIMO there are lazy people and there are foolish people. Lazy people like to do things the easy way. I am always amazed at how many like to do things the hard way.

author: xrunner
author_rank: Super Contributor
timestamp: April 06, 2015, 06:06:42 pm
content: Quote from: paulie on April 06, 2015, 05:57:13 pmOr - why reinvent the wheel?

author: paulie
author_rank: Frequent Contributor
timestamp: April 06, 2015, 06:25:21 pm
content: Yes, like Alex Eisenhut says: "If you can buy it for 3$ on eBay, why design it?" Specially if it costs even less than $1.Sometimes there is a reason to re-invent the wheel, namely educational purposes. However often what is learned is it's better to not re-invent the wheel.

author: Kalvin
author_rank: Super Contributor
timestamp: April 06, 2015, 07:18:05 pm
content: Quote from: Stupid Beard on April 06, 2015, 04:58:37 pmI do agree, but i have to disagree. Quite a few errors are left in the code lurking despite of good design and competent designers. Typical hard to find errors are related to assigning a variable to another variable of different kind, and pointer arithmetics, buffer overflows, array bounds violation, variable range violation etc. For example if we have two int variables, one for used for array indexing and the other for item counter, it is quite easy to mix them both, cause array bounds overflow, and the compiler won't notice anything. Not to mention how easy it is to assign int to enum and vice versa, create enum without specific type, mix ints with unsigned ints etc. A good language would provide protection for these kind of typical human errors by enforcing strong type checking.

author: Yansi
author_rank: Super Contributor
timestamp: April 06, 2015, 11:18:05 pm
content: No, the simplicity of C enables you to do powerful things with it, if you understand the language well.We should probably move arduinists to Java.

author: dannyf
author_rank: Super Contributor
timestamp: April 06, 2015, 11:42:52 pm
content: QuoteI think my point is, whatever your "thing" is, create it and don't be afraid to beat Arduino at its own game. If Arduino is so cluelessly designed by the clueless and for the clueless, I am sure your "thing", whatever it is, will storm the market and totally revolutionize the industry.What are you waiting for?QuoteFor a guy so confidently denounced Arduino, you don't seem to be confident enough to vote for your "thing",QuoteFortunately, I am exactly the opposite.

author: Yansi
author_rank: Super Contributor
timestamp: April 07, 2015, 09:25:55 am
content: BTW, see?(where's puking smiley?)That's why I scream for better education for OSHW arduino extremists.

author: zapta
author_rank: Super Contributor
timestamp: April 07, 2015, 09:29:07 pm
content: I don't understand the Arduino hate.Here is a smart engineer that knows how to choose the right tool for the job hacking a display using an Arduino:

author: Seekonk
author_rank: Super Contributor
timestamp: April 07, 2015, 09:53:25 pm
content: I love these little $3 things. I feel a little bad when when I only load them with less than a dozen lines of code to do a simple task. I do think it is a little out of place when you load them with elaborate displays and wifi. One runs my entire camp, two MPPT solar arrays, two power point water heaters, fridge, pump, and alternate battery switching. Only have a single LED flashing to give me status. Got hot water and cold beer. Who needs more than that.

author: zapta
author_rank: Super Contributor
timestamp: April 07, 2015, 10:43:59 pm
content: Quote from: Seekonk on April 07, 2015, 09:53:25 pmI have two buried in my car, ATMEG328P based, monitoring and injecting certain linbus signals. I control them with the car's standard buttons. All developed on the Arduino IDE, a single package install multi OS C/C++ toolchain. I don't understand why it's wrong.

author: Rick Law
author_rank: Super Contributor
timestamp: April 07, 2015, 10:57:24 pm
content: Quote from: Yansi on April 07, 2015, 09:25:55 amWell, Yansi, only those who wants to be an electronic engineer need to learn to be a better engineer.With a complete Arduino mini/nano module going for $2 to $3 USD, that makes them them the best hobbyist solution for many problems even if they are not the most elegant.

author: MrAl
author_rank: Super Contributor
timestamp: April 08, 2015, 12:01:11 am
content: Hello,Well actually the shift register idea has been around for a long time, just about as long as charlie plexing.Not bad ideas, but they both have their place. A serial to parallel shift register requires time to load the states of all the parallel outputs, and that means that the target loads have to be able to tolerate circuit types of changes on their inputs that they might not otherwise have to put up with.A good reference example for the shift register is the seven segment display, where we have lots of digits. We cant multiplex everything because the time slots would get too narrow for the allowable peak current in the LEDs. Using shift registers helps to widen those time slots and thus keep the LEDs bright.Also possible is a shift register and latch, that latches each state. That way the loads dont have to put up with unusual changes. The time factor comes into play though, as we have a limited scan time again. For an 8 bit shift register the access time decreases to 1/8 of a normal output. It is also limited to digital so it's not a true i/o port, but sometimes digital is just enough.So there are pros and cons. The idea has to meld well with the application.Also possible is the use of analog switches to expand the ports either for digital i/o or analog i/o -- keeping the ports bidirectional just like the 328 chip.