Forum Replies Created

Viewing 15 posts - 181 through 195 (of 979 total)
  • Author
    Posts
  • in reply to: LoRa E32 E22 E220 Module Compatibility #28259
    Renzo Mischianti
    Keymaster

      Hi wdaum,
      if I remember the modules aren’t compatible, they are based on different technologies and EByte has changed the cryptography systems in the various models.
      Bye Renzo

      in reply to: Issues with E22 Transmitters Reception #28238
      Renzo Mischianti
      Keymaster

        Hi Ludophot,
        install an antenna; if not, you use It and retry.

        The other problem is that I think there is a memory leak. Try to add some checks on the free memory

        
          Serial.println(ESP.getFreeHeap());
        

        Bye Renzo

        Renzo Mischianti
        Keymaster

          I found this tutorial, I think It’s what you need

          Serial/UART Firmware Upload

          A second firmware upload method is to use serial (UART) upload, which works in much the same way as the standard way of uploading code to an Arduino. Like in the case of the Arduino serial upload this approach relies on a pre-uploaded bootloader. My understanding is that the Nucleo boards already have this bootloader in place.

          UART to Nucleo connections

          • Connect GND and 5V for power.
          • Place a jumper between BOOT0 and VDD to select the serial upload mode.
          • Connect PA9 to UART RX
          • Connect PA10 to UART TX
          • Power cycle to reset board and enter serial upload mode

          IMG_0852|666x500

          Serial Uploader Tool

          On Windows ST provide a tool for uploading firmware over serial called STM32-Flasher: http://www.st.com/en/development-tools/flasher-stm32.html

          For Linux there is a neat command line tool called stm32flash available in the package manager: http://manpages.ubuntu.com/manpages/bionic/man1/stm32flash.1.html

          It can be installed with the following apt-get install:

          sudo apt-get install stm32flash
          

          I compiled the Arduino example Blink for the Nucleo64 STM32F303 using the Arduino IDE and then fetched the compliled .bin file from the /tmp folder that Arduino creates.

          I could then upload to the STM32F303 by running:

          sudo stm32flash -b 115200 -w blink.ino.bin /dev/ttyUSB0 
          

          Terminal output:

          $ sudo stm32flash -b 115200 w Blink.ino.bin /dev/ttyUSB0
          stm32flash 0.5
          
          http://stm32flash.sourceforge.net/
          
          Using Parser : Raw BINARY
          Interface serial_posix: 115200 8E1
          Version      : 0x31
          Option 1     : 0x00
          Option 2     : 0x00
          Device ID    : 0x0446 (STM32F302xD(E)/F303xD(E)/F398xx)
          - RAM        : 64KiB  (6144b reserved by bootloader)
          - Flash      : 512KiB (size first sector: 2x2048)
          - Option RAM : 16b
          - System RAM : 8KiB
          Write to memory
          Erasing memory
          Wrote address 0x08002c5c (100.00%) Done.
          in reply to: STM32L452 SPI2 port assignation not working #28048
          Renzo Mischianti
          Keymaster

            Hi Nezha,
            thanks for your feedback, not all makers work with STM32, if you’d like to share your projects we are happy to publish Them.
            Bye Renzo

            Renzo Mischianti
            Keymaster

              Hi jiangzhiyu233,
              I executed your code and I replicated the issue. It seems that there are some problems when writing and reading at the same time.
              I do a little fix, try It, and give me feedback.
              Thanks Renzo

              Renzo Mischianti
              Keymaster

                Hi jiangzhiyu233,
                I retry the code and I don’t have that behavior, do you use the example provided in github??
                Bye Renzo

                in reply to: STM32L452 SPI2 port assignation not working #28008
                Renzo Mischianti
                Keymaster

                  Hi Nezha,
                  your problem. It’s very strange.
                  I think you can try to use a “first choice” SPI2 and “second choice” in coherence, like so:

                  PB15
                  PB14
                  PB10

                  and

                  PC3
                  PC2
                  PB13

                  After that test, you can try the official STMicroelectronics core to check if STM32duino.

                  Bye Renzo

                  in reply to: STM32L452 SPI2 port assignation not working #27975
                  Renzo Mischianti
                  Keymaster

                    Hi Nezha,
                    I write a little article about that and when I do the test, I follow the pinout I retrieve from the STMicroelectronic core code.

                    I check your pin selection, and it seems to be ok.

                    
                    #ifdef HAL_SPI_MODULE_ENABLED
                    WEAK const PinMap PinMap_SPI_MOSI[] = {
                      {PA_7,      SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
                      {PA_12,     SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
                      {PB_5,      SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
                      {PB_5_ALT1, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
                      {PB_15,     SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
                      {PC_3,      SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
                      {PC_12,     SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
                      {NC,        NP,   0}
                    };
                    #endif
                    
                    #ifdef HAL_SPI_MODULE_ENABLED
                    WEAK const PinMap PinMap_SPI_MISO[] = {
                      {PA_6,      SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
                      {PA_11,     SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
                      {PB_4,      SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
                      {PB_4_ALT1, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
                      {PB_14,     SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
                      {PC_2,      SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
                      {PC_11,     SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
                      {NC,        NP,   0}
                    };
                    #endif
                    
                    #ifdef HAL_SPI_MODULE_ENABLED
                    WEAK const PinMap PinMap_SPI_SCLK[] = {
                      {PA_1,      SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
                      {PA_5,      SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
                      {PB_3,      SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
                      {PB_3_ALT1, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
                      {PB_10,     SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
                      {PB_13,     SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
                      {PC_10,     SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
                      {NC,        NP,   0}
                    };
                    #endif
                    

                    The SS isn’t so important but if you can try the default also

                    
                    // SPI definitions
                    #ifndef PIN_SPI_SS
                      #define PIN_SPI_SS            PA4
                    #endif
                    #ifndef PIN_SPI_SS1
                      #define PIN_SPI_SS1           PA15
                    #endif
                    #ifndef PIN_SPI_SS2
                      #define PIN_SPI_SS2           PB0
                    #endif
                    #ifndef PIN_SPI_SS3
                      #define PIN_SPI_SS3           PNUM_NOT_DEFINED
                    #endif
                    #ifndef PIN_SPI_MOSI
                      #define PIN_SPI_MOSI          PA7
                    #endif
                    #ifndef PIN_SPI_MISO
                      #define PIN_SPI_MISO          PA6
                    #endif
                    #ifndef PIN_SPI_SCK
                      #define PIN_SPI_SCK           PA1
                    #endif
                    

                    In the code, you begin two times the spi interface, and I think It can generate some problems.
                    Try to use a configuration declaration like this

                    
                    //    SD card attached to the secondary SPI as follows:
                    //        SS    = PB2;
                    //        MOSI  = PC3;
                    //        MISO  = PB15;
                    //        SCK   = PB10;
                    
                    #define SD_CS_PIN PB12
                    static SPIClass mySPI2(PC2, PC3, PB10, SD_CS_PIN);
                    #define SD2_CONFIG SdSpiConfig(SD_CS_PIN, DEDICATED_SPI, SD_SCK_MHZ(18), &mySPI2)
                    

                    then only one begin.

                    
                      // we'll use the initialization code from the utility libraries
                      // since we're just testing if the card is working!
                      if (!SD.begin(SD2_CONFIG)) {
                      // if (!SD.begin(SD_CS_PIN)) {
                        Serial.println("initialization failed. Things to check:");
                        Serial.println("* is a card inserted?");
                        Serial.println("* is your wiring correct?");
                        Serial.println("* did you change the chipSelect pin to match your shield or module?");
                        while (1);
                      } else {
                        Serial.println("Wiring is correct and a card is present.");
                      }
                    
                    

                    But check the STM32duino core can change the pin.

                    Try to use also the example I wrote and tested for the Arduino environment.

                    How to use SD card with stm32 and SdFat library

                    Bye Renzo

                    in reply to: EMailSender not compiling #27964
                    Renzo Mischianti
                    Keymaster

                      Thanks Mark,
                      I fixed It.
                      Thanks again Renzo

                      in reply to: Adapting Lora Water Tank Controller to My Farm #27949
                      Renzo Mischianti
                      Keymaster

                        Hi,
                        I share It on PCBWay, not directly Gerber but you can order from PCBWay at the cost of the PCB.
                        Bye Renzo

                        in reply to: Adapting Lora Water Tank Controller to My Farm #27931
                        Renzo Mischianti
                        Keymaster

                          In the master, you have a Relay with 3 exit
                          NO (Normally open) – COM (Input) – NC (Normally close)
                          if you put in COM 100v you can use NO e NC to activate an external SSR.

                          I think It’s your need.

                          in reply to: Adapting Lora Water Tank Controller to My Farm #27926
                          Renzo Mischianti
                          Keymaster

                            Hi John,
                            In my farm I using a small pump with high prevalence (70m),

                            and it work without problem with the 200w panel I add a charging regulator to send 12v-like specs

                            The flow is less than the home water tap, but on a sunny day, fill the 1000l tank.

                            Solar panel with voltage regulator and charging battery

                            If you follow the indication of the Tank project, you can connect the Master that have two voltage regulator and a batter input connector that can be powered directly from 12v.

                            The client has the panel input and a voltage regulator with a rechargeable lithium battery and after it functions It goes into deep sleep.

                            This system I think can cover your expectations.

                            Bye Renzo

                            Renzo Mischianti
                            Keymaster

                              Hi DR-DNK,
                              I check the library and it works for me. Try to check your environment.
                              Bye Renzo

                              in reply to: Ambient noise RSSI #27921
                              Renzo Mischianti
                              Keymaster

                                Hi gjb,
                                I wrote a paragraph on how to get RSSI here.
                                Bye Renzo

                                in reply to: Simultaneous use of email + web server #27878
                                Renzo Mischianti
                                Keymaster

                                  Hi rs77can,
                                  I think there is the possibility that the webserver and email need a good quantity of RAM.
                                  What are the specs of the MCU you use?
                                  Bye Renzo

                                Viewing 15 posts - 181 through 195 (of 979 total)