u-blox / cellular

Cellular API, compatible with LWIP, in C for embedded platforms.
Apache License 2.0
22 stars 3 forks source link

Compatibility with SARA-R410M-02B #7

Open thopiekar opened 4 years ago

thopiekar commented 4 years ago

Can't find any list of compatible chipsets. There is only a hint that this driver works "e.g. [with] SARA-R5". Thus, the question: Does it work with an SARA-R410M-02B, too?

Got a module lying around here and would like to integrate it with LWIP as a common netif-interface.

Thanks!

RobMeades commented 4 years ago

Hi there: we don't have a SARA-R410M-02B module in our regression suite, only SARA-R412M, but the differences, if any, between the two in terms of the control and sockets commands should be minimal if there are any at all. What I would do if I were you is wire said module to your MCU, just TXD, RXD, PWR_ON and ground should be sufficient (assuming your MCU is voltage compatible with the module: if not you will need something like one of these in the way of the TXD, RXD lines (not PWR_ON, that is pulled rather than driven), using VINT from the module as the power source for the module end of the level-shifter), set CELLULAR_CFG_PIN_PWR_ON, CELLULAR_CFG_PIN_TXD and CELLULAR_CFG_PIN_RXD to be the right MCU pins and then build and run the unit tests to check that they all pass.

If you let me know the MCU you're using I can give you more specific help if necessary but hopefully the README.md's in the relevant platform directories should give you sufficient information on how to configure and then run the build.

The successor of this repo, ubxlib, which will in principle be the same but in naming convention different, should be public by the end of October; there we will include a "supported module" table which might include SARA-R410M if I can find one.

thopiekar commented 4 years ago

Great! I will go through your instructions and see how it works. The MCU I'm targeting is an STM32F769NI. It is placed on a Mikrobus development board, therefore I would assume that if I keep within the specs of the mikrobus (in terms of pin layout and voltages) I should be fine. Something I'm very interested in is an netif-implementation for lwIP. The reason is simply that I already manage the network connection of an Ethernet and Wi-Fi interface using it. As a third type of connection I would like to go the same way to keep the code for network management as minimal as it already is and let the user applications rely on lwIP, since it works already quite well.

Thank you for the quick reply by the way!

RobMeades commented 4 years ago

Ah, yes, the sockets code here is intended to provide a "LwIP-type" interface, though I've not touched it for some time now.

The port code is written for an STM32F4 so best approach might be to create yourself a copy of the stm32f4 directory as stm32f7, replace all the ST files (i.e. the ones that don't begin with cellular_) with the STM32F7 versions from ST and then diff my version of the STM32F4 files with the original STM32F4 ones to see where I made changes to them. The main problem I recall was getting HSE_VALUE to appear as the right number to all files (it has to be set in stm32f4xx_hal_conf.h, that's the only way). You will also need to check the values in cellular_cfg_hw_platform_specific.h as they are mostly hard-wired ST-chip specifics. If you get stuck it's probably worth reading my submit comments for files that are in the stm32f4\src directory: I tried to be verbose.

After that I'm afraid you are in the arms of the ST Cube IDE which, like everything Eclipse-based, is lovely when it works but a complete pig to get working in the first place.

Let me know how you get on.