Board choice ideas requested

Hello, I am working on a project for which I need an Access Point Web Server. One requirement is that I need to 'save' parameter data (integers) for which the eeprom would work well. Another requirement I have is a lot of string data (large webpages.)

I was very excited to see the uno wifi rev2 board because it has all of what I need. The problem with the uno board is the memory which is quickly running out. I know there is a big debate about strings and waste but they are easy and it makes it doable for me.

I see there are other boards with much more memory but they don't have eeprom. I want to stay away from micro sds because these devices will be used in harsh environments and I would prefer not to have any mechanical contacts that could potentially corrode.

Any advice is very much appreciated.

an ESP8266 in a maker friendly form of a NodeMCU or Wemos D1 has plenty of Flash to store your static pages. Additionally you can put your pages in the inbuilt filesystem. Additionally this controller comes with an EEPROM emulation which allows you to persist and modify data between power cycles as is as with any other AVR.

Thank you for the advice. Those boards look really useful. I forgot to mention that I need 4 analog inputs as well. Also I am getting really comfortable with the Arduino hardware and IDE so I would prefer to stay with these boards.

I have been working and I think I can pull off everything with the memory available to me with the uno. My pages will just be less jazzy.

Also I thought that I might be able to use an Arduino Nano 33 IoT and just provide battery backup.

I will have to explore this. It sounds like what I need. "EEPROM emulation which allows you to persist and modify data between power cycles as is as with any other AVR."

ESP8266's can be programmed with the Arduino IDE. Just google for "ESP8266 Arduino IDE"

If you need more analog inputs, consider boards with an ESP32.

Thanks again. It give me a lot to think about.

Uno Wifi rev2: https://store.arduino.cc/arduino-uno-wifi-rev2. That is a ATmega4809 microcontroller with a u-blox module for the Wifi. That u-blox module contains a ESP32. That means a lot of extra trouble and the worst of two worlds.

Arduino Nano 33 IoT: https://store.arduino.cc/arduino-nano-33-iot. The SAMD21 processor is the best one for Arduino in my opinion (the second best is the ATmega328P). However, again a u-blox module is used for the Wifi, and that u-blox module contains a ESP32. That needs firmware and there a few issues on this forum, so the firmware could be old.

When you use a ESP32 board itself with the Arduino IDE, then you get automatically the newest ESP32 firmware when uploading a sketch. I started with ESP32 using this website: https://randomnerdtutorials.com/projects-esp32/. It can requires a current up to 250mA. The analog inputs are sadly not very linear. For example the Arduino Uno has a analog input which is perfect for the 10-bits. If you want really good analog measurements, then you might consider an external ADC.

It is possible to use emulated EEPROM in Flash memory, but I'm not very fond of that. However, it is also possible to use the Flash Memory for a filesystem. Then you can upload files from the computer and use them in the sketch.

I don't want to mention the ESP8266. It is good and its development environment is still being improved, but now we have the ESP32 with an extra serial port and more analog inputs.

I found an old mkr1010 board that I purchased a while back. When I received it I tried to get it to do what I wanted but I got one error after another and gave up. Since reading in the forum and seeing that the wifinina firmware has been updated I thought i would update the firmware on this board and give it another try.

After the update most of my sketches compiled without errors and I have figured out the issues with the others. So this board has most of what I need and is working well.

I am using the flashStorage library and the flashAsEeprom option. Thanks to Koepel for suggesting this. I wish I had more time to read about and discover all of the things associated with the Arduino boards. I know the risks with this library but for my project the flash may get updated 5 times a year at the most so it should not ever present a problem.

Thanks again for all of the suggestions.

If anyone is interested here are some screen shots of what I have been able to build with the Arduino mkr1010WiFi. I am at only 25% of program space.

pic_1.png

Koepel: The analog inputs are sadly not very linear. For example the Arduino Uno has a analog input which is perfect for the 10-bits.

The ESP32 Arduino Core looses something in its translation to using the ESP32 AD API. I found tha using the ESP32 AD API directly overcomes these short comings. https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/index.html


The ESP32 WROVER comes with 4MB of additional RAM that is easily useable in the Arduino IDE. I use a 4MB ring buffer to store Mayoware data for playback. Works great.

Long term no power data storage, ESP32 use SPIFFS or the little file system.