I assume that I a am not the first one to ask, but how can I select other fonts? Thanks
Best posts made by HappyUser
-
Core-Ink --> Any other fonts available besides the two included
-
RE: SIM7080G CAT-M/NB-IoT+GNSS Unit Issues
#include <HardwareSerial.h>
HardwareSerial Comm(1);Comm.begin(115200, SERIAL_8N1,TX_pin,RX_pin); // TX RX
Comm.print("AT+IPR=115200\r"); // Set text mode
Last command should return an OK. If not, it could be that you have mixed up TX and RX pins or a power issue.
To read the reply from the module you could use something like this :
while (millis()<wait_until)
{
while (Comm.available())
{
ccc=Comm.read();
//Serial.print(ccc);
if (k<buffer_size-1)
{
Receive_buffer[k]=ccc;
k++;
}
}
Receive_buffer[k]=NULL;
if (strstr(Receive_buffer,StopCharArray)!=NULL)
{
//Serial.println("OK found");
// SIM7600_Error=0;
Receive_buffer[k]=NULL;
return false;
}
} -
Atom Echo. Format and create sound file
I have been googling around, no understandable answers found. But I am sure I am not the only one with this interest.
Could anyone explain the binary format of the sound stream used in the echo? And also nice to have : howto proces a mp3 or wav file into the required binary array to be used in the Echo?
Thanks. -
RE: STAMP CATM does not respond (Solved, HTML Get and Send Email)
@happyuser
A few tips who want to start with this module:
1] Remove PIN code, makes life much easier
2] Download the application notes for this module. Both the complete AT instruction set and the note on HTTP application. This document provides clear instructions how to use HTTP, GET, POST etc
3] I experienced ERROR response on SHCONF command. Googled around, saw numerous hits. It appears that switching off and on power does the trick for me. I did not see a reset AT instruction
4] I got it all working with these instructions :
Serial.println("Begin..");
//pinMode(RXD2, INPUT);
//pinMode(TXD2, OUTPUT);
//showLog("Reset Module...");
//SIM7020
//DTU.Init(&Serial1,36, 26);
//Serial1.begin(115200, SERIAL_8N1, RXD2, TXD2);
//Serial1.begin(115200, SERIAL_8N1, 26, 0);
Serial1.begin(115200, SERIAL_8N1, 0, 26); // SIM7080Gdelay(300); //Serial1.print("ATI\r\n"); //Serial1.println("AT+CSQ\r\n"); //Serial1.println("AT+IPR?\r\n"); Serial1.print("ATZ\r\n"); // Reset to default delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+IPR=115200\r\n"); // Reset to default delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CCLK?\r\n"); // Reset to default delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHSSL=1,\"\"\r\n"); // Reset to default delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CFUN=1\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CMGF=1\r\n"); // text mode delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500);
// Om http te testen
Serial1.print("AT+CFUN=0\r\n"); // Disable RF delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); //Serial1.print("AT+CGDCONT=1,\"IP\",\"internet\",,0,0\r\n"); // Serial1.print("AT+CGDCONT=1,\"IP\",\"internet\"\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CFUN=1\r\n"); // Enable RF delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CGATT?\r\n"); // Check PS Service delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CGNAPN\r\n"); // Query the APN service delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CNCFGN=0,1,\"internet\",,0,0\r\n"); // Before activation please delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CNACT=0,1\r\n"); // Activate delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CNACT?\r\n"); // Query the APN service delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHCPARA\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHCONF=?\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHCONF?\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500);
// Serial1.print("AT+SHCONF="URL","https://api.thingspeak.com/update"\r\n"); // Query the APN service
//Serial1.print("AT+SHCONF="URL","httpbin.org"\r\n"); // Query the APN service
//Serial1.print("AT+SHCONF="URL","http://34.193.132.77"\r\n"); // Query the APN service//SIM7600_Error=1; //for (int i=0;i<10;i++) // { //Serial1.print("AT+SHCONF=\"URL\",\"http://www.google.com\"\r\n"); // Query the APN service Serial1.print("AT+SHCONF=\"URL\",\"http://www.httpbin.org\"\r\n"); // Query the APN service delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(2000); // if (SIM7600_Error=0) {break;} // } Serial1.print("AT+SHCONF=\"BODYLEN\",1024\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHCONF=\"HEADERLEN\",350\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHCONN\r\n"); // Query the APN service delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHSTATE?\r\n"); // Query the APN service delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHCHEAD\r\n"); // Query the APN service delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHAHEAD=\"User-Agent\",\"curl/7.47.0\"\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHAHEAD=\"Cache-control\",\"no-cache\"\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHAHEAD=\"Connection\",\"keep-alive\"\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHAHEAD=\"Accept\",\"*/*\"\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHREQ=\"/get?user=jack&password=123\",1\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SHREAD=0,391\r\n"); // delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500);
-
RE: Remote Sensing with Core2 (UIFlow) via LORA Point-to-point
Interesting question. M5Stack provides P2P LoRa example along with their documents. My suggestion is to make a proof of principle what you need. Then try the max achievable distance. Mqtt is another challenge but also many examples on GitHub.
-
RE: ATOM Lite Display not display in smallHd 503
@cepics said in ATOM Lite Display not display in smallHd 503:
SmallHD503 datasheet
I read that you are also struggling with this (5 inch?) display. I am facing the same issues with Waveshare 5inch display. Although I have the very strong feeling that the software on the M5AtomDisplay as shipped is different from the GitHub factory test. Have you been able to get things working?
-
RE: STAMP CATM does not respond (Solved, HTML Get and Send Email)
Okay, Had a lot of <bad language> getting sending email working.
Than I realized that powering the module straight from the M5StickC appeared to causes glitches. I have placed a capacitor on top of the 5Volt to the module and now I am able to send emails also. For those that are interested, here is the code (with a lot of overhead no doubt, that works for me ):
Serial1.begin(115200, SERIAL_8N1, 0, 26); // SIM7080Gdelay(300); //Serial1.print("ATI\r\n"); //Serial1.println("AT+CSQ\r\n"); //Serial1.println("AT+IPR?\r\n"); Serial1.print("ATZ\r\n"); // Reset to default delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CREBOOT\r\n"); // Reset to default delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500);
/*
Serial1.print("AT+CMEE=2\r\n"); // Verbose error printing ??
delay(10);
Read_Response_OK(5000);
Serial.println(Receive_buffer);
delay(500);
*/Serial1.print("AT+IPR=115200\r\n"); // SetTE-TAFixedLocalRate delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CCLK?\r\n"); // Clock delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500);
// Upload a file
Serial1.print("AT+CFSINIT\r\n"); // Clock delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500);
String Command_Str;
Command_Str="AT+CFSWFILE=0,"0001.txt",0,";
Command_Str=Command_Str+FileSize;
Command_Str=Command_Str+",10000\r\n";
Serial.println(Command_Str);Serial1.print(Command_Str); delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); for (int i=0;i<FileSize;i++) {Serial1.print(jpg_small[i]);} Serial1.print("AT+CFSGFIS=0,\"0001.txt\"\r\n"); // delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CPIN?\r\n"); // Ccheck SIM delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CSQ\r\n"); // Check signal delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CFUN=0\r\n"); // Set Phone Functionality isable RF delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); //Serial1.print("AT+CGDCONT=1,\"IP\",\"internet\",,0,0\r\n"); // Serial1.print("AT+CGDCONT=1,\"IP\",\"internet\"\r\n"); // Define PDP Context delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CFUN=1\r\n"); // Set Phone Functionality Enable RF delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CGATT?\r\n"); // Attach or detach from GPRS service delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CGNAPN\r\n"); // Get Network APN in CAT-M or NB-IOT Query the APN service delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CNCFGN=0,1,\"internet\",,0,0\r\n"); // Before activation please delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CNACT=0,1\r\n"); // APP Network Active Activate delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+CNACT?\r\n"); // APP Network Active Activate Query the APN service delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+EMAILCID=0\r\n"); // Set parameters of email delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+EMAILTO=30\r\n"); // Set parameters of email time out delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500);
/*
Serial1.print("AT+EMAILSSL=2,0,"email.cer","email.pem"\r\n"); // Set Encrypted mail
delay(10);
Read_Response_OK(5000);
Serial.println(Receive_buffer);
delay(500);
*/
// https://randomnerdtutorials.com/esp32-send-email-smtp-server-arduino-ide/Serial1.print("AT+SMTPSRV=\"smtp-mail.outlook.com\",587\r\n"); // Set SMTP server delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500);
//SMTP Password: (you need to use a Google App Password, not your Gmail password!)
//https://support.google.com/accounts/answer/185833
// https://www.hesk.com/knowledgebase/index.php?article=72Serial1.print("AT+SMTPAUTH=1,\"my.email.com\",\"myApppassword\"\r\n"); // Set username and password
delay(10);
Read_Response(5000);
Serial.println(Receive_buffer);
delay(500);Serial1.print("AT+SMTPCS=\"ASCII\"\r\n"); // Set Email SSL function delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+EMAILSSL?\r\n"); // Read Email SSL function delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+EMAILSSL=2,0,\"\",\"\"\r\n"); // Set Email SSL function delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+EMAILSSL?\r\n"); // Read Email SSL function delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SMTPFROM=\"my.email@outlook.com\",\"Fakename\"\r\n"); // Set username and password delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SMTPRCPT=0,0,\"Sendto@mac.com\",\"john\"\r\n"); // Set recipient To: delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500); Serial1.print("AT+SMTPSUB=\"Test4\"\r\n"); // Set recipient Bcc: delay(10); Read_Response_OK(5000); Serial.println(Receive_buffer); delay(500);
String Email_Body="This is a new Email";
int Body_size;
Body_size=Email_Body.length();
Serial.print("Body size is :");
Serial.println(Body_size);Serial1.print("AT+SMTPBODY=19\r\n"); // Set recipient Bcc: delay(10); Read_Response_OK(5000); //Serial.println(Receive_buffer); //delay(500); Serial1.print(Email_Body); //Serial1.print("\r\n"); delay(10); Read_Response(5000); Serial.println(Receive_buffer); delay(500);
char ccc;
Serial.println("AT+SMTPSEND");
Serial1.print("AT+SMTPSEND\r\n"); //
delay(10);
while (Serial1.available())
{
ccc=Serial1.read();
Serial.print(ccc);
}/*
Read_Response(5000); //Geen OK
Serial.println(Receive_buffer);
delay(500);
*/
Serial.println("And we are done");
while (1) {delay(300);} -
RE: STAMP-C3 problem with Serial2
Solved
I don't why I have been klinging on to Serial2, it got me in all kind of testing out, but the solution is to use Serial 1.
Latest posts made by HappyUser
-
CatM+GNSS, how much power from port C
Dear all,
Do we have any idea how much power can be provided by the port C (if module is powered externally obviously). Use case could be powering the controlling ESP with port C connection.
Thanks -
RE: M5Dial can not upload
On OSX i often have to unplug the usb cable in my laptop. Or even worse, switth from one usb to the other usb connector. Disturbing behaviour, but gotten used to it.
-
RE: ATOM Lite G26 / G32 for One Wire application
@Uzr66 It might be helpful if you share the code with us and elaborate a bit further.
-
RE: M5Dial, no wake up with button
Thanks to Felix.
I also tried his solution of removing the 5V pin from the M5Stamp, power down and wake up with button works perfectly. Even in combination with power timer sleep. Very low current. A big relief for us, save us a lot of time (and €) to find another solution for an unexpected behaviour. Many thanks to Felix!
Btw, you really have to cut the 5 volt pin short because otherwise it still makes contact. -
RE: M5Dial, no wake up with button
Final question : how did you enter sleep mode or power down?
-
RE: M5Dial, no wake up with button
Wow, I take full responsibility for my own. But how did you do that? Please elaborate.
I assume you removed the 5volt pin of the M5Stamp. ? -
RE: M5Dial, no wake up with button
Thank you all for sharing your insights. I hope it offers help to others.
For us it means back to the drawing board.
Regards to you all.
Btw, M5Din meter is also not an option because I recognize the same electronic scheme. -
RE: M5Dial, no wake up with button
@cognitive5525 Indeed, via the green power terminals.
-
RE: M5Dial, no wake up with button
@cognitive5525 Correct, all my test are done solely with external power.