Covering with heat shrink tube impacts cooling in general, hence the ‘may’ (not knowing all details of the board and its components, e.g. when powered via USB).
Yes, USB C Port would make extremely sense for this device. Best way to break it by leverage and when you want to use it with a raspberry you are happy as well…all your arguments makes no sense to me.
USB Type C Female, that is the one that you connect with a USB C male to USB A male cable.
The USB-C male cable connector is easy to insert and remove and can even be inserted upside down. And when the cable is not inserted the device can be significantly more compact (when preferred).
But of course different people will have different preferences.
Sketch: ttn-otaa.ino included with above MCCI LMIC library.
Modifications to sketch:
Added unhandled events (see issue #550). (No notification is printed for EV_RXSTART in order not to mess up timing.)
Added conditional compilation to exclude MCCI LMIC specific events/features when using the LMIC-Arduino library.
(Switching between both LMIC libraries can be done simply by specifying the corresponding library dependency in the platformio.ini project configuration file.)
When using the LMIC-Arduino library the example works fine (uplinks and downlinks) and does not even require ClockError to be set.
When using the MCCI LoRaWAN LMIC library evrything appears to hang after the first EV_TXSTART event (while it attempts to join).
After the initial join request no subsequent join (retry) requests are made (not visible on TTN Console). Normally, when the first join request fails (e.g. because of timing related downlink issues) a subsequent join request will be made within minutes. This is however not the case and the node appears to be hanging (waiting indefinitely, or crashed).
And in both cases you use the Arduino Core STM32? I am not too familiar with Arduino, especially on STM32. So I am not of much help at this point. But if I find the time I could have a look into it.
Or did you copy my port of the mcci lmic to CubeMX generated code + LL drivers? In that case there might be some changes necessary from STM32L071 to F103.
The Arduino Core STM32 was relatively new then and has since been further developed.
Apparently that previous workaround for LMIC-Arduino is not required anymore.
What exactly do you mean with ‘it’ and ‘AC/STM32’?
Because the previous issue with Arduino Core STM + LMIC-Arduino appears not exist to anymore (because both uplinks and downlinks are working without the previous workaround) I had not (yet) tested the previous workaround with the MCCI LoRaWAN LMIC library.
So, it is at least remarkable that it now works (and appears to work correctly) with LMIC-Arduino without the workaround but MCCI LoRaWAN LMIC library still requires the workaround.
“Trying to use but no success”. What have you tried? What does work and what does not?
MCCI LoRaWAN LMIC library should work with bluepill if you apply the library patch/workaround that was discussed just above (but instead of the LMIC-Arduino library patch the source of the MCCI LoRaWAN LMIC library).
It is preferred to use the ‘Arduino Core STM32’ Aduino core. This one is actively maintained by STMicroelectronics.
In the Arduino IDE Boards Manager the ‘Arduino Core STM32’ Arduino core is called ‘STM32 Cores’ by STMicroelectronics. (Names of Arduino cores for STM32 are not always used consistently.)
I use the following pin mapping for the bluepill: (Values between brackets are standard Arduino pin definition names for this board)
The bluepill can be programmed via serial/UART but I use a STLINK v2 programmer for the flashing instead and use a separate USB to Serial connection for the serial monitor. (Using STLink automatically puts the boarding into firmware upload mode and automatically resets it afterwards and the serial monitor stays working. This saves from having to change a BOOT jumper and do manual resets).
My experience with Arduino Core STM32 is that anything printed to the Serial port within the first +/- 2 seconds after calling Serial.begin() will get lost (but the length of that period is not always the same).
The common procedure for checking if the serial port is ready:
Serial.begin(115200);
while (!Serial) { /* wait until serial port is ready */ }
Serial.println("Started");
does not help because Serial indicates that it is ready but the first printed output will get lost anyway. As a workaround a +/- 2 second delay can be added after Serial.begin().
Hello All,
This is my first post to TTN forum. i am struggling to send “hello world”. my node just send it only one time sucessfully and then dont send any more data… looks like it got stucked or hanged after sending one message. i am using standard ttn-abp code,
MCU - STM32F103C8T6
LORA - AiThinker RA-01
I will attach the screen shot of my screen with TTN data page, serial output, and code showing the pin connection.
Thank you in Advance