@liemph Thanks for the feedback and i hope my solution helps!
I had asked the M5Stack support for that problem and they wrote me "The PSRAM was soldered on to the board. Cant disable it." That implies in my understandig that the Port C cannot used since the PSRAM uses the same pins as Port C. And looking closer to the M5Stack support-replies above shows no contradicition to my assumes but only some unclear statements and regrets.
For me is no doubt that the Port C of the "Fire" is a kind of rudiment of earlier M5Stack versions. The Port is not usable in the "Fire".
Posts made by buhhe
-
RE: No data on Grove C/UART2 ...
-
RE: No data on Grove C/UART2 ...
Thanks for the advice. Honestly, 21 days earlier it would have been appreciated and it doesn't contain any additional information after my post.
My solution works fine and maybe it helps other struggling people in this mainly undocumented eco system.
The remaining question is why connects M5Stack the Grove Port C in the Fire in a way that makes it totally useless?
And why is the Grove Port C documented here even it serves only decoration purposes instead:
https://docs.m5stack.com/#/en/core/fire ? -
RE: No data on Grove C/UART2 ...
I've got some insights and found a solution now.
-
You can't use Grove Port C for serial communication. You can't use Port C for anything. Since the PSRAM is soldered to the board it's not pssible to disable it. The PSRAM uses the same pins as Port C (16, 17). My conclusion is: forget Port C (don't no why it is not connected to other -usable- pins at the M5Stack Fire PSRAM model).
-
Grove Port C is not the only port usable for serial communication (exept the USB port). You can e.g. use Port B. Therefore you have to allocate the pins of Port B (26, 36). This short example works with an external GPS reveiver connected to Grove Port B:
#include <M5Stack.h>
#define GPIO_PIN26 26
#define GPIO_PIN36 36HardwareSerial GPSRaw(2);
void setup()
{
M5.begin();
GPSRaw.begin(9600, SERIAL_8N1,GPIO_PIN36,GPIO_PIN26);
Serial.println("Started ...");
}void loop()
{
if(GPSRaw.available())
Serial.write(GPSRaw.read());
} -
-
No data on Grove C/UART2 ...
Hi,
For days now i've tried to get serial data via UART2/Grove Port-C, without any success.
I have a M5 Fire, and the external data source is an Ublox NEO M8N, sending its data with 9600Baud, 8N1.
PSRAM is disabled in the Arduino-IDE (since yesterday V.1.8.10).
For checking the data coming from the Ublox i've connected the Grove plug (coming from the Ublox) with my PC and and an Arduino. Both works fine. They get lot of NMEA data. Even when the receiver gets no valid satellite data it sends NMEA data. Only the M5 gets not a Bit.
Neither Serial2.begin()/Serial2.read() nor GPSRaw(2)/GPSRaw.begin()/GPSRaw.read() leads to success.
Is there a way to check the properly working of uart2?
Ideas and advices are very apprecited.Thanks.