From 889d6b53c4d32df9d89227c2505f93801228ef5f Mon Sep 17 00:00:00 2001 From: atc1441 Date: Tue, 26 Mar 2024 22:20:13 +0100 Subject: [PATCH] Added build option for Espressif ESP Thread Border Router /Zigbee Gateway including ESP32-H2 AP Firmware --- .../Arduino_OpenEPaperLink_H2_AP.ino | 786 ++++++++++++++++++ .../Arduino_OpenEPaperLink_H2_AP/led.cpp | 44 + ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/led.h | 6 + .../Arduino_OpenEPaperLink_H2_AP/proto.h | 190 +++++ .../Arduino_OpenEPaperLink_H2_AP/radio.cpp | 113 +++ .../Arduino_OpenEPaperLink_H2_AP/radio.h | 11 + .../second_uart.cpp | 117 +++ .../second_uart.h | 13 + ESP32_AP-Flasher/platformio.ini | 46 + binaries/ESP32-H2/OpenEPaperLink_esp32_H2.bin | Bin 0 -> 306144 bytes binaries/ESP32-H2/bootloader.bin | Bin 0 -> 14448 bytes binaries/ESP32-H2/firmware.json | 12 + binaries/ESP32-H2/partition-table.bin | Bin 0 -> 3072 bytes 13 files changed, 1338 insertions(+) create mode 100644 ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/Arduino_OpenEPaperLink_H2_AP.ino create mode 100644 ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/led.cpp create mode 100644 ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/led.h create mode 100644 ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/proto.h create mode 100644 ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/radio.cpp create mode 100644 ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/radio.h create mode 100644 ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/second_uart.cpp create mode 100644 ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/second_uart.h create mode 100644 binaries/ESP32-H2/OpenEPaperLink_esp32_H2.bin create mode 100644 binaries/ESP32-H2/bootloader.bin create mode 100644 binaries/ESP32-H2/firmware.json create mode 100644 binaries/ESP32-H2/partition-table.bin diff --git a/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/Arduino_OpenEPaperLink_H2_AP.ino b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/Arduino_OpenEPaperLink_H2_AP.ino new file mode 100644 index 00000000..b0c9fb3b --- /dev/null +++ b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/Arduino_OpenEPaperLink_H2_AP.ino @@ -0,0 +1,786 @@ +// Ported to ESP32-C6 Arduino By ATC1441(ATCnetz.de) for OpenEPaperLink at ~03.2024 + +#include "led.h" +#include "proto.h" +#include "radio.h" +#include "driver/gpio.h" +#include "driver/uart.h" +#include "esp_err.h" +#include "esp_event.h" +#include "esp_ieee802154.h" +#include "esp_phy_init.h" +#include "esp_timer.h" +#include "freertos/FreeRTOS.h" +#include "freertos/queue.h" +#include "freertos/task.h" +#include "sdkconfig.h" +#include "second_uart.h" +#include "soc/uart_struct.h" +#include +#include +#include +#include +#include +#include + +const uint8_t channelList[6] = { 11, 15, 20, 25, 26, 27 }; + +#define DATATYPE_NOUPDATE 0 +#define HW_TYPE 0xC2 + +#define MAX_PENDING_MACS 250 +#define HOUSEKEEPING_INTERVAL 60UL + +struct pendingData pendingDataArr[MAX_PENDING_MACS]; + +// VERSION GOES HERE! +uint16_t version = 0x0019; + +#define RAW_PKT_PADDING 2 + +uint8_t radiotxbuffer[128]; +uint8_t radiorxbuffer[128]; + +static uint32_t housekeepingTimer; + +struct blockRequest requestedData = { 0 }; // holds which data was requested by the tag + +uint8_t dstMac[8]; // target for the block transfer +uint16_t dstPan; // + +static uint32_t blockStartTimer = 0; // reference that holds when the AP sends the next block +uint32_t nextBlockAttempt = 0; // reference time for when the AP can request a new block from the ESP32 +uint8_t seq = 0; // holds current sequence number for transmission +uint8_t blockbuffer[BLOCK_XFER_BUFFER_SIZE + 5]; // block transfer buffer +uint8_t lastAckMac[8] = { 0 }; + +// these variables hold the current mac were talking to +#define CONCURRENT_REQUEST_DELAY 1200UL +uint32_t lastBlockRequest = 0; +uint8_t lastBlockMac[8]; +uint8_t lastTagReturn[8]; + +uint8_t curChannel = 25; +uint8_t curPower = 10; + +uint8_t curPendingData = 0; +uint8_t curNoUpdate = 0; + +bool highspeedSerial = false; + +void sendXferCompleteAck(uint8_t *dst); +void sendCancelXfer(uint8_t *dst); +void espNotifyAPInfo(); + +// tools +void addCRC(void *p, uint8_t len) { + uint8_t total = 0; + for (uint8_t c = 1; c < len; c++) { + total += ((uint8_t *)p)[c]; + } + ((uint8_t *)p)[0] = total; +} +bool checkCRC(void *p, uint8_t len) { + uint8_t total = 0; + for (uint8_t c = 1; c < len; c++) { + total += ((uint8_t *)p)[c]; + } + return ((uint8_t *)p)[0] == total; +} + +uint8_t getPacketType(void *buffer) { + struct MacFcs *fcs = (MacFcs *)buffer; + if ((fcs->frameType == 1) && (fcs->destAddrType == 2) && (fcs->srcAddrType == 3) && (fcs->panIdCompressed == 0)) { + // broadcast frame + uint8_t type = ((uint8_t *)buffer)[sizeof(struct MacFrameBcast)]; + return type; + } else if ((fcs->frameType == 1) && (fcs->destAddrType == 3) && (fcs->srcAddrType == 3) && (fcs->panIdCompressed == 1)) { + // normal frame + uint8_t type = ((uint8_t *)buffer)[sizeof(struct MacFrameNormal)]; + return type; + } + return 0; +} +uint8_t getBlockDataLength() { + uint8_t partNo = 0; + for (uint8_t c = 0; c < BLOCK_MAX_PARTS; c++) { + if (requestedData.requestedParts[c / 8] & (1 << (c % 8))) { + partNo++; + } + } + return partNo; +} + +// pendingdata slot stuff +int8_t findSlotForMac(const uint8_t *mac) { + for (uint8_t c = 0; c < MAX_PENDING_MACS; c++) { + if (memcmp(mac, ((uint8_t *)&(pendingDataArr[c].targetMac)), 8) == 0) { + if (pendingDataArr[c].attemptsLeft != 0) { + return c; + } + } + } + return -1; +} +int8_t findFreeSlot() { + for (uint8_t c = 0; c < MAX_PENDING_MACS; c++) { + if (pendingDataArr[c].attemptsLeft == 0) { + return c; + } + } + return -1; +} +int8_t findSlotForVer(const uint8_t *ver) { + for (uint8_t c = 0; c < MAX_PENDING_MACS; c++) { + if (memcmp(ver, ((uint8_t *)&(pendingDataArr[c].availdatainfo.dataVer)), 8) == 0) { + if (pendingDataArr[c].attemptsLeft != 0) return c; + } + } + return -1; +} +void deleteAllPendingDataForVer(const uint8_t *ver) { + int8_t slot = -1; + do { + slot = findSlotForVer(ver); + if (slot != -1) pendingDataArr[slot].attemptsLeft = 0; + } while (slot != -1); +} +void deleteAllPendingDataForMac(const uint8_t *mac) { + int8_t slot = -1; + do { + slot = findSlotForMac(mac); + if (slot != -1) pendingDataArr[slot].attemptsLeft = 0; + } while (slot != -1); +} + +void countSlots() { + curPendingData = 0; + curNoUpdate = 0; + for (uint8_t c = 0; c < MAX_PENDING_MACS; c++) { + if (pendingDataArr[c].attemptsLeft != 0) { + if (pendingDataArr[c].availdatainfo.dataType != 0) { + curPendingData++; + } else { + curNoUpdate++; + } + } + } +} + +// processing serial data +#define ZBS_RX_WAIT_HEADER 0 +#define ZBS_RX_WAIT_SDA 1 // send data avail +#define ZBS_RX_WAIT_CANCEL 2 // cancel traffic for mac +#define ZBS_RX_WAIT_SCP 3 // set channel power +#define ZBS_RX_WAIT_BLOCKDATA 4 + +bool isSame(uint8_t *in1, char *in2, int len) { + bool flag = 1; + for (int i = 0; i < len; i++) { + if (in1[i] != in2[i]) flag = 0; + } + return flag; +} + +int blockPosition = 0; +void processSerial(uint8_t lastchar) { + static uint8_t cmdbuffer[4]; + static uint8_t RXState = 0; + static uint8_t serialbuffer[48]; + static uint8_t *serialbufferp; + static uint8_t bytesRemain = 0; + static uint32_t lastSerial = 0; + static uint32_t blockStartTime = 0; + if ((RXState != ZBS_RX_WAIT_HEADER) && ((millis() - lastSerial) > 1000)) { + RXState = ZBS_RX_WAIT_HEADER; + Serial.printf("UART Timeout\r\n"); + } + lastSerial = millis(); + switch (RXState) { + case ZBS_RX_WAIT_HEADER: + // shift characters in + for (uint8_t c = 0; c < 3; c++) { + cmdbuffer[c] = cmdbuffer[c + 1]; + } + cmdbuffer[3] = lastchar; + + if (isSame(cmdbuffer + 1, ">D>", 3)) { + pr("ACK>"); + blockStartTime = millis(); + Serial.printf("Starting BlkData, %lu ms after request\r\n", blockStartTime - nextBlockAttempt); + blockPosition = 0; + RXState = ZBS_RX_WAIT_BLOCKDATA; + } + + if (isSame(cmdbuffer, "SDA>", 4)) { + Serial.printf("SDA In\r\n"); + RXState = ZBS_RX_WAIT_SDA; + bytesRemain = sizeof(struct pendingData); + serialbufferp = serialbuffer; + break; + } + if (isSame(cmdbuffer, "CXD>", 4)) { + Serial.printf("CXD In\r\n"); + RXState = ZBS_RX_WAIT_CANCEL; + bytesRemain = sizeof(struct pendingData); + serialbufferp = serialbuffer; + break; + } + if (isSame(cmdbuffer, "SCP>", 4)) { + Serial.printf("SCP In\r\n"); + RXState = ZBS_RX_WAIT_SCP; + bytesRemain = sizeof(struct espSetChannelPower); + serialbufferp = serialbuffer; + break; + } + if (isSame(cmdbuffer, "NFO?", 4)) { + pr("ACK>"); + Serial.printf("NFO? In\r\n"); + espNotifyAPInfo(); + RXState = ZBS_RX_WAIT_HEADER; + } + if (isSame(cmdbuffer, "RDY?", 4)) { + pr("ACK>"); + Serial.printf("RDY? In\r\n"); + RXState = ZBS_RX_WAIT_HEADER; + } + if (isSame(cmdbuffer, "RSET", 4)) { + pr("ACK>"); + Serial.printf("RSET In\r\n"); + delay(100); + // TODO RESET US HERE + RXState = ZBS_RX_WAIT_HEADER; + } + if (isSame(cmdbuffer, "HSPD", 4)) { + pr("ACK>"); + Serial.printf("HSPD In, switching to 2000000\r\n"); + delay(100); + uart_switch_speed(2000000); + delay(100); + highspeedSerial = true; + pr("ACK>"); + RXState = ZBS_RX_WAIT_HEADER; + } + break; + case ZBS_RX_WAIT_BLOCKDATA: + blockbuffer[blockPosition++] = 0xAA ^ lastchar; + if (blockPosition >= 4100) { + Serial.printf("Blockdata fully received in %lu ms, %lu ms after the request\r\n", millis() - blockStartTime, millis() - nextBlockAttempt); + RXState = ZBS_RX_WAIT_HEADER; + } + break; + + case ZBS_RX_WAIT_SDA: + *serialbufferp = lastchar; + serialbufferp++; + bytesRemain--; + if (bytesRemain == 0) { + if (checkCRC(serialbuffer, sizeof(struct pendingData))) { + struct pendingData *pd = (struct pendingData *)serialbuffer; + int8_t slot = findSlotForMac(pd->targetMac); + if (slot == -1) slot = findFreeSlot(); + if (slot != -1) { + memcpy(&(pendingDataArr[slot]), serialbuffer, sizeof(struct pendingData)); + pr("ACK>"); + } else { + pr("NOQ>"); + } + } else { + pr("NOK>"); + } + + RXState = ZBS_RX_WAIT_HEADER; + } + break; + case ZBS_RX_WAIT_CANCEL: + *serialbufferp = lastchar; + serialbufferp++; + bytesRemain--; + if (bytesRemain == 0) { + if (checkCRC(serialbuffer, sizeof(struct pendingData))) { + struct pendingData *pd = (struct pendingData *)serialbuffer; + deleteAllPendingDataForMac((uint8_t *)&pd->targetMac); + pr("ACK>"); + } else { + pr("NOK>"); + } + + RXState = ZBS_RX_WAIT_HEADER; + } + break; + case ZBS_RX_WAIT_SCP: + *serialbufferp = lastchar; + serialbufferp++; + bytesRemain--; + if (bytesRemain == 0) { + if (checkCRC(serialbuffer, sizeof(struct espSetChannelPower))) { + struct espSetChannelPower *scp = (struct espSetChannelPower *)serialbuffer; + for (uint8_t c = 0; c < sizeof(channelList); c++) { + if (channelList[c] == scp->channel) goto SCPchannelFound; + } + goto SCPfailed; +SCPchannelFound: + pr("ACK>"); + if (curChannel != scp->channel) { + radioSetChannel(scp->channel); + curChannel = scp->channel; + } + curPower = scp->power; + radioSetTxPower(scp->power); + Serial.printf("Set channel: %d power: %d\r\n", curChannel, curPower); + } else { +SCPfailed: + pr("NOK>"); + } + RXState = ZBS_RX_WAIT_HEADER; + } + break; + } +} + +// sending data to the ESP +void espBlockRequest(const struct blockRequest *br, uint8_t *src) { + struct espBlockRequest *ebr = (struct espBlockRequest *)blockbuffer; + uartTx('R'); + uartTx('Q'); + uartTx('B'); + uartTx('>'); + memcpy(&(ebr->ver), &(br->ver), 8); + memcpy(&(ebr->src), src, 8); + ebr->blockId = br->blockId; + addCRC(ebr, sizeof(struct espBlockRequest)); + for (uint8_t c = 0; c < sizeof(struct espBlockRequest); c++) { + uartTx(((uint8_t *)ebr)[c]); + } +} +void espNotifyAvailDataReq(const struct AvailDataReq *adr, const uint8_t *src) { + uartTx('A'); + uartTx('D'); + uartTx('R'); + uartTx('>'); + + struct espAvailDataReq eadr = { 0 }; + memcpy((void *)eadr.src, (void *)src, 8); + memcpy((void *)&eadr.adr, (void *)adr, sizeof(struct AvailDataReq)); + addCRC(&eadr, sizeof(struct espAvailDataReq)); + for (uint8_t c = 0; c < sizeof(struct espAvailDataReq); c++) { + uartTx(((uint8_t *)&eadr)[c]); + } +} +void espNotifyXferComplete(const uint8_t *src) { + struct espXferComplete exfc; + memcpy(&exfc.src, src, 8); + uartTx('X'); + uartTx('F'); + uartTx('C'); + uartTx('>'); + addCRC(&exfc, sizeof(exfc)); + for (uint8_t c = 0; c < sizeof(exfc); c++) { + uartTx(((uint8_t *)&exfc)[c]); + } +} +void espNotifyTimeOut(const uint8_t *src) { + struct espXferComplete exfc; + memcpy(&exfc.src, src, 8); + uartTx('X'); + uartTx('T'); + uartTx('O'); + uartTx('>'); + addCRC(&exfc, sizeof(exfc)); + for (uint8_t c = 0; c < sizeof(exfc); c++) { + uartTx(((uint8_t *)&exfc)[c]); + } +} +void espNotifyAPInfo() { + pr("TYP>%02X", HW_TYPE); + pr("VER>%04X", version); + pr("MAC>%02X%02X", mSelfMac[0], mSelfMac[1]); + pr("%02X%02X", mSelfMac[2], mSelfMac[3]); + pr("%02X%02X", mSelfMac[4], mSelfMac[5]); + pr("%02X%02X", mSelfMac[6], mSelfMac[7]); + pr("ZCH>%02X", curChannel); + pr("ZPW>%02X", curPower); + countSlots(); + pr("PEN>%02X", curPendingData); + pr("NOP>%02X", curNoUpdate); +} + +void espNotifyTagReturnData(uint8_t *src, uint8_t len) { + struct tagReturnData *trd = (struct tagReturnData *)(radiorxbuffer + sizeof(struct MacFrameBcast) + 1); // oh how I'd love to pass this as an argument, but sdcc won't let me + struct espTagReturnData *etrd = (struct espTagReturnData *)radiotxbuffer; + + if (memcmp((void *)&trd->dataVer, lastTagReturn, 8) == 0) { + return; + } else { + memcpy(lastTagReturn, &trd->dataVer, 8); + } + + memcpy(etrd->src, src, 8); + etrd->len = len; + memcpy(&etrd->returnData, trd, len); + addCRC(etrd, len + 10); + + uartTx('T'); + uartTx('R'); + uartTx('D'); + uartTx('>'); + for (uint8_t c = 0; c < len + 10; c++) { + uartTx(((uint8_t *)etrd)[c]); + } +} + +// process data from tag +void processBlockRequest(const uint8_t *buffer, uint8_t forceBlockDownload) { + struct MacFrameNormal *rxHeader = (struct MacFrameNormal *)buffer; + struct blockRequest *blockReq = (struct blockRequest *)(buffer + sizeof(struct MacFrameNormal) + 1); + if (!checkCRC(blockReq, sizeof(struct blockRequest))) return; + + // check if we're already talking to this mac + if (memcmp(rxHeader->src, lastBlockMac, 8) == 0) { + lastBlockRequest = millis(); + } else { + // we weren't talking to this mac, see if there was a transfer in progress from another mac, recently + if ((millis() - lastBlockRequest) > CONCURRENT_REQUEST_DELAY) { + // mark this mac as the new current mac we're talking to + memcpy((void *)lastBlockMac, (void *)rxHeader->src, 8); + lastBlockRequest = millis(); + } else { + // we're talking to another mac, let this mac know we can't accomodate another request right now + pr("BUSY!\n"); + sendCancelXfer(rxHeader->src); + return; + } + } + + // check if we have data for this mac + if (findSlotForMac(rxHeader->src) == -1) { + // no data for this mac, politely tell it to fuck off + sendCancelXfer(rxHeader->src); + return; + } + + bool requestDataDownload = false; + if ((blockReq->blockId != requestedData.blockId) || (blockReq->ver != requestedData.ver)) { + // requested block isn't already in the buffer + requestDataDownload = true; + } else { + // requested block is already in the buffer + if (forceBlockDownload) { + if ((millis() - nextBlockAttempt) > 380) { + requestDataDownload = true; + pr("FORCED\n"); + } else { + pr("IGNORED\n"); + } + } + } + + // copy blockrequest into requested data + memcpy(&requestedData, blockReq, sizeof(struct blockRequest)); + + struct MacFrameNormal *txHeader = (struct MacFrameNormal *)(radiotxbuffer + 1); + struct blockRequestAck *blockRequestAck = (struct blockRequestAck *)(radiotxbuffer + sizeof(struct MacFrameNormal) + 2); + radiotxbuffer[0] = sizeof(struct MacFrameNormal) + 1 + sizeof(struct blockRequestAck) + RAW_PKT_PADDING; + radiotxbuffer[sizeof(struct MacFrameNormal) + 1] = PKT_BLOCK_REQUEST_ACK; + + if (blockStartTimer == 0) { + if (requestDataDownload) { + if (highspeedSerial == true) { + blockRequestAck->pleaseWaitMs = 140; + } else { + blockRequestAck->pleaseWaitMs = 550; + } + } else { + // block is already in buffer + blockRequestAck->pleaseWaitMs = 30; + } + } else { + blockRequestAck->pleaseWaitMs = 30; + } + blockStartTimer = millis() + blockRequestAck->pleaseWaitMs; + + memcpy(txHeader->src, mSelfMac, 8); + memcpy(txHeader->dst, rxHeader->src, 8); + + txHeader->pan = rxHeader->pan; + txHeader->fcs.frameType = 1; + txHeader->fcs.panIdCompressed = 1; + txHeader->fcs.destAddrType = 3; + txHeader->fcs.srcAddrType = 3; + txHeader->seq = seq++; + + addCRC((void *)blockRequestAck, sizeof(struct blockRequestAck)); + + radioTx(radiotxbuffer); + + // save the target for the blockdata + memcpy(dstMac, rxHeader->src, 8); + dstPan = rxHeader->pan; + + if (requestDataDownload) { + blockPosition = 0; + espBlockRequest(&requestedData, rxHeader->src); + nextBlockAttempt = millis(); + } +} + +void processAvailDataReq(uint8_t *buffer) { + struct MacFrameBcast *rxHeader = (struct MacFrameBcast *)buffer; + struct AvailDataReq *availDataReq = (struct AvailDataReq *)(buffer + sizeof(struct MacFrameBcast) + 1); + + if (!checkCRC(availDataReq, sizeof(struct AvailDataReq))) return; + + // prepare tx buffer to send a response + memset(radiotxbuffer, 0, sizeof(struct MacFrameNormal) + sizeof(struct AvailDataInfo) + 2); // 120); + struct MacFrameNormal *txHeader = (struct MacFrameNormal *)(radiotxbuffer + 1); + struct AvailDataInfo *availDataInfo = (struct AvailDataInfo *)(radiotxbuffer + sizeof(struct MacFrameNormal) + 2); + radiotxbuffer[0] = sizeof(struct MacFrameNormal) + 1 + sizeof(struct AvailDataInfo) + RAW_PKT_PADDING; + radiotxbuffer[sizeof(struct MacFrameNormal) + 1] = PKT_AVAIL_DATA_INFO; + + // check to see if we have data available for this mac + bool haveData = false; + for (uint8_t c = 0; c < MAX_PENDING_MACS; c++) { + if (pendingDataArr[c].attemptsLeft) { + if (memcmp(pendingDataArr[c].targetMac, rxHeader->src, 8) == 0) { + haveData = true; + memcpy((void *)availDataInfo, &(pendingDataArr[c].availdatainfo), sizeof(struct AvailDataInfo)); + break; + } + } + } + + // couldn't find data for this mac + if (!haveData) availDataInfo->dataType = DATATYPE_NOUPDATE; + + memcpy(txHeader->src, mSelfMac, 8); + memcpy(txHeader->dst, rxHeader->src, 8); + txHeader->pan = rxHeader->dstPan; + txHeader->fcs.frameType = 1; + txHeader->fcs.panIdCompressed = 1; + txHeader->fcs.destAddrType = 3; + txHeader->fcs.srcAddrType = 3; + txHeader->seq = seq++; + addCRC(availDataInfo, sizeof(struct AvailDataInfo)); + radioTx(radiotxbuffer); + memset(lastAckMac, 0, 8); // reset lastAckMac, so we can record if we've received exactly one ack packet + espNotifyAvailDataReq(availDataReq, rxHeader->src); +} +void processXferComplete(uint8_t *buffer) { + struct MacFrameNormal *rxHeader = (struct MacFrameNormal *)buffer; + sendXferCompleteAck(rxHeader->src); + if (memcmp(lastAckMac, rxHeader->src, 8) != 0) { + memcpy((void *)lastAckMac, (void *)rxHeader->src, 8); + espNotifyXferComplete(rxHeader->src); + int8_t slot = findSlotForMac(rxHeader->src); + if (slot != -1) pendingDataArr[slot].attemptsLeft = 0; + } +} + +void processTagReturnData(uint8_t *buffer, uint8_t len) { + struct MacFrameBcast *rxframe = (struct MacFrameBcast *)buffer; + struct MacFrameNormal *frameHeader = (struct MacFrameNormal *)(radiotxbuffer + 1); + + if (!checkCRC((buffer + sizeof(struct MacFrameBcast) + 1), len - (sizeof(struct MacFrameBcast) + 1))) { + return; + } + radiotxbuffer[sizeof(struct MacFrameNormal) + 1] = PKT_TAG_RETURN_DATA_ACK; + radiotxbuffer[0] = sizeof(struct MacFrameNormal) + 1 + RAW_PKT_PADDING; + memcpy(frameHeader->src, mSelfMac, 8); + memcpy(frameHeader->dst, rxframe->src, 8); + radiotxbuffer[1] = 0x41; // fast way to set the appropriate bits + radiotxbuffer[2] = 0xCC; // normal frame + frameHeader->seq = seq++; + frameHeader->pan = rxframe->srcPan; + radioTx(radiotxbuffer); + + espNotifyTagReturnData(rxframe->src, len - (sizeof(struct MacFrameBcast) + 1)); +} + +// send block data to the tag +void sendPart(uint8_t partNo) { + struct MacFrameNormal *frameHeader = (struct MacFrameNormal *)(radiotxbuffer + 1); + struct blockPart *blockPart = (struct blockPart *)(radiotxbuffer + sizeof(struct MacFrameNormal) + 2); + memset(radiotxbuffer + 1, 0, sizeof(struct blockPart) + sizeof(struct MacFrameNormal)); + radiotxbuffer[sizeof(struct MacFrameNormal) + 1] = PKT_BLOCK_PART; + radiotxbuffer[0] = sizeof(struct MacFrameNormal) + sizeof(struct blockPart) + BLOCK_PART_DATA_SIZE + 1 + RAW_PKT_PADDING; + memcpy(frameHeader->src, mSelfMac, 8); + memcpy(frameHeader->dst, dstMac, 8); + blockPart->blockId = requestedData.blockId; + blockPart->blockPart = partNo; + memcpy(&(blockPart->data), blockbuffer + (partNo * BLOCK_PART_DATA_SIZE), BLOCK_PART_DATA_SIZE); + addCRC(blockPart, sizeof(struct blockPart) + BLOCK_PART_DATA_SIZE); + frameHeader->fcs.frameType = 1; + frameHeader->fcs.panIdCompressed = 1; + frameHeader->fcs.destAddrType = 3; + frameHeader->fcs.srcAddrType = 3; + frameHeader->seq = seq++; + frameHeader->pan = dstPan; + radioTx(radiotxbuffer); +} +void sendBlockData() { + if (getBlockDataLength() == 0) { + pr("Invalid block request received, 0 parts..\n"); + requestedData.requestedParts[0] |= 0x01; + } + + pr("Sending parts:"); + for (uint8_t c = 0; (c < BLOCK_MAX_PARTS); c++) { + if (c % 10 == 0) pr(" "); + if (requestedData.requestedParts[c / 8] & (1 << (c % 8))) { + pr("X"); + } else { + pr("."); + } + } + pr("\n"); + + uint8_t partNo = 0; + while (partNo < BLOCK_MAX_PARTS) { + for (uint8_t c = 0; (c < BLOCK_MAX_PARTS) && (partNo < BLOCK_MAX_PARTS); c++) { + if (requestedData.requestedParts[c / 8] & (1 << (c % 8))) { + sendPart(c); + partNo++; + } + } + } +} +void sendXferCompleteAck(uint8_t *dst) { + struct MacFrameNormal *frameHeader = (struct MacFrameNormal *)(radiotxbuffer + 1); + memset(radiotxbuffer + 1, 0, sizeof(struct blockPart) + sizeof(struct MacFrameNormal)); + radiotxbuffer[sizeof(struct MacFrameNormal) + 1] = PKT_XFER_COMPLETE_ACK; + radiotxbuffer[0] = sizeof(struct MacFrameNormal) + 1 + RAW_PKT_PADDING; + memcpy(frameHeader->src, mSelfMac, 8); + memcpy(frameHeader->dst, dst, 8); + frameHeader->fcs.frameType = 1; + frameHeader->fcs.panIdCompressed = 1; + frameHeader->fcs.destAddrType = 3; + frameHeader->fcs.srcAddrType = 3; + frameHeader->seq = seq++; + frameHeader->pan = dstPan; + radioTx(radiotxbuffer); +} +void sendCancelXfer(uint8_t *dst) { + struct MacFrameNormal *frameHeader = (struct MacFrameNormal *)(radiotxbuffer + 1); + memset(radiotxbuffer + 1, 0, sizeof(struct blockPart) + sizeof(struct MacFrameNormal)); + radiotxbuffer[sizeof(struct MacFrameNormal) + 1] = PKT_CANCEL_XFER; + radiotxbuffer[0] = sizeof(struct MacFrameNormal) + 1 + RAW_PKT_PADDING; + memcpy(frameHeader->src, mSelfMac, 8); + memcpy(frameHeader->dst, dst, 8); + frameHeader->fcs.frameType = 1; + frameHeader->fcs.panIdCompressed = 1; + frameHeader->fcs.destAddrType = 3; + frameHeader->fcs.srcAddrType = 3; + frameHeader->seq = seq++; + frameHeader->pan = dstPan; + radioTx(radiotxbuffer); +} +void sendPong(void *buf) { + struct MacFrameBcast *rxframe = (struct MacFrameBcast *)buf; + struct MacFrameNormal *frameHeader = (struct MacFrameNormal *)(radiotxbuffer + 1); + radiotxbuffer[sizeof(struct MacFrameNormal) + 1] = PKT_PONG; + radiotxbuffer[sizeof(struct MacFrameNormal) + 2] = curChannel; + radiotxbuffer[0] = sizeof(struct MacFrameNormal) + 1 + 1 + RAW_PKT_PADDING; + memcpy(frameHeader->src, mSelfMac, 8); + memcpy(frameHeader->dst, rxframe->src, 8); + radiotxbuffer[1] = 0x41; // fast way to set the appropriate bits + radiotxbuffer[2] = 0xCC; // normal frame + frameHeader->seq = seq++; + frameHeader->pan = rxframe->srcPan; + radioTx(radiotxbuffer); +} + +void setup() { + Serial.begin(115200); + + init_led(); + init_second_uart(); + + requestedData.blockId = 0xFF; + // clear the array with pending information + memset(pendingDataArr, 0, sizeof(pendingDataArr)); + + radio_init(curChannel); + radioSetTxPower(10); + + pr("RES>"); + pr("RDY>"); + Serial.printf("C6 ready!\r\n"); + + housekeepingTimer = millis(); +} + +void loop() { + while ((millis() - housekeepingTimer) < ((1000 * HOUSEKEEPING_INTERVAL) - 100)) { + int8_t ret = commsRxUnencrypted(radiorxbuffer); + if (ret > 1) { + led_flash(0); + // received a packet, lets see what it is + switch (getPacketType(radiorxbuffer)) { + case PKT_AVAIL_DATA_REQ: + if (ret == 28) { + // old version of the AvailDataReq struct, set all the new fields to zero, so it will pass the CRC + memset(radiorxbuffer + 1 + sizeof(struct MacFrameBcast) + sizeof(struct oldAvailDataReq), 0, + sizeof(struct AvailDataReq) - sizeof(struct oldAvailDataReq) + 2); + processAvailDataReq(radiorxbuffer); + } else if (ret == 40) { + // new version of the AvailDataReq struct + processAvailDataReq(radiorxbuffer); + } + break; + case PKT_BLOCK_REQUEST: + processBlockRequest(radiorxbuffer, 1); + break; + case PKT_BLOCK_PARTIAL_REQUEST: + processBlockRequest(radiorxbuffer, 0); + break; + case PKT_XFER_COMPLETE: + processXferComplete(radiorxbuffer); + break; + case PKT_PING: + sendPong(radiorxbuffer); + break; + case PKT_AVAIL_DATA_SHORTREQ: + // a short AvailDataReq is basically a very short (1 byte payload) packet that requires little preparation on the tx side, for optimal + // battery use bytes of the struct are set 0, so it passes the checksum test, and the ESP32 can detect that no interesting payload is + // sent + if (ret == 18) { + memset(radiorxbuffer + 1 + sizeof(struct MacFrameBcast), 0, sizeof(struct AvailDataReq) + 2); + processAvailDataReq(radiorxbuffer); + } + break; + case PKT_TAG_RETURN_DATA: + processTagReturnData(radiorxbuffer, ret); + break; + default: + Serial.printf("t=%02X\r\n", getPacketType(radiorxbuffer)); + break; + } + } else if (blockStartTimer == 0) { + delay(10); + } + + uint8_t curr_char; + while (getRxCharSecond(&curr_char)) processSerial(curr_char); + + if (blockStartTimer) { + if (millis() > blockStartTimer) { + sendBlockData(); + blockStartTimer = 0; + } + } + } + + memset(&lastTagReturn, 0, 8); + for (uint8_t cCount = 0; cCount < MAX_PENDING_MACS; cCount++) { + if (pendingDataArr[cCount].attemptsLeft == 1) { + if (pendingDataArr[cCount].availdatainfo.dataType != DATATYPE_NOUPDATE) { + espNotifyTimeOut(pendingDataArr[cCount].targetMac); + } + pendingDataArr[cCount].attemptsLeft = 0; + } else if (pendingDataArr[cCount].attemptsLeft > 1) { + pendingDataArr[cCount].attemptsLeft--; + if (pendingDataArr[cCount].availdatainfo.nextCheckIn) pendingDataArr[cCount].availdatainfo.nextCheckIn--; + } + } + housekeepingTimer = millis(); +} diff --git a/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/led.cpp b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/led.cpp new file mode 100644 index 00000000..19f140a1 --- /dev/null +++ b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/led.cpp @@ -0,0 +1,44 @@ +#include "led.h" +#include "driver/gpio.h" +#include "freertos/FreeRTOS.h" +#include "freertos/queue.h" +#include "freertos/task.h" +#include "freertos/timers.h" +#include "proto.h" +#include +#include +#include +#include +#include + +#define NUM_LEDS 2 + +const uint8_t led_pins[NUM_LEDS] = { LED1, LED2 }; +TimerHandle_t led_timers[NUM_LEDS] = { 0 }; + +void led_timer_callback(TimerHandle_t xTimer) { + int led_index = (int)pvTimerGetTimerID(xTimer); + if (led_index >= 0 && led_index < NUM_LEDS) { + digitalWrite(led_pins[led_index], 0); + } +} + +void init_led() { + pinMode(LED1,OUTPUT); + pinMode(LED2,OUTPUT); + + for (int i = 0; i < NUM_LEDS; i++) { + led_timers[i] = xTimerCreate("led_timer", pdMS_TO_TICKS(50), pdFALSE, (void *)i, led_timer_callback); + } +} + +void led_flash(int nr) { + digitalWrite(led_pins[nr], 1); + if (nr >= 0 && nr < NUM_LEDS) { + xTimerStart(led_timers[nr], 0); + } +} + +void led_set(int nr, bool state) { + digitalWrite(nr, state); +} diff --git a/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/led.h b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/led.h new file mode 100644 index 00000000..a76467c7 --- /dev/null +++ b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/led.h @@ -0,0 +1,6 @@ +#pragma once +#include + +void init_led(); +void led_set(int nr, bool state); +void led_flash(int nr); diff --git a/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/proto.h b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/proto.h new file mode 100644 index 00000000..5d7705f5 --- /dev/null +++ b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/proto.h @@ -0,0 +1,190 @@ +#ifndef _PROTO_H_ +#define _PROTO_H_ +#include + +#define LED1 22 +#define LED2 25 + +#define PROTO_PAN_ID (0x4447) // PAN ID compression shall be used + +#define RADIO_MAX_PACKET_LEN (125) // useful payload, not including the crc + +#define ADDR_MODE_NONE (0) +#define ADDR_MODE_SHORT (2) +#define ADDR_MODE_LONG (3) + +#define FRAME_TYPE_BEACON (0) +#define FRAME_TYPE_DATA (1) +#define FRAME_TYPE_ACK (2) +#define FRAME_TYPE_MAC_CMD (3) + +#define SHORT_MAC_UNUSED (0x10000000UL) // for radioRxFilterCfg's myShortMac + +struct MacFcs { + uint8_t frameType : 3; + uint8_t secure : 1; + uint8_t framePending : 1; + uint8_t ackReqd : 1; + uint8_t panIdCompressed : 1; + uint8_t rfu1 : 1; + uint8_t rfu2 : 2; + uint8_t destAddrType : 2; + uint8_t frameVer : 2; + uint8_t srcAddrType : 2; +} __attribute__((packed, aligned(1))); + +struct MacFrameFromMaster { + struct MacFcs fcs; + uint8_t seq; + uint16_t pan; + uint8_t dst[8]; + uint16_t from; +} __attribute__((packed, aligned(1))); + +struct MacFrameNormal { + struct MacFcs fcs; + uint8_t seq; + uint16_t pan; + uint8_t dst[8]; + uint8_t src[8]; +} __attribute__((packed, aligned(1))); + +struct MacFrameBcast { + struct MacFcs fcs; + uint8_t seq; + uint16_t dstPan; + uint16_t dstAddr; + uint16_t srcPan; + uint8_t src[8]; +} __attribute__((packed, aligned(1))); + +#define PKT_TAG_RETURN_DATA 0xE1 +#define PKT_TAG_RETURN_DATA_ACK 0xE2 +#define PKT_AVAIL_DATA_SHORTREQ 0xE3 +#define PKT_AVAIL_DATA_REQ 0xE5 +#define PKT_AVAIL_DATA_INFO 0xE6 +#define PKT_BLOCK_PARTIAL_REQUEST 0xE7 +#define PKT_BLOCK_REQUEST_ACK 0xE9 +#define PKT_BLOCK_REQUEST 0xE4 +#define PKT_BLOCK_PART 0xE8 +#define PKT_XFER_COMPLETE 0xEA +#define PKT_XFER_COMPLETE_ACK 0xEB +#define PKT_CANCEL_XFER 0xEC +#define PKT_PING 0xED +#define PKT_PONG 0xEE + +struct AvailDataReq { + uint8_t checksum; + uint8_t lastPacketLQI; + int8_t lastPacketRSSI; + int8_t temperature; + uint16_t batteryMv; + uint8_t hwType; + uint8_t wakeupReason; + uint8_t capabilities; + uint16_t tagSoftwareVersion; + uint8_t currentChannel; + uint8_t customMode; + uint8_t reserved[8]; +} __attribute__((packed, aligned(1))); + +struct oldAvailDataReq { + uint8_t checksum; + uint8_t lastPacketLQI; + int8_t lastPacketRSSI; + int8_t temperature; + uint16_t batteryMv; + uint8_t hwType; + uint8_t wakeupReason; + uint8_t capabilities; +} __attribute__((packed, aligned(1))); + +struct AvailDataInfo { + uint8_t checksum; + uint64_t dataVer; // MD5 of potential traffic + uint32_t dataSize; + uint8_t dataType; + uint8_t dataTypeArgument; // extra specification or instruction for the tag (LUT to be used for drawing image) + uint16_t nextCheckIn; // when should the tag check-in again? Measured in minutes +} __attribute__((packed, aligned(1))); + +struct pendingData { + struct AvailDataInfo availdatainfo; + uint16_t attemptsLeft; + uint8_t targetMac[8]; +} __attribute__((packed, aligned(1))); + +struct blockPart { + uint8_t checksum; + uint8_t blockId; + uint8_t blockPart; + uint8_t data[]; +} __attribute__((packed, aligned(1))); + +struct blockData { + uint16_t size; + uint16_t checksum; + uint8_t data[]; +} __attribute__((packed, aligned(1))); + +#define TAG_RETURN_DATA_SIZE 90 + +struct tagReturnData { + uint8_t checksum; + uint8_t partId; + uint64_t dataVer; + uint8_t dataType; + uint8_t data[TAG_RETURN_DATA_SIZE]; +} __attribute__((packed, aligned(1))); + +#define BLOCK_PART_DATA_SIZE 99 +#define BLOCK_MAX_PARTS 42 +#define BLOCK_DATA_SIZE 4096UL +#define BLOCK_XFER_BUFFER_SIZE BLOCK_DATA_SIZE + sizeof(struct blockData) +#define BLOCK_REQ_PARTS_BYTES 6 + +struct blockRequest { + uint8_t checksum; + uint64_t ver; + uint8_t blockId; + uint8_t type; + uint8_t requestedParts[BLOCK_REQ_PARTS_BYTES]; +} __attribute__((packed, aligned(1))); + +struct blockRequestAck { + uint8_t checksum; + uint16_t pleaseWaitMs; +} __attribute__((packed, aligned(1))); + +struct espBlockRequest { + uint8_t checksum; + uint64_t ver; + uint8_t blockId; + uint8_t src[8]; +} __attribute__((packed, aligned(1))); + +struct espXferComplete { + uint8_t checksum; + uint8_t src[8]; +} __attribute__((packed, aligned(1))); + +struct espAvailDataReq { + uint8_t checksum; + uint8_t src[8]; + struct AvailDataReq adr; +} __attribute__((packed, aligned(1))); + +struct espSetChannelPower { + uint8_t checksum; + uint8_t channel; + uint8_t power; +} __attribute__((packed, aligned(1))); + +struct espTagReturnData { + uint8_t checksum; + uint8_t src[8]; + uint8_t len; + struct tagReturnData returnData; +} __attribute__((packed, aligned(1))); + +#endif diff --git a/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/radio.cpp b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/radio.cpp new file mode 100644 index 00000000..a70834b1 --- /dev/null +++ b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/radio.cpp @@ -0,0 +1,113 @@ +#include "radio.h" +#include "driver/gpio.h" +#include "driver/uart.h" +#include "esp_err.h" +#include "esp_event.h" +#include "esp_ieee802154.h" +#include "esp_phy_init.h" +#include "esp_timer.h" +#include "freertos/FreeRTOS.h" +#include "freertos/queue.h" +#include "freertos/task.h" +#include "led.h" +#include "proto.h" +#include "sdkconfig.h" +#include "soc/uart_struct.h" +#include +#include +#include +#include +#include + +uint8_t mSelfMac[8]; +volatile uint8_t isInTransmit = 0; +QueueHandle_t packet_buffer = NULL; + +void esp_ieee802154_receive_done(uint8_t *frame, esp_ieee802154_frame_info_t *frame_info) { + Serial.printf("RADIO info RX %d\r\n", frame[0]); + BaseType_t xHigherPriorityTaskWoken; + static uint8_t inner_rxPKT[130]; + memcpy(inner_rxPKT, &frame[0], frame[0] + 1); + xQueueSendFromISR(packet_buffer, (void *)&inner_rxPKT, &xHigherPriorityTaskWoken); + portYIELD_FROM_ISR_ARG(xHigherPriorityTaskWoken); +} + +void esp_ieee802154_transmit_failed(const uint8_t *frame, esp_ieee802154_tx_error_t error) { + isInTransmit = 0; + Serial.printf("RADIO err TX Err: %d\r\n", error); +} + +void esp_ieee802154_transmit_done(const uint8_t *frame, const uint8_t *ack, esp_ieee802154_frame_info_t *ack_frame_info) { + isInTransmit = 0; + Serial.printf("RADIO info TX %d\r\n", frame[0]); +} + +void radio_init(uint8_t ch) { + if (packet_buffer == NULL) packet_buffer = xQueueCreate(32, 130); + + // this will trigger a "IEEE802154 MAC sleep init failed" when called a second time, but it works + esp_ieee802154_enable(); + esp_ieee802154_set_channel(ch); + // esp_ieee802154_set_txpower(int8_t power); + esp_ieee802154_set_panid(PROTO_PAN_ID); + esp_ieee802154_set_promiscuous(false); + esp_ieee802154_set_coordinator(false); + esp_ieee802154_set_pending_mode(ESP_IEEE802154_AUTO_PENDING_ZIGBEE); + + // esp_ieee802154_set_extended_address needs the MAC in reversed byte order + esp_read_mac(mSelfMac, ESP_MAC_IEEE802154); + uint8_t eui64_rev[8] = { 0 }; + for (int i = 0; i < 8; i++) { + eui64_rev[7 - i] = mSelfMac[i]; + } + esp_ieee802154_set_extended_address(eui64_rev); + esp_ieee802154_get_extended_address(mSelfMac); + + esp_ieee802154_set_short_address(0xFFFE); + esp_ieee802154_set_rx_when_idle(true); + esp_ieee802154_receive(); + + led_flash(1); + delay(100); + led_flash(0); + delay(100); + led_flash(1); + delay(100); + led_flash(0); + + Serial.printf("RADIO Receiver ready, panId=0x%04x, channel=%d, long=%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x, short=%04x\r\n", + esp_ieee802154_get_panid(), esp_ieee802154_get_channel(), + mSelfMac[0], mSelfMac[1], mSelfMac[2], mSelfMac[3], + mSelfMac[4], mSelfMac[5], mSelfMac[6], mSelfMac[7], + esp_ieee802154_get_short_address()); +} + +// uint32_t lastZbTx = 0; +bool radioTx(uint8_t *packet) { + static uint8_t txPKT[130]; + led_flash(1); + while (isInTransmit) { + } + // while (millis() - lastZbTx < 6) { + // } + // lastZbTx = millis(); + memcpy(txPKT, packet, packet[0]); + isInTransmit = 1; + esp_ieee802154_transmit(txPKT, false); + return true; +} + +void radioSetChannel(uint8_t ch) { + radio_init(ch); +} + +void radioSetTxPower(uint8_t power) {} + +int8_t commsRxUnencrypted(uint8_t *data) { + static uint8_t inner_rxPKT_out[130]; + if (xQueueReceive(packet_buffer, (void *)&inner_rxPKT_out, pdMS_TO_TICKS(100)) == pdTRUE) { + memcpy(data, &inner_rxPKT_out[1], inner_rxPKT_out[0] + 1); + return inner_rxPKT_out[0] - 2; + } + return 0; +} diff --git a/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/radio.h b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/radio.h new file mode 100644 index 00000000..73cd5286 --- /dev/null +++ b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/radio.h @@ -0,0 +1,11 @@ +#pragma once +#include +#include + +extern uint8_t mSelfMac[8]; + +void radio_init(uint8_t ch); +bool radioTx(uint8_t *packet); +void radioSetChannel(uint8_t ch); +void radioSetTxPower(uint8_t power); +int8_t commsRxUnencrypted(uint8_t *data); \ No newline at end of file diff --git a/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/second_uart.cpp b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/second_uart.cpp new file mode 100644 index 00000000..00b2b91e --- /dev/null +++ b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/second_uart.cpp @@ -0,0 +1,117 @@ +#include +#include +#include +#include +#include +#include "driver/gpio.h" +#include "driver/uart.h" +#include "esp_err.h" +#include "esp_event.h" +#include "esp_ieee802154.h" +#include "esp_phy_init.h" +#include "esp_timer.h" +#include "freertos/FreeRTOS.h" +#include "freertos/queue.h" +#include "freertos/task.h" +#include "nvs.h" +#include "nvs_flash.h" +#include "proto.h" +#include "sdkconfig.h" +#include "soc/uart_struct.h" +#include "second_uart.h" + +#define CONFIG_OEPL_HARDWARE_UART_TX 4 +#define CONFIG_OEPL_HARDWARE_UART_RX 5 + +#define BUF_SIZE (1024) +#define RD_BUF_SIZE (BUF_SIZE) +static QueueHandle_t uart0_queue; + +#define MAX_BUFF_POS 8000 +volatile int curr_buff_pos = 0; +volatile int worked_buff_pos = 0; +volatile uint8_t buff_pos[MAX_BUFF_POS + 5]; + +static void uart_event_task(void *pvParameters); +void init_second_uart() { + uart_config_t uart_config = { + .baud_rate = 115200, + .data_bits = UART_DATA_8_BITS, + .parity = UART_PARITY_DISABLE, + .stop_bits = UART_STOP_BITS_1, + .flow_ctrl = UART_HW_FLOWCTRL_DISABLE, + .source_clk = UART_SCLK_DEFAULT, + }; + ESP_ERROR_CHECK(uart_driver_install(1, BUF_SIZE * 2, BUF_SIZE * 2, 20, &uart0_queue, 0)); + ESP_ERROR_CHECK(uart_param_config(1, &uart_config)); + ESP_ERROR_CHECK(uart_set_pin(1, CONFIG_OEPL_HARDWARE_UART_TX, CONFIG_OEPL_HARDWARE_UART_RX, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE)); + + xTaskCreate(uart_event_task, "uart_event_task", 16384, NULL, 12, NULL); +} + +void uart_switch_speed(int baudrate) { + uart_config_t uart_config = { + .baud_rate = baudrate, + .data_bits = UART_DATA_8_BITS, + .parity = UART_PARITY_DISABLE, + .stop_bits = UART_STOP_BITS_1, + .flow_ctrl = UART_HW_FLOWCTRL_DISABLE, + .source_clk = UART_SCLK_DEFAULT, + }; + ESP_ERROR_CHECK(uart_param_config(1, &uart_config)); +} + +void uartTx(uint8_t data) { + uart_write_bytes(1, (const char *)&data, 1); +} + + +bool getRxCharSecond(uint8_t *newChar) { + if (curr_buff_pos != worked_buff_pos) { + *newChar = buff_pos[worked_buff_pos]; + worked_buff_pos++; + worked_buff_pos %= MAX_BUFF_POS; + return true; + } + return false; +} + +static void uart_event_task(void *pvParameters) { + uart_event_t event; + uint8_t *dtmp = (uint8_t *)malloc(RD_BUF_SIZE); + for (;;) { + if (xQueueReceive(uart0_queue, (void *)&event, (TickType_t)portMAX_DELAY)) { + bzero(dtmp, RD_BUF_SIZE); + switch (event.type) { + case UART_DATA: + uart_read_bytes(1, dtmp, event.size, portMAX_DELAY); + for (int i = 0; i < event.size; i++) { + buff_pos[curr_buff_pos] = dtmp[i]; + curr_buff_pos++; + curr_buff_pos %= MAX_BUFF_POS; + } + break; + default: + Serial.printf("Second UART uart event type: %d\r\n", event.type); + break; + } + } + } + free(dtmp); + dtmp = NULL; + vTaskDelete(NULL); +} + +void uart_printf(const char *format, ...) { + va_list args; + va_start(args, format); + + char buffer[128]; + int len = vsnprintf(buffer, sizeof(buffer), format, args); + + va_end(args); + + if (len > 0) { + uart_write_bytes(1, buffer, len); + } +} diff --git a/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/second_uart.h b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/second_uart.h new file mode 100644 index 00000000..a1e4636f --- /dev/null +++ b/ARM_Tag_FW/Arduino_OpenEPaperLink_H2_AP/second_uart.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +void init_second_uart(); +void uart_switch_speed(int baudrate); + +void uartTx(uint8_t data); +bool getRxCharSecond(uint8_t *newChar); + +void uart_printf(const char *format, ...); + +#define pr uart_printf diff --git a/ESP32_AP-Flasher/platformio.ini b/ESP32_AP-Flasher/platformio.ini index 3045c726..d22a6b36 100644 --- a/ESP32_AP-Flasher/platformio.ini +++ b/ESP32_AP-Flasher/platformio.ini @@ -450,6 +450,52 @@ board_upload.maximum_size = 16777216 board_upload.maximum_ram_size = 327680 board_upload.flash_size = 16MB ; ---------------------------------------------------------------------------------------- +; !!! this configuration expects an ESP32-S3 4MB Flash 2MB RAM aka The Official Espressif Zigbee Gateway PCB +; ---------------------------------------------------------------------------------------- +[env:ESP_THREAD_BORDER_ROUTER] +board = esp32-s3-devkitc-1 +board_build.partitions = default.csv +build_unflags = + -std=gnu++11 + -D CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y +lib_deps = + ${env.lib_deps} +build_flags = + -std=gnu++17 + ${env.build_flags} + ;-D HAS_BLE_WRITER + -D CORE_DEBUG_LEVEL=0 + -D ARDUINO_USB_CDC_ON_BOOT + -D CONFIG_ESP32S3_SPIRAM_SUPPORT=1 + -D CONFIG_SPIRAM_USE_MALLOC=1 + -D POWER_NO_SOFT_POWER + -D BOARD_HAS_PSRAM + -D CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC=y + -D FLASHER_AP_SS=-1 + -D FLASHER_AP_CLK=-1 + -D FLASHER_AP_MOSI=-1 + -D FLASHER_AP_MISO=-1 + -D FLASHER_AP_RESET=7 + -D FLASHER_AP_POWER={-1} + -D FLASHER_AP_TEST=-1 + -D FLASHER_AP_TXD=4 + -D FLASHER_AP_RXD=5 + -D FLASHER_DEBUG_TXD=17 + -D FLASHER_DEBUG_RXD=18 + -D FLASHER_DEBUG_PROG=8 + -D FLASHER_LED=-1 + -D MD5_ENABLED=1 + -D SERIAL_FLASHER_INTERFACE_UART=1 + -D SERIAL_FLASHER_BOOT_HOLD_TIME_MS=50 + -D SERIAL_FLASHER_RESET_HOLD_TIME_MS=100 + -D C6_OTA_FLASHING +build_src_filter = + +<*>--- +board_build.psram_type=qspi_opi +board_upload.maximum_size = 4194304 +board_upload.maximum_ram_size = 327680 +board_upload.flash_size = 4MB +; ---------------------------------------------------------------------------------------- ; !!! this configuration expects an SONOFF ZB Bridge-P ; ---------------------------------------------------------------------------------------- ;[env:Sonoff_zb_bridge_P_AP] diff --git a/binaries/ESP32-H2/OpenEPaperLink_esp32_H2.bin b/binaries/ESP32-H2/OpenEPaperLink_esp32_H2.bin new file mode 100644 index 0000000000000000000000000000000000000000..0ba0b869d58ee06c91a2e2f9ac3a18aa8ba5d03f GIT binary patch literal 306144 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

IT3?- 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%0ATsU}}Nr!SXlE%x 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%0ANj8FHt?+-|q?5p27G?WuO$Sb8{GC)A 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 literal 0 HcmV?d00001 diff --git a/binaries/ESP32-H2/bootloader.bin b/binaries/ESP32-H2/bootloader.bin new file mode 100644 index 0000000000000000000000000000000000000000..2aa92fa1b82a8ee7480023b3ce2d76d1bdc70361 GIT binary patch literal 14448 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 literal 0 HcmV?d00001