Should I reinstall nodemcu firmware if I uploaded a arduino sketch? - arduino

I have a nodemcu v3 and I'm trying some basic stuff
I installed the esp8266 board in Arduino IDE and then I uploaded a blink example.
But now I'm trying to upload Lua code using ESPLorer but I doesn't work properly. I press in open and set the baud rate to 115200 but I just get some infinite Chinese letters.
Should I reinstall the firmare or something?

There is a very good answers at https://stackoverflow.com/a/43509569/131929 and https://stackoverflow.com/a/47510019/131929.
Should I reinstall the firmare or something?
First you should make up your mind whether you want to conveniently program in Lua or whether you want to stick with Arduino (running on the NodeMCU-clone board). It is an either-or question. Flashing on of them to the module will erase the respective other.
And no, in case you want to use the NodeMCU firmware, you should not use those outdates binaries from 2015. Build a recent version conveniently in the cloud: https://nodemcu.readthedocs.io/en/latest/en/build/.
P.S. if you're interested why I call yours a clone board you may want to read https://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/ from yours truly.

You must erase the flash of your NodeMCU before a new upload. If you ignore that, your software don't run appropriately. To do that, I'm using esptool:
python esptool.py --port COM9: erase_flash
In that example COM9: is the name of my USB/serial interface.
After that you can flash for example your ESP8266 with that line of code to add a boot part:
python esptool.py --port COM9: write_flash -fm dout 0x00000 boot_v1.5.bin
Use the preview line of code and adapt it to upload other parts of the map of the flash memory.

Related

Arduino code uploads fine, however avrdude output is not able to read / verify memory

Purchased some clone Arduino nanos a while ago and finally got to working with them.
Of the 3 i worked with, 2 of them upload and verify fine.
The third is able to upload (code functions properly), however it fails to read flash data.
this is required to post pastebin
Here is the output from a clone that worked:
https://pastebin.com/x1y0yr1k
Here is the output from the one with the issue:
https://pastebin.com/YGAGC4XN
this is required to post pastebin
What I've done so far:
Reflashed bootloader from working Arduino as ISP
CH340 driver installed
Used (old) bootloader when uploading
Tested on both Linux and OSX
Any suggestions or insight would be much appreciated.
If you have a working UNO or similar board, you could try uploading the bootloader using the Arduino IDE (https://www.arduino.cc/en/Main/Software), and see if you get different results. Sorry, I'm not familiar with using avrdude.
The link on sparkfun gives really good instructions on how to accomplish this task. Scroll about half-way down to where it says Upload Arduino as ISP https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader/all
Basically, you connect the UNO to your target as shown in the link, then select ArduinoISP in the examples menu, select the COM port and board, and upload the sketch. Then you select your target board in tools, and select Programmer, Arduino as ISP in tools, and finally, Burn Bootloader in tools.
I've had 100% success burning blank Atmega chips using this method.

ESP8266 + Arduino Uno + ESP8266WIFI lib

I'm having a problem with ESP8266 in programming part.
I'm using Arduino Uno and have thousand times run programs.
It's has been my second day in completing my esp8266 simple fully function circuit
My current problem is :
ESPwifi library has many error even I download it from official github source code
So, I decided to use WIFIESP library and it stuck at TIMEOUT/NO WIFI/NO MAC ADDRESS
I cannot use pin 0 & 1 because a wire stuck in it.
I have search everywhere to solve my problem even tough needs alternative ways I will at least doesn't required NEW HARDWARE.
Reupdate : 08:18 PM 4.3.19
I just want steps without need AT firmware & able to post data to websites
I don't want extra boards EXCEPT:
Arduino UNO
ESP8266-01 (small one with 8 pin)
Windows 10 with arduino IDE latest version
I'm not sure what your real problem is, but here is my solutions:
In case you haven't install the esp8266 boards for the arduino IDE yet, then you should install it first. The installation instructions is documented on GitHub. Here is the snippet to install ESP8266 boards on Arduino IDE:
Start Arduino and open Preferences window.
Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
Open Boards Manager from Tools > Board menu and install esp8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).
ESP Libraries needs Arduino Core Library to work. If you haven't install the board yet, then you will get many errors.
hope this help.

Arduino Mega2560 can't be programmed repeatedly using avrdude

