content: Remove reference to non-existant src directories and update file hashes given script changes.
This commit is contained in:
parent
8d82112e28
commit
1311aa290b
76 changed files with 114 additions and 113 deletions
|
|
@ -27,13 +27,13 @@ I got so far as adding a sleek new brand name model to my Amazon cart, but thank
|
|||
Instead, I opted to swing by the local Goodwill the next day, to see what secondhand options might be available.
|
||||
As luck would have it, I found a no-frills, single button coffee maker for the princely sum of $4, and I was on my merry way.
|
||||
|
||||
[](media/src/20200610_204856.jpg)
|
||||

|
||||
|
||||
***
|
||||
|
||||
Later that evening, opening the black box up (thankfully I had the correct triangular screwdriver head), I found very easily hackable innards.
|
||||
|
||||
[](media/src/20200610_205351.jpg)
|
||||

|
||||
|
||||
The control board ([front](media/20200610_205847.webp), [back](media/20200610_205841.webp)) is very simple - two buttons in parallel, an LED, and a couple resistors.
|
||||
I'm not quite sure what the logic is upstream (it un/latches on each press), but the buttons short to ground, and this is something I can work with.
|
||||
|
|
@ -41,16 +41,16 @@ The control board has wires for ground, signal, and 5V, in that order.
|
|||
|
||||
The ordeal of hacking into the thing, and my missteps trying to do so, is rather boring really, but it produced this:
|
||||
|
||||
[](media/src/20200702_120309.jpg)
|
||||

|
||||
|
||||
[](media/src/20200702_120302.jpg)
|
||||

|
||||
|
||||
[](media/src/20200702_120328.jpg)
|
||||

|
||||
|
||||
The brains I added was a Wemos D1 Mini (thanks, Aliexpress!), with a 3.3V<->5V converter between to sense when the coffee maker is on, and also turn on a mosfet to short the button to ground.
|
||||
I initially had issues with the coffee maker turning on whenever I plugger the D1 Mini in, but a pulldown resistor solved this.
|
||||
|
||||
[](media/src/20200702_120334.jpg)
|
||||

|
||||
|
||||
I also opted for an external USB plug - this allows me to possibly reflash this without opening the enclosure, and also meant I did not need to splice into the mains line inside, which I was reluctant to do.
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
fcfa94e586a635d6a5d73537c520bf03
|
||||
68586dbaf760b52735d4ab7b5b38fe79
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
d4adab8b122ff1cff30a5cd345048367
|
||||
90bcfca3be76ae0ce5633f2fe11c3d15
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
23c9550263ea11ac7ab2da63ec0d8b15
|
||||
01fa2dce7513f27bfec08fe9f9344e9c
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
2c7084abab9ca05a441d677ec3fd1d59
|
||||
974d754a75bed707f919241ec69cbffb
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
38cf01772a38974a427b555eff3abfd1
|
||||
b9866dea89a681680d24256b050a0ffd
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
7ce7f0dcfc7db5e9514482ef945dbd37
|
||||
922cc6c8ac058d5b3154f8a2d78bf45d
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
8f39b2e158b5260cfc565173c6bae2ab
|
||||
c171eff5784389674445bc755b3d3bb9
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
421a11f42a70837cc5723281fb04682d
|
||||
cf76b997c8ae8e74131c1ebd865a8e1d
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
d82d23ff6a0c735ce6b2a97e12207cf0
|
||||
2f058d8ba64bbfe95f1fb43f98b7e4a9
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
53c5b1ff22f195fa815e9202d5c7c804
|
||||
da1b745f8bcc72e286d78448ced2f10d
|
||||
|
|
|
|||
|
|
@ -30,12 +30,12 @@ I am reluctant to tap into the CAN bus directly, so instead I am going to invest
|
|||
|
||||
# The Hardware
|
||||
|
||||
[](media/src/fob/opened.jpg)
|
||||

|
||||
|
||||
While I may analyze the original fob at some point, for the time being I shall work from the aftermarket fob.
|
||||
Opening the casing reveals a rather simple circuit ([front](media/fob/pcb_front.webp), [back](media/fob/pcb_back.webp)) - battery contacts, four buttons, a smattering of passives, an oscillator, the main control chip, 8 test points, and an antenna trace running around the perimeter of the PCB.
|
||||
|
||||
[](media/src/fob/closeup.jpg)
|
||||

