mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-21 02:02:23 +00:00
Compare commits
2 Commits
ch341-read
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8fdba1f1e2 | ||
|
|
db64a5b51e |
13
.github/workflows/build_firmware.yml
vendored
13
.github/workflows/build_firmware.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
|||||||
# Use 'arctastic' self-hosted runner pool when building in the main repo
|
# Use 'arctastic' self-hosted runner pool when building in the main repo
|
||||||
runs-on: ${{ github.repository_owner == 'meshtastic' && 'arctastic' || 'ubuntu-latest' }}
|
runs-on: ${{ github.repository_owner == 'meshtastic' && 'arctastic' || 'ubuntu-latest' }}
|
||||||
outputs:
|
outputs:
|
||||||
artifact-id: ${{ steps.upload.outputs.artifact-id }}
|
artifact-id: ${{ steps.upload-firmware.outputs.artifact-id }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
@@ -71,7 +71,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Store binaries as an artifact
|
- name: Store binaries as an artifact
|
||||||
uses: actions/upload-artifact@v6
|
uses: actions/upload-artifact@v6
|
||||||
id: upload
|
id: upload-firmware
|
||||||
with:
|
with:
|
||||||
name: firmware-${{ inputs.platform }}-${{ inputs.pio_env }}-${{ inputs.version }}
|
name: firmware-${{ inputs.platform }}-${{ inputs.pio_env }}-${{ inputs.version }}
|
||||||
overwrite: true
|
overwrite: true
|
||||||
@@ -84,3 +84,12 @@ jobs:
|
|||||||
release/*.zip
|
release/*.zip
|
||||||
release/device-*.sh
|
release/device-*.sh
|
||||||
release/device-*.bat
|
release/device-*.bat
|
||||||
|
|
||||||
|
- name: Store manifests as an artifact
|
||||||
|
uses: actions/upload-artifact@v6
|
||||||
|
id: upload-manifest
|
||||||
|
with:
|
||||||
|
name: manifest-${{ inputs.platform }}-${{ inputs.pio_env }}-${{ inputs.version }}
|
||||||
|
overwrite: true
|
||||||
|
path: |
|
||||||
|
release/*.mt.json
|
||||||
|
|||||||
34
.github/workflows/main_matrix.yml
vendored
34
.github/workflows/main_matrix.yml
vendored
@@ -233,6 +233,40 @@ jobs:
|
|||||||
description: "Download firmware-${{matrix.arch}}-${{ needs.version.outputs.long }}.zip. This artifact will be available for 90 days from creation"
|
description: "Download firmware-${{matrix.arch}}-${{ needs.version.outputs.long }}.zip. This artifact will be available for 90 days from creation"
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
shame:
|
||||||
|
if: github.repository == 'meshtastic/firmware'
|
||||||
|
continue-on-error: true
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [build]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
with:
|
||||||
|
filter: blob:none # means we download all the git history but none of the commit (except ones with checkout like the head)
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Download the current manifests
|
||||||
|
uses: actions/download-artifact@v7
|
||||||
|
with:
|
||||||
|
path: ./manifests-new/
|
||||||
|
pattern: manifest-*
|
||||||
|
merge-multiple: true
|
||||||
|
- name: Upload combined manifests for later commit and global stats crunching.
|
||||||
|
uses: actions/upload-artifact@v6
|
||||||
|
id: upload-manifest
|
||||||
|
with:
|
||||||
|
name: manifests-all
|
||||||
|
overwrite: true
|
||||||
|
path: |
|
||||||
|
manifests-new/*.mt.json
|
||||||
|
- name: Find the merge base
|
||||||
|
run: echo "MERGE_BASE=$(git merge-base "origin/$base" "$head")" >> $GITHUB_ENV
|
||||||
|
env:
|
||||||
|
base: ${{ github.base_ref }}
|
||||||
|
head: ${{ github.head_ref }}
|
||||||
|
- name: Download the old manifests
|
||||||
|
run: gh run download -R ${{ github.repository }} --commit ${{ env.MERGE_BASE }} --name manifests-all --dir manifest-old/
|
||||||
|
- name: Do scan and post comment
|
||||||
|
run: python3 bin/shame.py ${{ github.event.pull_request.number }} manifests-old/ manifests-new/
|
||||||
|
|
||||||
release-artifacts:
|
release-artifacts:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ github.event_name == 'workflow_dispatch' && github.repository == 'meshtastic/firmware' }}
|
if: ${{ github.event_name == 'workflow_dispatch' && github.repository == 'meshtastic/firmware' }}
|
||||||
|
|||||||
101
bin/shame.py
Normal file
101
bin/shame.py
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
from github import Github
|
||||||
|
|
||||||
|
def parseFile(path):
|
||||||
|
with open(path, "r") as f:
|
||||||
|
data = json.loads(f)
|
||||||
|
for file in data["files"]:
|
||||||
|
if file["name"].endswith(".bin"):
|
||||||
|
return file["name"], file["bytes"]
|
||||||
|
|
||||||
|
if len(sys.argv) != 4:
|
||||||
|
print(f"expected usage: {sys.argv[0]} <PR number> <path to old-manifests> <path to new-manifests>")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
pr_number = int(sys.argv[1])
|
||||||
|
|
||||||
|
token = os.getenv("GITHUB_TOKEN")
|
||||||
|
if not token:
|
||||||
|
raise EnvironmentError("GITHUB_TOKEN not found in environment.")
|
||||||
|
|
||||||
|
repo_name = os.getenv("GITHUB_REPOSITORY") # "owner/repo"
|
||||||
|
if not repo_name:
|
||||||
|
raise EnvironmentError("GITHUB_REPOSITORY not found in environment.")
|
||||||
|
|
||||||
|
oldFiles = sys.argv[2]
|
||||||
|
old = set(os.path.join(oldFiles, f) for f in os.listdir(oldFiles) if os.path.isfile(f))
|
||||||
|
newFiles = sys.argv[3]
|
||||||
|
new = set(os.path.join(newFiles, f) for f in os.listdir(newFiles) if os.path.isfile(f))
|
||||||
|
|
||||||
|
startMarkdown = "# Target Size Changes\n\n"
|
||||||
|
markdown = ""
|
||||||
|
|
||||||
|
newlyIntroduced = new - old
|
||||||
|
if len(newlyIntroduced) > 0:
|
||||||
|
markdown += "## Newly Introduced Targets\n\n"
|
||||||
|
# create a table
|
||||||
|
markdown += "| File | Size |\n"
|
||||||
|
markdown += "| ---- | ---- |\n"
|
||||||
|
for f in newlyIntroduced:
|
||||||
|
name, size = parseFile(f)
|
||||||
|
markdown += f"| `{name}` | {size}b |\n"
|
||||||
|
|
||||||
|
removed = old - new
|
||||||
|
if len(removed) > 0:
|
||||||
|
markdown += "\n## Removed Targets\n\n"
|
||||||
|
# create a table
|
||||||
|
markdown += "| File | Size |\n"
|
||||||
|
markdown += "| ---- | ---- |\n"
|
||||||
|
for f in removed:
|
||||||
|
name, size = parseFile(f)
|
||||||
|
markdown += f"| `{name}` | {size}b |\n"
|
||||||
|
|
||||||
|
both = old & new
|
||||||
|
degradations = []
|
||||||
|
improvements = []
|
||||||
|
for f in both:
|
||||||
|
oldName, oldSize = parseFile(f)
|
||||||
|
_, newSize = parseFile(f)
|
||||||
|
if oldSize != newSize:
|
||||||
|
if newSize < oldSize:
|
||||||
|
improvements.append((oldName, oldSize, newSize))
|
||||||
|
else:
|
||||||
|
degradations.append((oldName, oldSize, newSize))
|
||||||
|
|
||||||
|
if len(degradations) > 0:
|
||||||
|
markdown += "\n## Degradation\n\n"
|
||||||
|
# create a table
|
||||||
|
markdown += "| File | Difference | Old Size | New Size |\n"
|
||||||
|
markdown += "| ---- | ---------- | -------- | -------- |\n"
|
||||||
|
for oldName, oldSize, newSize in degradations:
|
||||||
|
markdown += f"| `{oldName}` | **{oldSize - newSize}b** | {oldSize}b | {newSize}b |\n"
|
||||||
|
|
||||||
|
if len(improvements) > 0:
|
||||||
|
markdown += "\n## Improvement\n\n"
|
||||||
|
# create a table
|
||||||
|
markdown += "| File | Difference | Old Size | New Size |\n"
|
||||||
|
markdown += "| ---- | ---------- | -------- | -------- |\n"
|
||||||
|
for oldName, oldSize, newSize in improvements:
|
||||||
|
markdown += f"| `{oldName}` | **{oldSize - newSize}b** | {oldSize}b | {newSize}b |\n"
|
||||||
|
|
||||||
|
if len(markdown) == 0:
|
||||||
|
markdown = "No changes in target sizes detected."
|
||||||
|
|
||||||
|
g = Github(token)
|
||||||
|
repo = g.get_repo(repo_name)
|
||||||
|
pr = repo.get_pull(pr_number)
|
||||||
|
|
||||||
|
existing_comment = None
|
||||||
|
for comment in pr.get_issue_comments():
|
||||||
|
if comment.body.startswith(startMarkdown):
|
||||||
|
existing_comment = comment
|
||||||
|
break
|
||||||
|
|
||||||
|
final_markdown = startMarkdown + markdown
|
||||||
|
|
||||||
|
if existing_comment:
|
||||||
|
existing_comment.edit(body=final_markdown)
|
||||||
|
else:
|
||||||
|
pr.create_issue_comment(body=final_markdown)
|
||||||
@@ -29,8 +29,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#if __has_include("Melopero_RV3028.h")
|
#if __has_include("Melopero_RV3028.h")
|
||||||
#include "Melopero_RV3028.h"
|
#include "Melopero_RV3028.h"
|
||||||
#endif
|
#endif
|
||||||
#if __has_include("pcf8563.h")
|
#if __has_include("SensorRtcHelper.hpp")
|
||||||
#include "pcf8563.h"
|
#include "SensorRtcHelper.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Offer chance for variant-specific defines */
|
/* Offer chance for variant-specific defines */
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ ScanI2C::FoundDevice ScanI2C::firstScreen() const
|
|||||||
|
|
||||||
ScanI2C::FoundDevice ScanI2C::firstRTC() const
|
ScanI2C::FoundDevice ScanI2C::firstRTC() const
|
||||||
{
|
{
|
||||||
ScanI2C::DeviceType types[] = {RTC_RV3028, RTC_PCF8563, RTC_RX8130CE};
|
ScanI2C::DeviceType types[] = {RTC_RV3028, RTC_PCF8563, RTC_PCF85063, RTC_RX8130CE};
|
||||||
return firstOfOrNONE(3, types);
|
return firstOfOrNONE(4, types);
|
||||||
}
|
}
|
||||||
|
|
||||||
ScanI2C::FoundDevice ScanI2C::firstKeyboard() const
|
ScanI2C::FoundDevice ScanI2C::firstKeyboard() const
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ class ScanI2C
|
|||||||
SCREEN_ST7567,
|
SCREEN_ST7567,
|
||||||
RTC_RV3028,
|
RTC_RV3028,
|
||||||
RTC_PCF8563,
|
RTC_PCF8563,
|
||||||
|
RTC_PCF85063,
|
||||||
RTC_RX8130CE,
|
RTC_RX8130CE,
|
||||||
CARDKB,
|
CARDKB,
|
||||||
TDECKKB,
|
TDECKKB,
|
||||||
|
|||||||
@@ -202,6 +202,10 @@ void ScanI2CTwoWire::scanPort(I2CPort port, uint8_t *address, uint8_t asize)
|
|||||||
SCAN_SIMPLE_CASE(RX8130CE_RTC, RTC_RX8130CE, "RX8130CE", (uint8_t)addr.address)
|
SCAN_SIMPLE_CASE(RX8130CE_RTC, RTC_RX8130CE, "RX8130CE", (uint8_t)addr.address)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PCF85063_RTC
|
||||||
|
SCAN_SIMPLE_CASE(PCF85063_RTC, RTC_PCF85063, "PCF85063", (uint8_t)addr.address)
|
||||||
|
#endif
|
||||||
|
|
||||||
case CARDKB_ADDR:
|
case CARDKB_ADDR:
|
||||||
// Do we have the RAK14006 instead?
|
// Do we have the RAK14006 instead?
|
||||||
registerValue = getRegisterValue(ScanI2CTwoWire::RegisterLocation(addr, 0x04), 1);
|
registerValue = getRegisterValue(ScanI2CTwoWire::RegisterLocation(addr, 0x04), 1);
|
||||||
|
|||||||
@@ -66,26 +66,26 @@ RTCSetResult readFromRTC()
|
|||||||
currentQuality = RTCQualityDevice;
|
currentQuality = RTCQualityDevice;
|
||||||
}
|
}
|
||||||
return RTCSetResultSuccess;
|
return RTCSetResultSuccess;
|
||||||
|
} else {
|
||||||
|
LOG_WARN("RTC not found (found address 0x%02X)", rtc_found.address);
|
||||||
}
|
}
|
||||||
#elif defined(PCF8563_RTC)
|
#elif defined(PCF8563_RTC) || defined(PCF85063_RTC)
|
||||||
|
#if defined(PCF8563_RTC)
|
||||||
if (rtc_found.address == PCF8563_RTC) {
|
if (rtc_found.address == PCF8563_RTC) {
|
||||||
|
#elif defined(PCF85063_RTC)
|
||||||
|
if (rtc_found.address == PCF85063_RTC) {
|
||||||
|
#endif
|
||||||
uint32_t now = millis();
|
uint32_t now = millis();
|
||||||
PCF8563_Class rtc;
|
SensorRtcHelper rtc;
|
||||||
|
|
||||||
#if WIRE_INTERFACES_COUNT == 2
|
#if WIRE_INTERFACES_COUNT == 2
|
||||||
rtc.begin(rtc_found.port == ScanI2C::I2CPort::WIRE1 ? Wire1 : Wire);
|
rtc.begin(rtc_found.port == ScanI2C::I2CPort::WIRE1 ? Wire1 : Wire);
|
||||||
#else
|
#else
|
||||||
rtc.begin();
|
rtc.begin(Wire);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
auto tc = rtc.getDateTime();
|
RTC_DateTime datetime = rtc.getDateTime();
|
||||||
tm t;
|
tm t = datetime.toUnixTime();
|
||||||
t.tm_year = tc.year - 1900;
|
|
||||||
t.tm_mon = tc.month - 1;
|
|
||||||
t.tm_mday = tc.day;
|
|
||||||
t.tm_hour = tc.hour;
|
|
||||||
t.tm_min = tc.minute;
|
|
||||||
t.tm_sec = tc.second;
|
|
||||||
tv.tv_sec = gm_mktime(&t);
|
tv.tv_sec = gm_mktime(&t);
|
||||||
tv.tv_usec = 0;
|
tv.tv_usec = 0;
|
||||||
uint32_t printableEpoch = tv.tv_sec; // Print lib only supports 32 bit but time_t can be 64 bit on some platforms
|
uint32_t printableEpoch = tv.tv_sec; // Print lib only supports 32 bit but time_t can be 64 bit on some platforms
|
||||||
@@ -100,14 +100,16 @@ RTCSetResult readFromRTC()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LOG_DEBUG("Read RTC time from PCF8563 getDateTime as %02d-%02d-%02d %02d:%02d:%02d (%ld)", t.tm_year + 1900, t.tm_mon + 1,
|
LOG_DEBUG("Read RTC time from %s getDateTime as %02d-%02d-%02d %02d:%02d:%02d (%ld)", rtc.getChipName(), t.tm_year + 1900,
|
||||||
t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec, printableEpoch);
|
t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec, printableEpoch);
|
||||||
if (currentQuality == RTCQualityNone) {
|
if (currentQuality == RTCQualityNone) {
|
||||||
timeStartMsec = now;
|
timeStartMsec = now;
|
||||||
zeroOffsetSecs = tv.tv_sec;
|
zeroOffsetSecs = tv.tv_sec;
|
||||||
currentQuality = RTCQualityDevice;
|
currentQuality = RTCQualityDevice;
|
||||||
}
|
}
|
||||||
return RTCSetResultSuccess;
|
return RTCSetResultSuccess;
|
||||||
|
} else {
|
||||||
|
LOG_WARN("RTC not found (found address 0x%02X)", rtc_found.address);
|
||||||
}
|
}
|
||||||
#elif defined(RX8130CE_RTC)
|
#elif defined(RX8130CE_RTC)
|
||||||
if (rtc_found.address == RX8130CE_RTC) {
|
if (rtc_found.address == RX8130CE_RTC) {
|
||||||
@@ -232,20 +234,28 @@ RTCSetResult perhapsSetRTC(RTCQuality q, const struct timeval *tv, bool forceUpd
|
|||||||
rtc.setTime(t->tm_year + 1900, t->tm_mon + 1, t->tm_wday, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
|
rtc.setTime(t->tm_year + 1900, t->tm_mon + 1, t->tm_wday, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
|
||||||
LOG_DEBUG("RV3028_RTC setTime %02d-%02d-%02d %02d:%02d:%02d (%ld)", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
|
LOG_DEBUG("RV3028_RTC setTime %02d-%02d-%02d %02d:%02d:%02d (%ld)", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
|
||||||
t->tm_hour, t->tm_min, t->tm_sec, printableEpoch);
|
t->tm_hour, t->tm_min, t->tm_sec, printableEpoch);
|
||||||
|
} else {
|
||||||
|
LOG_WARN("RTC not found (found address 0x%02X)", rtc_found.address);
|
||||||
}
|
}
|
||||||
#elif defined(PCF8563_RTC)
|
#elif defined(PCF8563_RTC) || defined(PCF85063_RTC)
|
||||||
|
#if defined(PCF8563_RTC)
|
||||||
if (rtc_found.address == PCF8563_RTC) {
|
if (rtc_found.address == PCF8563_RTC) {
|
||||||
PCF8563_Class rtc;
|
#elif defined(PCF85063_RTC)
|
||||||
|
if (rtc_found.address == PCF85063_RTC) {
|
||||||
|
#endif
|
||||||
|
SensorRtcHelper rtc;
|
||||||
|
|
||||||
#if WIRE_INTERFACES_COUNT == 2
|
#if WIRE_INTERFACES_COUNT == 2
|
||||||
rtc.begin(rtc_found.port == ScanI2C::I2CPort::WIRE1 ? Wire1 : Wire);
|
rtc.begin(rtc_found.port == ScanI2C::I2CPort::WIRE1 ? Wire1 : Wire);
|
||||||
#else
|
#else
|
||||||
rtc.begin();
|
rtc.begin(Wire);
|
||||||
#endif
|
#endif
|
||||||
tm *t = gmtime(&tv->tv_sec);
|
tm *t = gmtime(&tv->tv_sec);
|
||||||
rtc.setDateTime(t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
|
rtc.setDateTime(*t);
|
||||||
LOG_DEBUG("PCF8563_RTC setDateTime %02d-%02d-%02d %02d:%02d:%02d (%ld)", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
|
LOG_DEBUG("%s setDateTime %02d-%02d-%02d %02d:%02d:%02d (%ld)", rtc.getChipName(), t->tm_year + 1900, t->tm_mon + 1,
|
||||||
t->tm_hour, t->tm_min, t->tm_sec, printableEpoch);
|
t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec, printableEpoch);
|
||||||
|
} else {
|
||||||
|
LOG_WARN("RTC not found (found address 0x%02X)", rtc_found.address);
|
||||||
}
|
}
|
||||||
#elif defined(RX8130CE_RTC)
|
#elif defined(RX8130CE_RTC)
|
||||||
if (rtc_found.address == RX8130CE_RTC) {
|
if (rtc_found.address == RX8130CE_RTC) {
|
||||||
|
|||||||
@@ -2,16 +2,14 @@
|
|||||||
|
|
||||||
#if !defined(ARCH_STM32WL) && !MESHTASTIC_EXCLUDE_I2C && defined(HAS_BMA423) && __has_include(<SensorBMA423.hpp>)
|
#if !defined(ARCH_STM32WL) && !MESHTASTIC_EXCLUDE_I2C && defined(HAS_BMA423) && __has_include(<SensorBMA423.hpp>)
|
||||||
|
|
||||||
using namespace MotionSensorI2C;
|
|
||||||
|
|
||||||
BMA423Sensor::BMA423Sensor(ScanI2C::FoundDevice foundDevice) : MotionSensor::MotionSensor(foundDevice) {}
|
BMA423Sensor::BMA423Sensor(ScanI2C::FoundDevice foundDevice) : MotionSensor::MotionSensor(foundDevice) {}
|
||||||
|
|
||||||
bool BMA423Sensor::init()
|
bool BMA423Sensor::init()
|
||||||
{
|
{
|
||||||
if (sensor.begin(deviceAddress(), &MotionSensorI2C::readRegister, &MotionSensorI2C::writeRegister)) {
|
if (sensor.begin(Wire, deviceAddress())) {
|
||||||
sensor.configAccelerometer(sensor.RANGE_2G, sensor.ODR_100HZ, sensor.BW_NORMAL_AVG4, sensor.PERF_CONTINUOUS_MODE);
|
sensor.configAccelerometer(sensor.RANGE_2G, sensor.ODR_100HZ, sensor.BW_NORMAL_AVG4, sensor.PERF_CONTINUOUS_MODE);
|
||||||
sensor.enableAccelerometer();
|
sensor.enableAccelerometer();
|
||||||
sensor.configInterrupt(BMA4_LEVEL_TRIGGER, BMA4_ACTIVE_HIGH, BMA4_PUSH_PULL, BMA4_OUTPUT_ENABLE, BMA4_INPUT_DISABLE);
|
sensor.configInterrupt();
|
||||||
|
|
||||||
#ifdef BMA423_INT
|
#ifdef BMA423_INT
|
||||||
pinMode(BMA4XX_INT, INPUT);
|
pinMode(BMA4XX_INT, INPUT);
|
||||||
@@ -26,9 +24,9 @@ bool BMA423Sensor::init()
|
|||||||
|
|
||||||
#ifdef T_WATCH_S3
|
#ifdef T_WATCH_S3
|
||||||
// Need to raise the wrist function, need to set the correct axis
|
// Need to raise the wrist function, need to set the correct axis
|
||||||
sensor.setReampAxes(sensor.REMAP_TOP_LAYER_RIGHT_CORNER);
|
sensor.setRemapAxes(sensor.REMAP_TOP_LAYER_RIGHT_CORNER);
|
||||||
#else
|
#else
|
||||||
sensor.setReampAxes(sensor.REMAP_BOTTOM_LAYER_BOTTOM_LEFT_CORNER);
|
sensor.setRemapAxes(sensor.REMAP_BOTTOM_LAYER_BOTTOM_LEFT_CORNER);
|
||||||
#endif
|
#endif
|
||||||
// sensor.enableFeature(sensor.FEATURE_STEP_CNTR, true);
|
// sensor.enableFeature(sensor.FEATURE_STEP_CNTR, true);
|
||||||
sensor.enableFeature(sensor.FEATURE_TILT, true);
|
sensor.enableFeature(sensor.FEATURE_TILT, true);
|
||||||
@@ -50,7 +48,7 @@ bool BMA423Sensor::init()
|
|||||||
|
|
||||||
int32_t BMA423Sensor::runOnce()
|
int32_t BMA423Sensor::runOnce()
|
||||||
{
|
{
|
||||||
if (sensor.readIrqStatus() != DEV_WIRE_NONE) {
|
if (sensor.readIrqStatus()) {
|
||||||
if (sensor.isTilt() || sensor.isDoubleTap()) {
|
if (sensor.isTilt() || sensor.isDoubleTap()) {
|
||||||
wakeScreen();
|
wakeScreen();
|
||||||
return 500;
|
return 500;
|
||||||
|
|||||||
@@ -61,32 +61,6 @@ class MotionSensor
|
|||||||
uint32_t endCalibrationAt = 0;
|
uint32_t endCalibrationAt = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace MotionSensorI2C
|
|
||||||
{
|
|
||||||
|
|
||||||
static inline int readRegister(uint8_t address, uint8_t reg, uint8_t *data, uint8_t len)
|
|
||||||
{
|
|
||||||
Wire.beginTransmission(address);
|
|
||||||
Wire.write(reg);
|
|
||||||
Wire.endTransmission();
|
|
||||||
Wire.requestFrom((uint8_t)address, (uint8_t)len);
|
|
||||||
uint8_t i = 0;
|
|
||||||
while (Wire.available()) {
|
|
||||||
data[i++] = Wire.read();
|
|
||||||
}
|
|
||||||
return 0; // Pass
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int writeRegister(uint8_t address, uint8_t reg, uint8_t *data, uint8_t len)
|
|
||||||
{
|
|
||||||
Wire.beginTransmission(address);
|
|
||||||
Wire.write(reg);
|
|
||||||
Wire.write(data, len);
|
|
||||||
return (0 != Wire.endTransmission());
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace MotionSensorI2C
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -8,9 +8,6 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <libpinedio-usb.h>
|
#include <libpinedio-usb.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
extern "C" {
|
|
||||||
#include "platform/portduino/ch341a_i2c.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
// include the library for Raspberry GPIO pins
|
// include the library for Raspberry GPIO pins
|
||||||
|
|
||||||
@@ -50,9 +47,6 @@ class Ch341Hal : public RadioLibHal
|
|||||||
std::string s = "Could not open SPI: ";
|
std::string s = "Could not open SPI: ";
|
||||||
throw(s + std::to_string(ret));
|
throw(s + std::to_string(ret));
|
||||||
}
|
}
|
||||||
// How to read the eeprom
|
|
||||||
// uint8_t buffer[1024] = {0};
|
|
||||||
// ch341readEEPROM_param(buffer, 0, 128, 128, 8, 1, 0x50, pinedio.handle);
|
|
||||||
|
|
||||||
pinedio_set_option(&pinedio, PINEDIO_OPTION_AUTO_CS, 0);
|
pinedio_set_option(&pinedio, PINEDIO_OPTION_AUTO_CS, 0);
|
||||||
pinedio_set_pin_mode(&pinedio, 3, true);
|
pinedio_set_pin_mode(&pinedio, 3, true);
|
||||||
|
|||||||
@@ -1,204 +0,0 @@
|
|||||||
//
|
|
||||||
// ch341eeprom programmer version 0.1 (Beta)
|
|
||||||
//
|
|
||||||
// Programming tool for the 24Cxx serial EEPROMs using the Winchiphead CH341A IC
|
|
||||||
//
|
|
||||||
// (c) December 2011 asbokid <ballymunboy@gmail.com>
|
|
||||||
// (c) August 2023 Mikhail Medvedev <e-ink-reader@yandex.ru>
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
//
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
#include "ch341a_i2c.h"
|
|
||||||
|
|
||||||
// extern struct libusb_device_handle *handle;
|
|
||||||
unsigned char *readbuf;
|
|
||||||
uint32_t getnextpkt; // set by the callback function
|
|
||||||
uint32_t syncackpkt; // synch / ack flag used by BULK OUT cb function
|
|
||||||
uint32_t byteoffset;
|
|
||||||
|
|
||||||
// callback functions for async USB transfers
|
|
||||||
static void cbBulkIn(struct libusb_transfer *transfer);
|
|
||||||
static void cbBulkOut(struct libusb_transfer *transfer);
|
|
||||||
|
|
||||||
void ch341ReadCmdMarshall(uint8_t *buffer, uint32_t addr, struct EEPROM *eeprom_info, uint32_t i2c_address)
|
|
||||||
{
|
|
||||||
uint8_t *ptr = buffer;
|
|
||||||
uint8_t msb_addr;
|
|
||||||
uint32_t size_kb;
|
|
||||||
|
|
||||||
*ptr++ = CH341_CMD_I2C_STREAM; // 0
|
|
||||||
*ptr++ = CH341_CMD_I2C_STM_STA; // 1
|
|
||||||
// Write address
|
|
||||||
*ptr++ = CH341_CMD_I2C_STM_OUT | ((*eeprom_info).addr_size + 1); // 2: I2C bus adddress + EEPROM address
|
|
||||||
if ((*eeprom_info).addr_size >= 2) {
|
|
||||||
// 24C32 and more
|
|
||||||
msb_addr = addr >> 16 & (*eeprom_info).i2c_addr_mask;
|
|
||||||
*ptr++ = (i2c_address | msb_addr) << 1; // 3
|
|
||||||
*ptr++ = (addr >> 8 & 0xFF); // 4
|
|
||||||
*ptr++ = (addr >> 0 & 0xFF); // 5
|
|
||||||
} else {
|
|
||||||
// 24C16 and less
|
|
||||||
msb_addr = addr >> 8 & (*eeprom_info).i2c_addr_mask;
|
|
||||||
*ptr++ = (i2c_address | msb_addr) << 1; // 3
|
|
||||||
*ptr++ = (addr >> 0 & 0xFF); // 4
|
|
||||||
}
|
|
||||||
// Read
|
|
||||||
*ptr++ = CH341_CMD_I2C_STM_STA; // 6/5
|
|
||||||
*ptr++ = CH341_CMD_I2C_STM_OUT | 1; // 7/6
|
|
||||||
*ptr++ = ((i2c_address | msb_addr) << 1) | 1; // 8/7: Read command
|
|
||||||
|
|
||||||
// Configuration?
|
|
||||||
*ptr++ = 0xE0; // 9/8
|
|
||||||
*ptr++ = 0x00; // 10/9
|
|
||||||
if ((*eeprom_info).addr_size < 2)
|
|
||||||
*ptr++ = 0x10; // x/10
|
|
||||||
memcpy(ptr, "\x00\x06\x04\x00\x00\x00\x00\x00\x00", 9);
|
|
||||||
ptr += 9; // 10
|
|
||||||
size_kb = (*eeprom_info).size / 1024;
|
|
||||||
*ptr++ = size_kb & 0xFF; // 19
|
|
||||||
*ptr++ = (size_kb >> 8) & 0xFF; // 20
|
|
||||||
memcpy(ptr, "\x00\x00\x11\x4d\x40\x77\xcd\xab\xba\xdc", 10);
|
|
||||||
ptr += 10;
|
|
||||||
|
|
||||||
// Frame 2
|
|
||||||
*ptr++ = CH341_CMD_I2C_STREAM;
|
|
||||||
memcpy(ptr,
|
|
||||||
"\xe0\x00\x00\xc4\xf1\x12\x00\x11\x4d\x40\x77\xf0\xf1\x12\x00"
|
|
||||||
"\xd9\x8b\x41\x7e\x00\xe0\xfd\x7f\xf0\xf1\x12\x00\x5a\x88\x41\x7e",
|
|
||||||
31);
|
|
||||||
ptr += 31;
|
|
||||||
|
|
||||||
// Frame 3
|
|
||||||
*ptr++ = CH341_CMD_I2C_STREAM;
|
|
||||||
memcpy(ptr,
|
|
||||||
"\xe0\x00\x00\x2a\x88\x41\x7e\x06\x04\x00\x00\x11\x4d\x40\x77"
|
|
||||||
"\xe8\xf3\x12\x00\x14\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00",
|
|
||||||
31);
|
|
||||||
ptr += 31;
|
|
||||||
|
|
||||||
// Finalize
|
|
||||||
*ptr++ = CH341_CMD_I2C_STREAM; // 0xAA
|
|
||||||
*ptr++ = 0xDF; // ???
|
|
||||||
*ptr++ = CH341_CMD_I2C_STM_IN; // 0xC0
|
|
||||||
*ptr++ = CH341_CMD_I2C_STM_STO; // 0x75
|
|
||||||
*ptr++ = CH341_CMD_I2C_STM_END; // 0x00
|
|
||||||
|
|
||||||
assert(ptr - buffer == CH341_EEPROM_READ_CMD_SZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
// ch341readEEPROM()
|
|
||||||
// read n bytes from device (in packets of 32 bytes)
|
|
||||||
int32_t ch341readEEPROM_param(uint8_t *buffer, uint32_t offset, uint32_t bytestoread, uint32_t ic_size, uint32_t block_size,
|
|
||||||
uint8_t algorithm, uint32_t i2c_address, struct libusb_device_handle *handle)
|
|
||||||
{
|
|
||||||
|
|
||||||
uint8_t ch341outBuffer[EEPROM_READ_BULKOUT_BUF_SZ];
|
|
||||||
uint8_t ch341inBuffer[IN_BUF_SZ]; // 0x100 bytes
|
|
||||||
int32_t ret = 0, readpktcount = 0;
|
|
||||||
struct libusb_transfer *xferBulkIn, *xferBulkOut;
|
|
||||||
struct timeval tv = {0, 100}; // our async polling interval
|
|
||||||
struct EEPROM eeprom_info;
|
|
||||||
eeprom_info.name = "24c01";
|
|
||||||
eeprom_info.size = ic_size;
|
|
||||||
eeprom_info.page_size = (uint16_t)block_size;
|
|
||||||
eeprom_info.addr_size = 0x0f & algorithm;
|
|
||||||
eeprom_info.i2c_addr_mask = (0xf0 & algorithm) / 16;
|
|
||||||
|
|
||||||
xferBulkIn = libusb_alloc_transfer(0);
|
|
||||||
xferBulkOut = libusb_alloc_transfer(0);
|
|
||||||
|
|
||||||
if (!xferBulkIn || !xferBulkOut) {
|
|
||||||
printf("Couldn't allocate USB transfer structures\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
byteoffset = 0;
|
|
||||||
|
|
||||||
memset(ch341inBuffer, 0, EEPROM_READ_BULKIN_BUF_SZ);
|
|
||||||
ch341ReadCmdMarshall(ch341outBuffer, offset, &eeprom_info, i2c_address); // Fill output buffer
|
|
||||||
|
|
||||||
libusb_fill_bulk_transfer(xferBulkIn, handle, BULK_READ_ENDPOINT, ch341inBuffer, EEPROM_READ_BULKIN_BUF_SZ, cbBulkIn, NULL,
|
|
||||||
DEFAULT_TIMEOUT);
|
|
||||||
|
|
||||||
libusb_fill_bulk_transfer(xferBulkOut, handle, BULK_WRITE_ENDPOINT, ch341outBuffer, EEPROM_READ_BULKOUT_BUF_SZ, cbBulkOut,
|
|
||||||
NULL, DEFAULT_TIMEOUT);
|
|
||||||
|
|
||||||
libusb_submit_transfer(xferBulkIn);
|
|
||||||
libusb_submit_transfer(xferBulkOut);
|
|
||||||
|
|
||||||
readbuf = buffer;
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
ret = libusb_handle_events_timeout(NULL, &tv);
|
|
||||||
|
|
||||||
if (ret < 0 || getnextpkt == -1) { // indicates an error
|
|
||||||
printf("ret from libusb_handle_timeout = %d\n", ret);
|
|
||||||
printf("getnextpkt = %u\n", getnextpkt);
|
|
||||||
if (ret < 0)
|
|
||||||
printf("USB read error : %s\n", strerror(-ret));
|
|
||||||
libusb_free_transfer(xferBulkIn);
|
|
||||||
libusb_free_transfer(xferBulkOut);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (getnextpkt == 1) { // callback function reports a new BULK IN packet received
|
|
||||||
getnextpkt = 0; // reset the flag
|
|
||||||
readpktcount++; // increment the read packet counter
|
|
||||||
byteoffset += EEPROM_READ_BULKIN_BUF_SZ;
|
|
||||||
if (byteoffset == bytestoread)
|
|
||||||
break;
|
|
||||||
|
|
||||||
libusb_submit_transfer(xferBulkIn); // re-submit request for next BULK IN packet of EEPROM data
|
|
||||||
if (syncackpkt)
|
|
||||||
syncackpkt = 0;
|
|
||||||
// if 4th packet received, we are at end of 0x80 byte data block,
|
|
||||||
// if it is not the last block, then resubmit request for data
|
|
||||||
if (readpktcount == 4) {
|
|
||||||
readpktcount = 0;
|
|
||||||
|
|
||||||
ch341ReadCmdMarshall(ch341outBuffer, byteoffset, &eeprom_info, i2c_address); // Fill output buffer
|
|
||||||
libusb_fill_bulk_transfer(xferBulkOut, handle, BULK_WRITE_ENDPOINT, ch341outBuffer, EEPROM_READ_BULKOUT_BUF_SZ,
|
|
||||||
cbBulkOut, NULL, DEFAULT_TIMEOUT);
|
|
||||||
|
|
||||||
libusb_submit_transfer(xferBulkOut); // update transfer struct (with new EEPROM page offset)
|
|
||||||
// and re-submit next transfer request to BULK OUT endpoint
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
libusb_free_transfer(xferBulkIn);
|
|
||||||
libusb_free_transfer(xferBulkOut);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Callback function for async bulk in comms
|
|
||||||
void cbBulkIn(struct libusb_transfer *transfer)
|
|
||||||
{
|
|
||||||
switch (transfer->status) {
|
|
||||||
case LIBUSB_TRANSFER_COMPLETED:
|
|
||||||
// copy read data to our EEPROM buffer
|
|
||||||
memcpy(readbuf + byteoffset, transfer->buffer, transfer->actual_length);
|
|
||||||
getnextpkt = 1;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
printf("\ncbBulkIn: error : %d\n", transfer->status);
|
|
||||||
getnextpkt = -1;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Callback function for async bulk out comms
|
|
||||||
void cbBulkOut(struct libusb_transfer *transfer)
|
|
||||||
{
|
|
||||||
syncackpkt = 1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
// libUSB driver for the ch341a in i2c mode
|
|
||||||
//
|
|
||||||
// Copyright 2011 asbokid <ballymunboy@gmail.com>
|
|
||||||
#ifndef __CH341A_I2C_H__
|
|
||||||
#define __CH341A_I2C_H__
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <libusb-1.0/libusb.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#define BULK_WRITE_ENDPOINT 0x02 /* bEndpointAddress 0x02 EP 2 OUT (Bulk)*/
|
|
||||||
#define BULK_READ_ENDPOINT 0x82 /* bEndpointAddress 0x82 EP 2 IN (Bulk)*/
|
|
||||||
|
|
||||||
#define DEFAULT_TIMEOUT 300 // 300mS for USB timeouts
|
|
||||||
|
|
||||||
#define IN_BUF_SZ 0x100
|
|
||||||
#define EEPROM_READ_BULKIN_BUF_SZ 0x20
|
|
||||||
#define EEPROM_READ_BULKOUT_BUF_SZ 0x65
|
|
||||||
|
|
||||||
#define CH341_CMD_I2C_STREAM 0xAA
|
|
||||||
#define CH341_CMD_I2C_STM_STA 0x74
|
|
||||||
#define CH341_CMD_I2C_STM_STO 0x75
|
|
||||||
#define CH341_CMD_I2C_STM_OUT 0x80
|
|
||||||
#define CH341_CMD_I2C_STM_IN 0xC0
|
|
||||||
#define CH341_CMD_I2C_STM_END 0x00
|
|
||||||
|
|
||||||
#define CH341_EEPROM_READ_CMD_SZ 0x65 /* Same size for all 24cXX read setup and next packets*/
|
|
||||||
|
|
||||||
struct EEPROM {
|
|
||||||
char *name;
|
|
||||||
uint32_t size;
|
|
||||||
uint16_t page_size;
|
|
||||||
uint8_t addr_size; // Length of address in bytes
|
|
||||||
uint8_t i2c_addr_mask;
|
|
||||||
};
|
|
||||||
|
|
||||||
int32_t ch341readEEPROM_param(uint8_t *buffer, uint32_t offset, uint32_t bytestoread, uint32_t ic_size, uint32_t block_size,
|
|
||||||
uint8_t algorithm, uint32_t i2c_address, struct libusb_device_handle *handle);
|
|
||||||
#endif /* __CH341A_I2C_H__ */
|
|
||||||
@@ -20,8 +20,8 @@ lib_deps =
|
|||||||
${esp32_base.lib_deps}
|
${esp32_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=GxEPD2 packageName=zinggjm/library/GxEPD2
|
# renovate: datasource=custom.pio depName=GxEPD2 packageName=zinggjm/library/GxEPD2
|
||||||
zinggjm/GxEPD2@1.6.5
|
zinggjm/GxEPD2@1.6.5
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
# renovate: datasource=custom.pio depName=SensorLib packageName=lewisxhe/library/SensorLib
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
lewisxhe/SensorLib@0.3.2
|
||||||
lib_ignore =
|
lib_ignore =
|
||||||
m5stack-coreink
|
m5stack-coreink
|
||||||
monitor_filters = esp32_exception_decoder
|
monitor_filters = esp32_exception_decoder
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
#define LED_STATE_ON 1 // State when LED is lit
|
#define LED_STATE_ON 1 // State when LED is lit
|
||||||
#define LED_PIN 10
|
#define LED_PIN 10
|
||||||
|
|
||||||
#include "pcf8563.h"
|
|
||||||
// PCF8563 RTC Module
|
// PCF8563 RTC Module
|
||||||
#define PCF8563_RTC 0x51
|
#define PCF8563_RTC 0x51
|
||||||
#define HAS_RTC 1
|
#define HAS_RTC 1
|
||||||
|
|||||||
@@ -56,10 +56,6 @@
|
|||||||
#define HAS_SCREEN 1
|
#define HAS_SCREEN 1
|
||||||
#define USE_SH1106 1
|
#define USE_SH1106 1
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
|
||||||
// #define PCF8563_RTC 0x51
|
|
||||||
// #define PIN_RTC_INT 48 // Interrupt from the PCF8563 RTC
|
|
||||||
#define HAS_RTC 0
|
|
||||||
#define HAS_GPS 0
|
#define HAS_GPS 0
|
||||||
|
|
||||||
#define BUTTON_PIN PIN_BUTTON1
|
#define BUTTON_PIN PIN_BUTTON1
|
||||||
|
|||||||
@@ -18,7 +18,5 @@ build_flags =
|
|||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
||||||
https://github.com/meshtastic/GxEPD2/archive/1655054ba298e0e29fc2044741940f927f9c2a43.zip
|
https://github.com/meshtastic/GxEPD2/archive/1655054ba298e0e29fc2044741940f927f9c2a43.zip
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
# renovate: datasource=custom.pio depName=PCA9557-arduino packageName=maxpromer/library/PCA9557-arduino
|
# renovate: datasource=custom.pio depName=PCA9557-arduino packageName=maxpromer/library/PCA9557-arduino
|
||||||
maxpromer/PCA9557-arduino@1.0.0
|
maxpromer/PCA9557-arduino@1.0.0
|
||||||
|
|||||||
@@ -44,9 +44,6 @@
|
|||||||
#define PIN_SERIAL1_RX GPS_TX_PIN
|
#define PIN_SERIAL1_RX GPS_TX_PIN
|
||||||
#define PIN_SERIAL1_TX GPS_RX_PIN
|
#define PIN_SERIAL1_TX GPS_RX_PIN
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
|
||||||
#define PCF8563_RTC 0x51
|
|
||||||
|
|
||||||
#define SX126X_CS 17
|
#define SX126X_CS 17
|
||||||
#define LORA_SCK 16
|
#define LORA_SCK 16
|
||||||
#define LORA_MOSI 15
|
#define LORA_MOSI 15
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ lib_deps =
|
|||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
||||||
https://github.com/meshtastic/GxEPD2/archive/1655054ba298e0e29fc2044741940f927f9c2a43.zip
|
https://github.com/meshtastic/GxEPD2/archive/1655054ba298e0e29fc2044741940f927f9c2a43.zip
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
upload_speed = 115200
|
upload_speed = 115200
|
||||||
|
|
||||||
[env:heltec-vision-master-e213-inkhud]
|
[env:heltec-vision-master-e213-inkhud]
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ lib_deps =
|
|||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
||||||
https://github.com/meshtastic/GxEPD2/archive/448c8538129fde3d02a7cb5e6fc81971ad92547f.zip
|
https://github.com/meshtastic/GxEPD2/archive/448c8538129fde3d02a7cb5e6fc81971ad92547f.zip
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
upload_speed = 115200
|
upload_speed = 115200
|
||||||
|
|
||||||
[env:heltec-vision-master-e290-inkhud]
|
[env:heltec-vision-master-e290-inkhud]
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ build_flags =
|
|||||||
-D HELTEC_VISION_MASTER_T190
|
-D HELTEC_VISION_MASTER_T190
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
# renovate: datasource=git-refs depName=meshtastic-st7789 packageName=https://github.com/meshtastic/st7789 gitBranch=main
|
# renovate: datasource=git-refs depName=meshtastic-st7789 packageName=https://github.com/meshtastic/st7789 gitBranch=main
|
||||||
https://github.com/meshtastic/st7789/archive/bd33ea58ddfe4a5e4a66d53300ccbd38d66ac21f.zip
|
https://github.com/meshtastic/st7789/archive/bd33ea58ddfe4a5e4a66d53300ccbd38d66ac21f.zip
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ lib_deps =
|
|||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
||||||
https://github.com/meshtastic/GxEPD2/archive/1655054ba298e0e29fc2044741940f927f9c2a43.zip
|
https://github.com/meshtastic/GxEPD2/archive/1655054ba298e0e29fc2044741940f927f9c2a43.zip
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
upload_speed = 115200
|
upload_speed = 115200
|
||||||
|
|
||||||
[env:heltec-wireless-paper-inkhud]
|
[env:heltec-wireless-paper-inkhud]
|
||||||
|
|||||||
@@ -17,6 +17,4 @@ lib_deps =
|
|||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
||||||
https://github.com/meshtastic/GxEPD2/archive/55f618961db45a23eff0233546430f1e5a80f63a.zip
|
https://github.com/meshtastic/GxEPD2/archive/55f618961db45a23eff0233546430f1e5a80f63a.zip
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
upload_speed = 115200
|
upload_speed = 115200
|
||||||
|
|||||||
@@ -9,14 +9,12 @@ upload_protocol = esptool
|
|||||||
build_flags = ${esp32s3_base.build_flags}
|
build_flags = ${esp32s3_base.build_flags}
|
||||||
-DT_WATCH_S3
|
-DT_WATCH_S3
|
||||||
-Ivariants/esp32s3/t-watch-s3
|
-Ivariants/esp32s3/t-watch-s3
|
||||||
-DPCF8563_RTC=0x51
|
|
||||||
-DHAS_BMA423=1
|
|
||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
# renovate: datasource=custom.pio depName=LovyanGFX packageName=lovyan03/library/LovyanGFX
|
||||||
lovyan03/LovyanGFX@1.2.7
|
lovyan03/LovyanGFX@1.2.7
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
# renovate: datasource=custom.pio depName=SensorLib packageName=lewisxhe/library/SensorLib
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
lewisxhe/SensorLib@0.3.2
|
||||||
# renovate: datasource=custom.pio depName=Adafruit DRV2605 packageName=adafruit/library/Adafruit DRV2605 Library
|
# renovate: datasource=custom.pio depName=Adafruit DRV2605 packageName=adafruit/library/Adafruit DRV2605 Library
|
||||||
adafruit/Adafruit DRV2605 Library@1.2.4
|
adafruit/Adafruit DRV2605 Library@1.2.4
|
||||||
# renovate: datasource=custom.pio depName=ESP8266Audio packageName=earlephilhower/library/ESP8266Audio
|
# renovate: datasource=custom.pio depName=ESP8266Audio packageName=earlephilhower/library/ESP8266Audio
|
||||||
|
|||||||
@@ -41,11 +41,14 @@
|
|||||||
|
|
||||||
#define HAS_AXP2101
|
#define HAS_AXP2101
|
||||||
|
|
||||||
|
// PCF8563 RTC Module
|
||||||
|
#define PCF8563_RTC 0x51
|
||||||
#define HAS_RTC 1
|
#define HAS_RTC 1
|
||||||
|
|
||||||
#define I2C_SDA 10 // For QMC6310 sensors and screens
|
#define I2C_SDA 10 // For QMC6310 sensors and screens
|
||||||
#define I2C_SCL 11 // For QMC6310 sensors and screens
|
#define I2C_SCL 11 // For QMC6310 sensors and screens
|
||||||
|
|
||||||
|
#define HAS_BMA423 1
|
||||||
#define BMA4XX_INT 14 // Interrupt for BMA_423 axis sensor
|
#define BMA4XX_INT 14 // Interrupt for BMA_423 axis sensor
|
||||||
|
|
||||||
#define HAS_GPS 0
|
#define HAS_GPS 0
|
||||||
|
|||||||
@@ -7,10 +7,9 @@ board_check = true
|
|||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
# renovate: datasource=custom.pio depName=SensorLib packageName=lewisxhe/library/SensorLib
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
lewisxhe/SensorLib@0.3.2
|
||||||
|
|
||||||
build_flags =
|
build_flags =
|
||||||
${esp32s3_base.build_flags}
|
${esp32s3_base.build_flags}
|
||||||
-I variants/esp32s3/tbeam-s3-core
|
-I variants/esp32s3/tbeam-s3-core
|
||||||
-D PCF8563_RTC=0x51 ;Putting definitions in variant.h does not compile correctly
|
|
||||||
|
|||||||
@@ -53,6 +53,8 @@
|
|||||||
// #define PMU_IRQ 40
|
// #define PMU_IRQ 40
|
||||||
#define HAS_AXP2101
|
#define HAS_AXP2101
|
||||||
|
|
||||||
|
// PCF8563 RTC Module
|
||||||
|
#define PCF8563_RTC 0x51
|
||||||
#define HAS_RTC 1
|
#define HAS_RTC 1
|
||||||
|
|
||||||
// Specify the PMU as Wire1. In the t-beam-s3 core, PCF8563 and PMU share the bus
|
// Specify the PMU as Wire1. In the t-beam-s3 core, PCF8563 and PMU share the bus
|
||||||
@@ -72,9 +74,6 @@
|
|||||||
#define HAS_SDCARD // Have SPI interface SD card slot
|
#define HAS_SDCARD // Have SPI interface SD card slot
|
||||||
#define SDCARD_USE_SPI1
|
#define SDCARD_USE_SPI1
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
|
||||||
// #define PCF8563_RTC 0x51 //Putting definitions in variant. h does not compile correctly
|
|
||||||
|
|
||||||
// has 32768 Hz crystal
|
// has 32768 Hz crystal
|
||||||
#define HAS_32768HZ 1
|
#define HAS_32768HZ 1
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ lib_deps = ${esp32s3_base.lib_deps}
|
|||||||
adafruit/Adafruit DRV2605 Library@1.2.4
|
adafruit/Adafruit DRV2605 Library@1.2.4
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
lewisxhe/PCF8563_Library@1.0.1
|
||||||
# renovate: datasource=custom.pio depName=lewisxhe-SensorLib packageName=lewisxhe/library/SensorLib
|
# renovate: datasource=custom.pio depName=SensorLib packageName=lewisxhe/library/SensorLib
|
||||||
lewisxhe/SensorLib@0.3.1
|
lewisxhe/SensorLib@0.3.2
|
||||||
# renovate: datasource=github-tags depName=pschatzmann_arduino-audio-driver packageName=pschatzmann/arduino-audio-driver
|
# renovate: datasource=github-tags depName=pschatzmann_arduino-audio-driver packageName=pschatzmann/arduino-audio-driver
|
||||||
https://github.com/pschatzmann/arduino-audio-driver/archive/v0.1.3.zip
|
https://github.com/pschatzmann/arduino-audio-driver/archive/v0.1.3.zip
|
||||||
# TODO renovate
|
# TODO renovate
|
||||||
|
|||||||
@@ -35,11 +35,8 @@
|
|||||||
#define GPS_TX_PIN 12
|
#define GPS_TX_PIN 12
|
||||||
#define PIN_GPS_PPS 13
|
#define PIN_GPS_PPS 13
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
// PCF85063 RTC Module
|
||||||
#if __has_include("pcf8563.h")
|
#define PCF85063_RTC 0x51
|
||||||
#include "pcf8563.h"
|
|
||||||
#endif
|
|
||||||
#define PCF8563_RTC 0x51
|
|
||||||
#define HAS_RTC 1
|
#define HAS_RTC 1
|
||||||
|
|
||||||
// Rotary
|
// Rotary
|
||||||
|
|||||||
@@ -25,8 +25,6 @@ lib_deps =
|
|||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
||||||
https://github.com/meshtastic/GxEPD2/archive/33db3fa8ee6fc47d160bdb44f8f127c9a9203a10.zip
|
https://github.com/meshtastic/GxEPD2/archive/33db3fa8ee6fc47d160bdb44f8f127c9a9203a10.zip
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
# renovate: datasource=custom.pio depName=nRF52_PWM packageName=khoih-prog/library/nRF52_PWM
|
# renovate: datasource=custom.pio depName=nRF52_PWM packageName=khoih-prog/library/nRF52_PWM
|
||||||
khoih-prog/nRF52_PWM@1.0.1
|
khoih-prog/nRF52_PWM@1.0.1
|
||||||
;upload_protocol = fs
|
;upload_protocol = fs
|
||||||
@@ -48,5 +46,3 @@ build_src_filter =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
|
${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
|
|||||||
@@ -93,8 +93,6 @@ static const uint8_t A0 = PIN_A0;
|
|||||||
|
|
||||||
#define TP_SER_IO (0 + 11)
|
#define TP_SER_IO (0 + 11)
|
||||||
|
|
||||||
#define PIN_RTC_INT (0 + 16) // Interrupt from the PCF8563 RTC
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
External serial flash WP25R1635FZUIL0
|
External serial flash WP25R1635FZUIL0
|
||||||
*/
|
*/
|
||||||
@@ -161,9 +159,6 @@ External serial flash WP25R1635FZUIL0
|
|||||||
#define PIN_SERIAL1_TX GPS_TX_PIN
|
#define PIN_SERIAL1_TX GPS_TX_PIN
|
||||||
#define PIN_SERIAL1_RX GPS_RX_PIN
|
#define PIN_SERIAL1_RX GPS_RX_PIN
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
|
||||||
#define PCF8563_RTC 0x51
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI Interfaces
|
* SPI Interfaces
|
||||||
*/
|
*/
|
||||||
@@ -190,7 +185,6 @@ External serial flash WP25R1635FZUIL0
|
|||||||
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
||||||
#define ADC_MULTIPLIER (2.02F)
|
#define ADC_MULTIPLIER (2.02F)
|
||||||
|
|
||||||
// #define HAS_RTC 0
|
|
||||||
// #define HAS_SCREEN 0
|
// #define HAS_SCREEN 0
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -11,6 +11,4 @@ build_flags =
|
|||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/canaryone>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/canaryone>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
;upload_protocol = fs
|
;upload_protocol = fs
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ build_src_filter =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
|
${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
extra_scripts =
|
extra_scripts =
|
||||||
${env.extra_scripts}
|
${env.extra_scripts}
|
||||||
variants/nrf52840/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py ; Add to PIO's Project Tasks pane: preset builds for common displays
|
variants/nrf52840/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py ; Add to PIO's Project Tasks pane: preset builds for common displays
|
||||||
|
|||||||
@@ -124,9 +124,6 @@ No longer populated on PCB
|
|||||||
#define PIN_SERIAL1_RX GPS_RX_PIN
|
#define PIN_SERIAL1_RX GPS_RX_PIN
|
||||||
#define PIN_SERIAL1_TX GPS_TX_PIN
|
#define PIN_SERIAL1_TX GPS_TX_PIN
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
|
||||||
#define PCF8563_RTC 0x51
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI Interfaces
|
* SPI Interfaces
|
||||||
*/
|
*/
|
||||||
@@ -163,7 +160,6 @@ No longer populated on PCB
|
|||||||
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
||||||
#define ADC_MULTIPLIER (4.90F)
|
#define ADC_MULTIPLIER (4.90F)
|
||||||
|
|
||||||
#define HAS_RTC 0
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -13,7 +13,5 @@ build_flags = ${nrf52840_base.build_flags}
|
|||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_node_t114>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_node_t114>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
# renovate: datasource=git-refs depName=meshtastic-st7789 packageName=https://github.com/meshtastic/st7789 gitBranch=main
|
# renovate: datasource=git-refs depName=meshtastic-st7789 packageName=https://github.com/meshtastic/st7789 gitBranch=main
|
||||||
https://github.com/meshtastic/st7789/archive/bd33ea58ddfe4a5e4a66d53300ccbd38d66ac21f.zip
|
https://github.com/meshtastic/st7789/archive/bd33ea58ddfe4a5e4a66d53300ccbd38d66ac21f.zip
|
||||||
|
|||||||
@@ -175,9 +175,6 @@ No longer populated on PCB
|
|||||||
#define PIN_SERIAL1_RX GPS_RX_PIN
|
#define PIN_SERIAL1_RX GPS_RX_PIN
|
||||||
#define PIN_SERIAL1_TX GPS_TX_PIN
|
#define PIN_SERIAL1_TX GPS_TX_PIN
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
|
||||||
#define PCF8563_RTC 0x51
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI Interfaces
|
* SPI Interfaces
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -25,8 +25,6 @@ build_flags = ${nrf52840_base.build_flags}
|
|||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
||||||
https://github.com/meshtastic/GxEPD2/archive/b202ebfec6a4821e098cf7a625ba0f6f2400292d.zip
|
https://github.com/meshtastic/GxEPD2/archive/b202ebfec6a4821e098cf7a625ba0f6f2400292d.zip
|
||||||
|
|
||||||
@@ -72,8 +70,6 @@ build_flags = ${nrf52840_base.build_flags}
|
|||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
||||||
https://github.com/meshtastic/GxEPD2/archive/b202ebfec6a4821e098cf7a625ba0f6f2400292d.zip
|
https://github.com/meshtastic/GxEPD2/archive/b202ebfec6a4821e098cf7a625ba0f6f2400292d.zip
|
||||||
|
|
||||||
|
|||||||
@@ -130,7 +130,6 @@ No longer populated on PCB
|
|||||||
|
|
||||||
#undef HAS_GPS
|
#undef HAS_GPS
|
||||||
#define HAS_GPS 0
|
#define HAS_GPS 0
|
||||||
#define HAS_RTC 0
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ lib_deps =
|
|||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=git-refs depName=NMIoT-meshsolar packageName=https://github.com/NMIoT/meshsolar gitBranch=main
|
# renovate: datasource=git-refs depName=NMIoT-meshsolar packageName=https://github.com/NMIoT/meshsolar gitBranch=main
|
||||||
https://github.com/NMIoT/meshsolar/archive/dfc5330dad443982e6cdd37a61d33fc7252f468b.zip
|
https://github.com/NMIoT/meshsolar/archive/dfc5330dad443982e6cdd37a61d33fc7252f468b.zip
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
|
||||||
# renovate: datasource=custom.pio depName=ArduinoJson packageName=bblanchon/library/ArduinoJson
|
# renovate: datasource=custom.pio depName=ArduinoJson packageName=bblanchon/library/ArduinoJson
|
||||||
bblanchon/ArduinoJson@6.21.4
|
bblanchon/ArduinoJson@6.21.4
|
||||||
|
|
||||||
|
|||||||
@@ -142,7 +142,6 @@ No longer populated on PCB
|
|||||||
#define BQ4050_SCL_PIN (32 + 0) // I2C clock line pin
|
#define BQ4050_SCL_PIN (32 + 0) // I2C clock line pin
|
||||||
#define BQ4050_EMERGENCY_SHUTDOWN_PIN (32 + 3) // Emergency shutdown pin
|
#define BQ4050_EMERGENCY_SHUTDOWN_PIN (32 + 3) // Emergency shutdown pin
|
||||||
|
|
||||||
#define HAS_RTC 0
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ build_flags = ${nrf52840_base.build_flags}
|
|||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/nano-g2-ultra>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/nano-g2-ultra>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
# renovate: datasource=custom.pio depName=SensorLib packageName=lewisxhe/library/SensorLib
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
lewisxhe/SensorLib@0.3.2
|
||||||
;upload_protocol = fs
|
;upload_protocol = fs
|
||||||
|
|||||||
@@ -87,8 +87,6 @@ static const uint8_t A4 = PIN_A4;
|
|||||||
#define PIN_WIRE_SDA (0 + 17)
|
#define PIN_WIRE_SDA (0 + 17)
|
||||||
#define PIN_WIRE_SCL (0 + 15)
|
#define PIN_WIRE_SCL (0 + 15)
|
||||||
|
|
||||||
#define PIN_RTC_INT (0 + 14) // Interrupt from the PCF8563 RTC
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
External serial flash W25Q16JV_IQ
|
External serial flash W25Q16JV_IQ
|
||||||
*/
|
*/
|
||||||
@@ -141,7 +139,9 @@ External serial flash W25Q16JV_IQ
|
|||||||
#define PIN_SERIAL1_RX PIN_GPS_RX
|
#define PIN_SERIAL1_RX PIN_GPS_RX
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
// PCF8563 RTC Module
|
||||||
|
#define PIN_RTC_INT (0 + 14) // Interrupt from the PCF8563 RTC
|
||||||
#define PCF8563_RTC 0x51
|
#define PCF8563_RTC 0x51
|
||||||
|
#define HAS_RTC 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI Interfaces
|
* SPI Interfaces
|
||||||
@@ -169,8 +169,6 @@ External serial flash W25Q16JV_IQ
|
|||||||
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
#define VBAT_AR_INTERNAL AR_INTERNAL_3_0
|
||||||
#define ADC_MULTIPLIER (2.0F)
|
#define ADC_MULTIPLIER (2.0F)
|
||||||
|
|
||||||
#define HAS_RTC 1
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
OLED Screen Model
|
OLED Screen Model
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ lib_deps =
|
|||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
# renovate: datasource=git-refs depName=meshtastic-GxEPD2 packageName=https://github.com/meshtastic/GxEPD2 gitBranch=master
|
||||||
https://github.com/meshtastic/GxEPD2/archive/55f618961db45a23eff0233546430f1e5a80f63a.zip
|
https://github.com/meshtastic/GxEPD2/archive/55f618961db45a23eff0233546430f1e5a80f63a.zip
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
# renovate: datasource=custom.pio depName=SensorLib packageName=lewisxhe/library/SensorLib
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
lewisxhe/SensorLib@0.3.2
|
||||||
;upload_protocol = fs
|
;upload_protocol = fs
|
||||||
|
|
||||||
[env:t-echo-inkhud]
|
[env:t-echo-inkhud]
|
||||||
@@ -43,5 +43,5 @@ build_src_filter =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
|
${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
# renovate: datasource=custom.pio depName=PCF8563 packageName=lewisxhe/library/PCF8563_Library
|
# renovate: datasource=custom.pio depName=SensorLib packageName=lewisxhe/library/SensorLib
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
lewisxhe/SensorLib@0.3.2
|
||||||
|
|||||||
@@ -108,8 +108,6 @@ No longer populated on PCB
|
|||||||
|
|
||||||
#define TP_SER_IO (0 + 11)
|
#define TP_SER_IO (0 + 11)
|
||||||
|
|
||||||
#define PIN_RTC_INT (0 + 16) // Interrupt from the PCF8563 RTC
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
External serial flash WP25R1635FZUIL0
|
External serial flash WP25R1635FZUIL0
|
||||||
*/
|
*/
|
||||||
@@ -191,7 +189,9 @@ External serial flash WP25R1635FZUIL0
|
|||||||
#define PIN_SERIAL1_TX GPS_TX_PIN
|
#define PIN_SERIAL1_TX GPS_TX_PIN
|
||||||
|
|
||||||
// PCF8563 RTC Module
|
// PCF8563 RTC Module
|
||||||
|
#define PIN_RTC_INT (0 + 16) // Interrupt from the PCF8563 RTC
|
||||||
#define PCF8563_RTC 0x51
|
#define PCF8563_RTC 0x51
|
||||||
|
#define HAS_RTC 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI Interfaces
|
* SPI Interfaces
|
||||||
@@ -219,8 +219,6 @@ External serial flash WP25R1635FZUIL0
|
|||||||
|
|
||||||
// #define NO_EXT_GPIO 1
|
// #define NO_EXT_GPIO 1
|
||||||
|
|
||||||
#define HAS_RTC 1
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user