Skip to content

Commit 64b30e3

Browse files
authored
Merge pull request #76 from monkeyToneCircuits/master
BlinkyTree_Manual v1
2 parents b1c8f46 + 6778f46 commit 64b30e3

35 files changed

+654
-0
lines changed

BlinkyTree/README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# BlinkyTree
2+
A festive Christmas tree soldering kit with twinkling LEDs and microphone blow detection that creates beautiful interactive light displays for the holiday season.
3+
4+
<img src="manual/images/thumbnail.jpg" width=400px alt="BlinkyTree">
5+
6+
- Status: **In Development**
7+
- Difficulty: **3/5**
8+
9+
### Features
10+
- **4 LED rings** with concentric Christmas tree pattern (total 13 LEDs)
11+
- **Microphone blow detection** - blow to change lighting modes
12+
- **6 different lighting patterns**: steady, twinkling, chase, breathing, and off
13+
- **ATtiny85 microcontroller** for compact, efficient control
14+
- **Battery powered** (3V coin cell or 2x AA) for portability
15+
- **Christmas tree PCB shape** with festive silkscreen design
16+
17+
### Parts List
18+
19+
| Quantity | Name(s) | Description | Label / Color Code |
20+
|----------|---------------|-----------------------------|---------------------------------------------|
21+
| 1 | IC1 | Microcontroller ATtiny85 | ATtiny85-20PU |
22+
| 1 | C1 | Ceramic Capacitor 100nF | 104 |
23+
| 1 | R1-R4 | Resistor 220Ω (4x) | Red · Red · Black · Black · Brown |
24+
| 1 | R5 | Resistor 10kΩ | Brown · Black · Black · Red · Brown |
25+
| 3 | LED1-LED3 | LED 3mm Green (inner ring) | Green LEDs |
26+
| 4 | LED4-LED7 | LED 3mm Green (middle ring) | Green LEDs |
27+
| 5 | LED8-LED12 | LED 3mm Green (outer ring) | Green LEDs |
28+
| 1 | LED13 | LED 3mm Yellow (star) | Yellow LED |
29+
| 1 | MIC1 | Electret Microphone | Small black microphone |
30+
| 1 | SW1 | Slide Switch | SPDT mini slide switch |
31+
| 1 | BAT1 | Battery Holder | CR2032 coin cell holder |
32+
| 1 || Printed Circuit Board (PCB) | Christmas Tree Shape |
33+
| 1 || CR2032 Battery | *(not included)* |
34+
35+
### How It Works
36+
The BlinkyTree uses an ATtiny85 microcontroller to control four concentric rings of LEDs arranged in a Christmas tree pattern. The microphone detects when you blow on it and cycles through different lighting modes:
37+
38+
1. **Normal Flickering** - LEDs gently flicker like candles
39+
2. **Bright Up** - LEDs brighten when you blow on them
40+
3. **Dim Down** - LEDs dim when you stop blowing
41+
4. **Off Mode** - All LEDs turn off, blow to turn back on
42+
5. **Twinkling** - Random sparkle effects
43+
6. **Breathing** - Slow fade in and out
44+
45+
### Circuit Design
46+
- **Power Supply**: 3V CR2032 coin cell battery
47+
- **LED Control**: 4 groups of LEDs controlled via current-limiting resistors
48+
- **Microphone Input**: Electret microphone connected to ADC for blow detection
49+
- **Low Power**: Software PWM and sleep modes for extended battery life
50+
51+
### Manual
52+
You can find the manual and pictures of every step in the manual folder.
53+
54+
### Copyright and Authorship
55+
- Board: [CC-BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
56+
- Manual (TeX): [LPPL](https://www.latex-project.org/lppl.txt/)
57+
- Manual (pdf): [CC-BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
58+
59+
### Buy Soldering Kits
60+
Information about purchasing this kit will be available soon.

BlinkyTree/ibom.html

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>BlinkyTree - Interactive Bill of Materials</title>
7+
<style>
8+
body {
9+
font-family: Arial, sans-serif;
10+
max-width: 1200px;
11+
margin: 0 auto;
12+
padding: 20px;
13+
background-color: #f5f5f5;
14+
}
15+
.header {
16+
background-color: #2c5530;
17+
color: white;
18+
padding: 20px;
19+
border-radius: 8px;
20+
margin-bottom: 20px;
21+
text-align: center;
22+
}
23+
.board-container {
24+
background-color: white;
25+
padding: 20px;
26+
border-radius: 8px;
27+
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
28+
margin-bottom: 20px;
29+
}
30+
.component-list {
31+
background-color: white;
32+
padding: 20px;
33+
border-radius: 8px;
34+
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
35+
}
36+
.component {
37+
display: flex;
38+
justify-content: space-between;
39+
align-items: center;
40+
padding: 10px;
41+
border-bottom: 1px solid #eee;
42+
cursor: pointer;
43+
transition: background-color 0.2s;
44+
}
45+
.component:hover {
46+
background-color: #f0f8f0;
47+
}
48+
.component.highlight {
49+
background-color: #e8f5e8;
50+
border-left: 4px solid #4CAF50;
51+
}
52+
.christmas-tree {
53+
width: 300px;
54+
height: 400px;
55+
margin: 0 auto;
56+
position: relative;
57+
background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 400"><polygon points="150,20 120,80 180,80" fill="%232d5016"/><polygon points="150,40 110,120 190,120" fill="%234a7c59"/><polygon points="150,70 100,160 200,160" fill="%232d5016"/><polygon points="150,100 90,200 210,200" fill="%234a7c59"/><rect x="140" y="200" width="20" height="40" fill="%23654321"/></svg>') no-repeat center;
58+
background-size: contain;
59+
}
60+
.led-marker {
61+
position: absolute;
62+
width: 8px;
63+
height: 8px;
64+
border-radius: 50%;
65+
background-color: #ffcc00;
66+
border: 2px solid #333;
67+
cursor: pointer;
68+
transition: all 0.2s;
69+
}
70+
.led-marker:hover {
71+
transform: scale(1.5);
72+
box-shadow: 0 0 10px rgba(255, 204, 0, 0.8);
73+
}
74+
.status {
75+
text-align: center;
76+
color: #666;
77+
font-style: italic;
78+
margin-top: 20px;
79+
}
80+
</style>
81+
</head>
82+
<body>
83+
<div class="header">
84+
<h1>🎄 BlinkyTree</h1>
85+
<p>Interactive Bill of Materials & Assembly Guide</p>
86+
</div>
87+
88+
<div class="board-container">
89+
<h2>PCB Layout & Component Placement</h2>
90+
<div class="christmas-tree" id="pcb-view">
91+
<!-- LED positions will be populated by JavaScript -->
92+
</div>
93+
<div class="status">
94+
<p><em>Interactive BOM is in development. This is a placeholder showing the basic layout.</em></p>
95+
<p>Click on components in the list below to highlight their positions on the PCB.</p>
96+
</div>
97+
</div>
98+
99+
<div class="component-list">
100+
<h2>Component List</h2>
101+
<div class="component" data-ref="IC1">
102+
<div>
103+
<strong>IC1</strong> - ATtiny85 Microcontroller
104+
<br><small>8-bit microcontroller in DIP-8 package (ATtiny85-20PU)</small>
105+
</div>
106+
<div>1x</div>
107+
</div>
108+
<div class="component" data-ref="C1">
109+
<div>
110+
<strong>C1</strong> - 100nF Ceramic Capacitor
111+
<br><small>Decoupling capacitor, marked "104"</small>
112+
</div>
113+
<div>1x</div>
114+
</div>
115+
<div class="component" data-ref="LED1-3">
116+
<div>
117+
<strong>LED1-LED3</strong> - 5mm Green LEDs (Upper Ring)
118+
<br><small>Upper Tree LEDs, observe polarity (long leg = +)</small>
119+
</div>
120+
<div>3x</div>
121+
</div>
122+
<div class="component" data-ref="LED4-7">
123+
<div>
124+
<strong>LED4-LED7</strong> - 5mm Green LEDs (Middle Ring)
125+
<br><small>Tree middle ring LEDs, observe polarity</small>
126+
</div>
127+
<div>4x</div>
128+
</div>
129+
<div class="component" data-ref="LED8-12">
130+
<div>
131+
<strong>LED8-LED12</strong> - 5mm Green LEDs (Lower Ring)
132+
<br><small>Tree lower ring LEDs, observe polarity</small>
133+
</div>
134+
<div>5x</div>
135+
</div>
136+
<div class="component" data-ref="LED13">
137+
<div>
138+
<strong>LED13</strong> - 5mm Yellow LED (Star)
139+
<br><small>Tree star LED, observe polarity</small>
140+
</div>
141+
<div>1x</div>
142+
</div>
143+
<div class="component" data-ref="MIC1">
144+
<div>
145+
<strong>MIC1</strong> - Electret Microphone
146+
<br><small>Blow detection sensor, small black component</small>
147+
</div>
148+
<div>1x</div>
149+
</div>
150+
<div class="component" data-ref="SW1">
151+
<div>
152+
<strong>SW1</strong> - Power Button Switch
153+
<br><small>Power switch Button</small>
154+
</div>
155+
<div>1x</div>
156+
</div>
157+
<div class="component" data-ref="BAT1">
158+
<div>
159+
<strong>BAT1</strong> - Battery Holder
160+
<br><small>CR2032 coin cell holder</small>
161+
</div>
162+
<div>1x</div>
163+
</div>
164+
</div>
165+
166+
<script>
167+
// Basic interactivity for component highlighting
168+
document.querySelectorAll('.component').forEach(component => {
169+
component.addEventListener('click', function() {
170+
// Remove previous highlights
171+
document.querySelectorAll('.component').forEach(c => c.classList.remove('highlight'));
172+
173+
// Highlight clicked component
174+
this.classList.add('highlight');
175+
176+
// In a real iBOM, this would highlight the component on the PCB
177+
console.log('Highlighting:', this.dataset.ref);
178+
});
179+
});
180+
181+
// Placeholder for future iBOM integration
182+
console.log('BlinkyTree Interactive BOM - Development Version');
183+
console.log('Full interactive features will be available when PCB design is complete.');
184+
</script>
185+
</body>
186+
</html>
35.3 MB
Binary file not shown.
35.3 MB
Binary file not shown.

BlinkyTree/manual/README.md

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# BlinkyTree Manual
2+
3+
This directory contains the documentation for the BlinkyTree Christmas tree LED soldering kit, using the Binary Kitchen soldering tutorial template system.
4+
5+
## Files Structure
6+
7+
```
8+
manual/
9+
├── BlinkyTree_en.tex # English manual source (uses template)
10+
├── BlinkyTree_de.tex # German manual source (uses template)
11+
├── BlinkyTree_en.pdf # English manual (generated)
12+
├── BlinkyTree_de.pdf # German manual (generated)
13+
├── Makefile # Simple build system
14+
├── README.md # This file
15+
├── configuration/ # CSV configuration files
16+
│ ├── en_config.csv # English project configuration
17+
│ ├── en_parts.csv # English parts list
18+
│ ├── en_steps.csv # English assembly steps
19+
│ ├── de_config.csv # German project configuration
20+
│ ├── de_parts.csv # German parts list
21+
│ └── de_steps.csv # German assembly steps
22+
├── images/ # Assembly photos and diagrams
23+
│ ├── README.md # Image requirements guide
24+
│ ├── thumbnail.jpg # Main project image [NEEDED]
25+
│ ├── step01_*.jpg # Assembly step photos [NEEDED]
26+
│ └── finished_*.jpg # Completed project photos [NEEDED]
27+
└── misc/ # Labels and additional materials
28+
├── BlinkyTree_label.pdf # Kit label [generated]
29+
└── BlinkyTree_boxlabel.pdf # Box label [generated]
30+
```
31+
32+
## Binary Kitchen Template System
33+
34+
This manual uses the standardized Binary Kitchen soldering tutorial template system, which:
35+
36+
- **Automatically generates** the complete manual from CSV configuration files
37+
- **Supports multiple languages** (English and German)
38+
- **Provides consistent formatting** across all Binary Kitchen tutorials
39+
- **Includes standard sections** like safety warnings, troubleshooting, etc.
40+
41+
### Configuration Files (CSV Format)
42+
43+
#### `*_config.csv`
44+
Project metadata and settings:
45+
- Title, difficulty level, build time
46+
- Version information and licensing
47+
- Safety warnings and general information
48+
49+
#### `*_parts.csv`
50+
Component list in tabular format:
51+
- Quantity, component name, description
52+
- Color codes and markings
53+
- Used for automatic parts list generation
54+
55+
#### `*_steps.csv`
56+
Step-by-step assembly instructions:
57+
- Image filename, instruction text
58+
- Detailed assembly procedures with tips
59+
- Used for automatic instruction generation
60+
61+
## Building the Manual
62+
63+
### Prerequisites
64+
- LuaLaTeX (part of modern TeX distributions)
65+
- Binary Kitchen template files in `../LaTeX_config/`
66+
67+
### Build Commands
68+
```bash
69+
# Build both language versions
70+
make
71+
72+
# Build individual versions
73+
make BlinkyTree_en.pdf
74+
make BlinkyTree_de.pdf
75+
76+
# Clean build artifacts
77+
make clean
78+
79+
# Clean everything including PDFs
80+
make distclean
81+
```
82+
83+
## Content Status
84+
85+
### Completed ✅
86+
- CSV configuration framework
87+
- English and German configurations
88+
- Basic LaTeX templates
89+
- Parts list definitions
90+
- Assembly step outlines
91+
92+
### In Progress 🔄
93+
- Assembly instruction refinement
94+
- Image requirements documentation
95+
96+
### Needed 📋
97+
- **Assembly photos** - Step-by-step photography
98+
- **Thumbnail image** - Main project photo for landing page
99+
- **Finished photos** - Completed project documentation
100+
- **Testing and validation** - Verify all instructions
101+
102+
## Template System Features
103+
104+
The Binary Kitchen template automatically provides:
105+
106+
### Standard Sections
107+
- **Title page** with project info and difficulty
108+
- **Safety warnings** and tool requirements
109+
- **Parts list** with component identification
110+
- **Assembly instructions** with step-by-step photos
111+
- **Testing procedures** and troubleshooting
112+
- **Common failures** reference section
113+
114+
### Multilingual Support
115+
- Automatic language selection based on filename
116+
- Shared configuration with language-specific text
117+
- Consistent formatting across languages
118+
119+
### Professional Output
120+
- Standard Binary Kitchen branding
121+
- Consistent typography and layout
122+
- Print-ready PDF generation
123+
- Web-friendly formatting
124+
125+
## Creating Content
126+
127+
### Writing Steps
128+
1. **Update CSV files** with your specific content
129+
2. **Take assembly photos** following the image guidelines
130+
3. **Build and review** the generated PDF
131+
4. **Iterate** until content is complete and accurate
132+
133+
### CSV Format Guidelines
134+
- Use **semicolons (;)** to separate instruction paragraphs
135+
- Use **commas in braces {,}** for literal commas in text
136+
- Reference parts with **\usePart{component}** macro
137+
- Include **safety warnings** and **tips** in instructions
138+
139+
## Dependencies
140+
141+
Requires the shared Binary Kitchen LaTeX configuration:
142+
- `../LaTeX_config/solderingTut.tex` - Main template
143+
- `../LaTeX_config/BK-solderingtut.sty` - Style definitions
144+
- Various support files for formatting and translations
145+
146+
Ensure the parent repository structure is intact when building.

0 commit comments

Comments
 (0)