This is great. I was wondering how to implement a TLS inside a STM32 without Embedded Linux or anything. Thanks!
@olaoluwaraji2335Күн бұрын
Nice. Is there support for custom STM32 microcontroller boards? I noticed only Nucleo boards and discovery kits in the video. Thank you
@mongoose-networking-libraryКүн бұрын
The simplest way is to choose the board which is closest to yours, then modify. Join the chat, and we'll assist !
@olaoluwaraji2335Күн бұрын
@mongoose-networking-library Thanks. I actually have an STM32F4 nucleo board but I plan on experimenting with the Mongoose wizard for a custom board. I haven't made up my mind on the exact STM32 MCU that I'll be using. IDE: STM32CubeIDE RTOS: FreeRTOS
@@mongoose-networking-library Can I use static allocation in your library, I don't want to use dynamic allocation
@axramar199222 күн бұрын
How to add SSL/TLS? Waiting for that.
@mongoose-networking-library22 күн бұрын
Soon to be published !
@mangalarupasinghe29 күн бұрын
Nice Tutorial - Thanks. I wonder it is easy to write a function to write tx_icmp() to send a icmp echo request in mongoose?
@mongoose-networking-library29 күн бұрын
Shouldn't be hard. What's the anticipated use case? To find out that the target IP is alive?
@mangalarupasinghe29 күн бұрын
@@mongoose-networking-library Thanks! Yes, to send a icmp echo request to find out that the target IP is alive, and on receipt of echo reply, send usart3 output msg via printf in the event handler. Thanks
@mikegomez70Ай бұрын
Many thanks! Works on F767 (Y)
@mongoose-networking-libraryАй бұрын
Awesome, thank you Mike! Let us know if you want us to cover the topic you'd like to learn about.
@axramar1992Ай бұрын
Much Needed lib🎉
@sanjaydalvi6635Ай бұрын
Looks like the dashboard example has changed under mongoose github master tree. It has a completely different dashboard now. Is it possible to get the net.c net.h and packed_fs.c files that were used when this video was made ?
@mohanprasath12122 ай бұрын
Could you please explain aws iot via stm32 ethernet using mangoose library?. Please share some documents for that.
@mongoose-networking-library2 ай бұрын
We'll create a dedicated video for AWS + STM32 + Ethernet
@mohanprasath12122 ай бұрын
@@mongoose-networking-library Looking up for your video
@mostafanfs2 ай бұрын
Very informative thanks!
@dymastro7882 ай бұрын
Awesome visuals!
@mongoose-networking-library2 ай бұрын
Thank you! The topic is so huge though, this vid covers maybe 0.1% of what can be said. We plan to have a vid with OTA code walk-through, to explain some nitty gritty
@ahmetbudak26652 ай бұрын
Hi, I uploaded the code by adapting it to the STM32F746G-DISCO development board. I added Dashboard UI. I compiled it without any errors But when I ran it, it could not get an IP address from DHCP. Before adding Dashboard, it was getting an IP from DHCP and sending OK to the browser. You can see the data coming from the serial communication below. What could be the error? Can you help me? 8 2 mongoose.c:17231:mg_phy_init PHY ID: 0x07 0xc131 (LAN87x) 10 2 mongoose.c:4911:mg_mgr_init Driver: stm32f, MAC: 02:1d:40:06:0b:37 17 2 mongoose_impl.c:646:mongoose_i Starting HTTP listener 1d 3 mongoose.c:4838:mg_listen 1 0 0.0.0.0:80 23 2 mongoose_impl.c:677:mongoose_i Mongoose init complete, calling user init 2a 3 mongoose_glue.c:11:glue_init Custom init done 2f 1 mongoose.c:5835:mg_tcpip_poll Network is down 8 2 mongoose.c:17231:mg_phy_init PHY ID: 0x07 0xc131 (LAN87x) e 2 mongoose.c:4911:mg_mgr_init Driver: stm32f, MAC: 02:1d:40:06:0b:37 16 2 mongoose_impl.c:646:mongoose_i Starting HTTP listener 1c 3 mongoose.c:4838:mg_listen 1 0 0.0.0.0:80 21 2 mongoose_impl.c:677:mongoose_i Mongoose init complete, calling user init 29 3 mongoose_glue.c:11:glue_init Custom init done 2e 1 mongoose.c:5835:mg_tcpip_poll Network is down 3f6 1 mongoose.c:5835:mg_tcpip_poll Network is down 7de 1 mongoose.c:5835:mg_tcpip_poll Network is down bc6 3 mongoose.c:17983:mg_tcpip_driv Link is 100M full-duplex bcc 1 mongoose.c:5131:onstatechange Link up bd0 3 mongoose.c:5237:tx_dhcp_discov DHCP discover sent. Our MAC: 02:1d:40:06:0b:37 fae 3 mongoose.c:5237:tx_dhcp_discov DHCP discover sent. Our MAC: 02:1d:40:06:0b:37 1396 3 mongoose.c:5237:tx_dhcp_discov DHCP discover sent. Our MAC: 02:1d:40:06:0b:37 177e 3 mongoose.c:5237:tx_dhcp_discov DHCP discover sent. Our MAC: 02:1d:40:06:0b:37 1b66 3 mongoose.c:5237:tx_dhcp_discov DHCP discover sent. Our MAC: 02:1d:40:06:0b:37 1f4e 3 mongoose.c:5237:tx_dhcp_discov DHCP discover sent. Our MAC: 02:1d:40:06:0b:37
@TheMadProgrammersOfficial2 ай бұрын
how does this not have a million views? only 549 i mean come on
@mongoose-networking-library2 ай бұрын
Share it with your colleagues :)
@shef77773 ай бұрын
Design Toolbox no show in Wizard.
@mongoose-networking-library3 ай бұрын
Correct, it was redesigned, and shows now as a bottom panel.
@КонстантинАнтипов-д3о3 ай бұрын
After closing any socket connection program finishes with an error: "Segmentation fault (core dumped)", what can be the reason why it happens?
@mongoose-networking-library3 ай бұрын
Please respond to the gist with details on your environment, and how to reproduce it!
@КонстантинАнтипов-д3о3 ай бұрын
@@mongoose-networking-library I'm using Oracle VM with Ubuntu 24.04 LTS on it. Trying to make tcp communication service for embedded stm32 device, but testing program currently on Ubuntu first. So when I compiling example, that was showed in the video, there are no errors, but when I testing compiled app with netcat or "curl" command it response with current date and time, but slightly after socket close operation, receiving "Segmentation fault (core dumped)" error and app automatically closing (dropping every other connections) and I need to restart it. btw, tested it on my embedded stm32 linux device and got same error.
@КонстантинАнтипов-д3о3 ай бұрын
I'm using Oracle VM with Ubuntu 24.04 LTS on it. Making tcp communication service for embedded stm32 device, but testing program currently on Ubuntu first. So when I compiling example, that was showed in the video, there are no errors, but when I testing compiled app with netcat or "curl" command it response with current date and time, but slightly after socket close operation, receiving "Segmentation fault (core dumped)" error and app automatically closing (dropping every other connections) and I need to restart it. btw, tested it on my embedded stm32 linux device and got same error. UPD: this issue fixes by deleting: "free(c);" at close function, but I think it will cause memory troubles later, maybe there is better way to solve it.
@КонстантинАнтипов-д3о3 ай бұрын
UPD#2: fixed it by replacing in add_connection() function "calloc" of conn *c by this: struct conn *c; c = (struct conn *) calloc(1, sizeof(struct conn)); Now "free(c);" function working properly and do not crushes my app.
@mongoose-networking-library3 ай бұрын
@@КонстантинАнтипов-д3о Thank you! Yes, there was a bug in the connection deletion - gist updated, please confirm!
@shef77774 ай бұрын
invalid storage class for function 'run_mongoose' 123 | static void run_mongoose(void) {
@mongoose-networking-library4 ай бұрын
Please use mongoose.ws/wizard/#/output?board=f746&ide=CubeIDE&rtos=baremetal&file=README.md
@speakee-y3m4 ай бұрын
Amazing tutorial,thank you very much!!
@akshatmodi48434 ай бұрын
Hey Man super nice video, cleared a lot of my questions! Just had this one question, I have raspberry pi with Mosquitto MQTT Broker Server running on it, will this connect and send for example sensor data to the Mosquitto broker?
@mongoose-networking-library4 ай бұрын
Sure. Try it - and if you have any more specific questions, you can ask them on our discord, discord.gg/KfR8E6wSds
@akshatmodi48434 ай бұрын
@@mongoose-networking-library Thanks for the information! Will surely connect on Discord!
@StevenHokins5 ай бұрын
Very nice, thank you
@StevenHokins5 ай бұрын
Very good explanation, thank you ❤
@Galani_R5 ай бұрын
Hi, Sir. I found your video very informative. I have a question regarding the Mongoose library. Is the Mongoose library compatible with the PSoC 6 microcontroller from Infineon?
@mongoose-networking-library5 ай бұрын
Yes. PSoC6's SDK uses LWIP, which provides BSD socket API - and Mongoose can run on top of it.
@RiwenX5 ай бұрын
Wow, thank you. I really needed this
@ziani10016 ай бұрын
I’m used to terms such as segments, packets, frames and bytes the naming of each transfer differs from what I learned that’s a little confusing . Can some one explain the difference?
@mongoose-networking-library6 ай бұрын
Usually, "frames" are used w.r.t. Ethernet, "segments" are used for TCP payload within frames, "packets" and "frames" are usually synonyms. Bytes are, well, bytes. If you have more specific question - we'd be happy to address, just ask!
@cariyaputta6 ай бұрын
Thanks.
@majestif6 ай бұрын
Awesome tutorial, concise and the point. Keep up great work!
@zianwar_6 ай бұрын
Hi Sergey, I appreciate you sharing your knowledge, this content is so good! 1. You give useful historical context; I never knew why the "select" system call exists until now :) 2. You tend to simplify in your explanation and programs which is so delightful.
@mongoose-networking-library6 ай бұрын
You are welcome!
@logauit6 ай бұрын
Thank for this video!
@mongoose-networking-library6 ай бұрын
Glad it was helpful!
@alphaapfel69796 ай бұрын
The struct mip_ipcfg isnt working. It says that everything written in the struct in main.c are no members of mip_ipcfg. I am using an H753 do you know a solution? ../Core/Src/main.c: In function 'main': ../Core/Src/main.c:125:10: error: variable 'ipcfg' has initializer but incomplete type 125 | struct mip_ipcfg ipcfg = { | ^~~~~~~~~ ../Core/Src/main.c:126:20: error: 'struct mip_ipcfg' has no member named 'mac' 126 | .mac = {0xaa, 0xbb, 0xcc, 1, 2, 3}, | ^~~ ../Core/Src/main.c:126:26: error: extra brace group at end of initializer 126 | .mac = {0xaa, 0xbb, 0xcc, 1, 2, 3}, | ^ ../Core/Src/main.c:126:26: note: (near initialization for 'ipcfg') ../Core/Src/main.c:126:26: warning: excess elements in struct initializer ../Core/Src/main.c:126:26: note: (near initialization for 'ipcfg') ../Core/Src/main.c:127:20: error: 'struct mip_ipcfg' has no member named 'ip' 127 | .ip = 0, | ^~ ../Core/Src/main.c:127:25: warning: excess elements in struct initializer 127 | .ip = 0, | ^ ../Core/Src/main.c:127:25: note: (near initialization for 'ipcfg') ../Core/Src/main.c:128:20: error: 'struct mip_ipcfg' has no member named 'mask' 128 | .mask = 0, | ^~~~ ../Core/Src/main.c:128:27: warning: excess elements in struct initializer 128 | .mask = 0, | ^ ../Core/Src/main.c:128:27: note: (near initialization for 'ipcfg') ../Core/Src/main.c:129:20: error: 'struct mip_ipcfg' has no member named 'gw' 129 | .gw = 0}; | ^~ ../Core/Src/main.c:129:25: warning: excess elements in struct initializer 129 | .gw = 0}; | ^ ../Core/Src/main.c:129:25: note: (near initialization for 'ipcfg') ../Core/Src/main.c:125:20: error: storage size of 'ipcfg' isn't known 125 | struct mip_ipcfg ipcfg = { | ^~~~~ ../Core/Src/main.c:130:3: warning: implicit declaration of function 'mip_init' [-Wimplicit-function-declaration] 130 | mip_init(&mgr, &ipcfg, &mip_driver_stm32); | ^~~~~~~~ ../Core/Src/main.c:130:27: error: 'mip_driver_stm32' undeclared (first use in this function); did you mean 'mg_tcpip_driver_stm32h'? 130 | mip_init(&mgr, &ipcfg, &mip_driver_stm32); | ^~~~~~~~~~~~~~~~ | mg_tcpip_driver_stm32h ../Core/Src/main.c:130:27: note: each undeclared identifier is reported only once for each function it appears in ../Core/Src/main.c:125:20: warning: unused variable 'ipcfg' [-Wunused-variable] 125 | struct mip_ipcfg ipcfg = { | ^~~~~ make: *** [Core/Src/subdir.mk:40: Core/Src/main.o] Error 1 "make -j12 all" terminated with exit code 2. Build might be incomplete. 14:28:47 Build Failed. 9 errors, 6 warnings. (took 604ms)
@mongoose-networking-library6 ай бұрын
Please follow this guide: mongoose.ws/documentation/tutorials/device-dashboard/#1-skeleton-firmware
@alphaapfel69796 ай бұрын
@@mongoose-networking-library I still got a problem. I followed your guide, but I get the DHCP request message. I the pins are correct. Do you know what could also be an issue?
@shef77774 ай бұрын
@@alphaapfel6979 Did you fix?
@chrisgoddard92366 ай бұрын
Great video. Very helpful. Would it be possible to make quite a specific tutorial video covering the same end result, but on an RP2040 with a W5500 using FreeRTOS?
@mongoose-networking-library6 ай бұрын
How about just adding RP2040 + W5500 to the mongoose.ws/wizard/ ? The basic principles would stay absolutely the same as already outlined in the video, but the wizard would make a ready-to-go project ready?
@chrisgoddard92366 ай бұрын
@@mongoose-networking-libraryThat would certainly help. I guess my broader request is for a tutorial that covers using Mongoose in FreeRTOS, what may or may not be the gotchas and pitfalls. It doesn't have to be a web server example. It just happens that my platform of choice is RP2040 + W5500. If there is already a tutorial that covers this, my apologies.
@mongoose-networking-library6 ай бұрын
@@chrisgoddard9236 For sure! Actually, using Mongoose in FreeRTOS and in bare metal is absolutely identical. Just run event loop in a separate task, and that's it! The only gotcha is the task's stack size - give it 8k and you're good. Take a look at mongoose.ws/documentation/tutorials/rp2040/pico-w5500/. What environment do you use, RPI C SDK, Arduino or something else?
@chrisgoddard92366 ай бұрын
@@mongoose-networking-library Thanks. I'm using PICO-SDK (In VSCode if that makes a difference!) C++ projects with a few C libraries for good measure.
@rodxor39767 ай бұрын
This can work with the Raspberry pi pico w? For firmware update on running?
@mongoose-networking-library7 ай бұрын
Yes, the outlined strategies would work on rp2040.
@pantelisEVs7 ай бұрын
Amazing material on how your stack works and to get a general feeling on how network stacks practically work. Thank you for your time!
@shefiroth127 ай бұрын
finished the vid, very useful. thanks
@Embedded_Chuy7 ай бұрын
is there a Tool that could to turn an HTML, CSS & JS into an array automatically ???
@mongoose-networking-library7 ай бұрын
Yes: mongoose.ws/documentation/tutorials/core/embedded-filesystem/ The other option is to use Mongoose Wizard, mongoose.ws/wizard/ - which generates everything for you.
@Basicguy17988 ай бұрын
I am an experienced embedded sw dev, not on the networking side per se but close enough. This is one of the best if not the best tutorial for someone who starts from ZERO as well as someone who just wants to know about networking related setup and config... Fantastic
@mongoose-networking-library8 ай бұрын
Thank you! And more is coming!
@Basicguy17988 ай бұрын
@@mongoose-networking-library oh wow... Would be waiting... Also would be glad if there is any way of getting involved
@ZagotovkaStm328 ай бұрын
Thank you for the detailed video!!! I'm trying to replicate all the steps according to your video, but I encountered a problem in the 'Basic building block' section kzbin.info/www/bejne/qp20Yp5qfJV6gNEsi=nXDqj7ogVE83Ibfb&t=2838 Functions and structures have probably changed!?" 1) undefined reference to `mq_mqtt_sub' 2) 'struct mg_str' has no member named 'ptr' Could you please provide guidance on how to resolve these problems?
@mongoose-networking-library8 ай бұрын
mg_mqtt_pub() (g, not q) ptr -> buf Hope that helps!
@ankiy56898 ай бұрын
Wait, it was that easy? Thank you 🫠
@mongoose-networking-library8 ай бұрын
Thanks! The concept is simple, but the details of implementation are not so. You can take a look at the code walk-through video, which explains this concept on a real world example: kzbin.info/www/bejne/rma4qmB5ft9mac0 . That one is a complex video.
@ankiy56898 ай бұрын
@@mongoose-networking-library I had an Cybersecurity exam today, and thankfully i'd be able to solve a question on Physical layer of OSI model just because i remembered this video. I'll check it out 😋 Thanks again!!
@Ema-pb3po8 ай бұрын
I'm trying to run mongoose-library with STM32H735G-DK, something isn't working properly. can you please help