Troubleshooting

Troubleshooting your nice!nano often falls on to the firmware of choice, but a few directly hardware related items can be addressed.

My nice!nano seems to be acting up and I want to re-flash the bootloader#

I can still get into the existing bootloader over USB#

In this case you can most likely re-flash the bootloader using adafruit-nrfutil. Here are the steps you'll want to follow:

  1. Follow the installation section here. Most likely you'll just need to run pip3 install --user adafruit-nrfutil.
  2. Download the DFU pkg of the nice!nano bootloader.
  3. Connect your nice!nano and put it into the bootloader using a double-tap reset.
  4. Run the following command in your terminal:
adafruit-nrfutil --verbose dfu serial --package nice_nano_bootloader-_s140_6.1.1.zip -p SERIALPORT -b 115200 --singlebank --touch 1200

However, replace SERIALPORT with your respective serial port name on your OS.

  • On Windows it will be in the format of COM8, but the number 8 will depend on what it is in your device manager under serial.
  • On MacOS and Linux it will look something like /dev/ttyS0, but you'll of course need to double check the exact path name.

After this runs, you should have your bootloader all re-flashed and fresh.

I can't get into the bootloader at all anymore#

If you can't get into the bootloader anymore, this will mean you'll need a device programmer. You can select one of the two below and use the steps listed.

  1. Plug in your nice!nano over USB
  2. Connect these 4 pins to the nice!nano (use the pinout as reference)
    1. VCC/VTref will connect to the VCC pin on the nice!nano
    2. GND will connect to any of the GND pins on the nice!nano
    3. SWDIO will connect to the SWD pin on the back of the nice!nano
    4. SWCLK will connect to the SWC pin on the back of the nice!nano
  3. Download the bootloader hex
  4. Download nrfjprog
  5. Run this command in your terminal
nrfjprog -f NRF52 --program nicenano_bootloader_v1.hex --chiperase
  1. Plug in your nice!nano over USB
  2. Connect these 2 pins to the nice!nano (use the pinout as reference)
    1. SWDIO will connect to the SWD pin on the back of the nice!nano
    2. SWCLK will connect to the SWC pin on the back of the nice!nano
  3. Download the bootloader hex
  4. Download openocd
  5. Run this command in your terminal
openocd -f interface/stlink.cfg -f target/nrf52.cfg -c "gdb_flash_program enable" -c "gdb_breakpoint_override hard" -c "init" -c "reset halt" -c "flash write_image erase ./nicenano_bootloader_v1.hex"

My nice!nano won't connect to my host device over BLE#

Unfortunately there's likely not much you can do from a hardware perspective if you're running into this. This will mostly likely come down to two factors: the firmware you're using and how nicely the host BLE stack works with said firmware.

Because there's no simple way for me to offer advice on how to fix this, I would instead ask you to reach out to the respective firmware communities to ask for assistance. In general though, I would first test to see if you can connect to your phone over BLE. This will show whether it's a hardware issue or not. In my experience it's never truly been the nice!nano that has hardware issues, so continued work on the firmware side and OS stack side need to occur.

Copyright © Nice Technologies LLC