New hardware from Heltec, Cubecell

No, that should work, let’s have a look the LoRaWAN protocol document:
image

Refer to my picture, the LoRaWAN protocol set the AU915 upstream channel frequency:
Total 64 channels, 915.2MHz begin, incrementing linearly by 200KHz, and 927.8MHz end.

Then look back to our code:
in the channelsMaskTemp[0], 0x00FF means use the first 0~7 channels, they are 915.2MHz, 915.4MHz, 915.6MHz … 916.6MHz. When you set the value to 0xFF00, it means the upload channels changed to 8~15, they are 916.8MHz, 917.0MHz … 918.2MHz.

Now, I think you need to confirm your gateway’s listening channels and listening frequency. Make sure they match the 8~15 channels.

We will update such a document within two days.

Thank you, that would be great.

What a great product I’ve been wanting for this. Can I use also ABP access to TTN?

@MOS-FET Yes, of course.

I just received this board, looks very promising, but I have a few doubts:

  • How mature is the LoRaWAN stack?
  • Can I run the mcci-catena arduino-lmic stack on it? I doubt it can because that seems to be written (at the moment) for sx1272. Also this board seems to have rather limited RAM (only 16 kB).
  • Can I build it with platformio instead of Arduino IDE? I think the Arduino IDE is awful, you need to select a lot of options manually in the menu, there is an endless list of devices that you need to scroll through. And if you switch to another Arduino project, you have to re-select all of the settings. With platformio, this is all much easier, you can specify the libraries tool chain in a text file and easily switch between targets. It is even possible to build the Arduino software on the command line, automatically upon git push on a service like travis-ci.

Why would you post such a question here after you asked the very same thing on the issues page of that repo yesterday and got a negative answer from the maintainer?

Please don’t duplicate issues all over the web, especially with no acknowledgement that they’ve been asked by you before - and already answered.

Also this board seems to have rather limited RAM (only 16 kB).

That is hardly an issue. It is, for example 8 times the memory present on an Arduino Uno. The 2K on an Uno is marginal. But most of the chips people are using are in the 10-20K range, those 16K are plenty.

As explained on github, the issue is the need to adapt to the different LoRa chip having (all though not mentioned there) actually a rather different interface to software.

1 Like

Oops, seems I hit a nerve there, sorry, just expressing some doubts after just having received this board and investigating its possibilities.

Good to realise that 16 kB isn’t that small compared to other targets.
Arduino-lmic stack support isn’t a question with closure or a fixed answer yet, that I should shut up about (IMO). At least for me it’s clear that it currently does not work, but it might work in the future with some help.

Not so much some help, the LMIC code would need an extensive re-write, the SX127x and SX126x devices are very different software wise.

Maybe you would care to volunteer ?

Hi @jody-crow

Hope those two documents can help you:


https://docs.heltec.cn/#/en/faq/cubecell_series_common_problem_summary?id=how-to-access-bootloader-mode

We had fully migration the LoRaWAN 1.0.2 protocol into the source code, I think the LoRaWAN protocol is much smarter than LMIC library. :grinning:

We will make PlatformIO support the next step.

Anyway, Arduino provides a simple way to write and compile code, easy for users to make some fast tests.

You can use VS Code or Eclipse(Sloeber) as a code editor, config with GCC compile, will have a good experience.

I think that you try to say something different than what you have written.
Do you mean to say “LMIC library does not support all current LoRaWAN features”?

Questions:

  • If I understand correctly from the Heltec forum the LoRaWAN library used for the CubeCell is based on LoRaMac-node which also supports Semtech SX126x LoRa chips (integrated on ASR6501 used on the CubeCell). Is that correct?

  • Has this been implemented as a true Arduino library (that can be easily updated) or is it tightly integrated into Heltec’s ASR650x Arduino core?

  • If library, is the implementation truly open source?

Heltec also has a LoRaMac-node implementation for the ESP32. It is available on GitHub but is not open source because essential parts have been obfuscated where C++ code has been compiled to assembly code and only the unreadable assembly code has been made available. It also requires a special license key that has to be created on Heltec’s web site for every node which must then be configured in the software for every node separately. This is both a vendor lock-in and very impractical therefore not many will use it.

1 Like

I have briefly looked at CubeCell and ASR6501 specifications and documentation.
Here some findings:

  • ASR6501 is a SoC manufactured by ASR Microelectonics.
    It combines an ARM Cortex-M0+ 32 bits 48MHz MCU with 16kB SRAM and 128kB flash together with a Semtech SX1262 LoRa tranceiver on a single SoC.

  • Heltec CubeCell is a product range based on the ASR650x series SoC.

  • Heltec CubeCell HTCC-AM01 is a module based on the ASR6501 SoC.

  • Programming the HTCC-AM01 appears to be done via UART Rx/Tx using proprietary Heltec CubeCell tools the SWD interface.

  • The module can be used both as a separate LoRaWAN module with UART interface, and as a standalone module where custom Arduino sketches can be uploaded to.

  • The SoC’s SWD pins (SWD_DATA, SWD_CLK) seem not to be available on the module so it is not possible to use the SWD interface. Therefore debugging will probably not be supported.

  • Heltec CubeCell HTCC-AB01 is a development board that contains the HTCC-AM01 module.

  • The implemented LoRaWAN library appears to be based on LoRaMac-node v4.4.1.

Heltec’s Arduino Core for ASR650x is available here:
https://github.com/HelTecAutomation/ASR650x-Arduino

The tools directory contains files for installing the tool chain. Files get.exe and get.py.
These are for downloading the ARM toolchain and CubeCell related tools.

What I do not like:

  • Both ARM tool chain and CubeCell tools are downloaded from an insecure unknown IP address. Not using a verifiable known DNS URL and using insecure http transport (not https/TLS).
  • ARM tool chain is not downloaded directly from ARM’s download site (and is not the most recent version).

Update:
According to response from Heltec: SWD pins are available and programming is done via SWD interface. Current documentation does not reflect this and will be updated.

1 Like

Hi @bluejedi, your feed back makes us become better and better. We will try to fix all the things you don’t like :grinning:

About the LMIC and LoRaWAN-Node, here is my understanding:

The libraries and examples of CubeCell, that’s open-source, in this path. But we do want to open the bootloader source code of CubeCell currently. With respect, fully open-source really goes hard in China.

2 Likes

Thanks for your feedback @hunter8801.

I noticed that the readme.md in this path is not up to date: it mentions LoRaMac-node version v4.3.2 while SX126x radio support was only added in v4.4.1.

Is it actually different than the Cypress one?

As far as your product goes overall, the apparent lack of SWD signals would make many professional users immediately reject it as an option, as this is the industry standard for working with ARM Cortex-M parts.

That’s great thank you!

Yes, we write a new boot loader, it quite differences with the one from Cypress.

SWD and SWCLK are available, indeed we program the boot loader via the SW mode, we will update relevant documents about that part.

1 Like

We got the SDK from ASR.

Anyway, I will confirm the SDK version again with they again.

1 Like