5 ms·
Hi there! Project creator here. Hindsight is 20/20 - the dual CPU design did prove to be overly complex. It does in actuality work quite well, but it was extr
by readmodifywrite 6y ago
Hi there! Project creator here. Hindsight is 20/20 - the dual CPU design did prove to be overly complex. It does in actuality work quite well, but it was extremely difficult to implement and it's a lot of extra parts for features that turned out to be less useful than anticipated. There's some major reasons why I designed it that way at the time though:
1) I already had an OS that ran on the AVR, and didn't want to spend the effort porting it entirely to the ESP8266. That being said, I've since mostly ported it over anyway. The ESP8266 is indeed wayyyy harder to use than an AVR. But, as it turns out, not harder than dealing with two extremely dissimilar CPUs.
2) The ESP8266 doesn't have great I/O. In particular, I wanted to run PWM LED strips and the AVR allowed me to do that (the LED driver circuit can run PWM or digital output on the same pins). However, I realized pretty quick after selling a few of them that nobody else cared about PWM and not long after that, neither did I. Only a handful of my projects still use the PWM circuit.
3) The AVR has a much, much better DMA than the ESP8266. There's a fast LED style dithering feature available for some LED strips, and the Xmega DMA is what made it possible to do that. Yet another feature than turned out to be less useful than I'd thought - most strips I use clock too slowly to dither anyway.
4) It also has more analog I/O, which I use in my own projects, but probably no one else does.