I have a sketch for a mega2560 board that I can upload successfully using the Arduino IDE using the upload button but I would prefer to use a script using avrdude. The only problem is if I try to run avrdude more than once to flash the board it get's a stk500v2_ReceivedMessage(): timeout. It doesn't happen every time but enough. The only way the avrdude seems to work again is if I update the same sketch using the Arduino IDE.
I was having trouble finding what the Arduino IDE does to upload a file but all the settings I could find suggest that avrdude is doing it the same way.
Verbose compilation and upload can be enabled in Arduino IDE Settings:
File->Preferences->Show verbose output during: [] compilation [x] upload.
It will show complete commands used for upload and the avrdude should be same or you can use the same avrdude.exe. You should see something like:
C:\arduino\hardware\tools\avr/bin/avrdude -CC:\arduino\hardware\tools\avr/etc/avrdude.conf -v -V -patmega2560 -cwiring -PCOM17 -b115200 -D -Uflash:w:C:\Users\kiiv\AppData\Local\Temp\build658cdf44885ca2a8676f164a933c092f.tmp/MAX7219_4x4x4.ino.hex:i
BTW: I've just started with PlatformIO CLI (command line tool) and I'm loving it.
PlatformIO IDE didn't work well for me, as I'm using czech keyboard layout and keystrokes prevents me to write all essential characters like []{}#& without switching it to english one.

Arduino littleBits

I am trying to download code to my littleBits Arduino module on IDE software. I am not able to find the port whenever I am trying to download the image to the board. Is this an internal issue, or an issue with my Arduino board?
You need to check if the arduino serial driver is properly installed in device manager. If arduino serial port is available in Ports then you can download program through IDE
For visual help: https://www.youtube.com/watch?v=4HqXAmV_Ock
Make sure you have proper drivers for your board. In Arduino IDE make sure you are selecting the proper target ie, littleBits Arduino board.
If you are using the Linux system you can use dmesg to see if your system detected the device properly.
If you are using windows system use device manager to make sure your device is properly connected.
Has it ever worked? Did it work for a while then stop?
Reason I ask, I had a problem where the Little Bit suddenly stopped accepting new code. Whenever I tried to download, the Arduino IDE started reporting Unknown USB Device.
Turned out, we had bricked the device. I blogged my steps for recovery here.
Check tools>ports and see if any are available, try them all, (check
while the board is connected)
if none are available check device manager under com ports there should be your device listed if not the you need to reinstall the drivers.
also check if the board is connected correctly (i.e. the connection cord is working properly)

nodemcu/ESP8266 using Arduino IDE - Firmware?

I guess I'm having a basic understanding issue regarding the nodemcu/ESP8266 when it is used with the Arduino IDE and/or visual micro (for MS Visual Studio).
Everytime I upload a program/sketch which is obviously written in C in this case, it is compiling and uploading a binary of about 280kb, even if it is only a simple "blink" example.
Is it some kind of firmware being uploaded everytime or is it just monsterious libraries needed for the ESP to work with the Arduino IDE?
If it is firmware, do you normally "update" the firmware to a more recent build when working with the Arduino IDE? When using the nodemcu LUA firmware, there are periodic updates.
Thanks!
Basically, you build the firmware, which is a combination of your own code, and lots of other code/libraries.
All the other parts are part of the Arduino ESP8266 core, which does indeed get updates (it lives here: https://github.com/esp8266/Arduino). And it itself contains the Espressif SDK, which also gets updates (https://github.com/esp8266/Arduino/tree/master/tools/sdk).
Like NodeMCU you can get periodic updates, but they are of the core, and the only way to get them into your firmware is to recompile your sketch.
This is completely normal - When writing code for an interpreted language like Lua for the ESP/NodeMCU, you're just uploading what is a relatively small text file(s), as the code needed to run it is already on the chip, and doesn't change.
However, when you start working with compiled languages like C (With the Espressif SDK only, for example), or C++ with the Arduino IDE, you are replacing the entire firmware each time your code changes. This includes the TCP/IP stack, WiFi management, the logic controlling the PHY/MAC interface, the mini OS, and a host of other bits to make your ESP8266 work. Even if your code appears to be just a simple "blink" sequence, there's a lot of code running behind the scenes to make it possible, leading to the large sketch size.
Generally, every change to your sketch code will produce a complete copy of everything needed to create a bootable, runnable binary for the ESP8266. This is what is causing the 280KiB file. Since each copy of your code includes the newest (Or at least whatever is in your IDE at the time) copy of the system level code, there is no separate update process - Each time you upload your sketch, the system code is updated too.
Additionally, there is some extra overhead from the Arduino abstraction on the Espressif SDK, leading to a larger resulting binary size.

Resources