Serial communication does not work through pin 14 RX

Hello I am trying to communicate with my cubecell board through pin 14 and 15 RX TX but the RX pin 14 does not work, cubecell does not receive anything, if I get data from TX pin 15, I feed the board by VIN with 5V, if I connect the USB cable and I communicate through the CP2102 everything works well, I measured continuity with a multimeter and everything is fine.

I have 2 plates and the 2 do not work

I am using the AB01 board and the firmware load version 3.1.1 with the WAN configurator


we have updated the Development environment.

please git pull(git version).

Hello, thanks for answering, excuse me, I’m new to this, could you tell me how I should load it from the arduino ide, since I previously followed the instructions from the heltec page to configure it, now what should I do?, I can no longer use the WAN configurator ?

Hello, I uninstalled the arduino ide and reinstalled it following this guide:

I still have the same problem, please I need help


we have tested it, it works fine.

this is our test code:

  1. maybe you can add a Pull-up resistor(4.7k) with the RX pin.

  2. could you post your test code?

Hello thanks for being interested in my topic, connect a 4.7k pull up resistor and nothing happened, change to 1k and it started working, but it does not recognize any command, to all AT commands it responds: + ERROR: imput format error.
I attach some screenshots

as for the code I am using the LORAWAN example provided in the Arduino IDE

#include "LoRaWan_APP.h"
#include "Arduino.h"

 * set LoraWan_RGB to Active,the RGB active in loraWan
 * RGB red means sending;
 * RGB purple means joined done;
 * RGB blue means RxWindow1;
 * RGB yellow means RxWindow2;
 * RGB green means received done;

/* OTAA para*/
uint8_t devEui[] = { 0x00, 0xBB, 0x93, 0xB0, 0x9A, 0x01, 0x51, 0xD3 };
uint8_t appEui[] = { 0x70, 0xB3, 0xD5, 0x7E, 0xD0, 0x03, 0xA5, 0x73 };
uint8_t appKey[] = { 0xBE, 0x55, 0x84, 0xD5, 0x43, 0x34, 0xDA, 0xC5, 0x8F, 0x48, 0x3A, 0xE3, 
0xCD, 0xD4, 0xD4, 0xB5 };

/* ABP para*/
uint8_t nwkSKey[] = { 0x15, 0xb1, 0xd0, 0xef, 0xa4, 0x63, 0xdf, 0xbe, 0x3d, 0x11, 0x18, 0x1e, 0x1e, 
0xc7, 0xda,0x85 };
uint8_t appSKey[] = { 0xd7, 0x2c, 0x78, 0x75, 0x8c, 0xdc, 0xca, 0xbf, 0x55, 0xee, 0x4a, 0x77, 0x8d, 
0x16, 0xef,0x67 };
uint32_t devAddr =  ( uint32_t )0x007e6ae1;

/*LoraWan channelsmask, default channels 0-7*/ 
uint16_t userChannelsMask[6]={ 0xFF00,0x0000,0x0000,0x0000,0x0000,0x0000 };

/*LoraWan region, select in arduino IDE tools*/
LoRaMacRegion_t loraWanRegion = ACTIVE_REGION;

/*LoraWan Class, Class A and Class C are supported*/
DeviceClass_t  loraWanClass = LORAWAN_CLASS;

/*the application data transmission duty cycle.  value in [ms].*/
uint32_t appTxDutyCycle = 15000;

/*OTAA or ABP*/
bool overTheAirActivation = LORAWAN_NETMODE;

/*ADR enable*/
bool loraWanAdr = LORAWAN_ADR;

/* set LORAWAN_Net_Reserve ON, the node could save the network info to flash, when node reset 
not need to join again */

/* Indicates if the node is sending confirmed or unconfirmed messages */
bool isTxConfirmed = LORAWAN_UPLINKMODE;

/* Application port */
uint8_t appPort = 2;
* Number of trials to transmit the frame, if the LoRaMAC layer did not
* receive an acknowledgment. The MAC performs a datarate adaptation,
* according to the LoRaWAN Specification V1.0.2, chapter 18.4, according
* to the following table:
* Transmission nb | Data Rate
* ----------------|-----------
* 1 (first)       | DR
* 2               | DR
* 3               | max(DR-1,0)
* 4               | max(DR-1,0)
* 5               | max(DR-2,0)
* 6               | max(DR-2,0)
* 7               | max(DR-3,0)
* 8               | max(DR-3,0)
* Note, that if NbTrials is set to 1 or 2, the MAC will not decrease
* the datarate, in case the LoRaMAC layer did not receive an acknowledgment
uint8_t confirmedNbTrials = 4;

/* Prepares the payload of the frame */
static void prepareTxFrame( uint8_t port )
/*appData size is LORAWAN_APP_DATA_MAX_SIZE which is defined in "commissioning.h".
*appDataSize max value is LORAWAN_APP_DATA_MAX_SIZE.
*if enabled AT, don't modify LORAWAN_APP_DATA_MAX_SIZE, it may cause system hanging or 
*if disabled AT, LORAWAN_APP_DATA_MAX_SIZE can be modified, the max value is reference 
to lorawan region and SF.
*for example, if use REGION_CN470, 
*the max value for different DR can be found in MaxPayloadOfDatarateCN470 refer to 
DataratesCN470 and BandwidthsCN470 in "RegionCN470.h".
appDataSize = 4;
appData[0] = 0x00;
appData[1] = 0x01;
appData[2] = 0x02;
appData[3] = 0x03;

void setup() {
deviceState = DEVICE_STATE_INIT;

void loop()
switch( deviceState )
		deviceState = DEVICE_STATE_JOIN;
		prepareTxFrame( appPort );
		deviceState = DEVICE_STATE_CYCLE;
		// Schedule next packet transmission
		txDutyCycleTime = appTxDutyCycle + randr( 0, APP_TX_DUTYCYCLE_RND );
		deviceState = DEVICE_STATE_SLEEP;
		deviceState = DEVICE_STATE_INIT;

the configuration is this


we have tested it again with LoRaWan.ino.The result is not good.

Currently, the solution is:remove the CP2102 chip.

we will updated the hardware. the hardware version will be V1.2. The new version(V1.2) will be released in the next few weeks.

We tried 3 different serial chips again, they all can communicate normally.

I do not understand what it means, I have 4 plates and it does not work for me in any


Our previous test method is:Use AB01 to communicate with a serial port module. The result is not good.

After that, we tried more different serial port modules, it works fine.

Maybe you can try other serial port modules, Or wait for our latest version of the hardware to be released.