Could we make  colorpalettes.cpp not include FastLED.h? It doesn't seem to need it,

Could we make colorpalettes.cpp not include FastLED.h? It doesn’t seem to need it, and by not including it the code becomes more portable (I utilize a lot of the types on my Mac for creating a simulator)

I also have trouble with colorutils.h including pgmspace.h, but I don’t know an elegant way to work around the need for pgmspace stuff without including that header (maybe #define magic)

I have a separate branch that already breaks a lot of this out - including stronger conditionalizing around PROGMEM related stuff.

I can clean up the includes before that gets published. (Need to get 2.1 released first and then need to clean up a lot of the juggling that I was doing on this branch for a contract).

@Corbin_Dunn : we’re moving toward being able to compile totally Arduino-free, so as Dan said I think the short answer is Yes and it’s in the near(ish) future.

Say more about your simulator ideas! There’s clearly a need, or maybe a few different needs. What are you thinking about?

Awesome, sounds like you all are on top of it! My simulator is more than an idea; I have it running and it works pretty well for testing patterns for my LED Cyr wheel project.

I’d need to work on making it a bit more abstract to share the code. It also only works on a Mac; do you or Daniel use a Mac for development? I’m guessing you all use windows, as most hardware people prefer it.

Conceptually it works like this: I have a abstract C++ patterns class that maintains all the state logic for each pattern, and performs the necessary timing. It contains an array of CRGB objects and I do operations on. There are two pure abstract methods: begin() and internalShow(); I subclass this class and override these methods and provide the actual implementation. I can then create a version that is hooked up to NSView (Cocoa) on the Mac, or FastLED on the Teensy/Arduino. Or, the beauty of this design, is I can swap the backend LED processing from FastLED to AdaFruit_NeoPixel, or OctoWS2811, just by having a different subclass.

Here’s an example of a pattern running:

If you are really interested, and have a Mac, let me know, and I can add you to my private github project for it.

@Daniel_Garcia and I are both heavily Mac people… and probably very interested :slight_smile:

Excellent! I’m glad more and more people are using Macs. I also exclusively use Xcode for Teensy/arduino development now. It is create for code completion, cmd-clicking to find symbols, and ease of use for compiling. Email me your github account name (to: corbin at corbinstreehouse …. com), and I’ll give you instructions on how to pull and compile.