New to Microcontrollers, is NodeMCU a good Starting Point?

I have exactly zero experience with Microcontrollers of any type, although I have some experience with programming. I’m mostly thinking of picking NodeMCU because it’s cheap and my eventual goal will probably utilise the Wi-Fi.

Is it a decent place to start, or should I have experience with other Microcontrollers first? Will parts designed for Arduino still work with NodeMCU?

Also, is there a list of components I should have on hand when I’m experimenting? All I can really think of are LEDs.

Thanks!

(Also if this is in the wrong place I apologise but I couldn’t find a newbie area)

Use NodeMCU only if you need the wifi. It's a great part for that - dirt cheap, builtin wifi - but it's a much less full-featured chip. It's also 3.3v, and a lot of the arduino-centric breakout boards you find online assume 5v, and you need to perform some due diligence to make sure they will work with a 3.3v board. Library support on ESP8266 is worse than on AVR-based boards (like the cheaper arduino's), though possibly better than SAM based boards due to the huge following ESP8266 has (due to it being cheaper than a cup of coffee with builtin wifi).

There is an ESP8266 hardware package for the Arduino IDE that should work with the NodeMCU boards - though I haven't tried it (I use Espruino on my ESP8266 boards)

You can also think about using an ESP8266 module to provide WiFi connectivity to an AVR-based Arduino to get the best of both worlds (the superior library support and better peripherals of the AVRs, but with wifi). This is widely done and there are well supported libraries for this.

For other components - search ebay (or amazon, for faster delivery but higher prices) for resistor pack, capacitor pack. You want a selection of resistors and capacitors. An assortment of ceramic caps would be my choice if only getting one kind of cap, though it's good to have a selection of larger electrolytic caps on hand too - for power supply filtering (for example on WS2812 LED strips or ESP8266 module used to provide wifi to an AVR).

Of course, a microcontroller board alone is usually not enough - maybe you want sensors to detect environmental conditions (temperature, acceleration, light levels, and so on), or other devices to control (servos, LEDs - maybe those WS2812 strips or boards, LCD displays). There are all manner of sensors and devices on breakout boards available from adafruit, $parkfun*, and ebay (the ebay ones are generally clones of the adafruit or sparkfun ones, sold for a fraction of the price, but with non-existent support/documentation).

IMO the easiest displays to work with are the 1602 or 2004 character LCDs, with the I2C backpack - I love those and use them all over the place.

I started with an Espruino (they have a wifi board that has integrated esp8266 connected to a decent micro) - the library support is worse than Arduino, and slower because of the overhead of interpreting js on the micro, but it's really nice for getting started because JS is easier to write than C, and it gives you a live console where you can, say, type digitalWrite(pin,1), press enter, and the pin gets written high. This aspect I found extremely helpful. The boards are kinda expensive, but an incredible learning tool. I use Espruino when doing things that interact with the internet, and sometimes for understanding a piece of hardware that I don't know the details of (by controlling it from the console, since it eliminates the write-upload-test cycle). (Espruino.com). That said, I rarely use them for permanent projects, at least not on the official hardware due to the cost - I run it on ESP8266's, and on a development board of my own design based on the original Espruino Board

  • I have a very low opinion of sparkfun. All the price of Adafruit, but without the quality documentation nor the level of innovation of Adafruit.

Wow, looks like there’s a lot more I need to learn than I thought. I barely even have an idea of what resistors and capacitors are supposed to be used for...

What kind of features is the NodeMCU missing? How difficult is it to accommodate the voltage difference, and will it risk damaging the board if I forget/do it wrong?

I don’t have a problem with learning C; I’ve learned AS3, C# and Java pretty easily so I think I already have enough experience to learn C even though it isn’t Object Oriented. I don’t really want to shell out more than £15 for my first board though, I’m only a student after all, so Espruino doesn’t seem to be for me.

Assuming your going to use the Arduino IDE as the programming method then why not buy both AVR board and an ESP8266/ESP32 board. The language you use in the Arduino IDE is the same for both and then it just comes down to what you want to use the MCU for.

SilverBrick:
...
I already have enough experience to learn C even though it isn't Object Oriented.
...

However Arduino is programmed in C++, which is.