Well, been a while since the last log entry, hasn't it?
Don't worry, you haven't missed much ... Apart from getting the WiFi to work, finalizing how programs are run, adding a first set of those, and working on implementing a first sensor attachment - and what could be better than the very powerful (but slightly expensive) BME680!
I gotta say, it was a beast to get working, as the calibration methods used by the manufacturer are ... Extensive (do we really need a quadratically temperature-corrected humidity display? Maybe, maybe not), but my god the sensor data it provides is really smooth.
I've also gotten around to adding a proper casing to the sensor and, what's more important, it gets auto-detected when you plug it in!
The best part is the WS2812 LED in the BME's casing, which gives a visual air quality reading as a colorfade from Cyan (freaking great air) to Green (your standard, everyday oxygen) to orange and red (a literal brick wall to walk into).
If the DSKorder is connected to a MQTT server it also publishes the information onto the network, making it quite easy to use the DSKorder for remote air quality monitoring!
Oh boy ... I kinda didn't keep this thing updated, did I?
Is it OK if I just say I was busy? >.>
Truth be told, I was just having too much fun and was moving quite fast with this lovely piece of hardware, so keeping it up on Hackaday kinda fell out of my mind.
Let me make it up to you with a picture of how it looks so far:
Yeah, that's right!
It's pretty much ready for action, and doing damn fine, too!
Let me walk you around the whole system for a moment:
The top left section is a status indicator panel. Text can be written on a slip of paper that is fairly easy to swap out, making it flexible. Right now it's displaying it's own battery status (fades to red), WiFi connection, Program status, as well as program-specific parameters.
The whole thing is realized using 14 WS2812b LEDs, and it's actually animated with various blinking effects!
Added bonus: All animation cycles are synchronized, including the OLED screen's "typing" indicator. Just because ;)
On the top right we have the OLED screen. It's main purpose is to be a console, outputting information, letting the user type etc.
It also features a status-bar with system info on the top, and any running program can draw graphics over that as it pleases. I'm actually using my own library for the OLED screen, optimized for speedy updates over the I2C port :>
Right below the screen we have the two 7-segment segments. To be quite honest they can only effectively display numbers, but they do it in style!
I just don't think this device would have quite the same charm without those gorgeous numbers on it!
For added functionality they can also display small animations for "LOAD", "DONE", "RUN" and "ERR" - always pleasant :>
On the bottom of the DSKorder we have the keyboard. It's driven by the same chip as the seven segments, actually, and while it works well I'm kinda searching for alternatives. For example, the chip's default address is 0. Yeah - The I2C Global call.
Anyhow, it works like any 'ol keyboard. You got your Enter and Escape buttons, and then your keys. The three buttons in the top right are "modifiers", equivalent to Ctrl, Shift and Alt (but not quite <.<)
We also have a few hardware connections!
On the top left we have the general purpose expansion slot, with access to power and I2C, as well as the four General Purpose I/O channels. Useful for attaching extra sensors and such.
And on the very front we have the four protected I/O channels! I've tested them for up to 24V input and the ESP will only see 3V - and even if the ESP pulls the line to low, a resistor limits the whole thing to ~70mA. Not nice, but surviveable. They also have a protection diode so ESD spikes can't get it. Yeah, I went a bit overkill with these.
In addition to the four I/O lines we also have three analog inputs - one scaled to work well up to ~5V, one for ~24V and one connected to a current sense amplifier, which means it's easy to monitor Vcc, Battery voltage and current draw!
The DSKorder also has a bit of internal periphery, consisting of a LSM6DS3 accelerometer, should anyone want to use it as a sort of remote control with tilt functionality, has a speaker with which it plays gorgeous StarTrek Tricorder noises (video on that comin' in soon :3), and a 2000mAh battery + charge circuit, if you ever need to run a marathon nerd-day and can't bother charging this thing!