Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 01:09
    lbernstone commented #3370
  • 01:08
    lbernstone commented #3370
  • 00:44
    amoghskulkarni closed #3370
  • 00:44
    amoghskulkarni commented #3370
  • 00:22
    lbernstone commented #3370
  • 00:01
    amoghskulkarni commented #3370
  • 00:00
    amoghskulkarni commented #3370
  • Oct 16 23:53
    MoronixProduct3 starred espressif/arduino-esp32
  • Oct 16 22:35
    gleb-cher starred espressif/arduino-esp32
  • Oct 16 21:40
    ebelouet opened #3372
  • Oct 16 21:07
    henriquenunez starred espressif/arduino-esp32
  • Oct 16 20:23
    stale[bot] labeled #3091
  • Oct 16 20:23
    stale[bot] commented #3091
  • Oct 16 19:53
    gvvynplaine starred espressif/arduino-esp32
  • Oct 16 19:48
    murilokrugner starred espressif/arduino-esp32
  • Oct 16 19:23
    stale[bot] closed #2982
  • Oct 16 19:23
    stale[bot] commented #2982
  • Oct 16 17:56
    Mjohncecil closed #3365
  • Oct 16 17:23
    stale[bot] closed #3061
  • Oct 16 17:23
    stale[bot] commented #3061
tobozo
@tobozo
@ShivamJoker I have a box full of dead OLEDs, most SSD13xx are dead from broken corners too
@Daemach client()->remoteIP() ?
Daemach
@Daemach
Thank you!
lbernstone
@lbernstone
getting the MAC out of the arp table seems like it is not simple, but certainly should be possible.
Daemach
@Daemach
@tobozo Thank you!!

I am using an SD card to store offline debug and data log files and I need to upload those files when the device gets back into wifi range. How can I use the HTTPClient (or some other method) to upload a file from the file system to a web page that supports file uploads? The files could be sizeable so I can't rely on loading them into RAM and POSTing them - seems like streams should be possible but I have no idea how to do that for outbound traffic. All of the stream examples seem to be focused on inbound data.

Thanks in advance for your help!

Daemach
@Daemach
Gotcha - It would be nice if there were a wrapper function for this, but I'm not advanced enough to create it :) Thank you for your help!
Shivam
@ShivamJoker
guys why there is SD card slot in esp32 cam ?
do we need to store codes for the cam in the sd card
and wow there is also a flashlight to take pictures in dark
Shivam
@ShivamJoker
and which USB to TTL should work with that board ?
will this be fine for most modules ?
Dante
@c-dante
Hey folks! New here. I'm hitting the (well known) program memory space limits (BLE, WiFi, and a few other libraries). Can anyone point me in a direction for what to run to get a handle on where the space is being allocated? I'm not finding a way to list out which sources are contributing the bulk of using up the space. I saw make size-components but I'm not sure where that is / how to get that going.
lbernstone
@lbernstone
What are you really going to get from that? If you need the library, you need it. BLE is very large (~400K). Just increase the size of your app partition.
The 8MB modules retail for $0.40 more than 4MB, so not worth fighting for every bit of flash.
Dante
@c-dante
Looking into increasing the app partition size -- the Arduino IDE doesn't have the setting for the Adafruit ESP32 Feather, I just hit this limit today while working on getting OTA updates going. I'm definitely open to just getting larger flash storage.
lbernstone
@lbernstone
The board type doesn't matter. I use the esp32 dev module (and the actual pin numbers) for every board I have.
This ^ is really cool
Marc MERLIN
@marcmerlin
Howdy. I'm stuck with a vexing issue, described in more details here https://community.pixelmatix.com/t/esp32-runs-out-of-some-ram-when-using-64x96/394/7?u=marcmerlin
Basically, I'm getting different results whether I do
uint8_t imageData[maxGifWidth maxGifHeight]; // works
uint8_t
imageData = (uint8_t ) malloc(maxGifWidth maxGifHeight) // fails
It is not a malloc failure, I made sure of that. Code/patch: marcmerlin/AnimatedGIFs@c2dc4c7
Apparently, I'm not out of RAM
Malloc stack in GifDecoder startDecoding. Requested bytes: 4096
Malloc prefix in GifDecoder startDecoding. Requested bytes: 8192
Malloc suffix in GifDecoder startDecoding. Requested bytes: 4096
Malloc palette in GifDecoder startDecoding. Requested bytes: 768
Malloc tempBuffer in GifDecoder startDecoding. Requested bytes: 260
Heap Memory Available: 241984 bytes total, 113792 bytes largest free block: 
8-bit Accessible Memory Available: 153764 bytes total, 113792 bytes largest free block: 
32-bit Memory Available: 241984 bytes total, 113792 bytes largest free block: 
DMA Memory Available: 153764 bytes total, 113792 bytes largest free block:
Alexandr Zarubkin
@me21
You should use pointers with malloc
chuck todd
@stickbreaker

