These are chat archives for esp8266/Arduino

7th
Jun 2017
Michael Miller
@Makuna
Jun 07 2017 06:54
@bertmelis You make a statement without details about not being able to use F() when calling an inline. Can you provide a snippit of the code and the error you get? Is it a compile error or an exception?
Bert Melis
@bertmelis
Jun 07 2017 07:48
I see now that my statement was indeed not very verbose...
I's a compile error: error: __c causes a section type conflict with __c
I'm writing a library for some special serial communication. For debugging, I inserted a number of messages, also in a class method I declared "inline". The statement itself is pretty straighforward:
_debugPrinter->println(F("Checksum OK"));
The compile error:
...\.platformio\packages\framework-arduinoespressif8266\cores\esp8266/pgmspace.h:21:51: error: __c causes a section type conflict with __c
#define PSTR(s) (__extension__({static const char __c[] PROGMEM = (s); &__c[0];}))
^
Bert Melis
@bertmelis
Jun 07 2017 07:59
Is it something architectural? I thought the PROGMEM strings are "global" which is in conflict with the inline use.
Martin Ayotte
@martinayotte
Jun 07 2017 12:18
@brutzler , just follow this esp8266/Arduino#2351
zombodotcom
@zombodotcom
Jun 07 2017 16:26
Hey, I was using a nodemcu and a wemos d1 mini for an led project. I was powering them with a TP4056 with parallel 18650s. I was powering the boards and the leds with the TP4056 and 18650s. The webserver I used to change patterns programmed with fastled worked for a good 30 minutes, then when I changed to a certain pattern the nodemcu and wemos d1 mini both crashed and started doing watchdog resets.
after it tries to start up the webserver. Did I fry the 1117 voltage regulator
or the shokkty diode?, I need to get a 9v battery for my multimeter, but I am wondering if anyone else has had this issue powering ws2812b led lights and a nodemcu and or a wemos d1 mini with 18650s and a TP4056
i also tried another setup with the led lights getting their own 18650s with a TP4056, and the nodemcu / wemos d1 mini with its own 18650 and TP4056, and the same thing happened after a few minutes.
Michael Miller
@Makuna
Jun 07 2017 17:32
@bertmelis What is the signature of your println function? Where are you calling this from?
The progmem are global, the __c is static and defined within a scope making them global and unique.
Did you search for section type conflict error?
Bert Melis
@bertmelis
Jun 07 2017 17:50
It is called from within a library I created. I'll try to reproduce in a simple example.
(library = class + )
Bert Melis
@bertmelis
Jun 07 2017 19:43
I can't reproduce using a simple example (maybe it's too simple, but I don't know where my error comes from). My real life example is residing in https://github.com/bertmelis/VitoWifi. I can't put any PROGMEM debug messages in Optolink.cpp inside the inline checksum methods.
Bert Melis
@bertmelis
Jun 07 2017 19:48
for example: adding _debugPrinter->println(F("just checking"));to https://github.com/bertmelis/VitoWifi/blob/develop/src/Optolink.cpp#L421 generates the error.
(you may find the lib written badly, but I'm only auto-didacting since a couple of months)