Comments (6)
I have not tested with the latest Arduino release yet to see if BitBang works with WiFi active.
But, I don't think BitBang will ever be functional with WiFi active. I haven't heard a change in their belief on issue; they have stated they don't plan to solve the problem; and they suggest hardware solutions. I continue to include it in the hopes some day they may change their minds.
UART method will stop the secondary Uart from being usable, but the default "Serial" is still fully functional as it uses a different one. The Esp has more than one.
DMA method will stop the Serial read, but not the Serial write. It uses the UART0 RX to as output, but the UART0 TX is still available. So doing serial debug output is still functional, you just loose the ability to read from it. There is also no problem flashing with Pixels connected.
In either case, if you need another UART, there is one available.
from neopixelbus.
@Makuna
thanks for this answer, so I can still use the default classic Serial GPIO1/3 RXD0/TXD0 with UART Driven mode.
When you write about 2nd UART, are you refering to the one used for Debug GPIO2/TXD1 ? So UART Driven Mode use this one or is it another one I don't know ?
Thanks
from neopixelbus.
Rather than me getting it wrong, let me point you to documentation ;-)
About half way in is the Serial section.
http://esp8266.github.io/Arduino/versions/2.1.0/doc/reference.html
Serial uses UART0, which is mapped to pins GPIO1 (TX) and GPIO3 (RX). Serial may be remapped to GPIO15 (TX) and GPIO13 (RX) by calling Serial.swap() after Serial.begin. Calling swap again maps UART0 back to GPIO1 and GPIO3.
Serial1 uses UART1, TX pin is GPIO2. UART1 can not be used to receive data because normally it's RX pin is occupied for flash chip connection. To use Serial1, call Serial1.begin(baudrate).
You can see that UART0 RX is GPIO3, the same as DMAs Output.
You can also see that "Uart Method" uses GPIO2, which is the Serial1 TX pin so it doesn't effect flashing or Serial output.
The Esp8266 allows for remapping of the pins for hardware features, but only a limited set for each hardware feature. Lots of overlapping, pretty much only leaving the pins that I documented for Uart Method and Dma Method and should not cause undue issues with normal use.
Clear as mud ;-)
from neopixelbus.
@Makuna,
Thanks that was exactly the sense of my first question, I just wanted to be sure I didn't missed anything ;-)
So in case of other users interested here what I understood, just correct me if you think I'm wrong
- Using DMA mode, take the UART0 Serial RX (GPIO3), this is why it can be not so clear because for this pin, you could think it's input, but DMA use it as output. The good point is that this let you use TX (GPIO1) to send some debug info using classic
Serial.begin() bla bla
May be caution should be taken on init order if you want to useSerial.print()
because callingSerial.begin()
would reconfigure RX as input and possible trouble DMA or vice-versa. - Using UART driven use GPIO2 so TXD1 (
Serial1.begin()
in code) so you will loose this "system debug" UART1 but may me the best solution because in this case you keep all "classic" serial untouched and you can use read AND write on the UART0 ;-)
from neopixelbus.
Confirmed that with DMA method, setting Serial.begin() after the strip.Begin() will cause the strip to not function correctly. I will capture all this in the wiki.
from neopixelbus.
Captured in Wiki
from neopixelbus.
Related Issues (20)
- [Issue with running NeoPixelBitmap.ino on a 8*32 flex display]
- Add support for SM16825 chip HOT 24
- Add support for TM1934 HOT 4
- NeoEsp32I2s1Ws2812xMethod jitters HOT 8
- Support for WS2805 HOT 4
- 16 bit/channel RGBCW
- "Loop Sends" for repeating output stream on low memory builds. HOT 3
- Add NeoPixelBus to the External Library Testing for Espressif ESP32
- NeoPixelBus 2.7.8 example NeoPixelTest.ino will not compile for an ESP32-C3 using ESP32 Board v3.0.0-alpha3 HOT 14
- Support for TLC59711 chips HOT 5
- Add support for WS2805 HOT 1
- HD108 Support HOT 9
- Support for LED Curtains, Active tee/hook for each vertical drop HOT 4
- Support WS2814 LEDs HOT 3
- WS2815 support
- False positive error report HOT 5
- Add support for dynamic ColorFeature selection rather than static compiled into the type like today HOT 5
- SK6803 support
- WS2812 LEDs Display Incorrect Colors When WiFi is Connected
- Use Native type for loops that have large interations to save code size HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from neopixelbus.