Big LoRa32u4 boards topic

Thank you! I didn’t realize I had to put the LoRa chip into sleep mode. These commands should probably be added to the opening post of this topic.

I am going to test this tonight.

It’s already included on most LMIC based sketches :slightly_smiling_face:
It can realy help during tests!

Hi @Couin, did you have any luck?

I did ask, but nothing right now.
Except DIO pad, there is no real difference with v1.1.

Hi all.

I think just broke 4 modules. Loaded an sketch with few libraries in. TinyGPS, Lora_serialization, SoftwareSerial…

AVR Memory Usage

Device: atmega32u4

Program: 29808 bytes (91.0% Full)
(.text + .data + .bootloader)

Data: 1242 bytes (48.5% Full)
(.data + .bss + .noinit)

And when it writes…

AVR Memory Usage

Device: atmega32u4

Program: 30396 bytes (92.8% Full)
(.text + .data + .bootloader)

Data: 1264 bytes (49.4% Full)
(.data + .bss + .noinit)

gaguilar@gray-compute:~/workspace-lora/level2-loragps/build-lora32u4$ ninja ardup
[2/3] Running external command ardup.

avrdude: Version 6.3
Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright © 2007-2014 Joerg Wunsch

     System wide configuration file is "/home/gaguilar/Proyectos/arduino/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf"
     User configuration file is "/home/gaguilar/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : /dev/ttyACM1
     Using Programmer              : avr109
     Overriding Baud Rate          : 57600
     AVR Part                      : ATmega32U4
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PA0
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : butterfly
     Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .
Found programmer: Id = “CATERIN”; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
Device code: 0x44

avrdude: devcode selected: 0x44
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as FE
avrdude: reading input file “/home/gaguilar/workspace-lora/level2-loragps/build-lora32u4/built_target.hex”
avrdude: writing flash (30396 bytes):

Writing | ############################################### | 94% 2.30savrdude: ser_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: write block
***failed;
***failed;
***failed;
***failed;
***failed;
***failed;

Broke. Any advice to recover them? Should I rewrite from factory? Is it possible, how? I have the bus pirate to interface with the chip if required…

Have you tried to hit reset after 1st write “failed” message?
It’s how one do with Arduino IDE on Windows. It should also works for you :slightly_smiling_face:

Edit : Hit reset with either a single or double tap.

Hi Couin,

No it doesn’t work.

It happened that cannot store as much firmware as avrdude says. And stops at 94% leaving the board unusable when I upload something big. 90% of total space.

Fortunately I have the buspirate 4 with firmware 7.0. And during this time I discovered that the BusPirate is not able to power the board to reflash the firmware. But if I connect the board over USB and then the cabling as described:

BUS PIRATE - LORA32U4II
MISO MISO
MOSI MOSI
CLK SCK
GND GND
CS RST

And I use arduino ide to upload a new bootloader it starts to work again. So. I wonder why the firmware update locked the board while there’s enough space. And why powering over 5v doesn’t get it to work on buspirate + arduino ide.

I leave info for others that have same problem.

Tnx

What board definition are you using?
I use Adafruit Feather one :
feather32u4.upload.maximum_size=28672

I guess LoRa32u4 firmware is slightly bigger than its Atmega32u4 counterpart.

Moreover, you can reduce Lmic size, it may help a lot (See #define disable_beacon and disable_ping)

1 Like

The definition is for the BSFrance 1.2v. But I was building with meson (https://mesonbuild.com/) because it builds faster. And I didn’t had this value from the arduino variation spec.

I took it, and you are right. More or less same amount. I added a warning to the compilation system.

It’s good to know I can write the sketch with BusPirate and skip the loader so I can fit whole memory with my sketch.

I got BSfrance LoRa32U4 II v1.2. I connected dio1 to D6 by manual wiring. I saw all packets on TTN as expect (working without problem more than 64 packets) . The problem is my node suddenly slow sending packet after I open serial monitor. Usually, Messages are showed on TTN every 15 seconds but it became 1 min and 15 seconds. On serial monitor, I saw

37895363: RXMODE_SINGLE, freq=923200000, SF=7, BW=125, CR=4/5, 37952486: RXMODE_SINGLE, freq=923200000, SF=10, BW=125, CR=4/5,38224975: EV_TXCOMPLETE (includes waiting for RX windows)
Sleep for 15.00 .

Nothing more. The node still sending but longer delay.

Somsak

After comment out all lines in do_sleep(float sleepTime). It seems to work ok. Should it be because the sleep issue?

Somsak

Hi! Serial using USB or pins 0/1?
I loose Serial USB when doing (deep) sleep. On ATmega32u4, Serial USB is somewhat software.
I didn’t investigate more, you should find workarounds (Perhaps closing/reopening Serial).
Can you show your code? Is there a “while(!Serial)”?

My case is I lost USB serial. So, I did put “while(!Serial)”.
I added more delay before setting speed. Now, everything is all ok except do_sleep function.

delay(2500); // Give time to the ATMega32u4 port to wake up and be recognized by the OS.
Serial.begin(115200);

Somsak

Hi Somsak, That’s because the LMIC throttling of bandwidth. It’s supposed that you can only send about 1% of available bandwidth, so it throttles your messages calculating the time to air and available bandwidth on channel you choosed. But you can also do frequency hopping.

Just a question. BSFrance and Adafruit modules, does use 3.3v natively on gpio or do they use 5v logic. Specs says 3.3v module. But I don’t know if it has a stepup converter to be compatible with arduino gpios.

I ask because I read from ublox 3.3v gps and I’m adding a stepdown converter from 5v to 3.3v between the module and gps. And if it’s fully 3.3v I can remove that module on channels. What do you think?

Everyone says a simple voltage divider will do the trick. But I wonder if I can get rid of it with BSFrance v1.2 module.

References:

http://www.ayomaonline.com/iot/gy-gps6mv2-neo6mv2-neo-6m-gps-module-with-arduino-usb-ttl/
https://forum.arduino.cc/index.php?topic=199304.0

https://docs.bsfrance.fr/documentation/11355_LORA32U4II/Datasheet_LoRa32u4II_1.1.pdf

  • MCU : Atmega® 32u4 3.3V @ 8MHz
  • Logic level : 3.3V
  • Operating voltage : 3.3V – 5.0V
  • Ultra low dropout 600mA 3.3V regulator

I don’t know whether GPIO pins are 5V tolerant.

Hi Couin, so I can connect it directlly to the 3.3v ublox gps. Great. Thank you for the response. And the doubt now is if it can tolerate 5v as other arduino clones do.

Anyone can clear out this doubt? Please.

Everything should be be fine if you use 3.3V Logic everywhere.
Beware of maximum draw/sink current.

Seems to be working great. Low consumption and it can lasts days on batteries. Will improve it latter anyway.

Great news!
I can’t wait to read about your future improvments :wink: