Heltec CubeCell - part 1

I’m aware it is still under construction but the following information would be welcome (and is probably wanted by many):

  • General description with concepts and how the ASR-6501x-Arduino core works/how it is implemented.

  • The HTCC-AM01 module can be supplied with and without Arduino support installed. What development framework/toolchain is needed to develop for CubeCell (HTCC-AM01/ASR650x) when not using Arduino?

  • What of the Arduino standard framework is supported and what not and are there any differences (e.g. related to ASR650x/PSoC 4000 architecture)?

  • Are there any compatibility issues to expect when using external/3rd party Arduino libraries?

  • Where exactly are the settings (e.g. LoRaWAN keys) stored that can be changed via AT commands?

  • Are these settings maintained when new sketches are uploaded or are they destroyed when a new sketch is uploaded?

  • API documentation (with details) for at least ASR650x-Arduino specific:

    • Types / classes.
    • Global definitions, constants, variables.
    • Functions.
    • Classes and their methods.
    • Timers.
    • Events.
    • Standard event handlers (if available).
  • Details about (deep) sleep and how it is implemented. Is state (memory, program state, GPIO pin levels) preserved during sleep? What is (not) supported during sleep? Is there some kind of RTC memory where custom state can be stored to survive sleep cycles?

  • LoRaWAN

    • General description on how LoRaWAN support is implemented.
    • API documentation similar like above but specific for LoRaWAN.
    • How to properly set LoRaWAN keys and other LoRaWAN related settings in application code (without having to hack files in the ASR650x-Arduino core) when not using AT command support (when AT command support is disabled)?
    • It seems that LoRaWAN is not just a library but has also some integration in the kernel. Please explain.
    • Is it possible to disable the integrated LoRaMAC-node library and use any other LoRaWAN library (version) instead (for those who have a need for it)?
  • Security.

    • After every reset, LoRaWAN settings are output to the serial port which also includes all LoRaWAN keys. This may be nice during development but is very bad security practice. This is similar to writing down your pin code on your banking or credit card. How can this be disabled?
    • Similarly it should be possible to disable the functionality of requesting the current value of LoRaWAN keys (either requested via AT commands or from an API if there is an API that supports it). How can this be disabled?
  • Debugging support. An SWD interface (GPIO6, GPIO7) is available which is standard for ARM debugging. Is debugging supported for Arduino development? If not, what debugging is supported?

  • Is it possible to call any lower-level ASR650x / PSoC 4000 SDK functions from within an Arduino sketch?

  • Details about the bootloader. Is bootloader code available? Can the bootloader be updated or replaced (e.g. in case of issues)?

1 Like