Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Seeed Tracker-T1000-E #4303

Merged
merged 41 commits into from
Jul 25, 2024
Merged

Conversation

Dylanliacc
Copy link
Contributor

Support for T1000-E Board and Sensor Integration

Summary

This PR introduces support for the T1000-E board, integrating the T1000xSensor and incorporating various customizations and adaptations specific to the board's features. Below are the detailed changes and additions:

Board Support: T1000-E

  • Added support for the T1000-E board: The new configuration files and settings tailored to the T1000-E board have been included, ensuring compatibility and proper functioning with the Meshtastic system.

Sensor Integration: T1000xSensor

  • Integrated T1000xSensor: The T1000xSensor has been added to the project, providing enhanced sensor capabilities and ensuring it works seamlessly with the T1000-E board.

ButtonThread Customization

  • Macro Definitions for T1000-E: Specific macro definitions have been introduced within the ButtonThread to leverage the unique features of the T1000-E board. These definitions optimize button handling and ensure smooth operation tailored to the T1000-E's hardware.

Customization for LR1110 in LR11x0Interface.cpp

  • DIO Pin Configuration: The LR11x0Interface.cpp file has been customized based on the DIO pin configuration of the T1000-E's LORALR1110. These modifications ensure proper communication and functionality of the LR1110 module on the T1000-E board.

GPS Adaptation: AG3335 Sensor

  • Adaptation for AG3335 Sensor: The GPS component has been adapted to support the AG3335 sensor, ensuring accurate and reliable GPS data acquisition. This integration improves the overall GPS functionality of the T1000-E board within the Meshtastic system.

Future Plans and Improvements

  • Class-based GPS Implementation: In future updates, I plan to implement a dedicated class for the GPS functionality instead of using macro definitions. This will enhance code modularity, readability, and maintainability.

Draft PR and Request for Assistance

This is my first contribution to the Meshtastic project, and I am submitting this as a draft PR. There may be areas that need improvement, and I kindly ask for your patience and understanding as I navigate through this process. Any assistance or feedback from the community would be greatly appreciated to help refine and enhance this implementation.

Thank you for considering this PR and for any help or guidance you can provide.

Best regards,

Dylanliacc and others added 27 commits July 4, 2024 16:11
-  integrate a script for rapid dependency download that is compatible with both Linux and Windows platforms.
-  add the pin definitions for UART, SPI, GPIO, and other peripherals have been ensured to be correct.
-  add the env configuration for PlatformIO.
- add disable it in FSM
- update  lookForTime and lookForLocation function
Delete not need as we will change platformio.ini
Update SoftDevice 7.3.0 usage in line with other lr1110 targets

Do we need to keep GODMODE ?
- update mark's patch
- remove some invaild code and comments
- fix button behavier
@CLAassistant
Copy link

CLAassistant commented Jul 19, 2024

CLA assistant check
All committers have signed the CLA.

@markbirss markbirss requested a review from caveman99 July 19, 2024 08:56
src/sleep.cpp Outdated Show resolved Hide resolved
@lyusupov
Copy link

@Dylanliacc

QMA6100P connected via I2C but still under development

Thanks!
Your code contains this:

#define HAS_WIRE 1

#define WIRE_INTERFACES_COUNT 1

// unused pins
#define PIN_WIRE_SDA (0 + 9)  // P0.26
#define PIN_WIRE_SCL (0 + 10) // P0.27

Which one SDA/SCL pair is a true I2C bus for the QMA6100P sensor ?

  1. P0.9 and P0.10, or
  2. P0.26 and P0.27 ?

@Dylanliacc
Copy link
Contributor Author

@Dylanliacc

QMA6100P通过 I2C 连接,但仍在开发中

谢谢!您的代码包含以下内容:

#define HAS_WIRE 1

#define WIRE_INTERFACES_COUNT 1

// unused pins
#define PIN_WIRE_SDA (0 + 9)  // P0.26
#define PIN_WIRE_SCL (0 + 10) // P0.27

