ESP8266 or MKR1000?

If you are a regular Hackaday reader, you’ve probably seen plenty of ESP8266 projects. After all, the inexpensive device is a workhorse for putting a project on WiFi, and it works well. There is a processor onboard, but, most often, the onboard CPU runs a stock firmware that exposes an AT command set or Lua or even BASIC. That means most projects have a separate CPU and that CPU is often–surprise–an Arduino.

It isn’t a big leap of logic to imagine an Arduino with an integrated WiFi subsystem. That’s the idea behind the MKR1000. But the real question you have to ask is: is it better to use an integrated component or just put an Arduino and ESP8266 together?

[Andreas Spiess] not only asked the question, but he answered it in a YouTube video (see below). He examines several factors on the MKR1000, the Arduino Due and Uno, and several other common boards. The examination covers performance, features, and power consumption.

We’ve covered a slew of ESP8266 projects. We’ve also seen at least two MKR1000 projects, one for an automotive project and the other controls a shower.

39 thoughts on “ESP8266 or MKR1000?

  1. Bitching about free things by way of product testing; sigh.

    What is ignored (and demonstrated why) by this Swede is that Arduino products are often catered to the simplified user and not the high end user. He compiled and tested under the pretext of having a high end user demanding high end features as if entitled to it. Arduino delivers products that enable you, and if you are more capable or demanding then there are alternatives, but to then turn around and spit on Arduino only discredits you. If you want to overclock video output to render blah blah blah, go buy a RaspPi — but some of us who want a single sensor to sweep a servo and light an LED in a shoe box, Arduino is specifically there for us first.

    *throws down my derby hat in disgust*

    1. “Bitching about free things by way of product testing; sigh.”

      Yep. Because when someone gives you something to review, you are supposed to ignore any shortcomings, and focus only on the strengths.
      What use exactly would that be outside PR purposes?
      What use to me? Or anybody here for that matter.

      “What is ignored (and demonstrated why) by this Swede is that Arduino products are often catered to the simplified user and not the high end user.”

      What is missed by you, (but not) by this Swiss, is that this is a review of a new board. Along with his findings at the time. So criticism and comparisons are not negative, they are USEFUL!
      It is not a PR fluff video.
      So comparing it to common boards.. Perfectly legitimate.

      Are you really so disappointed that he didn’t get all excited about the quality of the silkscreen, or the shade of blue of the solder mask, and hardly commented on the box?

      Troll harder kid.

      1. Arduino, when they gave us the free MKR1000, explicitly said this was NOT a final board and WOULD have problems. It was NOT a review but a testing and Arduino was clear about this.

        As for your insult, using the term “troll” is contradictory to insulting some one being a youth. A youth utilizes an obscure unintelligible term thus I must assume you are the simple minded youth easily perverted by trends, youth.

        1. The fact that it’s not the final board only gives more incentive to give criticism, because testing is exactly what they’re using to iron out mistakes. If anything, testing is more rigorous than a review, because the Arduino Foundation needs feedback on what works and what doesn’t, and thus, the analysis is more negative-seeming because it focuses on places where they could improve.

          Also, I’ve seen plenty of people 40+ who use the word “troll”, and they were definitely not small-minded. How is troll contradictory or obscure and unintellegible? You’re really showing your age, and not in a good way.

      1. That’s a pretty cool solution! Myself, I reconfigured my breadboards as [breadboard]-[power rail]-[breadboard], then soldered one set of headers on the *outside* of my Pro Minis, to line up with new spacing. It works *very* well.

  2. This is crazy. There is no reason to use an ESP8266 AND an arduino. The cpu on the ESP8266 is a 32 bit risc running at 80 Mhz, the arduino is an 8 bit AVR running at something less, maybe 32 Mhz. Not only that, recent releases of the Arduino GUI support the ESP8266 directly (not that I use that). So if you like having the Arduino GUI to code with, you have that as well. And on top of that, you can just turn off the Wifi and use the ESP8266 as a nice standalone controller for all kinds of projects that don’t need wifi, saving money and gaining a more capable processor. The firmware that the ESP8266 ships with is entirely irrelevant, I have always flashed right over the top of it without blinking and eye or saying goodbye.

    So thinking of the ESP8266 as a “wireless add on dingus for the arduino” is just totally wrong.

    1. The AVR has a multichannel ADC and hardware PWM timers. Yes there’s a purpose to having an esp8266 and an AVR. No it probably won’t be used properly by most people.

      But this doesn’t use an AVR, it uses a Cortex-M0 (which in this case has a real DAC and 12-bit ADC as well as a *crypto module*) https://www.arduino.cc/en/Main/ArduinoMKR1000. You can do DSP on this without triggering the watchdog or failing to handle a packet on the esp8266.

    2. this. i’ve made many projects using the esp8266 as the main microcontroller. however the current arduino-based ide esp8266 implementation is still under development, and many bugs are difficult to catch unless you step up through an incredibly difficult learning curve to use gdb and write for the esp8266 at a lower level. it’s a finicky little beast, so I guess that’s why some people pair the $2 chip with another $2 chip that can reset the esp if it stops responding as it sometimes does.

      1. OK, well I’ll stop mentioning (or recommending) the arduino IDE for the ESP8266. I don’t use it. I just use the SDK and program in C and am quite pleased with that. I have already seen some buggy drivers that were quick and sloppy ports of code that worked on the AVR.

        1. I use the Arduino IDE for the ESP8266 without an issue, it’s not nearly as bad as the guy makes it sound like. Yes, there are bugs, but it is slowly getting better. To be honest, I haven’t hit any bugs with the implementation itself nor have I needed gdb even once — all the bugs I’ve had have been in my own code and they were easy enough to fix just by taking a better look at what I was doing.

          1. Agreed – I’ve been tinkering around with programming ESP8266’s with the Arduino IDE and it’s been quite painless and very reliable. The only time weird things happen is when you forget that you cannot ‘hog’ the CPU (i.e. your ‘loop()’ function cannot block for too long) and the watchdog resets.

            The beauty of the thing is there is so little needed to get up and running. Just get a NodeMCU and program it with the Arduino IDE and start having some fun.

            If you play their way, the ability to run Arduino code on an ARM micro with more memory and MIPs than your stock Atmega328P is very nice.

            Very cool – I don’t know why you would want to treat it as some dumb Wi-Fi modem when you can run everything on the chip.

          2. Yeah, a lot of people who aren’t used to the ESP forget to slap calls to yield() or wdtFeed() in their while-loops and so the watchdog kicks in. You learn to keep that tidbit in mind quickly, though, so it’s hardly a major issue.

            Sure, it only has one ADC and it lacks any DACs or hardware-PWM, but you can always use an external I2C-module for that or an Arduino that you control over serial or whatever — I would never use an Arduino as the main MCU, though, the ESP is so much more capable; I’d much rather have the main sketch running on the ESP and only offload the H/W-PWM or such to the Arduino. Besides, software-PWM works reasonably well on the ESP anyways for driving servos and stuff.

            ESP32 will be even better, with way more GPIOs, more buses, more CPU and more RAM, and even bluetooth built-in: I’m pretty excited about it and I’ll be jumping on-board as soon as possible!

  3. The ESP8266 combined with an Orange Pi One and or with those incredibly cheap USB WiFi or Sound modules seems to trump pretty much any other single board or combination option under $30

    For example $1 now gets you 2 analogue outputs and one analogue input in a USB “sound card”

    The benefit of using an ESP rather than a cheap USB WiFi dongle (you can have both) is you can have it run code that puts the OPi in a low power mode when appropriate and then wakes it up on a network or GPIO signal. Say for a smart room controller that does voice recognition to stream commands to a smart house system via MQTT, if the room is not occupied, silent or there is no PIR movement signal you don’t need the bigger board at full power. You can cascade the wake up event logic further and even put the ESP asleep if the PIR can turn it on.

  4. The AT command set itself is a real bottleneck if you want to do something serious with Wifi.
    And It give you access to a really small part of what is possible with an ESP8266.
    What about OTA for example ?

  5. If the MKR1000 sells for less than £4 I might be tempted. If they flog them at the usually Arduino price point I suspect I will stick with the esp8266 and similar boards. The lipo charger is a nice plus.

    1. £24.18 +VAT I’m afraid. So about £30 all in.
      So ideal for small throwaway projects and wifi enabled blinkies. Eh?

      So yes. usual Arduino silly price followed by a flood of clones for £sensible, and butt hurt fanboys trying desperately to pretend every Chinese made one will explode approximately 3 minutes from first power up.

    1. True, you should compare features per dollar as you can run 10 ESP modules for the cost of the MRK1000.

      Because the ESP is networked you can treat each one like a part of a larger device. In a way it is like applying the Unix programming model to hardware. Lots of smaller interconnected parts that each do one job very well and the power of the system is in how you can have data flow through a pipeline of them.

        1. Really, what does Bayes’ theorem say about that? Then there is the fact that the more nodes you have the more you can route around a problem. i.e. For several reasons it may not be as clear cut as you suggest.

  6. OK so I also got a FREE MKR1000.

    Shortly to go under the hammer (literally) ! Since day one it has had issues. Mainly in reliability.
    I have some “genuine” and “clone” unos that all perform without a single hitch. so I am not saying all Arduinos are bad.

    I also have a selection of ESP’s which again perform flawlessly.

    My reason to put my freebie under the hammer. Its simply not reliable. I wanted it for a specific project but I never got the time to follow through. When I did get the time I first wanted to check how well it would perform to the cloud in some form. An easy task for the MKR as they push it for win 10 and azure (azure needs a monthly subscription which I am loath to pay) I already have some stuff on thingspeak so I simply added an AM2301 and told it to do its thing. It simply stops at random intervals and requires a full power down reset to kick its ass into gear again. The same set-up on an ESP runs without breakdown or stall. Even trying to reset it by opening a serial connection fails.

    The range is about the same as an ESP so no gains there.
    The price point is quite large compared to the ESP
    OK I give it good marks for its I/O but then again I don’t need a massive amount of lines for what I am doing.
    I also give it great marks for having the LIPO stuff on-board.
    Programming some of the ESP’s can be a leaning curve for some so I would normally give the Arduino the edge here BUT it is set up a little like a Leonardo and so the wandering round of com ports can be a PITA and if you check the Arduino forums there seems to be some issues getting it to play nice with drivers etc. Once I overcame the initial problems there it has been pretty stable.

    Reliability ESP’s 10/10 ( reliable )
    Reliability MKR’s 5/10 ( unreliable )
    VFM ESP’s 10/10 ( in comparison )
    VFM MKR’s 7/10 ( in comparison )
    Onboard functions eg lipo usb i/o ESP’s 7/10 ( based on node lua )
    Onboard functions eg lipo usb i/o MKR’s 10/10
    Build quality ESP’s 7/10 (quite variable depending on source)
    Build quality MKR 9/10 (this was a pre release version)
    Programability ESP’s 8/10 (using Arduino IDE)
    Programability MKR’s 9/10 (using Arduino IDE)

    ESP total 42
    MKR total 40

    A close call but IMHO the ESPs take it every time.
    And this is my view. Yours may be different but having spent time with both I know which I prefer for the similar tasks.

    This is not an Arduino “all vs esp” otherwise the score would be totally different as I can do much more with a MEGA than either of these allow..

    Am I allowed to bitch about a free item ? YES.!
    Should I do a positive review for a free item ? NO !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s