12/02/2018 at 07:05 •
Started creating a schematic based on the micronucleus ATtiny84a bootloader configuration (t84_default). According to this configuration, USB D- is on PB0, USB D+ on B1, and LED is on PB2, active Low. PB2 is the interrupt pin (INT0) as well, and probably for this reason the LED is active low. There will be 5V on the INT0 pin to detect an int erupt, and that would turn on the LED with it is set for active high. A mosfet is used to switch between USB and the battery. I have used Schottky diodes in my earlier designs, but the voltage drop caused by the diode would dim the LED's quite a bit. Using the mosfet will also reduce the energy losses when running on the battery. 10uF capacitors are used on the incoming power and at the battery charger. 100nF at the ATtiny and for each LED array. I might add a microphone for future expansion, which will be connected to pin A0 (for an analog in).
11/24/2018 at 06:20 •
Concept 1: M0 with WS2812b
First concept for this board was using an ATSAMD21G18A, with custom LED strips using WS2812b. While it was easy to make different shapes by combining different arms, it did have some disadvantages as well:
- LED strips were breaking easily;
- LED strips were falling out of the FFC connectors;
- The data line of the last LED (Pixel) on the LED strip was connected to the board again. A LED strip was required for each FFC connector, otherwise the following strip didn't work;
- When one LED was failing, it interrupted the entire data line, and the entire wearable would fail.
- Strips were difficult to make;
- PWM was too low, and was visible when the wearable was moving (for example while running).
150 samples were made and used to teach children how to make wearables. The knowledge gathered throughout these workshops was used to design the second concept.
Concept 2: ESP32 with APA102
The second concept used ESP32-PICO-D4, with standard APA102 LED strips. This concept was using the FastLED library with parallel data output on CPU#0, so that placing the strips in series was no longer required. The standard APA102 strips were thicker, and held better in place by the FFC connector. The ESP32 allowed changing parameters by BLE, so push buttons to change the patterns or brightness were no longer required. The APA102 were significant brighter, and the PWM is not noticeable because of the higher rate. Unfortunately there were still some disadvantages:
- Cost is higher. The ESP32-PICO-D4 is twice the cost of the ATSAMD21G18A, and it required and USB to serial converter;
- FCC certificate required before this can be sold, any BLE module is too large, and will drive up the cost even more.
Concept 3: ATtiny84a with APA102
While the ATtiny84a doesn't sound as exciting as the ESP32, it actually has some benefits:
- Allows a very simple board design, no voltage regulator required, can run directly from a LIPO battery of USB input;
- Since the controller can run at the same voltage as the LED strip, no level shifters are required;
- Parallel output is not an option, but the Adafruit Dotstar library allows you to change the data line so that you can have multiple strips connected. Since the strips are relatively short, and the APA102 can handle high data transfer rates), switching from one strip to the next will not be noticeable.
- USB bootloader for Arduino allows uploading sketches through USB without a USB to serial converter.
- Excellent sleep mode to conserve energy