哪一对 SDA/SCL 是 QMA6100P 传感器的真正 I2C 总线?

  1. P0.9 和 P0.10,或
  2. P0.26 和 P0.27 ?
    image
    image
    image

Sch here
pins are P0.26 和 P0.27

@thebentern thebentern requested a review from fifieldt July 24, 2024 12:06
Copy link
Contributor

@fifieldt fifieldt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me

@thebentern thebentern merged commit a000a8d into meshtastic:master Jul 25, 2024
93 of 94 checks passed
thebentern pushed a commit that referenced this pull request Jul 25, 2024
* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp
fifieldt pushed a commit to fifieldt/meshtastic-firmware that referenced this pull request Jul 29, 2024
* feature-T1000-E: add Added the board definition for T1000-E

-  integrate a script for rapid dependency download that is compatible with both Linux and Windows platforms.
-  add the pin definitions for UART, SPI, GPIO, and other peripherals have been ensured to be correct.
-  add the env configuration for PlatformIO.

* refact-T1000-E: redefine T1000-E board

* feature-T1000-E: add basic sensors

* feature-T1000-E: add button init

* feat: add DRADIOLIB_GODMODE defination for use function setDioAsRfSwitch to DIO LORA RF

* feat : add gps(GNSS_Airoha) sleep mode

* feat: add behavier when rec or send message

* chore: hang IIC bus usage to avoid sensor address conflict

* feat: add sensor data acquisition

* feat : support Airoha GPS

- add disable it in FSM
- update  lookForTime and lookForLocation function

* fix: fix a bug

* version: change version to 0.9.0

* Update tracker-t1000-e.json

Remove a space

* Delete variants/tracker-t1000-e/run_once.sh

Delete not need as we will change platformio.ini

* Update platformio.ini

Update SoftDevice 7.3.0 usage in line with other lr1110 targets

Do we need to keep GODMODE ?

* fix: Button behavier incorrect bug

* fix:remove some invaild code of TextMessageModule

* fix: remove invaild comment

* version: change version to 0.9.1

- update mark's patch
- remove some invaild code and comments
- fix button behavier

* trunk format

* fix:  HELTEC_CAPSULE_SENSOR_V3 block got accidentally deleted

* fix: EnvironmentTelemetry upstream merge went awry.

* fix: Added macro definitions to ensure correct operation of LORA section

* fix :GNSS_AIROHA macro defination in line with others

* fix: upstream backmerge accidentally.

* fix: wrap macro PIN_3V3_EN BUZZER_EN_PIN GNSS_AIROHA in the TRACKER_T1000_E macro guard

---------

Co-authored-by: Mark Trevor Birss <[email protected]>
Co-authored-by: Ben Meadors <[email protected]>
Co-authored-by: Thomas Göttgens <[email protected]>
fifieldt pushed a commit to fifieldt/meshtastic-firmware that referenced this pull request Jul 29, 2024
…shtastic#4328)

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp

* Update GPS.cpp
@geeksville
Copy link
Member

Hi @Dylanliacc I received my T1000-E and it looks really great and you've made some great code. bravo. One question (since I won't have time to really work on it until next week): It beeps occasionally (every 10ish minutes?) - do you know why? I haven't yet set the REGION or paired it with a phone.

If you don't happen to know, no worries - I'll put it in a even more acoustically insulated box until I can poke at it.

I assume the SWD signals are accessible somewhere if I want to solder on some wires for debugging?

@Dylanliacc
Copy link
Contributor Author

Hi @Dylanliacc I received my T1000-E and it looks really great and you've made some great code. bravo. One question (since I won't have time to really work on it until next week): It beeps occasionally (every 10ish minutes?) - do you know why? I haven't yet set the REGION or paired it with a phone.

If you don't happen to know, no worries - I'll put it in a even more acoustically insulated box until I can poke at it.

I assume the SWD signals are accessible somewhere if I want to solder on some wires for debugging?

During our two-day testing period, we did not encounter this phenomenon. Have you attempted restarting or restoring to factory settings? I believe the firmware I programmed before shipping is fault-free. This anomaly is quite perplexing. Maybe you can check the log when you start using it, or maybe someone actually sent you a message

