
SmartCube
kokhaie/Smart-Refrigerator-Demo
The KiCad-generated BOM is mirrored into the documentation site under docs/ so it can be published through GitHub Pages.

The MCU has a 100nF capacitor between VCC and GND. This is quite standard for MCUs and sensors, but to be sure, check the datasheet.
Hackeriet imponator is an open-source printed circuit board by hackeriet, from the hackeriet/imponator repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 47.2 × 33.6 mm with 45 parts on 56 nets, routed with 364 tracks and 35 vias.
It is built around the ATTINY804-SSN, MPU-6050 and WS2812B-4020, with the AO3400A and USB4085-GF-A among its other parts. Its parts include 9 capacitors, 9 resistors, 7 diodes, 4 ICs and 4 connectors. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Below, you see the layout for the test version, ordered from JLCPCB:

When I made these, parts were bought from Digikey or Aliexpress. The PCBs were ordered from JLCPCB.
The MCU, sensor and USB to UART chip all have datasheets. I recommend having a look at these datasheets.
To understand the design of this, first open the file "hackeriet_imponator_schematics.pdf". This is the schematic for the PCB. As you can see the design has 6 different sections. The following sub-sections will explain each.
The MCU is the brain of the badge. An MCU is pretty much the same as a CPU, but smaller. For this board, we use the ATtiny804 by Microchip. As a comparison, the Ardino uses the ATmega328P. The name ATtiny804 is put together as such:
The MCU has a 100nF capacitor between VCC and GND. This is quite standard for MCUs and sensors, but to be sure, check the datasheet.
There is also two buttons connected to pins, which the user can choose to use as they see fit.
The UPDI pin is used for flashing the MCU. UDPI is an AVR specific protocol. With this you need just the UPDI pins,and the PCB of course needs to be powered at the same time.
The plan is to program a bootloader on the board once, and then firmware can be pushed over USB.
The RGB LEDs are the WS2812B-4020. They are sideways programmable RGB LEDs, which are aimed into an acryllic plate that will be mounted on top of the PCB. These have four pins. VCC and GND to power the LEDs. Then DIN which is the signal into the LED and DOUT that is the signal out. With this, you can connect multiple LEDs in series, whcih lets you control multiple LEDs with only one pin.
The MCU does not have USB built-in. Therefore we add a USB to UART converter chip to allow for logging and a bootloader. We use the MCP2221A. This behaves as a bridge between the USB and the MCU, translating USB signals to UART and vice versa. The ATtiny804 only supports UART on specific pins, so the pins for this was decided based on the ATtiny804 datasheet. The 5.1k resistors on the CC lines of the USB-C tells the charger/PC connected to the badge that it should deliver 5V over the USB. The 10k resistor on the resistor line is a Pull-Up resistor, as the reset line is active low. 10k is normal for Pull-up resistors. Other passive components come from the datasheet of the MCP2221A.
The sensor is the MPU-6050. This is an 3-axis gyroscope, 3-axis accelerometer and more. It is connetced to the MCU over the serial protocol I2C. The sensor is not needed for the badge to work, but makes it possible to do some cool stuff with the badge. The downside is that it requires extra parts and is harder to solder than the rest of the badge. The MPU-6050 also runs on a different voltage than the ATtiny. Therefore we use an LDO to convert the power down from 5V to 3.3V. Also, we use transistors as a logic level converter for the I2C bus.
The badge is powered by either via the USB port or by the battery connector. Tha battery connector is intended for connecting a battery to it. SW1 is used to toggle between battery in via the USB port or via the battery connector. This is to avoid issues if someone connect the battery and the USB at the same time. This means that the switch has to be soldered on for the badge to function correctly.
Note: Switches are notorious for breaking. In which case it is possible to power the badge via the Shitty Add-on port as a hack.
The badge has one external connector, which complies to the Shitty Add-On version one.
We will have a soldering course soon. Here is a list of what needs to be prepared
| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | WS2812B-4020 | imponator_footprint_lib:LED_WS2812B-4020 | D1, D2, D3, D4, D5, D6, D7 |
| 5 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R5, R8, R9, R10, R11 |
| 3 | 1uF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C2, C7, C8 |
| 2 | 0.1uF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C4, C5 |
| 2 | 0R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R6, R7 |
| 2 | 100nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C1, C9 |
| 2 | 5.1K | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R3, R4 |
| 2 | AO3400A | Package_TO_SOT_SMD:SOT-23 | Q1, Q2 |
| 2 | User configurable | Button_Switch_SMD:SW_SPST_EVQP7C | SW2, SW3 |
| 1 | 10nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C6 |
| 1 | 2.2nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C3 |
| 1 | ATtiny804-SS | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U1 |
| 1 | External Battery Connector | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J3 |
| 1 | MCP2221AxSL | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U2 |
| 1 | MPU-6050 | Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mm | U3 |
| 1 | SW_SPDT | Button_Switch_SMD:SW_SPDT_Shouhan_MSK12C02 | SW1 |
| 1 | Shitty Add-On | Connector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_Horizontal | J4 |
| 1 | TLV70028_SOT353 | Package_TO_SOT_SMD:SOT-353_SC-70-5 | U4 |
| 1 | UPDI programming | Connector_Wire:SolderWirePad_1x01_SMD_2x4mm | J2 |
| 1 | USB4085-GF-A | Connector_USB:USB_C_Receptacle_GCT_USB4085 | J1 |
The 38 most common of 45 parts.
It measures 47.2 × 33.6 mm and has 2 copper layers, 1.6 mm thick.
45 parts, built around the ATTINY804-SSN, MPU-6050, WS2812B-4020 and AO3400A. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the hackeriet/imponator repository on GitHub, at the commit this page was made from: the board is hw/hackeriet_imponator/hackeriet_imponator.kicad_pcb and its schematic hw/hackeriet_imponator/hackeriet_imponator.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

kokhaie/Smart-Refrigerator-Demo
The KiCad-generated BOM is mirrored into the documentation site under docs/ so it can be published through GitHub Pages.

fabiansteiner/OpenValve
3D-printable pinch valve for irrigation and sensor-driven liquid control.


GadgetReboot/8ChLED
8 Addressable LEDs show logic input high/low states for easy probing


PCB-Design-MIT/Wi-Fi-Controlled-RGB-Light
A demo board for students to learn to solder and debug

EhlOps/mini-dyno
The mini dyno (dynamometer) is a tool created to measure the torque and power output of an engine or motor. The mechanical portion of the dyno functions as a water brake.
