Hi!
I am developing a project in which the Arduino works as a server. I use the Ethernet Shield module with the Wiznet W5100 chip to transmit the files stored on the micro SD card to the clients that connect to the server. The libraries I use are the Ethernet.h, the SD.h and the SPI.h.
My modus operandi is the following: every time I have to transmit a file what I do is fill a buffer of 1 KB with the data of the file and when it is full I pass it to the client. I do this until the entire file has been transmitted. The problem is that I have a file that weighs 400 KB and takes about 30 seconds to be transmitted (in addition, in the future I will have to send files that weigh several MB...).
My doubt: is there any way to increase the transmission speed? Who is limiting it? The communication via the SPI bus between Arduino and the Wiznet W5100 chip / SD card or the communication between the Ethernet module and the router / PC?
Thank you very much!