Hello,
I’m building two projects with the Wireless Stick Lite (RC, at 915MHz) and Wireless Stick (AL, at 433MHz) modules. Before the compilation (Arduino IDE 1.8.19) I set the IDE board and LoRaWan as appropriate, and also the frequency setting in the code. I tested the projects using multiple modules, both assembled on the prototype or not, and multiple USB cables.
Both prototypes are built on the same specially-designed PCB. GPIOs 2, 4, 12, 13, 15, 17, 23, 32, 33, 34, 35, 37, 38 and 39 are connected to 10K pullup resistors and switches’ contacts that can ground the line. The pull-up resistors are connected to the module’s 3.3V output. The circuit is fed from the computer through USB.
-
RC project: all the pulled-up inputs are used. The test application (see below) scans them and prints the results. GPIOs 34, 35, 36 and 38 are not responding. I’d appreciate your kind help in reviewing the list and ensuring I broke no rule.
-
AL project: Only GPIO15 shall be used. The compilation and run are finished OK, but I get the following message that appears before the ESP32 starts running, causing me to suspect the modules.
Rebooting... Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled Core 1 register dump: PC : 0x40080f75 PS : 0x00060130 A0 : 0x800d0da1 A1 : 0x3ffb1f60 A2 : 0x00000007 A3 : 0x00000002 A4 : 0x0800001c A5 : 0x00000003 A6 : 0x00000001 A7 : 0x00000000 A8 : 0x3f405358 A9 : 0xffffffff A10 : 0xffffffff A11 : 0x00000064 A12 : 0x08000000 A13 : 0x00000003 A14 : 0xffffffff A15 : 0x00000000 SAR : 0x0000001a EXCCAUSE: 0x0000001c EXCVADDR: 0xffffffff LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000 Backtrace: 0x40080f75:0x3ffb1f60 0x400d0d9e:0x3ffb1f80 0x400d2587:0x3ffb1fb0 0x40088215:0x3ffb1fd0
Testing code:
#include <Arduino.h>
#define TxPowerLevel 5
#define frequency 915E6
const uint8_t gpioScanListIn[] = { 2, 4, 12, 13, 15, 17, 23, 32, 33, 34, 35, 37, 38, 39};
const uint8_t gpioScanListOut[] = { 0, 1, 3, 5, 6, 7, 8, 10, 11, 12,
14, 16, 18, 19, 21, 22, 25, 26, 27, 36 };
/*********************************************************/
void setup()
{
Serial.begin(9600); // initialize serial
while (!Serial);
for (uint8_t gpioInd = 0; gpioInd < sizeof(gpioScanListOut); gpioInd++)
{
pinMode(gpioScanListOut[gpioInd], OUTPUT); // Define as input
digitalWrite(gpioScanListOut[gpioInd], 0);
}
for (uint8_t gpioInd = 0; gpioInd < sizeof(gpioScanListIn); gpioInd++)
pinMode(gpioScanListIn[gpioInd], INPUT_PULLUP); // Define as input
}
/*********************************************************/
void loop()
{
Serial.println("Scan start " );
for (uint8_t gpioInd = 0; gpioInd < sizeof(gpioScanListIn); gpioInd++)
{
uint64_t draft = (1ULL << gpioInd); // Current bit location in the Dword
if(!digitalRead(gpioScanListIn[gpioInd])) // Read the pin (active low)
{
currentState |= draft;
Serial.print("At index " + String(gpioInd));
Serial.print(" (GPIO=#" + String(gpioScanListIn[gpioInd]));
Serial.print(") result=");
Serial.println(!digitalRead(!gpioScanListIn[gpioInd]));
}
}
delay(3000);
}