Recently, I switched from Windows 10 to Ubuntu 22.04 LTS, i downloaded the Arduino IDE and followed the instructions to work with a RAK4631.
I have a RAK4631 with some basic example, and I can see the serial monitor output that has in it, but with another RAK4631 that I want to work with, I can’t upload anything from the Arduino IDE
Using previously compiled file: /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/core/variant.cpp.o
Using precompiled core: /home/user/.cache/arduino/cores/rakwireless_nrf52_WisCoreRAK4631Board_softdevice_s140v6,debug_l0_3aec01197b28221685593f22be163184/core.a
Linking everything together...
/home/user/.arduino15/packages/rakwireless/tools/arm-none-eabi-gcc/9-2019q4/bin/arm-none-eabi-gcc -L/home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E -Ofast -Wl,--gc-sections -save-temps -L/home/user/.arduino15/packages/rakwireless/hardware/nrf52/1.3.3/cores/nRF5/linker -Tnrf52840_s140_v6.ld -Wl,-Map,/home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.map -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -u _printf_float -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--wrap=malloc -Wl,--wrap=free --specs=nano.specs --specs=nosys.specs -o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.elf /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/sketch/RAK1901_Temperature_Humidity_test.ino.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/SparkFun_SHTC3_Humidity_and_Temperature_Sensor_Library/SparkFun_SHTC3.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Wire/Wire_nRF52.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/Adafruit_TinyUSB_API.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/Adafruit_USBD_CDC.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/Adafruit_USBD_Device.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/hid/Adafruit_USBD_HID.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/midi/Adafruit_USBD_MIDI.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/msc/Adafruit_USBD_MSC.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/ports/esp32/Adafruit_TinyUSB_esp32.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/ports/nrf/Adafruit_TinyUSB_nrf.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/ports/rp2040/Adafruit_TinyUSB_rp2040.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/ports/samd/Adafruit_TinyUSB_samd.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/arduino/webusb/Adafruit_USBD_WebUSB.cpp.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/audio/audio_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/bth/bth_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/cdc/cdc_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/dfu/dfu_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/dfu/dfu_rt_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/hid/hid_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/midi/midi_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/msc/msc_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/net/ecm_rndis_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/net/ncm_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/usbtmc/usbtmc_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/class/vendor/vendor_device.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/common/tusb_fifo.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/device/usbd.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/device/usbd_control.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/portable/espressif/esp32sx/dcd_esp32sx.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/portable/microchip/samd/dcd_samd.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/portable/nordic/nrf5x/dcd_nrf5x.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/portable/nxp/transdimension/dcd_transdimension.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/portable/raspberrypi/rp2040/dcd_rp2040.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/portable/raspberrypi/rp2040/hcd_rp2040.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/portable/raspberrypi/rp2040/rp2040_usb.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/libraries/Adafruit_TinyUSB_Arduino/tusb.c.o /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/core/variant.cpp.o -Wl,--start-group -L/home/user/.arduino15/packages/rakwireless/tools/CMSIS/5.7.0/CMSIS/DSP/Lib/GCC/ -larm_cortexM4lf_math -lm /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/../../cores/rakwireless_nrf52_WisCoreRAK4631Board_softdevice_s140v6,debug_l0_3aec01197b28221685593f22be163184/core.a -Wl,--end-group
/home/user/.arduino15/packages/rakwireless/tools/arm-none-eabi-gcc/9-2019q4/bin/arm-none-eabi-objcopy -O ihex /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.elf /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.hex
adafruit-nrfutil dfu genpkg --dev-type 0x0052 --sd-req 0x00B6 --application /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.hex /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.zip
Zip created at /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.zip
Using library SparkFun SHTC3 Humidity and Temperature Sensor Library at version 1.1.4 in folder: /home/user/Arduino/libraries/SparkFun_SHTC3_Humidity_and_Temperature_Sensor_Library
Using library Wire at version 1.0 in folder: /home/user/.arduino15/packages/rakwireless/hardware/nrf52/1.3.3/libraries/Wire
Using library Adafruit TinyUSB Library at version 1.7.0 in folder: /home/user/.arduino15/packages/rakwireless/hardware/nrf52/1.3.3/libraries/Adafruit_TinyUSB_Arduino
/home/user/.arduino15/packages/rakwireless/tools/arm-none-eabi-gcc/9-2019q4/bin/arm-none-eabi-size -A /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.elf
Sketch uses 50448 bytes (6%) of program storage space. Maximum is 815104 bytes.
Global variables use 9424 bytes (3%) of dynamic memory, leaving 228144 bytes for local variables. Maximum is 237568 bytes.
Performing 1200-bps touch reset on serial port /dev/ttyACM0
Waiting for upload port...
No upload port found, using /dev/ttyACM0 as fallback
"adafruit-nrfutil" --verbose dfu serial -pkg "/home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.zip" -p /dev/ttyACM0 -b 115200 --singlebank
Upgrading target on /dev/ttyACM0 with DFU package /home/user/.cache/arduino/sketches/B25811118E9FCDE707EBA1D73223D04E/RAK1901_Temperature_Humidity_test.ino.zip. Flow control is disabled, Single bank, Touch disabled
Opened serial port /dev/ttyACM0
Failed to upgrade target. Error is: [Errno 110] Connection timed out
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/nordicsemi/__main__.py", line 296, in serial
dfu.dfu_send_images()
File "/usr/local/lib/python3.10/dist-packages/nordicsemi/dfu/dfu.py", line 235, in dfu_send_images
self._dfu_send_image(HexType.APPLICATION, self.manifest.application)
File "/usr/local/lib/python3.10/dist-packages/nordicsemi/dfu/dfu.py", line 157, in _dfu_send_image
self.dfu_transport.open()
File "/usr/local/lib/python3.10/dist-packages/nordicsemi/dfu/dfu_transport_serial.py", line 124, in open
self.serial_port.setDTR(False)
File "/usr/local/lib/python3.10/dist-packages/serial/serialutil.py", line 603, in setDTR
self.dtr = value
File "/usr/local/lib/python3.10/dist-packages/serial/serialutil.py", line 473, in dtr
self._update_dtr_state()
File "/usr/local/lib/python3.10/dist-packages/serial/serialposix.py", line 715, in _update_dtr_state
fcntl.ioctl(self.fd, TIOCMBIC, TIOCM_DTR_str)
TimeoutError: [Errno 110] Connection timed out
Possible causes:
- Selected Bootloader version does not match the one on Bluefruit device.
Please upgrade the Bootloader or select correct version in Tools->Bootloader.
- Baud rate must be 115200, Flow control must be off.
- Target is not in DFU mode. Ground DFU pin and RESET and release both to enter DFU mode.
Try to force Bootloader/UF2 mode by double pushing the reset button.
If the device is showing up as an external drive RAK4631, you should be able to upload the firmware.
If double push reset doesn’t work (try multiple times, the timing is a little bit tricky), the most likely your second RAK4631 does not have the Arduino Bootloader but the RUI3 bootloader.
In this case you can either use the RUI3 BSP or convert the device to Arduino Bootloader.