RAK2287 Linux driver details and kernel configuration for yocto build

we recently purchased a RAK2287 minipci usb module and trying to integrate it to a custom linux board built using yocto on arm64 architecture. from a initial research we found that RAK2287 uses STM32 chip as usb to spi. from our understanding STM implements a VCP for its communication and uses cdc-acm driver for its usb communication, but we even with cdc acm driver RAK2287 is not detecting on our linux.
please help us with some suggestions on the driver and kernel configurations to make RAK2287 work with linux.

More the low level control of the concentrator chip is handed off to an MCU which can perform batch operations more efficiently than simple USB-SPI translation.

First you should see if the USB device is detected at all, either in terms of an unknown / failed device in the kernel log, or better in terms of a USB VID & PID. If not you likely have an electrical issue or issue with the reset line, or with your USB bus topology itself not correctly operating those embedded in the mPCIe connectors.

You might want to try the module in an external USB-mPCIe adapter (though do make sure its regulator is not overvolting as many of the ones intended for LTE modems do)

If you’re getting a USB VID & PID but not getting it picked up by CDC-ACM drivers you want to make sure those are loaded and working, and that udev or some alternative is there to create device nodes at need; maybe try something else using that scheme like a real (vs fake) Arduino Uno.

Next you want to make sure you don’t have a package like brltty or modemmanager trying to talk to anything it things might be an data modem, as that can interfere (though this is probably less common on yocto than a compact Linux)

Once you have a /dev/ttyACM[x] and are sure nothing else is trying to use it, examine the packet forwarder logs and see what sort of errors are reported.

Also make sure you’re able to supply sufficient peak power the newer chips are lower power than the older ones, but power draw will still go up dramatically when all the receive engine logic starts operating.


More generally, when designing a custom board it would have made a lot more sense to plan an SPI solution. And probably to have started with trying out the LoRa module on something more common like a pi to gain some familiarity, then created a hand-wired one-off connection of the module to the target system’s evaluation module and get the software working, before jumping right to fabricating a board.