Skip to content

Commit 239f6f0

Browse files
author
dozencrows
committed
Plan update
1 parent 5b9bad9 commit 239f6f0

File tree

1 file changed

+74
-26
lines changed

1 file changed

+74
-26
lines changed

plan.txt

+74-26
Original file line numberDiff line numberDiff 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+
149
Phase 1 - first working buttons
250
===============================
351
- Create demo set of touch buttons to control TV:
@@ -14,33 +62,8 @@ Results
1462
- Done, but irsend spawn is too slow:
1563
- multiple commands need separate spawns, which causes errors
1664
- 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
4265

43-
Phase 4 - Direct LIRC connection
66+
Phase 2 - Direct LIRC connection
4467
================================
4568
Replace spawn of irsend with direct LIRC communication via directly opening & using
4669
socket in PyMony code.
@@ -69,6 +92,29 @@ Results:
6992
- This doesn't bounce...
7093
- Seems fairly responsive
7194
- 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
72118

73119
Phase 5 - Devices
74120
=================
@@ -109,3 +155,5 @@ Phase 8 - C/C++ Implementation
109155

110156
Phase 9 - Microcontroller Implementation
111157
========================================
158+
159+

0 commit comments

Comments
 (0)