Hi Ronnie
I have attached binaries for you to check the performance and capability:
1. "uTaskerSerialBootBM.bin" This is the boot loader which is needed for applications to be loaded. It can be loaded using any QSPI Flash loader tool (I use NXP MCU Boot Utilit v2.2.0).
When it runs it flashes the green LED at 5Hz to indicate all is well and a USB-MSD drive appears when you connect the board's (processor) USB to a PC.
2. Drag and drop the file "uTaskerV1.4_application.bin" onto this drive to load it
3. After it loads the board will reset - you need to power cycle the board now (I'll explain why later)
4. The board (green LED blinks at 2.5Hz) now runs an FTP server and web server from QSPI Flash and can be connected to on 192.168.1.6.
To load a set of web pages open the folder "WebPagesiMX" and execute the bat file "Copy_all.bat", which executes a command that connects to the FTP server and copies all the files in the directory. If you prefer, connect with the FTP client of your choice and load the *.htm, *.jpg and *.gif files. In renamed the bat file to .txt in case it is otherwise blocked
Then you can browse to the same address and play around with some dynamic web content and upload images to it from the start web side (there are some alternative animated images for the start page in the sub-folder)
5. If the IP address is not suitable use the board's VCOM UART connection at 115k to connect to a menu -> go to the LAN menu and change the IP address configuration. Command "save" to commit changes to the parameter system in QSPI Flash and power cycle again to get the new settings to operate.
There are various menus allowing a number of additional operations (not all related to LAN) and you can also connect the HS USB, which appears as USB-CDC and offers the same command line menu (with a few commands to switch to USB-UART bridging node, etc.)
If you want to get back to the USB loader reset the board with the USER switch held down. Now new applications can be loaded by drag-and-drop again.
Although the processor is running at 500MHz if you measure the current consumption you will find it is about half that of example projects due to that fact that it is using dynamic low power switching whenever it can but without any loss of responsiveness.
The application (command line menu with a number of features, TCP/IP stack with FTP and web server serving from a file system in QSPI Flash, USB stack with CDC) is 61.2k in size and runs from ITC RAM (which is dynamically configured by the boot loader to suit the application's requirement to optimise program and data allocation) so there are no QSPI accesses (apart from file system access) to give lowest EMC radiation (all internal operation) and fastest code and data access (all are at 500MHz so no wait states and no caching jitter or complications - OCRAM is disabled since it is slower and not needed). Also the QSPI flash is powered down most of the time since code doesn't run from it, again increasing efficiency.
Although this is still Beta you should find it robust and very fast (although I have actually set slow QSPI flash speed in this version due to the fact that I have been using a logic analyser to monitor - if I set to133MHz the analyser has problems and the attached cables cause unreliability when booting with them attached).
The web server can in fact handle hundreds of parallel accesses at the same time due to its technique of saving RAM requirements while still offering high speed TCP transmission. The FTP server is however a single user access server (I disabled password so anonymous can be used - in one of the menus I think the password protection can be enabled/disable). It will thus refuse a second access.
Due to the efficient code size for a high level of features complete applications can usually fit comfortably in internal RAM, which results in the numerous advantages listed above.
Now to the things that need to be solved:
1. Presently the Ethernet connection only works reliably after a power cycle but not (always) after a warm reset (that is why it needs to be power cycled to be sure...). This needs to be solved before release. (The link comes up normally and I do receive frames according to the MIB counters but they tend to be counted as CRC errors or similar.. never saw this on Coldfires or Kinetis parts, which effectively have the same Ethernet controller)
2. When running from RAM and using the FlexSPI for the file system the processor does not restart after either a commanded reset nor a watchdog reset and one needs to push the reset button to get it going again. There is another thread from someone with a similar problem and in both cases one sees that the ROM loader doesn't try to start the code (it may do so but there are no SPI bus accesses taking place and one sees that the ROM loader is running). Again this needs to be solved before release.
Otherwise I am quite happy with the project - it inherits almost all functionality from the Kinetis project (so has a complete Modbus ASCII/RTU/TCP and MQTT solution integrated) so the effort is mainly due to special i.MX RT chip features and quirks that needed to be handled. Most are solved and the performance increase and price/performance ratio compared to the project predecessor (Kinetis) is great. For best development efficiency and to get the most out of the chips (without need for external code operation) the uTasker solution should give a big advantage.
Since the loader concept is more or less ready I need to solve the couple of known difficulties (1, 2 above) and verify operation on i.MX RT 1010..1064s (unlike other libraries the project can run on all with a single HW library, and also on all Kinetis chips by switching out the single i.MX RT HW library for the single Kinetis one). I'll also have time to get the video tutorials ready shortly which show how much easier it is to develop (using the i.MX RT simulator) too.
Regards
Mark
[uTasker project developer for Kinetis and i.MX RT]