@marcmerlin the second is a pointer right? (remember markdown backticks else the asterisk shows up as italic.

uint8_t * imageData = (uint8_t *)malloc(maxGifWidth *  maxGifHeight);

as long as the max size is less than 113792 bytes.

chuck todd
@stickbreaker
@marcmerlin post the code you use to pass the buffer. It could be as simple as:
uint8_t stackBuffer[100];
uint8_t * heapBuffer = (uint8_t*)malloc(100);

void useBuffer( uint8_t * buf){
//... use it
}

useBuffer(&stackbuffer); //pass address of stackBuffer
useBuffer(heapBuffer); // pass value contained in heapBuffer, the address of the actual buffer
useBuffer(&headBuffer); // DEATH.  pas the address of the pointer, NOT the BUFFER.
Marc MERLIN
@marcmerlin
@stickbreaker sorry, yes, the second is a pointer but markdown turned it into italics. Slightly the code that uses the buffer is a whole library i didn't write. I'm trying to fix it so that it doesn't crash esp32 at startup by using to many global arrays.
That said the whole code is in this lib
Alexandr Zarubkin
@me21
@stickbreaker you can call useBuffer(stack buffer) actually, because array name is converted to the pointer to its first element
useBuffer(stackBuffer);
Marc MERLIN
@marcmerlin
That said, I will scan for "useBuffer(&headBuffer);" tomorrow, thanks for that suggestion
chuck todd
@stickbreaker
@me21 you are correct, but &stackbuffer will generate the same code, BUT &heapBuffer will not. That was what I was trying to show. The automagic(sic) conversion from array of char to pointer to char has caused me many problems. I try to write my code such that 'assumption' are minimized. &stackBuffer tells me that I want "where", not what it contains.
rmalchow
@rmalchow
hi / good morning. can anyone point me to an example usage of the i2s event queue? as in i2s_driver_install(i2s_port_t i2s_num, const i2s_config_t *i2s_config, int queue_size, void* i2s_queue); ?
Alexandr Zarubkin
@me21
@stickbreaker I see, good point.
xbary
@xbary
Hello I have a question. Did anyone meet with the WIFI disconnect procedure in ESP32 to avoid ~ 1kb memory leak?
In my application I have to manually force disconnection, or when the station (router) will disappear.
xbary
@xbary
I am sorry, a false alarm :) it turns out that the RTOS task from pinging the Internet and the gateway has eaten my memory after every disconnection and connection with wifi.
Roman Hosek
@hosek
Hi, any idea/hint why the ULP pulse counter example is working only on gpio0 and not on others rtc io pins ? thanks for any hint!
Shivam
@ShivamJoker
so guys esp32 cam will do face recognition with esp who framework ? will this module work fine ?
image.png
bobcroft
@bobcroft
@ShivamJoker
Hi, I can't answer your most recent question but as an aside I wonder have you ever seen Peter Scargill's technical blog. He doesn't do much with ESP32 but he does loads with ESP8266 and other really interesting stuff. I am sure you would find it educational and interesting.
Re Cheap OLED's from what I have read they crap out after a few months continuous use.
Marc MERLIN
@marcmerlin
@stickbreaker first I wanted to thank you for being there both times I had a question here. Thanks much. I found another problem between malloc and defining an array in the heap: sizeof(imageData). Obviously sizeof a pointer and and array, isn't quite the same
All better now. I'll have to remember this next time I convert code to ESP32. That said, it's disappointing that ESP32 deals pretty badly with static global arrays when teensy does fine with them.
Marc MERLIN
@marcmerlin
chuck todd
@stickbreaker
@marcmerlin one thing different with ESP32, is that part of the heap is 32bit only. malloc() by default only allocates from the 8bit area. I don't know the issues with compile time allocation, I do all my large buffer allocations during runtime so that I can detect problems.
Marc MERLIN
@marcmerlin
@stickbreaker I get your point, but on other CPUs, defining global static arrays is actually the safe thing to do because the compiler can tell that things are not going to fit, or be tight before you even upload. None of that happened with ESP32 :(
I only malloc stuff I may not need the entire program's lifetime (although that wasn't my code anyway, it was an animated gif lib I found and now fixed)
Marc MERLIN
@marcmerlin
BTW, esp32.com forums suck, they still take >1 (closer to 2+) days to approve any new post. By the time my post is approved, it doesn't matter anymore. Sigh... Thanks much to y'all for being here.
Alexandr Zarubkin
@me21
@marcmerlin can you please describe the bugs with global static arrays on ESP32?
Marc MERLIN
@marcmerlin
I can't tell you what the actual problem is but basically I had code that was using let's say 20 to 30KB of global arrays. In one case the compiler told me it couldn't generate a binary that would fit
The other times when I shrunk things a bit, it made a binary that crashed instantly at boot, even before setup() ran