|
||||
|
||||
Rather unhelpfully, the control IC is unmarked, so either I'll need to wait until I can look at the original fob to find any clues, or try to find what I need online.
|
||||
|
||||
|
|
@ -62,7 +62,7 @@ With this information in hand, I ordered a cheap RTL-SDR (a Nooelec NESDR Mini 2
|
|||
|
||||
# SDR Analysis
|
||||
|
||||
[](media/4_locks.webp)
|
||||

|
||||
|
||||
The radio, being a North American model, operates at 315MHz.
|
||||
Using Universal [Radio Hacker](https://github.com/jopohl/urh), I began capturing examples of locking and unlocking signals.
|
||||
|
|
@ -112,7 +112,7 @@ In any case, this extra trailing bit is always 0.
|
|||
|
||||
Finally we have something like this:
|
||||
|
||||
[](media/decoded.webp)
|
||||

|
||||
|
||||
The top four entries are when locking, the bottom four when unlocking.
|
||||
The highlighted segments from left to right, as per the technical document, are:
|
||||
|
|
@ -131,9 +131,9 @@ What we know now is that the keyfob does indeed use a rolling code algorithm, th
|
|||
|
||||
I do not have access to the original keyfob at this time, so some image searching may be in order.
|
||||
Several leads appeared, but the main one was this:
|
||||
<!-- [](media/src/research/alt_1.jpg) -->
|
||||
[](media/src/research/alt_2.jpg)
|
||||
<!-- [](media/src/research/alt_3.jpg) -->
|
||||
<!--  -->
|
||||

|
||||
<!--  -->
|
||||
|
||||
None of text appears especially legible, so the first thing I can do is compare the logo on the OEM fob to existing rolling code chip manufacturers.
|
||||
As it happens, Microchip is the company in question, producing the widely documented KeeLoq product line ([leaked spec sheet](http://keeloq.narod.ru/decryption.pdf)).
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
45780075c0373b5de461166eeae4f2d5
|
||||
4fea09660677f09e2bb6c272335c0293
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
d882707b0489e5dfe49d6c0b511dfac4
|
||||
7279df55f1825a07b628e5c18ecc584b
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
2c10e1f0b80580f2b2ba98a7786d61d0
|
||||
04cc3a49b4423799bc56b3a86e7309b4
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
d0d40010aa70ac331725b3ba0b40a9fa
|
||||
4ac3ff45a088ebdc25bd3c749dc9b659
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
38ea70fb8046f20af6c701be90183bae
|
||||
1e8840e2c8577c1adeefab1f5f45eeb1
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
15d568259ebd4d3b109f7a48e9fc3f75
|
||||
5f031230c411bf86ebc2aa72202d3db0
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
60b63f29468d759916b592856d84e244
|
||||
8ecbce738a3c738c5edc442e7110dced
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
0c5dab9c716b6d76382a75765ca35597
|
||||
852abd3b5b628f76874e5187df129d62
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
f715aae112e3cc887738f7cadcdfbd96
|
||||
b91827913709898883a9a109a821e884
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
952703b2c11f53810cb99271d55929ad
|
||||
b6ccb442be13d63918d34adabfd9daea
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.44.0 (20200408.0750)
|
||||
<!-- Generated by graphviz version 2.50.0 (0)
|
||||
-->
|
||||
<!-- Pages: 1 -->
|
||||
<svg width="1425pt" height="1258pt"
|
||||
|
|
@ -78,8 +78,8 @@
|
|||
</g>
|
||||
<g id="clust15" class="cluster">
|
||||
<title>cluster_time</title>
|
||||
<polygon fill="none" stroke="black" points="817.65,-332.52 817.65,-408.52 887.65,-408.52 887.65,-332.52 817.65,-332.52"/>
|
||||
<text text-anchor="middle" x="852.65" y="-393.32" font-family="Times,serif" font-size="14.00">time</text>
|
||||
<polygon fill="none" stroke="black" points="729.65,-332.52 729.65,-408.52 799.65,-408.52 799.65,-332.52 729.65,-332.52"/>
|
||||
<text text-anchor="middle" x="764.65" y="-393.32" font-family="Times,serif" font-size="14.00">time</text>
|
||||
</g>
|
||||
<g id="clust16" class="cluster">
|
||||
<title>cluster_lighting</title>
|
||||
|
|
@ -88,8 +88,8 @@
|
|||
</g>
|
||||
<g id="clust17" class="cluster">
|
||||
<title>cluster_settings_recipe</title>
|
||||
<polygon fill="none" stroke="black" points="729.65,-332.52 729.65,-408.52 799.65,-408.52 799.65,-332.52 729.65,-332.52"/>
|
||||
<text text-anchor="middle" x="764.65" y="-393.32" font-family="Times,serif" font-size="14.00">recipe</text>
|
||||
<polygon fill="none" stroke="black" points="817.65,-332.52 817.65,-408.52 887.65,-408.52 887.65,-332.52 817.65,-332.52"/>
|
||||
<text text-anchor="middle" x="852.65" y="-393.32" font-family="Times,serif" font-size="14.00">recipe</text>
|
||||
</g>
|
||||
<!-- Done -->
|
||||
<g id="node1" class="node">
|
||||
|
|
@ -310,8 +310,8 @@
|
|||
<!-- /api/recipe/schedule/add -->
|
||||
<g id="node22" class="node">
|
||||
<title>/api/recipe/schedule/add</title>
|
||||
<polygon fill="#caff70" stroke="black" points="458.29,-108.22 458.29,-144.22 512.29,-144.22 512.29,-108.22 458.29,-108.22"/>
|
||||
<text text-anchor="middle" x="485.29" y="-122.52" font-family="Times,serif" font-size="14.00">add</text>
|
||||
<polygon fill="#caff70" stroke="black" points="463.29,-43.22 463.29,-79.22 517.29,-79.22 517.29,-43.22 463.29,-43.22"/>
|
||||
<text text-anchor="middle" x="490.29" y="-57.52" font-family="Times,serif" font-size="14.00">add</text>
|
||||
</g>
|
||||
<!-- /api/recipe/schedule/delete -->
|
||||
<g id="node23" class="node">
|
||||
|
|
@ -322,32 +322,32 @@
|
|||
<!-- /api/recipe/schedule/list -->
|
||||
<g id="node24" class="node">
|
||||
<title>/api/recipe/schedule/list</title>
|
||||
<polygon fill="#caff70" stroke="black" points="463.29,-43.22 463.29,-79.22 517.29,-79.22 517.29,-43.22 463.29,-43.22"/>
|
||||
<text text-anchor="middle" x="490.29" y="-57.52" font-family="Times,serif" font-size="14.00">list</text>
|
||||
<polygon fill="#caff70" stroke="black" points="458.29,-108.22 458.29,-144.22 512.29,-144.22 512.29,-108.22 458.29,-108.22"/>
|
||||
<text text-anchor="middle" x="485.29" y="-122.52" font-family="Times,serif" font-size="14.00">list</text>
|
||||
</g>
|
||||
<!-- /api/settings/time/set -->
|
||||
<g id="node25" class="node">
|
||||
<title>/api/settings/time/set</title>
|
||||
<polygon fill="#caff70" stroke="black" points="825.89,-341.16 825.89,-377.16 879.89,-377.16 879.89,-341.16 825.89,-341.16"/>
|
||||
<text text-anchor="middle" x="852.89" y="-355.46" font-family="Times,serif" font-size="14.00">set</text>
|
||||
<polygon fill="#caff70" stroke="black" points="737.89,-341.16 737.89,-377.16 791.89,-377.16 791.89,-341.16 737.89,-341.16"/>
|
||||
<text text-anchor="middle" x="764.89" y="-355.46" font-family="Times,serif" font-size="14.00">set</text>
|
||||
</g>
|
||||
<!-- /api/settings/lighting/list -->
|
||||
<g id="node26" class="node">
|
||||
<title>/api/settings/lighting/list</title>
|
||||
<polygon fill="#caff70" stroke="black" points="742.89,-248.16 742.89,-284.16 796.89,-284.16 796.89,-248.16 742.89,-248.16"/>
|
||||
<text text-anchor="middle" x="769.89" y="-262.46" font-family="Times,serif" font-size="14.00">list</text>
|
||||
<polygon fill="#caff70" stroke="black" points="682.89,-198.16 682.89,-234.16 736.89,-234.16 736.89,-198.16 682.89,-198.16"/>
|
||||
<text text-anchor="middle" x="709.89" y="-212.46" font-family="Times,serif" font-size="14.00">list</text>
|
||||
</g>
|
||||
<!-- /api/settings/lighting/set -->
|
||||
<g id="node27" class="node">
|
||||
<title>/api/settings/lighting/set</title>
|
||||
<polygon fill="#caff70" stroke="black" points="682.89,-198.16 682.89,-234.16 736.89,-234.16 736.89,-198.16 682.89,-198.16"/>
|
||||
<text text-anchor="middle" x="709.89" y="-212.46" font-family="Times,serif" font-size="14.00">set</text>
|
||||
<polygon fill="#caff70" stroke="black" points="742.89,-248.16 742.89,-284.16 796.89,-284.16 796.89,-248.16 742.89,-248.16"/>
|
||||
<text text-anchor="middle" x="769.89" y="-262.46" font-family="Times,serif" font-size="14.00">set</text>
|
||||
</g>
|
||||
<!-- /api/settings/recipe/set -->
|
||||
<g id="node28" class="node">
|
||||
<title>/api/settings/recipe/set</title>
|
||||
<polygon fill="#caff70" stroke="black" points="737.89,-341.16 737.89,-377.16 791.89,-377.16 791.89,-341.16 737.89,-341.16"/>
|
||||
<text text-anchor="middle" x="764.89" y="-355.46" font-family="Times,serif" font-size="14.00">set</text>
|
||||
<polygon fill="#caff70" stroke="black" points="825.89,-341.16 825.89,-377.16 879.89,-377.16 879.89,-341.16 825.89,-341.16"/>
|
||||
<text text-anchor="middle" x="852.89" y="-355.46" font-family="Times,serif" font-size="14.00">set</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
|
@ -0,0 +1 @@
|
|||
PROCESS_SCRIPT=true
|
||||
|
|
@ -1 +1 @@
|
|||
ff1bcdfb55cd7e0fb267a49d6626185e
|
||||
d753e95224d0e937381407b1ba052de1
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
350414652e48b1502c92d53cae3f8a8a
|
||||
6495309467eb7da66e280392dd579edd
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3ffd8f056e06cb258bfc412cda49c453
|
||||
d13befb6b1c5adfc884c0678817b2eaa
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
73535fefabedc24d7a9628a9832edc84
|
||||
6d87c72df63ff74d137f3412bfcd3235
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
d971cb31c8c70b313ef7777c2e18f180
|
||||
8dfbea332c798b9691a8649669b57edd
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
c01a86e33e628effde4cb073b2d4e788
|
||||
ea72093aba7336505789a32e503316bc
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
586e44b3168e8350d97d49a524187ee1
|
||||
d97c2dacebeea0b90596bd8c318be7aa
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
871f28fb15205ad180e9050e8d56feb1
|
||||
0016c28348f47dcdf0e40609feff7713
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
9f353e96551de67df144c31d8fae0edf
|
||||
59c49d25c711801bbcbf0ddc099c9cf9
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
29f2466883105eb032f60bb9fdfbf077
|
||||
67c110b947a4b1dc78357d8d22eb2e73
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
9ec9803782dbd1372555907b9e596198
|
||||
db70af13ba792891677b01a7d5697605
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
a617dc66c55fe5979218f3fe7df43599
|
||||
849078500d644f68cb5960a3f1494c07
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
944f12a1110fa607994bb5b84e64dbbd
|
||||
724ba2f77f04fd5e607058fabfb9e63c
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ed3ce82d285ceb1c021ff0d6f01ada81
|
||||
1b980e5b1bb8b6042334841b8c8ed6ab
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
b14f3d74503c5d8cfc0aca1963b6679a
|
||||
122cc19a1af7dc8c715a041b717a3d74
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
cb6d7de7c7aa989fdb79e79a7726b6d1
|
||||
8168332c0c0996e6e2459806e0f1e696
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3861a4408816fe9a3aded7b9109b73ea
|
||||
2a488a878ebfea7b4c0178cb574a9427
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
b6d58e2fda8e5bd9fd64c3b3b00f8c0b
|
||||
c80a9b1a66c8957b486b83e08035232f
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
531d47870063080be0cd1e5a049f95d7
|
||||
953d6bc8b2309cc6ac56762829f19d6b
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
8453a2abca158bbeb71ffd0d29f736e8
|
||||
959085c0978c4a7e3c73259f85165ede
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ And so it was that we began brainstorming.
|
|||
|
||||
***
|
||||
|
||||
[](media/src/20190919_143530.jpg)
|
||||

|
||||
|
||||
The idea was fairly simple - use two smooth rods and a leadscrew to pull a carriage against springs that would then somehow fire the fishing weight.
|
||||
The choice of this mechanism was, for the most part, due to availability of parts.
|
||||
|
|
@ -46,7 +46,7 @@ I already owned the necessary rods and bearings, and springs were readily availa
|
|||
|
||||
***
|
||||
|
||||
[](media/src/20190919_224711.jpg)
|
||||

|
||||
|
||||
Soon, we had [some](media/20190919_213947.webp) basic 3D printed parts in order - for it was 3D printing that was most accessible to us, and allowed largely unattended manufacturing while classes continued.
|
||||
Despite this early start of progress, however, the ever present tendency toward procrastination crept in.
|
||||
|
|
@ -61,7 +61,7 @@ Nor was it realistic for us to budget a baitcasting reel instead of a much cheap
|
|||
|
||||
***
|
||||
|
||||
[](media/src/20191010_152148.jpg)
|
||||

|
||||
|
||||
Eventually, however, some progress was made - progress in something of a wrong direction, but progress nonetheless.
|
||||
As the shape of our ungainly creation began to emerge, it was clear progress needed to be made quickly.
|
||||
|
|
@ -72,7 +72,7 @@ A H-Bridge would need to be bought for the drill motor (I [tried to](media/20191
|
|||
|
||||
***
|
||||
|
||||
[](media/src/20191110_014623.jpg)
|
||||

|
||||
|
||||
The next week or so resulted in the beginnings of a working launch mechanism.
|
||||
With the aid of a rubber band, a latching track was put under the rods and springs, such that the motor would tension the launching carriage, then return to the front of the mechanism to allow the eventual release of the catch using a servo.
|
||||
|
|
@ -89,7 +89,7 @@ The end was near, or so it seemed.
|
|||
|
||||
***
|
||||
|
||||
[](media/src/20191115_090125.jpg)
|
||||

|
||||
|
||||
Following soon after was the reel being mounted to the device also.
|
||||
Attempts were made to use a small DC motor, but with no luck.
|
||||
|
|
@ -100,7 +100,7 @@ Remaining at this point was a means of reeling in the line, a means of depressin
|
|||
|
||||
***
|
||||
|
||||
[](media/src/20191118_032416.jpg)
|
||||

|
||||
|
||||
As it turned out, the very same stepper motor that had once tried to turn our leadscrew now instead would be pressed into service reeling in the line.
|
||||
Overkill, to be sure, and it's power most wastefully used, it did indeed reliably turn our reel, albeit slowly.
|
||||
|
|
@ -110,7 +110,7 @@ This saved the most time 3D printed as compared to a smaller pulley with other p
|
|||
|
||||
***
|
||||
|
||||
[](media/src/20191120_224129.jpg)
|
||||

|
||||
|
||||
Finally, the mechanics of the project were completed, with each component individually power tested, though not yet in tandem with one another.
|
||||
As all of this was coming about, I had also begun getting the electronics in order.
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
54befd65f41a7fd92d43f889b9a3f520
|
||||
9778abf15511811c43b452e39941b9c4
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
df53fdcaf52ec5994ab8c62d314522a0
|
||||
e42cb1fdf806f2d73d970fa13c2b941a
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
800fb245064b782152b92f1f4dc8a586
|
||||
68f61cbb57be06bc5eaa3db0952611ad
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
86aeb5d4584841dd6a70bd521e757aa5
|
||||
f848b7c7b9048a34178f986173c0526c
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
cc91737528ce2c1719c3137ad0075d4a
|
||||
f2f81e8ba9d6c00e79b11542ada5e44d
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ac7d2d4fe7c4d885f7d8e961e7493d12
|
||||
d99c6766c1971b59be51e1f00510fc5a
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
c0bb73969bf6c516470a747c81ad5e82
|
||||
b7263d1732aa26aa49468c31206df2f0
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
a86a4eab229cbca413e5c88a0d2241e9
|
||||
79f027047f516863d9763fc90548debd
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
8f3dbfb631f0040a6e9ed6b903565cca
|
||||
eefe5e3578e1c026a4bb008c6e88266d
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ec034c9710a992dd302954407a09488d
|
||||
6856a0dfa0a410619e36bae006ccd528
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
966170548dad660f4e20e17fbebe767a
|
||||
1d4f8d726d309cd1ba53aca7032249d8
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
37f54ea2306e36804bfb16bbc482b466
|
||||
1074d07eb0e51a84f43564ca900e7867
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
42b0cb75905a00724d62891683cbf61b
|
||||
696ff7b758842b732f490ce518efa57c
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ But in the back of my head I still wanted to build some hardware to help with th
|
|||
|
||||
***
|
||||
|
||||
[](media/src/handwired/20190811_004928.jpg)
|
||||

|
||||
|
||||
This eventually came about in the summer of 2019, when I finally hand-wired a simple 8 knob control surface.
|
||||
Truth be told, I actually built two.
|
||||
|
|
@ -41,16 +41,16 @@ This would come to change, however, in April of 2020.
|
|||
|
||||
***
|
||||
|
||||
[](media/src/v1/20200506_152328.jpg)
|
||||

|
||||
|
||||
[](media/src/v1/20200506_152317.jpg)
|
||||

|
||||
|
||||
Fast forward close to a year, and here we are - toilet paper is the currency of the quickly collapsing Covid19 crazed world, and I'm back with my grandparents for the remainder of my semester (which, as of writing, is all but concluded).
|
||||
Finding my lack of a social life leaving me with a little bit more free time, and being home yielding a *lot* more distractions, I learned the basics of KiCAD from YouTube, and set out to design a simple PCB.
|
||||
My old MIDI controller project came to mind, so I set myself to it, and within a few days had my first Gerber files sent off to JLCPCB.
|
||||
In reality, I should have waited a bit and done a couple more design iterations before committing, but I guess $7 is the price of impatience.
|
||||
|
||||
[](media/src/v1/20200506_151852.jpg)
|
||||

|
||||
|
||||
So it was that my crisp PCBs showed up 3 weeks later - I had one assembled within the hour, and my old code dusted off and flashed within two hours.
|
||||
It's really as simple as it gets - a [Pro Micro](media/v1/20200506_152023.webp) hooked up to a [4051 analogue multiplexer](media/v1/20200506_152016.webp), in turn hooked up to 8 potentiometers.
|
||||
|
|
@ -62,7 +62,7 @@ Should the correct potentiometers be used, these would not be needed, though som
|
|||
|
||||
***
|
||||
|
||||
[](media/src/v1/20200506_152248.jpg)
|
||||

|
||||
|
||||
This being my first PCB design, I am quite happy it worked out so well - I am studying for Mechanical Engineering, not Electrical...
|
||||
However, I see room for improvement.
|
||||
|
|
@ -71,4 +71,4 @@ The knobs barely clear the Arduino, and the Arduino is mounted far higher off th
|
|||
I see myself making a v2 in due course - perhaps next time I will try JLCPCB's SMT assembly?
|
||||
I imagine adding indicator LEDs, improving the layout, and adding a button to switch between banks would make this much more useful.
|
||||
|
||||
[](media/src/v1/20200506_151947.jpg)
|
||||

|
||||
|
|
@ -1 +1 @@
|
|||
7bf97aa38817bc82a8fdf8ee3a4ae85e
|
||||
58ff2548d707a90de93441735e0da24d
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ae1063af1892e4ab8380b04982ebc64f
|
||||
92a03e2df85266ed8b9ea4561901d39b
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
c2e3f41f1e54575d5299a8f22f9852a6
|
||||
22459c4c3bc7ae48379739f5427386f9
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ed2d06b8ee123252956e23001155c26f
|
||||
67d3ca27f084121da354df7355b4405d
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
0dec644a8df022b5543d85b828aa585c
|
||||
2faf19b931faf86ccb3aff682f4a92df
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
80d5ba48859ecc9f6342213fbb2c13ac
|
||||
57fa5ec3bd8cffac029d2dc6489369bb
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
f9c477fb4af062b6cb7d8c73d5eaef26
|
||||
e85032653c1570c5721741c63d186a97
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
902fe9e5e4da1dd825b8208b3f4e62e1
|
||||
d8e7afdd0ad3a2845d18cde7334a0094
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
213b3b1d4abc6cf8faef76e3254db4a5
|
||||
657582827a5638f23db4223ac3a731aa
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
d747a36b80905e7228b8693cfb98b9c1
|
||||
85e71888438393751b2621f529cfab0b
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
23c52cb5b7b769b20f15558c9e694084
|
||||
7c6756e5e51b9833d63c3375e09215ea
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
6f31ea9e0c5498fe11648bd793d9547f
|
||||
a52100044aceed92d0564e23d222534f
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
2516868ca90874c7c7104d664bba4e0f
|
||||
0a4f2297e2b3360ecc709f46fd11d685
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
cf6c283e078f02f8a08fb6e4d16cf872
|
||||
d8743e18233837dfbb80a440fa3129fc
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
fdee6a5f5a5beffa52aebe2b72f79caf
|
||||
74aa4a11b1595b73e7f5cf5a474600c6
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
5f5236350d2791553e2311c4c7645337
|
||||
ac461dc051be1674775000a46ccd5dc9
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
f873c0afcd44511ad3d5bb9b3c89a0c6
|
||||
6b04af5171a9343f964cbdf02991018c
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue