Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
ileneken3I

ileneken3

@ileneken3
About
Posts
53
Topics
3
Shares
0
Groups
0
Followers
0
Following
1

Posts

Recent Best Controversial

  • nRF5 action!
    ileneken3I ileneken3

    @toyman
    Unfortunately, yes, I have returned the jumpers to their original settings, and have even tried all 4 combinations.
    I also changed computers, changed OS's, changed cables.

    The board LOOKS like it was well manufactured, but I suppose a bad board is a possibility. Other than that, I can't figure out what could be wrong.

    My Project

  • nRF5 action!
    ileneken3I ileneken3

    @mr_red

    I got to the point where the stm32loader.py runs and outputs:

    Bootloader version 22
    Chip id: 0x410 (STM32 Medium-density)
    Write 256 bytes at 0x8000000
    Write 256 bytes at 0x8000100
    [..snip..]
    Write 256 bytes at 0x8001900
    Write 256 bytes at 0x8001A00
    Read 256 bytes at 0x8000000
    Read 256 bytes at 0x8000100
    [..snip..]
    Read 256 bytes at 0x8001900
    Read 256 bytes at 0x8001A00
    Verification OK

    After that, you're supposed to plug in to the USB directly. I get " USB device not recognized". Zadig doesn't help. It lists it as:

    "Unknown USB Device (Device Descriptor Request Failed)"

    Any ideas?

    Thanks.

    My Project

  • 'Mysensor' a smoke detector with sound detection
    ileneken3I ileneken3

    @tmaster
    Actually, the KY-038 works exactly what I want (except for the power consumption). I also have ones that are connect to mains power, and the false alarms are rare. Also, I have the Arduino programmed to sleep some time after detecting a sound and sending a message. In the case of a real alarm, it will keep sending regularly, which would make it obvious. The "batteries just end in a few months" is what I'm asking about - avoiding the .4ma used by the LM393. I'm hoping I can replace it with the LMV393, but I'm not sure if it will work.
    Regarding the "you think you are safe", Mysensors has heartbeats, and battery percentage reporting to deal with all that.

    My Project

  • 'Mysensor' a smoke detector with sound detection
    ileneken3I ileneken3

    @tmaster
    I appreciate the reply, but I really do not want to open up or modify the smoke alarm in any way - just detect a loud sound. As I said, I really just want a KY-038 that is suitable for battery operation.

    My Project

  • 'Mysensor' a smoke detector with sound detection
    ileneken3I ileneken3

    That scheme is interesting, but I don't want to actually fiddle with the detector - for fear I will cause a malfunction. Hence my request of "without using power from the detector itself." Also, it would be nice to detect any kind of alarm (loud noise), not just a smoke detector.

    My Project

  • 'Mysensor' a smoke detector with sound detection
    ileneken3I ileneken3

    @ileneken3
    I want to detect when a smoke detector is sounding an alarm without using AC power, and without using power from the detector itself. I currently detect an alarm (really, any loud sound) using the standard KY-038 module, like this:

    KY-038

    But this can't be used for a battery application because the KY-038 has a LM393 on it, which draws .4 ma.
    I ordered a LMV393, which is more suitable for battery operations, to replace it. But I'm not sure if that would work, or if I could manage the SMD soldering without breaking the board.
    I played with a microphone like this:

    https://www.adafruit.com/product/1063

    but I can't get it to trigger the interrupt correctly while the Arduino is sleeping. (Maybe an extra capacitor?).

    Any ideas?
    Thanks!

    My Project

  • 'Mysensor' a smoke detector with sound detection
    ileneken3I ileneken3

    Re: 'MySensoring' a Kidde Smoke Detector. (Completed)

    My Project

  • nRF5 action!
    ileneken3I ileneken3

    @mr_red
    I can add some of my own "documentation" on this issue. I only recently was able to program an Ebyte E73 module, and it was a long struggle. I used the NRF DK, and had help from a Nordic engineer.

    • The recommended way to connect to the external device is:

    Using the P20 and P1 headers, connect:
    P20 VDD -> 3.3v on EBYTE 2G4M04S1B module
    P20 SWDIO -> SWDIO on EBYTE 2G4M04S1B module
    P20 SWDCLK -> SWDCLK on EBYTE 2G4M04S1B module
    P20 VTG -> P1 VDD
    P1 GND -> GND on EBYTE 2G4M04S1B module

    To unlock the chip, execute:

    nrfjprog -f nrf52 --recover

    They also recommend using nrfjprog to program the device, because nRFgo Studio is deprecated. But I used the Studio and it worked fine. I gave Studio the .hex produced by the Arduino IDE using "Sketch" -> "Export compiled Binary".

    As mentioned in the previous post, it is unlikely to unlock the board with anything but the NRF DK or a genuine J-Link. (Maybe a good fake J-Link).

    Mistakes others may be able to learn from:

    • Soldering the module onto a custom board can be hard. If you miss a little solder on SWDCLK or SWDIO, there is no hope. Check continuity on every pin you need!
    • Make sure you don't order a NRF52810 module - only NRF52832 . You can program them, but Mysensors is not compatible. It's easy to hit the wrong link on AliExpress as they look identical.
    • The NRF DK seems to deliver only 2.8V to the device. I first thought there was a problem, and tried to connect external power sources. But it seems to work powered from the DK.
    My Project

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    @neverdie

    Yes, I understood what you meant. I will only do the "Export compiled Binary" from the IDE, and leave the drivers as J-Link commander or nrfGo Studio wants them.

    In: https://www.openhardware.io/view/376/MySensors-NRF5-Platform it says:
    "Currently, the nRF52832 and nRF51822 are supported so we recommend sticking with those for now."

    I noticed that my board: (E73-2G4M04S) is labeled "NRF52810". So is that why after programming it nothing works (nothing seen on gateway) :( ?

    If so, I messed up on that order.

    But I am also trying the E73 2G4M04S1B, which at least from the AliExpress order
    https://www.aliexpress.com/item/CDEBYTE-E73-2G4M04S-BLE-4-2-5-0-long-distance-100m-2-4GHz-SMD-ARM-Core/32820692238.html?spm=a2g0s.9042311.0.0.27424c4dSKBLn7

    says it is nRF52832. (It isn't labeled on the board though). For this module, I can't unlock it using "Recover" from nRfgoStudio. It always fails with a message "Recover failed: Unknown error".

    From the command line, if I do

    nrfjprog.exe -f NRF52 --recover --log

    and it comes back immediately with:

    Recovering device. This operation might take 30s.
    ERROR: Recover failed. Please make sure that the correct device family is given
    ERROR: and try again.

    The key error from the log seems to be:

    2018-Dec-27 12:25:22 . . . . . nRF52_power_debug_and_system_regions
    2018-Dec-27 12:25:22 . . . . . . nRF52_write_debug_port_register
    2018-Dec-27 12:25:22 . . . . . . nRF52_write_debug_port_register: JLink: JLINK_CORESIGHT_WriteAPDPReg(DP reg 0x02, 0x00000000)
    2018-Dec-27 12:25:22 . . . . . . nRF52_write_debug_port_register: JLink: returns -1
    2018-Dec-27 12:25:23 . . . . . . nRF52_write_debug_port_register: JLink: (0005ms, 0288ms total)
    2018-Dec-27 12:25:23 . . . . . . nRF52_write_debug_port_register: JLinkARM.dll CORESIGHT_WriteAPDPReg returned error -1.

    2018-Dec-27 12:25:23 . . . . . nRF52_power_debug_and_system_regions: JLinkARM.dll CORESIGHT_WriteAPDPReg returned error -102.

    If I do: nrfjprog.exe -f NRF51 --recover --log

    it actually makes LD5 on the DK board flash for 30 seconds, but still returns failure with the exact same message.

    Any other tricks for "recover/unlock" of those boards?

    Thanks!

    Development

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    @neverdie
    Unfortunately, nothing is that simple - at least for me. I have gone in circles with the J-LINK drivers. In order to use the Arduino IDE for programming, you must use the WinUSB driver installed by Zadig. But if you do that, the nRFgo Studio no longer recognizes any J-LINK device. So I re-install RFgo Studio, and then I can't use the Arduino IDE anymore!

    But I can work around those issues, because everything programs and works right when programming the device on the NRF DK board. The problem is I can't do anything with the two external boards I tried. With one, I was able to unlock it with a "Recover" in nRFgo Studio, but the programming doesn't seem to cause the chip to do anything (nothing logged by the gateway). With the other, I can't unlock the board - it always says: "Recover failed: Unknown error".
    Both boards are E73 - but one is marked as E73-2G4M04S and the other is E73-2G4M04S1B.

    Any ideas?

    Development

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    @omemanti
    I was looking at the output of mysgw running on a Raspberry PI - so Domoticz is not really in the picture. But - your advise made me think I should try programming the chip on the development board directly before using an external one. And it works! I can see the registration of the Mysensors device.
    So I guess everything is OK in terms of IDE and Mysensors code, and there must be something wrong with my external board. I will have to try a different one, and/or look over the soldering.

    Happy Holidays!

    Development

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    @ileneken3
    OK, I fixed one layer of the problem! I removed the JLINK driver using Device Manager, then re-installed using Zadig. Now the Arduino IDE tells me it is programmed without a problem.
    But the next layer of the problem still exists, the programmed board doesn't seem to send anything to the gateway. I am monitoring this from the logs of mysgw, and from Domoticz. I am expecting the gateway to see something from the node, at least the registration.

    Thanks again

    Development

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    @omemanti

    1. I wired the DK to the target exactly as described in the article, and as drawn in the picture:
      https://devzone.nordicsemi.com/f/nordic-q-a/20536/programming-external-custom-nrf52832-board-using-nrf52-dk
      I am assuming everything is correct in the wiring, because I was able to flash the blinky pre-compiled hex file and it works.
    2. When selecting J-Link as the programmer, the error from the Arduino IDE is:

    C:\Users\krakman\AppData\Local\Arduino15\packages\sandeepmistry\tools\openocd\0.10.0-dev.nrf5/bin/openocd.exe -d2 -f interface/jlink.cfg -c transport select swd; set WORKAREASIZE 0; -f target/nrf52.cfg -c program {{C:\Users\krakman\AppData\Local\Temp\arduino_build_268238/MyBoardNRF5tst.ino.hex}} verify reset; shutdown;
    Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10:13)
    Licensed under GNU GPL v2
    For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
    debug_level: 2
    0
    adapter speed: 10000 kHz
    cortex_m reset_config sysresetreq
    jaylink: Failed to open device: LIBUSB_ERROR_NOT_FOUND.
    Info : No device selected, using first device.
    Error: No J-Link device found.
    Error: No Valid JTAG Interface Configured.
    Error: No Valid JTAG Interface Configured.

    /*
      If you don't use an nRF5 board, you can ignore this file.
      
      This file was part of the "My Sensors nRF5 Boards" board repository
      available at https://github.com/mysensors/ArduinoBoards If you have
      questions, please refer the documentation at
      https://github.com/mysensors/ArduinoHwNRF5 first.
      
      This file is compatible with ArduinoHwNRF5 >= 0.2.0
    
      This file allows you to change the relation between pins referenced in
      the Arduino IDE (0..31) and pins of the nRF5 MCU (P0.00..P0.31).
      
      If you can live with addressing the GPIO pins by using the Arduino pins
      0..31 instead of a custom mapping, don't change this file. If you have
      a lot of Arduino code with fixed pin numbers and you need to map these
      pins to specific pins of the nRF5 MCU; you need to change this file.
      
      If you fill the "g_APinDescription" Array with numbers between 0..31,
      the Arduino pins 0..31 are assigned to pins P0.00..P0.31 of the MCU.
      
      As an example, if you need to change the pin mapping for Arduino pin 5
      to P0.12 of the MCU, you have to write the 12 after PORT0 into the sixth
      position in the  "g_APinDescription" Array.
       
      The extended attributes only affects the nRF5 variants provided with
      official Arduino boards. The arduino-nrf5 variant ignores the extended
      attributes.
        
      The pin mapping effects commands like "pinMode()", "digitalWrite()",
      "analogRead()" and "analogWrite()".
      
      If you change the pin mapping, you have to modify the pins in
      "MyBoardNRF5.h". Especially the analog pin mapping must be replaced with
      your pin numbers by replacing PIN_AIN0..7 with a number of your mapping
      array. You can use the constants PIN_AIN0..7 in the "g_APinDescription"
      Array if you want to reference analog ports MCU independent. You cannot
      use the pins P0.00 and P0.01 for GPIO, when the 32kHz crystal is connected.
    
      
      ###########################################################################
    
      Copyright (c) 2014-2015 Arduino LLC.  All right reserved.
      Copyright (c) 2016 Arduino Srl.  All right reserved.
      Copyright (c) 2017 Sensnology AB. All right reserved.
    
      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Lesser General Public
      License as published by the Free Software Foundation; either
      version 2.1 of the License, or (at your option) any later version.
    
      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      See the GNU Lesser General Public License for more details.
    
      You should have received a copy of the GNU Lesser General Public
      License along with this library; if not, write to the Free Software
      Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    */
    
    
    
    #ifdef MYBOARDNRF5
    #include <variant.h>
    
    /*
     * Pins descriptions. Attributes are ignored by arduino-nrf5 variant. 
     * Definition taken from Arduino Primo Core with ordered ports
     */
    const PinDescription g_APinDescription[]=
    {
      { NOT_A_PORT, 0, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // LFCLK
      { NOT_A_PORT, 1, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // LFCLK
      { PORT0,  2, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A0, PWM4, NOT_ON_TIMER},
      { PORT0,  3, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A1, PWM5, NOT_ON_TIMER},
      { PORT0,  4, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A2, PWM6, NOT_ON_TIMER},
      { PORT0,  5, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A3, PWM7, NOT_ON_TIMER},
      { PORT0,  6, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT3
      { PORT0,  7, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT4
      { PORT0,  8, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM10, NOT_ON_TIMER},    //USER_LED
      { PORT0,  9, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // NFC1
      { PORT0, 10, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // NFC2
      { PORT0, 11, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TX
      { PORT0, 12, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // RX
      { PORT0, 13, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SDA
      { PORT0, 14, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SCL
      { PORT0, 15, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SDA1
      { PORT0, 16, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SCL1
      { PORT0, 17, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TP4
      { PORT0, 18, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TP5
      { PORT0, 19, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT2
      { PORT0, 20, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT1
      { PORT0, 21, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT1
      { PORT0, 22, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM9, NOT_ON_TIMER},
      { PORT0, 23, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM8, NOT_ON_TIMER},
      { PORT0, 24, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT
      { PORT0, 25, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM11, NOT_ON_TIMER},   //RED_LED
      { PORT0, 26, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM11, NOT_ON_TIMER},  //GREEN_LED
      { PORT0, 27, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM11, NOT_ON_TIMER},  //BLUE_LED
      { PORT0, 28, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A4, PWM3, NOT_ON_TIMER},
      { PORT0, 29, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A5, PWM2, NOT_ON_TIMER},
      { PORT0, 30, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A6, PWM1, NOT_ON_TIMER},
      { PORT0, 31, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A7, PWM0, NOT_ON_TIMER}
    };
    
    // Don't remove this line
    #include <compat_pin_mapping.h>
    
    #endif
    
    /*
      If you don't use an nRF5 board, you can ignore this file.
    
      This file was part of the "My Sensors nRF5 Boards" board repository
      available at https://github.com/mysensors/ArduinoBoards If you have
      questions, please refer the documentation at
      https://github.com/mysensors/ArduinoHwNRF5 first.
    
      This file is compatible with ArduinoHwNRF5 >= 0.2.0
    
      This file allows you to change the pins of internal hardware, like the
      serial port, SPI bus or Wire bus.
    
      All pins referenced here are mapped via the "g_ADigitalPinMap" Array
      defined in "MyBoardNRF5.cpp" to pins of the MCU.
      
      As an example, if you have at the third position in "g_ADigitalPinMap" the
      12, then all ports referenced in Arduino with 2 are mapped to P0.12. If you
      don't change the "g_ADigitalPinMap" Array, the Arduino pins 0..31 are
      translated to P0.00..P0..31.
       
      ###########################################################################
     
      This file is compatible with ArduinoHwNRF5 > 0.1.0
      Copyright (c) 2014-2015 Arduino LLC.  All right reserved.
      Copyright (c) 2016 Sandeep Mistry. All right reserved.
      Copyright (c) 2017 Sensnology AB. All right reserved.
    
      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Lesser General Public
      License as published by the Free Software Foundation; either
      version 2.1 of the License, or (at your option) any later version.
      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      See the GNU Lesser General Public License for more details.
      You should have received a copy of the GNU Lesser General Public
      License along with this library; if not, write to the Free Software
      Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    */
    
    #ifndef _MYBOARDNRF5_H_
    #define _MYBOARDNRF5_H_
    
    #ifdef __cplusplus
    extern "C"
    {
    #endif // __cplusplus
    
    // Number of pins defined in PinDescription array
    #define PINS_COUNT           (32u)
    #define NUM_DIGITAL_PINS     (32u)
    #define NUM_ANALOG_INPUTS    (8u)
    #define NUM_ANALOG_OUTPUTS   (8u)
    
    /* 
     *  LEDs
     *  
     *  This is optional
     *  
     *  With My Sensors, you can use
     *  hwPinMode() instead of pinMode()
     *  hwPinMode() allows to use advanced modes like OUTPUT_H0H1 to drive LEDs.
     *  https://github.com/mysensors/MySensors/blob/development/drivers/NRF5/nrf5_wiring_constants.h
     *
     */
    #define PIN_LED1                (8)
    // #define PIN_LED2                (25)
    // #define PIN_LED3                (26)
    // #define PIN_LED4                (27)
    // #define PIN_LED5                (12)
    // #define PIN_LED6                (14)
    // #define PIN_LED7                (15)
    // #define PIN_LED8                (16)
    // #define USER_LED             	 (PIN_LED2)
    // #define RED_LED                 (PIN_LED3)
    // #define GREEN_LED            	 (PIN_LED4)
    // #define BLUE_LED			           (PIN_LED1)
    // #define BLE_LED                 BLUE_LED
    #define LED_BUILTIN          PIN_LED1
    
    /* 
     *  Buttons
     *  
     *  This is optional
     */
    // #define PIN_BUTTON1             (3)
    // #define PIN_BUTTON2             (4)
    // #define PIN_BUTTON3             (5)
    // #define PIN_BUTTON4             (6)
    // #define PIN_BUTTON5             (7)
    // #define PIN_BUTTON6             (8)
    // #define PIN_BUTTON7             (9)
    // #define PIN_BUTTON8             (10)
    
    /* 
     * Analog ports
     *  
     * If you change g_APinDescription, replace PIN_AIN0 with
     * port numbers mapped by the g_APinDescription Array.
     * You can add PIN_AIN0 to the g_APinDescription Array if
     * you want provide analog ports MCU independed, you can add
     * PIN_AIN0..PIN_AIN7 to your custom g_APinDescription Array
     * defined in MyBoardNRF5.cpp
     */
    static const uint8_t A0  = ADC_A0;
    static const uint8_t A1  = ADC_A1;
    static const uint8_t A2  = ADC_A2;
    static const uint8_t A3  = ADC_A3;
    static const uint8_t A4  = ADC_A4;
    static const uint8_t A5  = ADC_A5;
    static const uint8_t A6  = ADC_A6;
    static const uint8_t A7  = ADC_A7;
    
    /*
     * Serial interfaces
     * 
     * RX and TX are required.
     * If you have no serial port, use unused pins
     * CTS and RTS are optional.
     */
     /*
    #define PIN_SERIAL_RX       (12)
    #define PIN_SERIAL_TX       (11) 
    */
    // I changed this....
    #define PIN_SERIAL_RX       (13)
    #define PIN_SERIAL_TX       (14)
    // #define PIN_SERIAL_CTS      (13)
    // #define PIN_SERIAL_RTS      (14)
    
    /*
     * SPI Interfaces
     * 
     * This is optional
     * 
     * If SPI is defined MISO, MOSI, SCK are required
     * SS is optional and can be used in your sketch.
     */
    #define SPI_INTERFACES_COUNT 1
    
    #define PIN_SPI_MISO         (2)
    #define PIN_SPI_MOSI         (3)
    #define PIN_SPI_SCK          (4)
    #define PIN_SPI_SS           (5)
    
    static const uint8_t SS   = PIN_SPI_SS;
    static const uint8_t MOSI = PIN_SPI_MOSI;
    static const uint8_t MISO = PIN_SPI_MISO;
    static const uint8_t SCK  = PIN_SPI_SCK;
    
    /*
     * Wire Interfaces
     *
     * This is optional
     */
    #define WIRE_INTERFACES_COUNT 2
    
    #define PIN_WIRE_SDA         (13u)
    #define PIN_WIRE_SCL         (14u)
    
    #define PIN_WIRE_SDA1        (15u)
    #define PIN_WIRE_SCL1        (16u)
    
    static const uint8_t SDA = PIN_WIRE_SDA;
    static const uint8_t SCL = PIN_WIRE_SCL;
    
    #ifdef __cplusplus
    }
    #endif
    
    #endif
    
    Development

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    @ileneken3
    After giving up on the cheap (illegal?) ST-LINK and J-LINK boards, I decided to make my life easy and get a NRF-DK. Unfortunately, even that is not easy enough . I did manage to use nRFgo Studio to flash a pre-built .hex file (blinky_pca10040.hex) to the EBYTE E73 module. I know it works because I attached an LED to a pin on the module and I see it blinks. But I can't do what I really want - flash a simple Mysensors sketch (preferably with the Arduino IDE).
    Everything compiles OK, I'm using the very latest MyBoardNRF5 board definition (including the Sandeep Mistry libraries). But the Arduino IDE won't recognize the J-LINK programmer that is built into the DK board. (Maybe that's not expected to work?)

    As a workaround, from the Arduino IDE, I select "Export compiled Binary", and then use the resultant .hex file with nRFgo Studio to flash the board. Everything seems fine, but I get no indication from the gateway that any wireless traffic is received from the board - so I assume it is not working at all. Below is the sketch.

    #define MY_RADIO_NRF5_ESB
    #define MY_DEBUG
    #define MY_NODE_ID 10 // 0x0a nrf test
    #define CHILD_ID 55  // Id of the sensor child
    
    #include <SPI.h>
    #include <MySensors.h>
    
    
    // Initialize motion message
    MyMessage msg(CHILD_ID, V_TRIPPED);
    
    
    bool value = 1;
    void setup() {
      Serial.println("I am starting");
    
        send(msg.set(value)); // Get things started
        
      // initialize digital pin LED_BUILTIN as an output.
      //pinMode(13, OUTPUT);
    }
    
    void presentation()  {
    
      sendSketchInfo("NRF52", "0.9");
    
      present(CHILD_ID, S_MOTION);
    }
    void loop() {
      Serial.println("I am in a loop");
      //digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
      //delay(3000);                       // wait for a second
      //digitalWrite(LED_BUILTIN, LOW);    
      delay(3000);                       // wait for a second
    
    }
    

    P.S.
    I have not managed to get any console output using the TX/RX pins to work either.
    It would really brighten up my holidays if someone could point me in the right direction!

    Thanks,

    Development

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    @ileneken3

    Yes, I'm connecting 3.3 volts to VCC and GND on the board, while connecting the programmer to the PC's USB port. I'm assuming there is no need for a common ground?

    Oh well...

    Development

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    @omemanti

    Yes, I used Zadig. From the Device Manager in Windows, it displays "STM32 STLink" when the programmer is plugged in.
    In Linux, the device seems to be recognized automatically without installing any drivers.

    Development

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    Unfortunately- I did try that - although without an led it’s hard to know if the board really is getting power. I will check with a multimeter.

    Development

  • GUIDE - NRF5 / NRF51 / NRF52 for beginners
    ileneken3I ileneken3

    @omemanti

    I have tried EVERYTHING to get an ST-LINK V2 to program an NRF52. That includes - multiple ST-LINK's, multiple computers, Linux, "burn bootloader" first, and pretty much everything I could read on this forum. The error message is always:

    Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10:13)
    Licensed under GNU GPL v2
    For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
    debug_level: 2
    0x4000
    Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
    adapter speed: 10000 kHz
    Info : Unable to match requested speed 10000 kHz, using 4000 kHz
    Info : Unable to match requested speed 10000 kHz, using 4000 kHz
    Info : clock speed 4000 kHz
    Info : STLINK v2 JTAG v32 API v2 SWIM v7 VID 0x0483 PID 0x3748
    Info : using stlink api v2
    Info : Target voltage: 3.252590
    An error occurred while uploading the sketch
    Error: init mode failed (unable to connect to the target)
    in procedure 'program'
    in procedure 'init' called at file "embedded:startup.tcl", line 473
    in procedure 'ocd_bouncer'
    ** OpenOCD init failed **
    shutdown command invoked

    Any ideas?

    Thanks!

    Development

  • battery powered sensor / watchdog?
    ileneken3I ileneken3

    @crankycoder
    What I meant was that keep the sensor as is (whether it is a pro mini or anything else), and use a different pro mini as the watchdog - in place of the TPL5010. In this case, it would take a double board failure in order to have a complete failure.

    Troubleshooting

  • battery powered sensor / watchdog?
    ileneken3I ileneken3

    @crankycoder

    Speaking of pricing, a Pro Mini 3.3Mhz can be had for as little as $2-$3. Couldn't that be used to provide all the functionality (and more) of a TPL5010? Of course, it would require a small programming with a small script that uses low power sleep, removing the LED, maybe regulator too.

    Troubleshooting
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular