Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Shelby Merrick
@forkineye
seems i've been spoiled by the event system on my Xemgas. i could just route stuff where as needed, lol
Me No Dev
@me-no-dev
what's theissue with @Makuna 's NeoPixel lib?
you can hook it to any pin
Shelby Merrick
@forkineye
oh, i have pixel stream generation. just trying to keep my web config active while pulling in e1.31 data at 40Hz
Shelby Merrick
@forkineye
I'm still brushing up on this esp8266 stuff, but from looking at that UART code, I'm thinking it may work. They claim 3686400 as a baud rate in the header.
will play around with it this weekend
Michael Miller
@Makuna
@me-no-dev there is an issue with the latest sdk that will cause an exception if nointerrupts is used for a length of time. 200us within nointerrupts and the WiFi service being active and it fails. Again, a new deleopment with the latest sdk drop. @sticilface did the grunt work to track it down.
Me No Dev
@me-no-dev
@Makuna does that mean that it will work for a few pixels?
I dream about the time when all of the SDK will be open
Shelby Merrick
@forkineye
@Makuna thanks for the heads up on that!
Michael Miller
@Makuna
@me-no-dev the shorter the time period, the less likely it is to crash, but it doesn't guarantee that it wont. What ever was done in the latest sdk is a deal stopper for bit banging.
sticilface
@sticilface
The lower the pixels the more stable it is. The resets are proportional to the time nointurrupts
;)
Ivan Grokhotkov
@igrr
can you enable interrupts in between the pixels?
or will it also break some timing?
brutzler
@brutzler
Hi, is there somewhere an explanation for OTA? TIl now I have only found the example (DNS_SD_Arduino_OTA). But with more basic background, it would ne easier to understand.
bbx10
@bbx10
@forkineye If driving WS2812 with lots of network traffic, consider building with 1.6.4-673-g8cd3697. This version does not have the WDT reset crash issue.
Michael Miller
@Makuna
@igrr while timing between pixels seems a little more flexible, its still needs be under 800ns, that's not much time to even store and restore state let alone do anything.
Michael Miller
@Makuna
This message was deleted
Stoian Ivanov
@sdrsdr
OMG! spiffs excepts on SPIFFS.open
Ivan Grokhotkov
@igrr
Works fine here (nodemcu 1.0 board, 4Mbyte flash)
Mounting FS...
Config saved
Loaded serverName: api.example.com
Loaded accessToken: 128du9as8du12eoue8da98h123ueh9h98
Config loaded
Stoian Ivanov
@sdrsdr
Also working on the "normal" esp board here .. probably something with our "extended" development environment for the "other" board .. ok our HW/ESP guru will have to look at it
Shelby Merrick
@forkineye
@bbx10 I've been using 1.6.5-990-gc8a63ce pushing E1.31 at 25ms rates (40Hz) driving 170 pixels. This is all just receiving UDP though. I've run tests streaming for 24 hours without any resets. My E1.31 library is here - https://github.com/forkineye/E131. I use it in my ESPixelStick, which is here - https://github.com/forkineye/ESPixelStick
Shelby Merrick
@forkineye
This is all unicast as well. I do have reset issues however when listening via multicast. I may try 1.6.4-673-g8cd3697 and see if that remedies the issue.
These are just driving 40 pixels each - https://www.youtube.com/watch?v=XTzhO5iF_Vk
left one is a bread-boarded NodeMCU. other 3 are my ESPixelStick boards
Shelby Merrick
@forkineye
@bbx10 it just clicked why I'm not seeing the issue. It's due to the synchronous nature of my implementation. I'm only generating a pixel stream when a new E1.31 packet arrives. With packets coming in at 25ms intervals, that leaves plenty of time for the ESP to disable interrupts and send the pixel stream in between packets.
prussiap
@prussiap
thanks guys for all the hard work. lots of improvements lately :)
I’ve been able to teach folks about the ESPs much faster thanks to this project.
I had one quick question from my class. How do you know a library like this one would work for ESP? https://github.com/miguelbalboa/rfid or https://github.com/pkourany/MFRC522_RFID_Library
thre is probably timing stuff in here so not sure how that works
Michael Miller
@Makuna
@forkineye if you add animations, like blend between the last value to the next, this is when you might run into issues. My library differs from the standard Ada fruit in that I added animation support. In some of the tests the values are being sent in extreme rates for testing to make it fault fast, while a more reasonable speed would only show the issue intermittently but it would still happen.
Shelby Merrick
@forkineye
@Makuna Ah, yes. I could see that causing some issues. My project is just pumping the DMX channel data, and only one Universe (up to 170 pixels) at that. I tried driving up to 4, but was getting sporadic watchdog resets. I was assuming it was due to having interrupts disabled too long, but now I'm curious if its related to the issue with using the newer SDK. Will do some more testing this weekend, thanks!
bbx10
@bbx10

@forkineye Good point about the synchronous nature of network LED programs. However, broadcast packets such as ARP can arrive at any time including during LED updates.

I ran into a problem doing MIDI over multicast UDP. If any WiFi device such a phone goes into WiFi power save, all WiFi devices connected to that router experienced multicast packet buffering delays and/or packet loss. I used a dedicated WiFi router for the MIDI multicast project to avoid this problem. For more details, http://goo.gl/TLDjf5. In the case of network LED programs, erratic multicast packet intervals will result in packets arriving during LED updates which might explain the WDT crashes.

Shelby Merrick
@forkineye
@bbx10 I didn't even think about arp broadcasts. Good point. I have the ESP's all on their own access point with OpenWRT due to the multicast problems you experienced. I'm going to try some different methods creating the 2811 stream this weekend, thanks for tips!
Anwar Hahj Jefferson-George
@anwarhahjjeffersongeorge
@prussiap Hi. There are a few things you may ask yourself about a given library:
  1. Required pin hardware: Can ESP accommodate the pin ins/outs needed without conflicts?
  2. Header file definitions: Does the library use AVR registers or other settings that might have to be redefined for ESP?
  3. Data types: Does the library use data types that might cause errors on ESP (such as using multiple overloaded function calls for int/int32_t, which are equivalent on the ESP)?
@prussiap The existence of such issues may not necessarily mean you can't use the library, but you may have to make a fork and modify it for your application. Ultimately, the quickest way to find out may be to simply try running one of the example sketches that comes with the library on your ESP. A lot of libraries seem to work interchangeably, but the questions I mentioned above were just some of the conflicts I have encountered. Other people on here probably have additional or better advice :D
Anwar Hahj Jefferson-George
@anwarhahjjeffersongeorge
@prussiap Also, I have had some luck modifying libraries by adding basic preprocessor directives like #ifndef ESP8266 ...#endif around code sections that I wanted to disable when running the library on ESP. By the application of this method may the library remain functional for other boards.
dylanweber
@dylanweber
Does anyone have any reference for the ESP8266's SSDP library?
Shelby Merrick
@forkineye
Any tips on doing interrupt driven serial transmission in the Arduino ESP8266 world? I saw in the reference about a larger interrupt driven buffer for Serial, but am unsure how to use it. I looked in HardwareSerial.cpp and didn't see the ringbuffer. Am I looking in right spot or do I just need to use the ESP8266 API for this?
I'm referring to this - "Apart from hardware FIFO (128 bytes for TX and RX) HardwareSerial has additional 256-byte TX and RX buffers. Both transmit and receive is interrupt-driven. Write and read functions only block the sketch execution when the respective FIFO/buffers are full/empty."
I need to provide my own buffer or modify the existing one. Figured it would be HardwareSerial.ccp, but I'm not really that familiar with the Arduino specific stuff.
Shelby Merrick
@forkineye
Cancel that.. obviously fail at reading!
Shelby Merrick
@forkineye
well, have it working but i'm getting breaks in my FIFO. for instance, if I try to send 4 bytes, it will sometimes skip a frame window. the data gets transmitted, just not immediately following the previous frame
for instance, 4x 6N1 frames inverted, attempting ws2811 via UART: