Upcoming maintenance
Dear Customers and Partners.
This website will be undergoing scheduled maintenance on June 14, 2023. Please be aware there may be disruption to the developer portal website and associated services during the scheduled maintenance period.
This upgrade is essential to ensure the continued performance, reliability, and security of Developer World.
We apologize for any inconvenience.
WiFi Add board: Connection Problem
-
Hi @CamilaSouza. Thank you for your reply. I already solved the problem. It was related with the wi-fi board version. I had to modify the files GS2200Hal.cpp and GS2200Hal.h in order to be able to recognise the type of the board i am using. Now i am facing problems regarding the AT commands, for some of them i got an answer for the module but for others i go INVALID INPUT as an answer. I dont know how to correctly implement MQTT protocol over SSL and there is no an example on the library of this module regarding this topic. I am clueless right now.
-
Hi, @jp04
Might have found the answer
Take a look at the back of your board.
Is there a red dot or a yellow dot?Red dot:
Yellow dot:
-
@CamilaSouza Hi. Thank you for your support. Already checked that. But now the main problem is how to upload the certificates related to SSL connections by using AT command. I even contacted the manufacturer of the wifi board but they told me that the support of that board had already ended.
-
Oh, so you already saw the code patches in this website:
https://idy-design.com/product/is110b.htmlI'm sorry you got no support from the manufacturer. I'm investigating internally what to do about this situation.
I've tagged in another topic where a user is trying to achieve the same thing, but with a different wifi board.
I thought you two might benefit from getting in touch since your projects might have similar components. -
Hi, @jp04
I'm investigating the issue with the lack of support for the Wi-Fi add on board. Let me ask you a follow-up question.
About the manufacturer you contacted, was it the board manufacturer or the GS2200M module manufacturer?Which company did you talk to?
-
@CamilaSouza Hi. Thanks for keep helping me with this topic. Yes, I contacted the GS2200M module manufacturer (Telit) and they asked me to contact the supplier (IDY) instead.
-
I'm trying to contact IDY to see if they have any answers.
I'll let you know if they answer me. -
@CamilaSouza Hi. I was thinking in load the certificates in a SD Card for the SSL connection. Do you know is there a compatible SD card module that I can use instead of the SPRESENSE extension board ?
-
@jp04 Do you use the SD Card only for the certificates?
It would be much easier to use the internal flash at "/mnt/spif/...". I had them on SD card too in the beginning but I copied them to the flash memory.
Only if you want to replace the certificates, a SD Card is convenient. -
In case you really prefer to use the SD card:
We don't have any official SD card reader that has been tested and approved by our engineers to give as a recommendation.
But you can try something like this:
https://www.elfa.se/en/microsd-card-breakout-board-adafruit-254/p/30091189A microSD breakout that you can communicate via SPI.
-
@jens6151-0-1-1 Hi. Thanks for your reply. Can you show me on your code how did you do that? Do i just have to save them in that path? How can I read them? I am sorry if this questions sounds silly but I a little lost on how accomplish this.
-
@jp04
Actually I copied it to SD card and used then the copy command (cp) of nsh (NuttX Shell).As you do not have an SD card I would recommend this sample to download to SPI flash.
- Replace SRC_start and SRC_size with your certificate.
- Manipulate DSP_MOUNTPT_SPIFLASH with the path to copy it to and dsplist with the file name.
- Flash and start the script. Choose SPI-Flash
Accessing the data is a simple read using open(...) from stdio.h or you use the File library.
See the File library here.Hint:
Do not useint File::read() ;
but
int File::read(void *buf, size_t nbyte) ;
It will be 100x faster.
-
@jens6151-0-1-1 Hi. I am sorry for keep bothering. I tested the following code:
#include <stdio.h> #include <sys/stat.h> #include <unistd.h> // Include each file generated by bin2c #include "SRC.h" #define DSP_MOUNTPT_SPIFLASH "/mnt/spif/BIN" #define _FILEELEM(elem) { \ .name = #elem, \ .addr = elem##_start, \ .size = &elem##_size, \ } struct fileinfo_s { const char *name; const unsigned char *addr; const size_t *size; }; struct fileinfo_s dsplist[] = { // Add each file here _FILEELEM(SRC), }; void setup() { // put your setup code here, to run once: unsigned int i; int ret; FILE *fp; char dirpath[64] = {0}; char filepath[64] = {0}; Serial.begin(115200); Serial.println("SPI-Flash"); strncpy(dirpath, DSP_MOUNTPT_SPIFLASH, sizeof(dirpath)); mkdir(dirpath, 0777); for (i = 0; i < sizeof(dsplist) / sizeof(dsplist[0]); i++) { snprintf(filepath, sizeof(filepath), "%s/%s", dirpath, dsplist[i].name); Serial.print("Install: "); Serial.print(filepath); unlink(filepath); fp = fopen(filepath, "wb"); ret = fwrite(dsplist[i].addr, *dsplist[i].size, 1, fp); Serial.println((ret) ? " Done." : " Fail."); fclose(fp); }
and got the following answer:
17:09:13.834 -> SPI-Flash 17:09:13.834 -> Install: /mnt/spif/BIN/SRC Done.
I would like to know if there is a way to list all the files located at /mnt/spif/BIN. Thanks a lot for all your help.
-
Update on support for WiFi Add on Board iS110B:
I contacted IDY and was told the support for this board was handed to Restar Electronics Corporation.
https://www.restar-ele.com/I sent them a message asking for support on the issue of uploading SSL certificates to the board.
Will keep you posted on the issue. -
@jp04 I suggest you install the nsh sample
You will get a shell and have commands like cd (change directory), ls (list directory), mv (move), rm (remove) and cat (prints the content) available. See a list of all commands by typing "help".
ls /mnt/spif/BIN cat /mnt/spif/BIN/SRC
Seems like you named the certificate file "SRC"".
-
-
@CamilaSouza Thank you for contacting them. I will keep follow this topic. I hope they can help me to solve this issue.
-
@jens6151-0-1-1 Thank you for your support. I managed to check the files located at the flash memory. I had to do some modifications to the code of the example due to the following error compile messages:
error: #error "Core selection is wrong!!"
Solution. Comment the line 22: #error "Core selection is wrong!!"
After that I got the following compile error:
Compilation error: no matching function for call to 'MPClass::begin()'
Solution. Add the following:
int subcore = 1;
and
MP.begin(subcore);
instead of
MP.begin();
After that the code runs without any problem.
-
Hello @jp04
I received a response from Lester Electronics.
They said their technical support is limited, but they did point me to a good documentation.You can find the manual in this link.
https://www.roundsolutions.com/media/pdf/700-0052_GS2101M-S2W-Adapter-Command-Reference-Guide-r1.0.pdfCheck section "7.2.1 Certificate Addition".
-
@CamilaSouza Hi. Thanks for all your help. I found that document before, and the problem with that command (AT+TCERTADD) is that they use the Tera Term VT interface to add the certificate after this command is sent. I dont know how to do it from Arduino IDE because after using that command and trying to connect to the server it always appears that it can't find the certificates, despite the fact that the "AT+TCERTADD" command shows me an "OK" after executing it. I do not know what else can I do.
-
@jp04 I assume you are using Serial.print() to send the command, right? (Or Serial5, Serial3)
const unsigned char myCertificate[] = { 0x7F, 0x45, 0x4C, 0x46, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x28, 0x00, 0x01, 0x00, 0x00, 0x00, .... } const size_t myCertificateSize = sizeof(myCertificate); Serial5.printf("AT+TCERTADD=SSL_CA,0,%d,1\r\n", myCertificateSize); sleep(1); Serial5.write(myCertificate, myCertificateSize); sleep(1); Serial5.printf("AT+CERTINFOGET=SSL_CA\r\n");
I do not have the board. I did not compile above.
Please check if \r\n is the correct termination. Serial.write writes the bytes. This can be also file content from a SD card or Flash Memory.I was evaluating buying this wifi board but I am not sure buying hardware that is already EOL. Could you please tell me how the performance of this wifi board is? How long does it take to send large data like camera images?