I finally managed to get the module going by implementing Softwareserial. It turns out NodeMCU can't handle another uart connection at TX0/RX0. Another thing to try would be Serial.Swap but being a novice I still can't figure out how to do it for example here (hopefully without loosing the serial terminal):
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
// Select your modem:
//#define TINY_GSM_MODEM_SIM800
#define TINY_GSM_MODEM_SIM900
//#define TINY_GSM_MODEM_M590
//#define TINY_GSM_MODEM_A6
// Default heartbeat interval for GSM is 60
// If you want override this value, uncomment and set this option:
#define BLYNK_HEARTBEAT 8
#include <TinyGsmClient.h>
#include <BlynkSimpleSIM800.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "token";
// Your GPRS credentials
// Leave empty, if missing user or pass
char apn[] = "My Telecom";
char user[] = "";
char pass[] = "";
// Hardware Serial on Mega, Leonardo, Micro
// #define SerialAT Serial1
// or Software Serial on Uno, Nano
#include <SoftwareSerial.h>
SoftwareSerial SerialAT(14, 12); // RX, TX
TinyGsm modem(SerialAT);
void setup()
{
// Debug console
Serial.begin(115200);
delay(10);
// Set GSM module baud rate
SerialAT.begin(115200);
delay(3000);
// Restart takes quite some time
// To skip it, call init() instead of restart()
Serial.println("Initializing modem...");
modem.restart();
// Unlock your SIM card with a PIN
//modem.simUnlock("0000");
Blynk.begin(auth, modem, apn, user, pass);
}
void loop()
{
Blynk.run();
}
I'm aware of the 2G situation but it looks like 2G will be still available in most countries in Europe.