Artemis hardware ordered!

After looking at the schematic, looking over it again and once more, then at the PCB once more… I decided there could not be too much wrong with the design as-is… So I pulled the trigger and ordered five PCBs including SMT parts!

After Artemis v1.00 was almost sent to production I did make some last minute changes. That resulted in v1.01 of the hardware. Yesterday was a big day: I finally uploaded my design to jlcpcb.com and progressed with the order!

Exciting! The PCB or Artemis v1.01 finally went into production.

No PCA9685 in stock 🙁

Unfortunately the PCA9685 was not in stock at JLCPCB. Finally I decided to order the PCB anyway as I did not want to wait any longer. I have ordered it separately and will solder it manually.

This is what you get from the automated positioning software at JLCPCB: Missing chip 🙁
Not to worry, nothing a soldering iron cannot fix, right!

So I need to get into soldering SMT, which I do not have a lot of history with. Soldering THT parts on the other hand will not be a problem at all. Most of the THT parts I have already sitting here (partly for fitting – things like Coax connectors, USB ports and relays you want to check that they will actually fit) so when the PCB and the PCA9685’s land I should have pretty much all the parts to get this thing going.

Next stop: Coding software

I cannot wait to get my hands on last few hardware things! After that starts working, there is some serious (re)coding to be done compared to what I am using now. Initially most programming will go into the on-board Arduino Mega Pro as I will be changing things like serial communications and also the used address structure to access the actual hardware. Later I’ll dive onto the Python stuff in the Raspberry Pi. Especially for the Arduino part I want to make things a bit more generic, so that I can post the schematic, PCB, gerbers and BoM/POS files as well as the Arduino code to create a full-featured yet generic and easy to use Paludarium / Terrarium / Aquarium controller board (for those that want to tinker that is).

Stay Tuned for the initial board tests!

Artemis v1.01… Still a render but soon to be the real deal! Stay tuned!

3 Responses to Artemis hardware ordered!

  1. I am following your updates closely and cant wait to see it come to live. Have you already estimated the memory that you will need in Flash and RAM for all the libraries, in- and outputs? I recently built an aquarium lamp with 2 strips of approx. 150 WS2812B each with 4 channels. I ran into RAM issues with the Wemos I am using and also into power supply issues (they draw about 80W fully on). Although your logic resides in the pis I could imagine you could potentially still reach the limits?

    • Hi Alex,

      Cool to see you are following this. I currently have something similar running (but with less I/O) in an Arduino Uno. So the upgrade to an Arduino 2560 mega Pro should not be an issue… Plenty of room… Until you say the word WS2812 (is that actually a word? 😉 ). I would love to “calculate” the individual leds and not blindly store the entire RGB led states in memory. I am afraid that calculating will be too slow in the world of the WS2812.

      It just so happens I have a WS2812 led indicator on the PCB which links through to a connector for connecting a WS2818 led strip… So I guess I may run into the same issues. Luckily I do not plan to use more than around 100cm of strip. The WS2812 is an awkward thing to work with imho (even though the result is cool): It requires REALLY high speed bit banging which is too fast and too much bits (led strip) to do properly. WHY haven’t they figured out to just use true SPI or I2C?!?! Leave byte transmission to the hardware and presto. But nope.

      I have routed the BS2818 bus to the Arduino’s SPI bus so I can at least use SPI to send 0’s and 1’s without having to really time them… But I am afraid servicing the interrupt of SPI and then feeding the next bit will be too slow and the WS2812’s will see that as a reset. As my software neatly runs 100 times a second and times EVERYTHING from there I *hate* blocking functions like so many Arduino libraries are (although this timing may be so fast it actually works in a blocking manner).

      I have not ventured yet into the actual WS2812 programming, although hooking up a strip to my current dev Arduino should be relatively easy… So maybe I’ll set something up in the next few days.

    • Thinking this through… Even if I have 256x WS2818’s I’d use 3*256 = 768 bytes of memory for R,G,B… The Arduino has 8KB and currently I am using around 350 bytes of that… So I should be good looking at memory 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

*