Avatar for fanoush

fanoush

Member since Jul 2018 • Last active Jun 2024

Most recent activity

  • in Bangle.js
    Avatar for fanoush

    it is tricky without taking apart but possible, two special dfu zips (sdk11 bootloader fix, sdk12 softdevice+bootloader) and then normal espruino dfu zip, there is slight chance you may brick it by doing it wrong and need to take it apart and use swd

  • in Bangle.js
    Avatar for fanoush

    Bangle is not STM32 so STM32 stuff does not apply. And you have different problem anyway. You can definitely do firmware update over Bluetooth in this state but it won't help you with your problem. Clearing watchface or updating apps is not a matter of updating firmware version. I admit I don't know what "Clean Boot" in recovery menu does but I'd guess it won't erase your stuff so maybe that's what you want - it may just avoid running any code so the device might stay open over bluetooth to connect via Web IDE. For erasing there is "Factory Reset" down below.

    You can do DFU (=device firmware update) when releasing button while the ====== line goes across the screen.

  • in Bangle.js
    Avatar for fanoush

    btw. loading works, and the bangle buzzes on connection

    so problem solved?

  • in Bangle.js
    Avatar for fanoush

    try holding the button much longer to let it reboot and still hold it until you get to logo screen, then release, maybe then it will be available over bluetooth, or it should show factory reset options

    usb does not provide serial tty and won't help much in this situation (it provides SWD port which is something else)

  • in Other Boards
    Avatar for fanoush

    It is quite likely just the DESPR_PACKED_SYMPTR bit. maybe on STM32 flash memory addresses don't start at zero like nrf5x so don't fit into the packed lower bits. Then the packed way still could be used, just with some base offset - maybe 0x08000000?

  • in Bangle.js
    Avatar for fanoush

    Can I use this hex file with the "Firmware update" app of the "App loader" or do I need to convert it or better use some other app?

    Look into https://github.com/espruino/BangleApps/t­ree/master/apps/fwupdate
    It can update bootloader but not sure if you can provide custom file. The hex is probably the bootloader hex in your bin folder which is used for merging into big hex file with everything.
    use hexinfo.py that gets installed as part of nrfutil to examine hex files to see what they contain

    Is it okay that there are some build warnings that functions can't be inlined?

    Yes.

    Looks like I am just a small step away from bricking my watch. The next question will be how to setup the swd environment :-)

    Sooner or later you'll probably brick it so maybe learn that now and you can omit the dfu and fwupdate, SWD is faster. Was discussed here few times. If you don't have SWD dongle then Raspberry Pico with picoprobe firmware is perhaps easiest to get and use and you can also use the Pico for other stuff. Otherwise there are tons of CMSIS-DAP/Daplink dongles on aliexpress for less than price of Pico, one random example https://www.aliexpress.com/item/10050058­82951417.html You can then use Bangle charging cable with something like this https://ibb.co/album/hc0hnC

  • in Puck.js, Pixl.js and MDBT42
    Avatar for fanoush

    What about trying some bleuart example from adafruit?

  • in Puck.js, Pixl.js and MDBT42
    Avatar for fanoush

    I just don't see the result on the Arduino board.

    you should perhaps work with the ble object to read/write data, something like

      while ( ble.available() )
      {
        Serial.print(ble.read());
      }
    

    inside the loop could get the data?

  • in Puck.js, Pixl.js and MDBT42
    Avatar for fanoush

    There are plenty of such Feather boards
    https://www.adafruit.com/search?q=ble+fe­ather&c=1010
    so it is not clear which one it is, the Arudino code includes Adafruit_BluefruitLE_UART.h and some of those boards have nrf51 module connected over serial to main CPU. Maybe it is this one ? https://www.adafruit.com/product/2995

    There are even modules just with the nrf51 to be connected over UART or SPI https://www.adafruit.com/search?q=ble+fr­iend (there is also #include "Adafruit_BluefruitLE_SPI.h"

    Also I see in the Arduino code that the FACTORYRESET_ENABLE is enabled so maybe the device name gets reset on every power on and maybe that's why it is not available in the scan?

  • in Puck.js, Pixl.js and MDBT42
    Avatar for fanoush

    since 2.22 there are scan window and interval parameters, default is 100 for both
    https://www.espruino.com/Reference#l_NRF­_requestDevice
    I wonder if it could improve if you set them both to something larger like 200-500
    It says how long the Puck scans each advertising channel before moving to next one (there are 3 advertising channels)
    If there are lots of devices around I wonder if with active scan the Puck has enough time to ask each found device for scan response packet before the window for this channel is over and it needs to stop and switch to next channel. In next channel it may again manage to find only some subset of devices and so on and never actually complete the scan for all devices in any channel. This is however just a random guess, it may not help at all.

Actions