ESP8266 - Data Transfer

Thread Starter


Joined Jan 12, 2015

If anyone here is interested.

I was evaluating the ESP8266 about ten months ago because it can be plugged into the STM32F769I-DISCO board, giving the option for the board to engage in TCP/IP communication over WiFi.

I found only limited and fragmentary information about actually using the ESP8266 with the STM32 board and I decided to get more insight into the ESP8266 itself.

To further that I decided to develop a C# project that interacted with the ESP8266 over a serial port so that I could more easily experiment with the device to get detailed understanding of its behavior, the goal here was to ultimately "translate" my C# into C or C++ and reduce the degree of uncertainty when coding for the STM32.

Work etc became a distraction after about three weeks on this and I shelved what I had done (GitHub) and only very recently have I been in a position to resume playing around with all this (hence my recent ordering of a new SDS1204X-E scope).

I'm just dusting off the work I did and wondered if anyone here would find this useful? It is basically a solid codebase that makes it easy to investigate the ESP8266 and the entire device is abstracted by several classes. The design leverages the .Net APM async model and includes very robust and efficient ring buffering and is the result of a lot of careful investigation and testing.

As I say the goal was to develop a kind of reference design in C# that's able to exercise many of the devices AT commands, enabling experimentation with ease using Visual Studio on a PC before moving into code for the STM32 itself.

The code at this point is incomplete but what is present is pretty well written and pretty solid, we can (from C#) instantiate an ESP8266 instance (passing it the COM port that it's plugged into in the PC) and then call methods for enabling/disabling echo, get version info, set wifi modes, get access points, connect to the network, set IP connection modes, connect socket etc etc.

The test suite I have currently lets me run a simple TCP/IP listener (a C# console app) and then run a test that connect to the network and creates a socket connection to that TCP/IP listener. Once connected the listener app repeatedly sends random blocks of chars over the socket and the ESP8266 test app receives this data.

Ultimately I wanted to "replicate" this library in C and interact with the ESP8266 via a UART on the STM32 board.

I can create a public repo for all this if anyone is interested...