@lyusupov
Copy link

lyusupov commented Aug 1, 2024

@Dylanliacc
Is the T1000-E Meshtastic binary code compatible with earlier T1000-S or T1000-A products ?
The S and A versions do not have a proper USB data connector, but is it possible to upload the firmware over Secure BLE DFU method ?

The questions are inspired by this video: https://www.youtube.com/watch?v=P5phiYJlXe8

@geeksville
Copy link
Member

During our two-day testing period, we did not encounter this phenomenon. Have you attempted restarting or restoring to factory settings? I believe the firmware I programmed before shipping is fault-free. This anomaly is quite perplexing. Maybe you can check the log when you start using it, or maybe someone actually sent you a message

@Dylanliacc Okay no worries - I'll look into this next week and send you a note with what I find. I wonder if it is related to this in sleep.cpp?

#ifdef BUZZER_EN_PIN
    digitalWrite(BUZZER_EN_PIN, LOW);
#endif

At boot elsewhere it is setting BUZZER_EN_PIN high, but on entry to deep sleep it is setting it low. Possibly every n minutes the board is re-entering deep sleep and this transition is causing the buzzer to briefly beep (until the CPU completely shutsdown and the internal pull-ups pull that line back high)?

@Dylanliacc
Copy link
Contributor Author

@Dylanliacc Is the T1000-E Meshtastic binary code compatible with earlier T1000-S or T1000-A products ? The S and A versions do not have a proper USB data connector, but is it possible to upload the firmware over Secure BLE DFU method ?

The questions are inspired by this video: https://www.youtube.com/watch?v=P5phiYJlXe8

Sorry, T1000-S cannot be supported for UF2 upgrade .And my suggestion is that you do not do this. Although we have tested it and it is possible(BLE DFU), there have been several machines that have completely damaged the bootloader due to this behavior

@lyusupov
Copy link

lyusupov commented Aug 2, 2024

@geeksville

I assume the SWD signals are accessible somewhere if I want to solder on some wires for debugging?

@Dylanliacc

... there have been several machines that have completely damaged the bootloader due to this behavior

According to this source https://www.disk91.com/2023/news/lorawan/sensecap-t1000-a-tracker/
the SWD debug pads are available on the PCB provided that one can sacrifice IP65 feature.

image

Earlier T1000 variants may use nRF52840 SoC in QFN48 package that does not expose USB D+ and D- signals - https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf52840%2Fpin.html&cp=5_0_0_6_0_1&anchor=qfn48

image

FCC report: https://fcc.report/FCC-ID/Z4T-T1000

@macflyhub
Copy link

@Dylanliacc - I see you said the -S is not compatible but is the T1000-A compatible??
I tried to order the -E but got the -A instead.
So now I have 2 units I am scared to try an OTA Meshtastic flash.
Help!

@lyusupov
Copy link

lyusupov commented Aug 14, 2024

@macflyhub
version A uses Goodix GR5515 MCU unlike versions S and E - they use Nordic nRF52840 MCU instead.



image

@macflyhub
Copy link

@lyusupov Thank you - I had a sneaky feeling this was going to be the case. Dammm.
Re-ordering some E's

@lyusupov
Copy link

lyusupov commented Sep 1, 2024

@Dylanliacc
ETA for T1000-E is moving further and further: https://www.seeedstudio.com/SenseCAP-Card-Tracker-T1000-E-for-Meshtastic-p-5913.html

image

Is there any way for a developer to get the T1000-E device earlier than Sep 15th ?

@Dylanliacc
Copy link
Contributor Author

@Dylanliacc ETA for T1000-E is moving further and further: https://www.seeedstudio.com/SenseCAP-Card-Tracker-T1000-E-for-Meshtastic-p-5913.html

image

Is there any way for a developer to get the T1000-E device earlier than Sep 15th ?

maybe you can contact me on discord :dylanaz1503 , and i'll let my marketing team reply you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants