Currently, I am using an ESP8266-05 module in my IOT Projects. I am planning to switch to ESP8266-12 module as it seems more PCB friendly (robust to industrial environments). Apart from the small changes like(extra GPIO pins), will there be any changes in the AT Commands set or bands in which the module will work?. I tried but could not get any official module specific document/Comparison for esp8266-12
will there be any changes in the AT Commands set or bands in which the module will work?
No, the official SDK and all firmware (e.g. NodeMCU, Arduino) are identical across all modules because the chip itself is the same.
Maybe https://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/
and https://blog.squix.org/2015/03/esp8266-module-comparison-esp-01-esp-05.html will help you pick the right module for you.
Related
I am trying to build a project using rpi pico and W5500 shield module with micro python.
I am struggling to find the proper libraries for that but I am unsuccessful so far. The documentation of micro python references in https://docs.micropython.org/en/latest/library/network.LAN.html?highlight=lan%20module:
class LAN – control an Ethernet module¶
This class allows you to control the Ethernet interface. The PHY hardware type is board-specific.
Example usage:
import network
nic = network.LAN(0)
print(nic.ifconfig())
# now use socket as usual
...
but I am not sure which network library to look for or how to install it in thonny and so the importing is unsuccessful. When in Thonny tools/manage packages/ and I search on PyPl for "network" there are many libraries coming up but which is the proper one?
Can somebody point out the proper library?
You'll need a MicroPython firmware build that includes support for the Wiznet modules with RP2040 / Pico. There's a guide on the Wiznet GitHub (it also goes on to talk about how to compile it yourself, if you need to go that far). It does look like the support for the W5500 on rp2040 has only just hit the nightly builds of MicroPython (I usually run with the current nightly versions myself, so you could give the latest build direct from micropython.org a try)
Once you have a firmware that includes the right support, the following code should work:
import network
nic = network.WIZNET5K()
nic.active(True)
# to print IP address etc
nic.ifconfig()
Also, the current link to the MicroPython docs on these network adapters is this one, rather than the link you shared to the generic network / LAN class.
The examples and documentation for the Spresense have a lot of very clear information, yet I think there's something missing for using digital mics with the Arduino IDE. Modifications to the extension board for using digital mics are very clearly documented with nice pictures. The Arduino example projects are great, showing you to record, encode, etc. And I've also understood you must tell the recorder to use the digital microphones with the following:
theAudio->setRecorderMode(AS_SETRECDR_STS_INPUTDEVICE_MIC_D);
There are also nice details in the audio documentation explaining that CXD56_AUDIO_MIC_CHANNEL_SEL must be changed from the default value of 0xFFFF4321, which is for analog microphones, to values for digital microphones. I've been able to follow the instructions for rebuilding the Nuttx kernel and spresense SDK with a new value of 0xCBA98765 which should enable eight digital mics. The last piece that is not clear is what nuttx/sdk binary files now need to be copied over to the Arduino environment. I have a Windows PC for use with the Arduino IDE and I have a Linux PC for building Nuttx and those examples. Can you please list which files on the Linux machine that I need to copy over to the Windows PC for the Arduino IDE to use the SDK that enables the digital mics? Sorry if this is documented somewhere and I overlooked it!
The instructions provided by Sony to record using the digital mic work fine! It was a hardware problem with my microphones. I was able to use the nuttx example named audio_recorder. I haven't tried with Arduino and the process of copying files from a nuttx build to the arduino build folders is still not very clear, but that's a separate issue.
I would love to be able to update my NodeMCU ESP8266-01 OTA, since they're located in awkward spots. I'm by no means an expert regarding the ESP or NodeMCU, but I haven't been able to find anything recent about OTA updates. I found some discussions about it going back to 2015, but it never seems to have been implemented.
I use my ESP with NodeMCU to control a PWM dimmer. I upload a precompiled version of NodeMCU with the NodeMCU Firmware FLasher, and then use ESPlorer to upload a custom lua file called 'init.lua'. I'm not even sure if this is the proper way to do stuff, but it works.
So the main question: Has OTA updating been implemented, or is it possible in some way?
Just to clarify, I don't think I want to update the firmware. As I understand it, firmware is what you build yourself, or on a website like https://nodemcu-build.com. I want to update the lua files that run on the ESP, that you normally upload through a program like ESPlorer.
I found some discussions about it going back to 2015, but it never seems to have been implemented.
Indeed, firmware OTA is not available yet. However, as you probably know, the need for firmware OTA is much lower with the NodeMCU firmware than e.g. with the Arduino platform. I'd argue that you're much less likely in need to replace/upgrade/extend the firmware with its built-in modules than the application code that runs on top of it.
Fortunately, it's quite simple to replace one or several Lua scripts (compiled or uncompiled) on the device and reboot it. All the web and cloud IDEs listed at https://frightanic.com/iot/tools-ides-nodemcu/ offer this. There's even a pending PR that'll bring FTP support to NodeMCU.
For a complete Lua provisioning system take a look at what #TerryE provided at https://github.com/nodemcu/nodemcu-firmware/tree/master/lua_examples/luaOTA
I've attempted to use the two Web IDEs listed in the link provided in Marcel Stör's answer, but I honestly failed to understand how to use either IDE. they also seemed like they weren't exactly what I was looking for, and required a server to connect to, or an extra program, which I wanted to avoid.
Edit: Apparently, I did end up using one of the two Web IDEs in the list. Since it's been a while since I did all this, it's a bit fuzzy in my head.
I eventually stumbled upon this GitHub page, which seemed to provide exactly what I was looking for: The ability to access the Lua files on the ESP through a webbrowser. I have personally changed the ide.lua file around completely, since I needed to call functions from it in the init.lua script. However, I think you can just upload the ide.lua script to the ESP, and add a line containing dofile("ide.lua") to your init.lua file.
If anyone is interested in my changes to, or my implementation of the ide.lua script, you can take a look at my repo Timmiej93 / QuinLED / Program code.
In fact there's a class for that to implement OTA i the NodeMCU its called the ESPhttpUpdate you can refer to ESPhttpUpdate for further details.
I am a newbie to industry and as a part of my internship I have been assigned the above project.I have no experience in how to go about porting a particular application to a different OS.
So far,i have tried to understand the basic structure of a component(thats what an application is called IOS-XR) but as far as I can understand,porting wireshark will also require porting the libpcap lib to XR.
Can someone please shed some light as to how should i go about approaching it?
I know nothing about QNX;
However, I will note that Wireshark has a lot of dependencies on various libraries:
Some examples;
libgLib
libgtk
libffi-5
libfontconfig-1
libfreetype-6
libintl-8
libjasper-1
libjpeg-8
liblzma-5
libpixman-1-0
libpng15-15
libtiff-5
libxml2-2
...
Are these libraries available on QNX ?
With respect to libpcap:
libpcap is needed for capturing files. If not available, it certainly would need to be ported. I could imagine that this might be a large effort given that presumably the code is presumably quite dependent upon the exact OS capabilities to get access to the network level data.
For information about developing Wireshark (on Windows and *nix) see the
Wireshark Developer's Guide.
I'm looking for a programmatic interface to the Solaris ifconfig(1M) command.
Apparently Linux has the getifaddrs(3) command, but as far as I can tell this has not been ported to Solaris.
Short of attempting to use the code at the link above, is there any way to determine ifconfig(1M)-type data (network interface presence, state, etc.) without forking the system command and parsing the output?
I have an implementation here, IPv4-only based on SIOCGIFCONF ioctl()'s and IP family agnostic version using SIOCGLIFCONF:
http://code.google.com/p/openpgm/source/browse/trunk/openpgm/pgm/getifaddrs.c
Tested on SPARC/Solaris 10 and x86/OpenSolaris 2008.11 & 2009.06, LGPL 2.1 license.
getifaddrs() was recently integrated into the source code for future OpenSolaris & Solaris releases, but that doesn't help your code run on current releases:
6731945 need BSD getifaddrs() API
OpenSolaris source: usr/src/lib/libsocket/inet/getifaddrs.c
Until then you'll need to use the SIOCGLIFCONF ioctls, which you should find lots of examples of in open source code, including the link you posted.
Real men use ioctl ;)
Take a look at if(7P).