SPI device communication problem with Arduino Uno and Ethernet Shield (W5100)

Hi Blynk Team, @Dmitriy,

I’m currently doing my Master Thesis at the Institute of Electrical
Sensorsystems in Enviromental Gas Sensing. I would like to know if you
provide a advanced account for Blynk (no limited items) for research
purpose? I already set up a little program with the light version an enjoy
the simplicity of fast developing with Blynk.

Therfore I use an Arduino Uno with Ethernet Shield W5100 and sucessfully
connected to my Android app. I just have one little problem and wondered if
you can help me with that:
For my circuitry I need to send some SPI commands, but since the Ethernet
Shield is also connected to it the communication fails when it is active.
Is there a way to pause the Blynk background operations for the time I send
this commands? Or is there may another way to easily use SPI communication?

I’m looking forward to hear from you!

@Dmitriy: if you see this can you please send me an private message, too. Got an email from iot@blynk.cc to contact you personally… Thanks a lot!

With kind regards

Are you 100% committted to using the UNO and Ethernet combination?

These Ethernet shields aren’t very reliable. They often suffer with problems of not resetting correctly when the UNO is rebooted. This isn’t a Blynk thing, although it has been discussed several times on this forum.

An alternative is to use a ESP8266 as a Wi-Fi adaptor for the UNO, but most of the regulars on this forum wouldn’t reccomend that approach either - unless it’s your only option.

A better solution is to use an ESP8266 or NodeMCU device instead of the UNO. These can be programmed in almost exactly the same way as the UNO, and have built-in Wi-Fi. Most of the regulars tend to use the Wemos D1 Mini as their preferred platform.
The only issues that you might have with this approach are:

  1. The Wemos has fewer available GPIO pins than the Arduino and only one of these is an analogue input.
  2. The Wemos uses 3.3v logic levels, as opposed to 5v for the Arduino. This may cause problems with some sensors, but most modern sensors tend to be compatible with both 3.3 and 5v logic levels.

There are workarounds to some of these issues if needed, such as analogue input multiplexers and logic level shifters.


1 Like

Make every effort to build your iOT project without those ancient, unreliable Ethernet shields. See post above.

So… you are making an Arduino powered fart detector?.. :thinking::nose:

That would be called a Local Server

I would actually recommend trying the ESP32… still a work in progress, perhaps, but with lots of pins and their functionality. I believe it is more then capable of the task, even at current development status. Just be prepared to use code, no simple App only pin control.

The ESP32 is a nice device, I know! But first of all I use 5V for I2C commands and Ethernet is the easiest way in this case. WiFi communication is either really complicated to implement or even not possible for me. My alternative is to use my project just with Serial Monitor over COM port

Yes, I am pretty commited to the Ethernet. WiFi is complicated or even not possible. Is there a way to stop or delay the communication of the Ethernet Shield. I looked at the SPI communication with an oscilloscope and saw that it is sending some commands continiously. If I could just pasue this and send my other SPI commands to my controlling device in this time slot. It would work!

Have you investigated ways of adding a second SPI bus, either using the UART or a Soft SPI library?


NO, not yet. I saw an example with the Adafruit PN532 library for NFC tags, but this is not what I was looking for.
Can you suggest a soft SPI library? That would be great!

BR Alex

I’m afraid not, I was just suggesting other possible ways if approaching the problem if you’re tied to the horrible Ethernet shield.

Good luck!!


But it actually should work! I don’t remember if I had some serious problems (minor are always happening!) when using W5100 and SD card few years back just with UNO. Naturally no Blynk was involved in this project.
Different ethernet library?? I have the ENC28J60 too, but I’m almost sure this “project” was using W5100…

thank you for all the inputs. I could manage it!
Therefore I am using a bit banged SPI communication. Thanks to Nick Gammon’s library and a few small adjustments to get it work, I set up a Software SPI.

here the link from Gammon: http://www.gammon.com.au/forum/?id=10892&reply=6#reply6


Glad you got it working.
I’ve changed the topic to Solved.