avatar

Mr Electrical

Member Since: September 18, 2010

Country: United States

Profile

Bio

I am an electrical engineer and work for one of the top US companies that automates breweries, beverage companies, pharmaceutical companies, and nearly all food manufacturers. I am constantly making SOMETHING, be it a Roomba with machine vision, designing custom EMG software and hardware, or developing on my Raspberry Pis and Beaglebones.

Organizations

IEEE

Spoken Languages

English, some Spanish, some German

Programming Languages

C, C++, C#, Perl, Python, Visual Basic, Assembly Code, Wiring, Processing, Java

Universities

Colorado State University

Expertise

Embedded systems and firmware, machine vision, product design, steel fabrication, industrial robotics, industrial automation

Interests

Electronics, piano, stringed instruments, physics, knitting, tarantulas

  • Something that I feel is being forgotten is that all of these are running different flavors of Linux with different overheads. As such, the amount of time the processor is dedicating to each benchmark is going to be vastly different.

    For example, the Edison is running Yocto Linux which is a very minimalist version of Linux. In fact, it is so minimalist that it is very difficult to install any packages or other softwares on it - they assume you will build a new version of Yocto with any packages you need when you need them. It has very few background processes and as a result has a much greater amount of CPU time it can dedicate to running your benchmark code.

    Conversely, if we look at the Raspi, it is running a comparatively heavy version of Linux (Raspian in this case). Instead of a super bare-bones experience like Yocto, Raspian is designed to be almost kid-friendly. There is A LOT happening in the background to give you endless tools, super easy USB interfaces (keyboards, mice, wifi/bluetooth dongles, ect), a GUI with two video outputs, external RAM, and endless other things. The end result is that the Raspi has a much greater CPU overhead and much less CPU time it can dedicate to a given test.

    When you compare the two without taking this into consideration, it looks like the Edison is the best thing since sliced bread. But, I’d bet you money if you built a version of Yocto for the Raspi (and the other two boards) and ran your tests again, you’d see something completely different. I very highly doubt 400MHz dual core chip can run around 3.5-4 times faster than a 1.5MHz quad core chip (especially in both single and multicore tests). Intel does some great work, don’t get me wrong, but so do the folks that design the ARM architectures.

    You also have to look at the fact that PHP is an interpreted language and not a compiled one. Different instruction sets and chip architectures are going to define just how well a bit of scripted code will run depending on its ability to do things like pipelining, prefetching instructions, and the like. I would personally love to see some benchmarks done in compiled languages like C/C++ and see how they compare to the PHP benchmarks.

  • Something that I feel is being forgotten is that all of these are running different flavors of Linux with different overheads. As such, the amount of time the processor is dedicating to each benchmark is going to be vastly different.

    For example, the Edison is running Yocto Linux which is a very minimalist version of Linux. In fact, the reason it is so minimalist that it is very difficult to install any packages or other softwares on it - they assume you will build a new version of Yocto with any packages you need when you need them. It has very few background processes and as a result has a much greater amount of CPU time it can dedicate to running your benchmark code.

    Conversely, if we look at the Raspi, it is running a comparatively heavy version of Linux (Raspian in this case). Instead of a super bare-bones experience like Yocto, Raspian is designed to be almost kid-friendly. There is A LOT happening in the background to give you endless tools, super easy USB interfaces (keyboards, mice, wifi/bluetooth dongles, ect), a GUI with two video outputs, external RAM, and endless other things. The end result is that the Raspi has a much greater CPU overhead and much less CPU time it can dedicate to a given test.

    When you compare the two without taking this into consideration, it looks like the Edison is the best thing since sliced bread. But, I’d bet you money if you built a version of Yocto for the Raspi (and the other two boards) and ran your tests again, you’d see something completely different. I very highly doubt 400MHz dual core chip can run around 3.5-4 times faster than a 1.5MHz quad core chip (especially in both single and multicore tests). Intel does some great work, don’t get me wrong, but so do the folks that design the ARM architectures.

    You also have to look at the fact that PHP is an interpreted language and not a compiled one. Different instruction sets and chip architectures are going to define just how well a bit of scripted code will run depending on its ability to do things like pipelining, prefetching instructions, and the like. I would personally love to see some benchmarks done in compiled languages like C/C++ and see how they compare to the PHP benchmarks.

  • It’s interesting that you guys are selling fully assembled units. The reason folks buy stuff from Sparkfun is that they are looking to make things; common sense would say that a majority of folks would want to assemble something like this as well. The main benefit of buying something like this instead of making everything from scratch (beyond convenience) is that most folks don’t have the correct machinery or workshops to do it themselves.

    I would very much like to see (and would VERY likely buy) an unassembled kit that included good servos for a decent price. The current $400 price point is a bit much - if you cut the costs of assembly and just shipped a box of parts, you could sell it for $200-$250 and likely get a few more folks to buy it. I could very easily order/commission all of these parts for around $150 end cost from local sources (ie, non-bulk/non-ebay pricing) - the $400 price tag just seems a bit much to save a bit of errand running.

    The more folks that purchase it, the more feedback you will get, the better the product becomes, the MORE folks purchase it…..the cycle goes on and on. I’d love to see robotic arms take off like RepRap and 3D printers have. But, the only way to do that is to make things accessible at a software level AND at a price point.

    One more thing that the uArm Team might consider are geared DC motors with small encoders in place of hobby servos. The end cost is going to be about the same, but you are able to tailor your acceleration curves (WOOT PID LOOPS!) much more easily to reduce backlash and your precision and repeatability increases dramatically. Hobby servos are easy, but not great for larger robotic systems.

    Edit - Somehow, I missed the picture with the unit next to the $2 bill. There is SERIOUSLY no reason this should cost $400. There is also no reason it needs to be made out of aluminum for something this small. Acrylic would work just as well. Don’t get me wrong, the aluminum is nice, but a bit overkill structurally speaking. A well programmed acceleration curve would nix vibrations out the window.

  • Quick Statistics and Tolerances Lesson:

    When it comes to adding resistors in series, there is no “accumulated error” percentage wise. If you put a 10K 1% resistor in series with another 10K 1% resistor, you will have an equivalent 20K resistor with a 1% error. In maths maxError = 01*10000 = 100. maxErrorOfEquivalentResistor= 100+100 = 200. equivalentMaxError = 200/20000 = .01 = 1%. <<See! 1%! No error was “accumulated” ;)

    Depending on the distribution of resistances, it is wholly possible that adding more resistors in series can INCREASE their accuracy. How? Let’s say we again add two 10K 1% resistors in series. One “10K” resistor is actually 1% higher than 10K, or 10100 ohms. The second “10K” resistor is actually 1% lower than 10K, or 9900 ohms. 10100+9900 = 20000 = 20K spot on.

    While the aforementioned example was a “perfect” example, the resistances LIKELY have a gaussian distribution (bell curve) centered at the nominal resistance. The way the resistances add together, for each new resistor you add, the thinner that bell curve gets and the smaller the possible error becomes. In the physical world, that tells you that the higher numbers you select will be a whole lot more accurate percentage wise than the lower resistances will be.

  • I will be there in a top hat and all kinds of fun things ;)

  • Being a rebel, Pete waited until 10:01 to submit another caption.

  • The package said “VRRRRRROOOOOOOOM!” but all I got was “vizizizziizizizizizizizizz” :(

  • 15 minutes could have saved you 15% or more on flight insurance.

  • Afraid of flying, Pete made a scale model to test the concept. Let’s just say Pete is still afraid of flying…

  • Pete realized that if he mounted an Arduino to his plane, it would cover up the flame graphics. This makes Pete sad. Pete loves flames.

Christmas Wish List

Mr Electrical 8 items

I love to do a lot of electronics projects and would end up buyi…

Shawn's Radio Box Awesomeness

Mr Electrical 51 items

The fan can be taken out if you have one. There are a series of…

Open Design Competition

Mr Electrical 680 items

Rough list of parts, doesn't include servo motors and wire.

Full Open Design Competition Kit

Mr Electrical 17 items

This kit includes everything that we will be providing in the Op…