You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: plan.txt
+74-26
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,51 @@
1
+
HARDWARE
2
+
========
3
+
1. Constructed basic board with IR send and receive capability.
4
+
2. Built separate IR send only board
5
+
3. Constructed I2C switch matrix for keypad prototype
6
+
4. Constructed adapter board to break out I2C GPIOs, power & ground to
7
+
allow 2 & 3 to be used together
8
+
5. Constructed load switching circuit to allow charging & operation simultaneously: breadboard, then soldered circuit
9
+
6. Constructed 555 timer based IR LED driver on breadboard: manually tested to tune frequency, tested with Pi GPIO and LIRCD to check real functionality.
10
+
11
+
Load switch testing
12
+
-------------------
13
+
1. Charge from arbitrary level to full.
14
+
- start time: 11:06
15
+
- observed full time:
16
+
- PSU: 5.2V, 1.5A
17
+
- observations:
18
+
- at 11:59, power supply went pop, made a burning smell and failed.
19
+
- switched to 5.25V, 2A PSU - charging continued from 12:00
20
+
- still not switched on 'charged' LED at 14:19
21
+
- stopped and shut down at this point
22
+
- battery checked via independent charging setup using PowerBoost (5V 1A supply)
23
+
- started 14:27
24
+
- charging LED observed off 14:50
25
+
- battery checked via independent charging setup using MicroLipo charger (5V 1A supply)
26
+
- started 15:41
27
+
- ...
28
+
- found black terminal wire disconnected, so tried again:
29
+
- started ~18:55
30
+
- observed charged 19:40
31
+
32
+
2. Charge from low to full.
33
+
- started PiMony running on full charge at 19:55
34
+
- still working fine at 23:49 (+4 hours)
35
+
- restarted next day at 09:55
36
+
- observed flat & off at 12:43
37
+
38
+
- started charge & power on 12:45
39
+
- would not boot Pi - turned out to be incorrect wiring of load sharing breadboard.
40
+
- corrected and powered up Pi,
41
+
switched load sharing back on 12:58
42
+
(Pi remained powered up, charge LED
43
+
lit)
44
+
- observed charged 22:08
45
+
46
+
SOFTWARE
47
+
========
48
+
1
49
Phase 1 - first working buttons
2
50
===============================
3
51
- Create demo set of touch buttons to control TV:
@@ -14,33 +62,8 @@ Results
14
62
- Done, but irsend spawn is too slow:
15
63
- multiple commands need separate spawns, which causes errors
16
64
- Touchscreen flickers and touches bounce, causing lots of repeats
17
-
- Jumped ahead to Phase 4 to try and resolve this...
18
-
19
-
Phase 2 - GPIO buttons
20
-
======================
21
-
Ideas:
22
-
* Use RPIO in Python to set up interrupts/polling on buttons
23
-
- modify startup to ensure Python RPIO module can be used without sudo
24
-
- create GPIO button class to associate GPIO pin and LIRC string
25
-
- on press 'edge' spawn irsend as above
26
-
* Use PikeyD
27
-
- Set up PikeyD to generate key presses from GPIO pin buttons
28
-
- Add Keyboard button class to associate keypress and LIRC string
29
-
- on keypress, spawn irsend as above
30
-
31
-
Phase 3 - Switch matrix
32
-
=======================
33
-
Ideas:
34
-
* Use SMBus in Python to poll I2C
35
-
- modify startup to ensure Python SMBus module can be used without sudo
36
-
- create SwitchMatrix button class to associate matrix code and LIRC string
37
-
- poll I2C to read matrix; on press 'edge' decode to LIRC string and spawn irsend as above
38
-
* Use PikeyD
39
-
- Modify PikeyD to poll, read and decode matrix via I2C, and generate keypress
40
-
- Add Keyboard button class to associate keypress and LIRC string
41
-
- on keypress, spawn irsend as above
42
65
43
-
Phase 4 - Direct LIRC connection
66
+
Phase 2 - Direct LIRC connection
44
67
================================
45
68
Replace spawn of irsend with direct LIRC communication via directly opening & using
46
69
socket in PyMony code.
@@ -69,6 +92,29 @@ Results:
69
92
- This doesn't bounce...
70
93
- Seems fairly responsive
71
94
- Doesn't repeat send; but could be added
95
+
96
+
Phase 3 - GPIO buttons
97
+
======================
98
+
Ideas:
99
+
* Use RPIO in Python to set up interrupts/polling on buttons
100
+
- modify startup to ensure Python RPIO module can be used without sudo
101
+
- create GPIO button class to associate GPIO pin and LIRC string
102
+
- on press 'edge' generate IR output
103
+
104
+
Results
105
+
- Added GPIO handling code to read buttons on TFT screen to trigger code sending - worked well.
106
+
- Still requires sudo to run.
107
+
108
+
Phase 4 - Switch matrix
109
+
=======================
110
+
Ideas:
111
+
* Use SMBus in Python to poll I2C
112
+
- modify startup to ensure Python SMBus module can be used without sudo
113
+
- create SwitchMatrix button class to associate matrix code and LIRC string
114
+
- poll I2C to read matrix; on press 'edge' decode to LIRC string and send IR code
115
+
116
+
Results
117
+
- Extended Python app to poll key matrix - worked well
0 commit comments