tidying the notes and imgs

This commit is contained in:
Tim Caldwell
2018-05-04 20:13:22 +12:00
parent d6cf8d854b
commit c7a203a8d2
28 changed files with 4394 additions and 272 deletions

View File

@@ -44,7 +44,7 @@ langolierz@gmail.com
all feedback is apreciated. if you want to donate to this project you can do so with the above email via paypal : everything i receive will go into making __r_e_c_u_r__ better.
[vectorfront]: ./documentation/vectorfront.png
[vectorfront]: ./documentation/vectorfront_keys.png
[board]: https://trello.com/b/mmJJFyrp/feature-ideas
[operating]: documentation/operate_docs.md
[building]: documentation/build_docs.md

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -1,12 +1,14 @@
# how to build r_e_c_u_r
# how to build a r_e_c_u_r - diy enclosure
disclaimer - this is a cheap and diy approach to getting a r_e_c_u_r video sampler in your hands. if you like the device and think its worth some $$ for more professional hardware (mechanical keys, aluminum panels etc) hmu, i can add you the `boutique enclosure` wishlist.
## get some parts
these are the parts you need to get. to reduce costs i sourced them through aliexpress.com but if you have other parts lying around try them out and let me know how it goes.
these are the parts you need to get. to reduce shipping costs to nz i sourced them through aliexpress.com but you could equally get them from ebay or elsewhere.
### main parts:
- [raspberry pi3] *37 USD* (watch this space for experiments with other models/sbc's)
- [raspberry pi3] *37 USD*
- [raspberry pi screen] *12 USD*
@@ -16,39 +18,37 @@ these are the parts you need to get. to reduce costs i sourced them through alie
other bits and pieces:
- 4x m2 and 7x m3 screws - a few dollars (exact lengths/links etc coming soon)
- 4x m2 and 6x m3 screws, 6mm is long enough - i ended up using 4 2-gauge and 6 4-gauge self tapping screws instead which were easier to get into the plastic case.
- 8 gig or greater mircoSD card
- 4 gb or greater mircoSD card
- stable 5volt1A microUsb power supply
- a usb for samples
- hdmi cable for output...
- a stable 5volt, 1A microUsb power supply
## print some things
- 3d print the front panel, back panel and spaces from these files
- i 3d printed my enclosure using these files for the top and bottom. if you dont have access to a printer you can upload these files to a popular printing service in you region (eg ...)
- 2d print these [key stickers] (or modify/create your own!) onto vinyl, label paper or normal paper with double sided tape...
- 2d print these [key stickers] if you want to use the default key mapping, or modify the svg file (in inkscape or something) to create your own. you could print them onto vinyl, label paper or just normal paper and attach with with double sided tape...
## put it together
- using [etcher] (or otherwise) flash the micro sd with this modified image of raspberian (or follow these [dotfile] instructions)
- using [etcher] (or otherwise) flash the micro sd with my modified image of rasbian (or follow these [instructions to install] from scratch.)
- insert sd card into pi
- attach screen via the pi header pins and use screen spacers (with a little bluetac) to fasten it in
- attach the lcd screen via the pi header pins so it fits exactly ontop of the pi. (some little spacers could be used to support the top corners of the screen)
- use the small screws to attach pi+screen to the back panel
- use the 4 small screws to attach pi+screen to the bottom piece of enclosure
- attach keypad to the back panel and fasten in with a extra screw if necessary
- fasten the keypad to the bottom; i used some double sided tap along raised strips
- put large screws through back panel facing up and use spacers
- use the 6 large screws to hold the top panel to the bottom
- attach top panel and hold with nuts
you are done ! wasnt that easy ?
## try it owt
## try it out !
( [operate docs] )
[raspberry pi3]:https://www.aliexpress.com/item/RS-Version-2016-New-Raspberry-Pi-3-Model-B-Board-1GB-LPDDR2-BCM2837-Quad-Core-Ras/32789942633.html?spm=a2g0s.9042311.0.0.FkRWty
[main parts]: build_all.jpg
@@ -56,4 +56,5 @@ other bits and pieces:
[usb keypad]:https://www.aliexpress.com/item/2-4G-Wireless-Keyboard-USB-Numeric-Keypad-19-Keys-Mini-Digital-Keyboard-Ultra-Slim-Number-Pad/32818206308.html?spm=a2g0s.9042311.0.0.FkRWty
[key stickers]: https://docs.google.com/document/d/1vhXv5QTfyUqsZuMdQu1lh2dMfEk5HMNVyp8uhrc-I2w/edit?usp=sharing
[etcher]: https://etcher.io
[dotfile]: ../dotfiles/README.md
[operate docs]: ./operate_docs.md
[instructions to install]: ../dotfiles/README.md

View File

@@ -1,6 +1,6 @@
# how to develop r_e_c_u_r
i have tried to write this application so it can easily be read and modified for different use cases. i recomend forking the repo to experiment with the codebase. open a pull request into origin <your_branch> if you want to contribe your changes back into the project.
i have tried to write this application so it can easily be read and modified for different use cases. i recommend forking the repo to experiment with the codebase. open a pull request into origin <your_branch> if you want to contribute your changes back into the project.
this [diagram] might help understand the design :
@@ -10,35 +10,30 @@ here are some examples of changes you might want to make:
## rearranging the _keypad_ controls
to simpify the key-mapping process, i have premapped the numpad keys to the _labels_ `a` to `s` like this:
to simplify the key-mapping process, i have pre-mapped the numpad keys to the _labels_ `a` to `s` like this:
![premapped_keys][premapped_keys]
(see [dotfiles] for description of this process)
for each _label_ the application will read the [keypad_action_mapping.json] file and map it to an [action]. currently the format also allows unique actions per _display_mode_ and per the `2ND FUNC` toggle :
for each _label_ the application will read the [keypad_action_mapping.json] file and map it to an [action]. the format also allows unique actions per _control_mode_ and per the `FUNCTION` toggle :
```
...
"x": {
"BROWSER": ["trigger_this_action_in_display_mode"],
"NAV_BROWSER": ["trigger_this_action_in_browser_mode"],
"DEFAULT": ["trigger_this_action_in_any_other_mode_with_FN_off","trigger_this_action_in_any_other_mode_with_FN_on"],
}
```
## adding a new screen resolution option to the _settings_ menu
## creating a new action
## adding a new `user input` device
## beyond
i hope the foundations iv provided encourage you to make larger changes for more ambitious features. if so you could try getting in touch (langolierz@gmail.com) first and maybe i could help align your approach with the rest of the project
[diagram]: https://docs.google.com/drawings/d/1ltWCv82rKVzOiFe6GaDDPlneG2oki0yRujArPU5V2ss/edit?usp=sharing
[design_overview]: design_overview.jpg
[premapped_keys]:
[premapped_keys]: vectorfront_blank_keys.png
[dotfiles]: ../dotfiles
[keypad_action_mapping.json]: ../data_centre/json_objects/keypad_action_mapping.json
[action]: ../actions.py

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 74 KiB

View File

@@ -0,0 +1,14 @@
### serial midi from rpi gpio pin
i believe it is possible to read midi in from an i/o pin (that can read serial) which might be desirable in some cases but this is a good start for now. this [instructable] explains how to input/output midi with the gpios, it looks like the tx/rx (serial?) pins on the pi3 are currently used/covered by the gpio screen that i am using. if i was serious about external circuits interfacing with pi/recur, i might look into using an lcd screen that doesnt use up the gpios. (would also be worth checking if piCapture would work with the gpio screen i have...)
### gpio pins :
the [adafruit tft display] mentioned above also uses the gpios to connect to the pi - in particular it uses 5 spi pins and two standard pin outs. by cross refferencing the [raspi gpio] docs it does not use either of the rx serial pin , which would be needed if i were to receive midi directly (rather than through usb), it also leaves plenty of pins for receiving cv from a [mcp3008] through software spi for example. it is likely that my gpio lcd screen comunicates with the pi in a similar way and that i could figure out a way to connect these extentions if desired.
[instructable]: http://www.instructables.com/id/PiMiDi-A-Raspberry-Pi-Midi-Box-or-How-I-Learned-to/
[adafruit tft display]: https://www.adafruit.com/product/2441
[raspi gpio]: https://www.raspberrypi.org/documentation/usage/gpio/
[mcp3008]: https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters/mcp3008

View File

@@ -50,9 +50,7 @@ $ MP4Box -add input.h264 output.mp4
the [faq] also addresses the 'can i preview to the lcd screen' question : looks like no - atleast not without copying the exact framebuffer , similar to my experiments displaying omx on the lcd screen. (this still might be possible in the world of openCv but off the table for now! - or maybe not even then - this [adafruit] tutorial talks about the limitations of displaying on a tft screen - "accelerated software will never appear on the PiTFT (it is unaccelerated framebuffer only)" )
### an unrelated aside :
the [adafruit tft display] mentioned above also uses the gpios to connect to the pi - in particular it uses 5 spi pins and two standard pin outs. by cross refferencing the [raspi gpio] docs it does not use either of the rx serial pin , which would be needed if i were to receive midi directly (rather than through usb), it also leaves plenty of pins for receiving cv from a [mcp3008] through software spi for example. it is likely that my gpio lcd screen comunicates with the pi in a similar way and that i could figure out a way to connect these extentions if desired.
### research continued : piCapture
@@ -95,8 +93,6 @@ also displaying info when camera is not attached and catching other types of err
[picamera]: http://picamera.readthedocs.io/en/release-1.0/api.html
[faq]: https://picamera.readthedocs.io/en/release-1.13/faq.html
[adafruit]: https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi/easy-install-2
[adafruit tft display]: https://www.adafruit.com/product/2441
[raspi gpio]: https://www.raspberrypi.org/documentation/usage/gpio/
[mcp3008]: https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters/mcp3008
[cheep cameras]: https://www.aliexpress.com/item/5MP-Camera-Module-Flex-Cable-Webcam-Video-1080-720p-For-Raspberry-Pi-2-3-Model-B/32860830711.html
[picapture]: https://lintestsystems.com/products/picapture-sd1

View File

@@ -18,18 +18,7 @@
sodipodi:docname="keystickers.svg"
enable-background="new">
<defs
id="defs2">
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter5528">
<feBlend
inkscape:collect="always"
mode="screen"
in2="BackgroundImage"
id="feBlend5530" />
</filter>
</defs>
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
@@ -97,15 +86,15 @@
id="text5462"
y="13.338742"
x="19.363272"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
xml:space="preserve"><tspan
style="fill:#000000;stroke-width:0.2;"
style="fill:#000000;stroke-width:0.2"
id="tspan5460"
y="13.338742"
x="19.363272"
sodipodi:role="line"><tspan
id="tspan5458"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
y="13.338742"
x="19.363272">CLR BNK</tspan></tspan></text>
<path
@@ -147,7 +136,7 @@
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
x="19.363272"
y="13.338742"
id="text5453"
@@ -157,10 +146,10 @@
x="19.363272"
y="13.338742"
id="tspan5451"
style="fill:#000000;stroke-width:0.2;"><tspan
style="fill:#000000;stroke-width:0.2"><tspan
x="19.363272"
y="13.338742"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
id="tspan5449">CLR BNK</tspan></tspan></text>
</g>
<g
@@ -180,15 +169,15 @@
id="text5423"
y="13.338742"
x="19.363272"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
xml:space="preserve"><tspan
style="fill:#000000;stroke-width:0.2;"
style="fill:#000000;stroke-width:0.2"
id="tspan5421"
y="13.338742"
x="19.363272"
sodipodi:role="line"><tspan
id="tspan5419"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
y="13.338742"
x="19.363272">CLR BNK</tspan></tspan></text>
<text
@@ -225,7 +214,7 @@
id="rect10-9-4" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
x="19.363272"
y="13.338742"
id="text5373"
@@ -235,10 +224,10 @@
x="19.363272"
y="13.338742"
id="tspan5371"
style="fill:#000000;stroke-width:0.2;"><tspan
style="fill:#000000;stroke-width:0.2"><tspan
x="19.363272"
y="13.338742"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
id="tspan5369">CLR BNK</tspan></tspan></text>
<text
xml:space="preserve"
@@ -344,7 +333,7 @@
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
x="19.363272"
y="13.338742"
id="text5562"
@@ -354,10 +343,10 @@
x="19.363272"
y="13.338742"
id="tspan5560"
style="fill:#000000;stroke-width:0.2;"><tspan
style="fill:#000000;stroke-width:0.2"><tspan
x="19.363272"
y="13.338742"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
id="tspan5558">CLR BNK</tspan></tspan></text>
</g>
<g
@@ -396,15 +385,15 @@
id="text5553"
y="13.338743"
x="19.484882"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
xml:space="preserve"><tspan
style="stroke-width:0.2;fill:#000000;"
style="fill:#000000;stroke-width:0.2"
id="tspan5551"
y="13.338743"
x="19.484882"
sodipodi:role="line"><tspan
id="tspan5549"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
y="13.338743"
x="19.484882">CLR BNK</tspan></tspan></text>
</g>
@@ -579,9 +568,9 @@
id="tspan1081">FN</tspan></tspan></text>
</g>
<g
style="display:inline"
transform="translate(38.383333,22.37619)"
id="g4563-4-4"
style="filter:url(#filter5528)"
id="g4563-7-11"
inkscape:label="h">
<rect
style="stroke-width:0.26458332"
@@ -589,7 +578,12 @@
x="16.706545"
height="10"
width="13.5"
id="rect10-9-8" />
id="rect10-4-0" />
<path
inkscape:connector-curvature="0"
id="path3725-6-7"
d="M 18.427709,11.82312 H 28.485381"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.5033133px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.3284356"
@@ -606,28 +600,23 @@
y="8.9443064"
style="font-weight:bold;font-size:3.5033133px;fill:#ff00ff;stroke-width:0.3284356"
id="tspan1039">DSPLY</tspan></tspan></text>
<path
inkscape:connector-curvature="0"
id="path3725-8-3"
d="M 18.427709,11.82312 H 28.485381"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
inkscape:label="text5373"
transform="scale(0.93646137,1.0678497)"
id="text5507"
id="text5571-1"
y="13.338742"
x="19.363272"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
xml:space="preserve"><tspan
style="fill:#000000;stroke-width:0.2;"
style="fill:#000000;stroke-width:0.2"
id="tspan5569-6"
y="13.338742"
x="19.363272"
sodipodi:role="line"
id="tspan5541">func<tspan
id="tspan5503"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
y="13.338742"
x="19.363272" /></tspan></text>
sodipodi:role="line"><tspan
id="tspan5567-5"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
y="13.338742"
x="19.363272">CLR BNK</tspan></tspan></text>
</g>
<g
transform="translate(24.883333,22.37619)"
@@ -646,22 +635,22 @@
d="M 18.427709,11.82312 H 28.485381"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
x="19.363272"
y="13.338742"
id="text5536"
inkscape:label="text5373"
transform="scale(0.93646137,1.0678497)"
inkscape:label="text5373"><tspan
sodipodi:role="line"
x="19.363272"
id="text5571"
y="13.338742"
x="19.363272"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
xml:space="preserve"><tspan
style="fill:#000000;stroke-width:0.2"
id="tspan5569"
y="13.338742"
id="tspan5534"
style="fill:#000000;stroke-width:0.2;"><tspan
x="19.363272"
x="19.363272"
sodipodi:role="line"><tspan
id="tspan5567"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
y="13.338742"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
id="tspan5532">CLR BNK</tspan></tspan></text>
x="19.363272">CLR BNK</tspan></tspan></text>
</g>
<g
transform="translate(11.383333,22.37619)"
@@ -761,7 +750,7 @@
</g>
<g
id="g5192"
transform="translate(-6.3500003)"
transform="translate(-6.3500063)"
inkscape:label="d">
<rect
style="stroke-width:0.26458332"
@@ -792,15 +781,15 @@
id="text5498"
y="24.856813"
x="74.939934"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
xml:space="preserve"><tspan
style="fill:#000000;stroke-width:0.2;"
style="fill:#000000;stroke-width:0.2"
id="tspan5496"
y="24.856813"
x="74.939934"
sodipodi:role="line"><tspan
id="tspan5494"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
y="24.856813"
x="74.939934">CLR BNK</tspan></tspan></text>
<path
@@ -842,7 +831,7 @@
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.43036103px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New';letter-spacing:0.10847916px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
x="19.363272"
y="13.338742"
id="text5489"
@@ -852,10 +841,10 @@
x="19.363272"
y="13.338742"
id="tspan5487"
style="fill:#000000;stroke-width:0.2;"><tspan
style="fill:#000000;stroke-width:0.2"><tspan
x="19.363272"
y="13.338742"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;"
style="font-weight:normal;letter-spacing:0.10847916px;fill:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
id="tspan5485">CLR BNK</tspan></tspan></text>
</g>
<g

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 44 KiB

BIN
documentation/splash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 966 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 96 KiB

View File

@@ -1,16 +1,98 @@
# setting up default keyboard layout (optional)
sudo raspi-config => localiation options => change keyboard layout => generic 104 => english us => english us => the default for => no compose => no then sudo reboot
# documenting the exact steps to creating the r_e_c_u_r raspbian image
# Installing packages needed
## initial set up ; flashing fresh sd, keyboard , wifi , updates etcs
- sudo apt-get install git
- git clone https://github.com/langolierz/r_e_c_u_r.git
- (omx-python-wrapper)
- sudo apt-get install gedit (optional for editing)
- downloaded the latest (~~2017-11-29~~ 2018-04-18) raspbian-raspbian-lite image from offical site.
- flashed it to my sd using etcher
- set up auto console login and changed keyboard layout using `sudo raspi-config`
- following the beginning of [this](https://gist.github.com/kmpm/8e535a12a45a32f6d36cf26c7c6cef51) guide,
set up wifi and run all updates:
`sudo nano /etc/wpa_supplicant/wpa_supplicant.conf` Add the bottom of the file
```
network={
ssid="YOUR_SSID"
psk="YOUR_PASSWORD"
}
```
then `sudo apt update` and `sudo apt upgrade` , sudo reboot
- i trieds to get this working without needing pixel installed (using openbox and a few other bits but the drivers for my screens didnt work like this - decided its not worth shaving that yak rn. will proceed with a stripped pixel as described above:
## download/install pixel + all dependencies for r_e_c_u_r :
```
sudo apt-get install -y raspberrypi-ui-mods git python3-tk omxplayer libdbus-glib-1-dev python3-pip unclutter python3-picamera gpac
pip3 install dbus-python omxplayer-wrapper mido python-rtmidi
```
- now can set up auto desktop login using `sudo raspi-config`
## download the code in this repo:
- pull down recur code into home dir ~ : `git clone https://github.com/langolierz/r_e_c_u_r.git ~`
## quiet x and run my launcher script on boot:
- used `sudo nano ~/.config/lxsession/LXDE-pi/autostart` to add these lines :
```
@unclutter -display :0 -idle 0 -root -noevents
@xset s off
@xset s noblank
@xset -dpms
@bash /home/pi/r_e_c_u_r/dotfiles/launcher.sh
```
and remove the line `@point-rpi`
these are suppose to stop screensaver / hide cursor / remove on screen power warnings etc
- i then went into pi item -> Preferences and set a black background , small task bar , no screensaver and went into the file explorer -> Edit -> Preferences -> Volume Managment -> unchecked 'show available options for removable media ...' and made taskbar auto hide...
- created internal storage folder in ~/
- set a custom splash screen by replacing splash.png an image at `/usr/share/plymouth/themes/pix/splash.png`with my original. i made a copy of the original, and then copied my own from a flash stick...
## lcd display drivers
these are the drivers for the waveshare displays that work on the cheep lcd i ordered online ( [LCD-show-170703] ).
my screen only needs the LCD35-show-180 and LCD-hdmi scripts. after running both of these scripts the drivers can be deleted since the recur code then handles the switching. (or keep em if you wanna flip the screen or try calibrating the touch screen)
## lines added to config.txt
- commenting out hdmi_force to allow composite output: `#hdmi_force_hotplug=1`
- add these lines to the config:
```
## gives more memory to the gpu for playing 1080 videos (might need to adjust this when using older pis with less memory)
gpu_mem=448
## enables the raspi camera
start_x=1
## fixes bug with playback freezing
audio_pwm_mode=0
## persisting composite settings
sdtv_mode=0
sdtv_aspect=1
## switch for enabling lcd screen (the next line is being used even if its commented out)
##no_waveshare_overlay
```
## changes to the cmdline.txt
`quiet splash logo.nologo plymouth.ignore-serial-consoles` for quiet boot with splash screen
## key mapping and the launcher script:
because the keypad i bought had some special keys (eg numlock) that interact with the others in ways i didnt want , i decided to remap the keys on it to letters a-s in order. to do this i used `xmodmap`:
# Key Mapping
key remappings were achieved using the program `xmodmap`, and the most helpful post we found for that was [this stackexchange](https://raspberrypi.stackexchange.com/questions/32085/how-to-remap-caps-lock-to-esc)
you can find the current keymappings using `xmodmap -pke` and for the specifically numpad related keymappings use:
xmodmap -pke | grep KP > defaultKeymap
@@ -19,30 +101,21 @@ you can find the current keymappings using `xmodmap -pke` and for the specifical
which prints only the default numpad keys to a file for reference later.
keys can be manually remapped using `xmodmap -e "keycode 82=a" for testing.
In order to have the custom keymap work on startup we have added the line `xmodmap ~/r_e_c_u_r/dotfiles/.remap` to the launcher script.
In order to have the custom keymap work on startup we have added the line `xmodmap ~/r_e_c_u_r/dotfiles/.remap` to the launcher script where the file `.remap` has a list of the keycodes that you want to include.
where the file `.remap` has a list of the keycodes that you want to include.
## exporting image
# Start r_e_c_u_r on login/boot
first remove my wifi password ! (and git profile if present)
We wanted to set things up to autostart after xdg got going, there are a number of ways of tackling this, mentioned [here](https://www.raspberrypi-spy.co.uk/2014/05/how-to-autostart-apps-in-rasbian-lxde-desktop/).
i exported the image using unix command `dd` from the raspberry pi i wanted an image of.
we ended up using method 2 from that page, which is _user specific_ (ie. if you make more users on your pi you have to repeat this process) and involves editing the autostart config file:
i had some success using [pishrink], following the instructions on readme exactly , i managed to reduce a 3.8gb image down to 2.9gb and then zipped down to 1.15gb, (this would be more useful with larger cards though).
sudo nano ~/.config/lxsession/LXDE-pi/autostart
- the flow is using dd to copy the image from the pi to an external drive `dd if=/dev/mmcblk0 of=/media/pi/FLASH DRIVE/recur.img`
and adding the following line to the bottom of the file:
- then use pishrink to reduce this image `sudo pishrink.sh recur.img` <- try without auto disk expand ?
@bash /home/pi/r_e_c_u_r/dotfiles/launchscript.sh
- then gzip to zip this : `sudo gzip recur.img`
# setting up driver for cheap 3.5" lcd screen
- first expand your file system : sudo raspi-config => more options => expand filesysem. boot option => Desktop autologin.
- the download and unzip (`tar xvf LCD-show-*.tar.gz`) the [waveshare driver](http://www.waveshare.com/w/upload/0/00/LCD-show-170703.tar.gz) into your `home/pi` dir
- now run scripts in `~/r_e_c_u_r/dotfiles` to switch between LCD display and hdmi output
# hiding boot text
i followed some instructions in top answer [here](https://raspberrypi.stackexchange.com/questions/59310/remove-boot-messages-all-text-in-jessie) - this is a work in progress
[pishrink]:https://github.com/Drewsif/PiShrink
[LCD-show-170703]: www.waveshare.com/w/uplosd/0/00/LCD-show-170703.tar.gz

View File

@@ -1,8 +1,5 @@
#!bin/bash
# launcher.sh
# navigate to home, to recur, run python then back
#export DISPLAY=:0.0
sleep 2
xmodmap ~/r_e_c_u_r/dotfiles/.remap &
python3 ~/r_e_c_u_r/r_e_c_u_r.py

View File

@@ -1,115 +0,0 @@
# documenting the exact steps to creating the r_e_c_u_r raspbian image
- downloaded the latest (~~2017-11-29~~ 2018-04-18) raspbian-raspbian-lite image from offical site.
- flashed it to my sd using etcher
- set up auto console login and changed keyboard layout using `sudo raspi-config`
- following the beginning of [this](https://gist.github.com/kmpm/8e535a12a45a32f6d36cf26c7c6cef51) guide,
set up wifi and run all updates:
`sudo nano /etc/wpa_supplicant/wpa_supplicant.conf` Add the bottom of the file
```
network={
ssid="YOUR_SSID"
psk="YOUR_PASSWORD"
}
```
then `sudo apt update` and `sudo apt upgrade` , sudo reboot
- i trieds to get this working without needing pixel installed (using openbox and a few other bits but the drivers for my screens didnt work like this - decided its not worth shaving that yak rn. will procede with a stripped pixel as described above:
- download/install pixel + all the extra things needed for r_e_c_u_r :
```
sudo apt-get install -y raspberrypi-ui-mods git python3-tk omxplayer libdbus-glib-1-dev python3-pip unclutter python3-picamera gpac
pip3 install dbus-python omxplayer-wrapper mido python-rtmidi
```
- now can set up auto desktop login using `sudo raspi-config`
- pull down recur code into home dir ~ : `git clone https://github.com/langolierz/r_e_c_u_r.git`
- used `sudo nano ~/.config/lxsession/LXDE-pi/autostart` to add these lines :
```
@unclutter -display :0 -idle 0 -root -noevents
@xset s off
@xset s noblank
@xset -dpms
@bash /home/pi/r_e_c_u_r/dotfiles/launcher.sh
```
and remove the line `@point-rpi`
these are suppose to stop screensaver / hide cursor / remove on screen power warnings etc
- i then went into pi item -> Preferences and set a black background , small task bar , no screensaver and went into the file explorer -> Edit -> Preferences -> Volume Managment -> unchecked 'show available options for removable media ...'
and made taskbar auto hide...
created internal storage folder in ~/Videos
splash screen : can set a custom splash screen by setting an image at `/usr/share/plymouth/themes/pix/splash.png` , i made a copy of the original, and then copied my own from a flash stick...
## lcd display drivers
these are the drivers for the waveshare displays that work on the cheep lcd i ordered online ( [LCD-show-170703] ).
my screen only needs the LCD35-show-180 and LCD-hdmi scripts. after running both of these scripts the drivers can be deleted since the recur code then handles the switching.
## lines added to config.txt
- commenting out hdmi_force to allow composite output: `#hdmi_force_hotplug=1`
- add these lines to the config:
```
## gives more memory to the gpu for playing 1080 videos (might need to adjust this when using older pis with less memory)
gpu_mem=448
## enables the raspi camera
start_x=1
## fixes bug with playback freezing
audio_pwm_mode=0
## persisting composite settings
sdtv_mode=0
sdtv_aspect=1
## switch for enabling lcd screen (the next line is being used even if its commented out)
##no_waveshare_overlay
```
## changes to the cmdline.txt
`quiet splash logo.nologo plymouth.ignore-serial-consoles` for quiet boot with splash screen
## flashing
first remove my wifi connection !
i will flash the device using the unix command `dd` on a raspberry pi.
- i want my image to not contain empty space so it can fit on smaller sd cards (4gigs)
- first check how much space is needed and name of device : `df -h`
- `dd if=/dev/mmcblk0 of=/media/pi/FLASH DRIVE/recur.img`
- `gzip -k recur.img` (to keep original)
going to copy and zip in one (with larger byte size) :
`sudo dd bs=4M if=/dev/mmcblk0 | gzip > /media/pi/FLASH DRIVE/r_e_c_u_r.img.gz`
## removing empty space on pi image
i had another go at this and might have had some success using [pishrink], following the instructions on readme exactly , i managed to reduce a 3.8gg image down to 2.9gg and then zipped down to 1.15gg, (this would be more useful with larger cards though).
- the flow is using dd to copy the image from the pi to an external drive `dd if=/dev/mmcblk0 of=/media/pi/FLASH DRIVE/recur.img`
- then use pishrink to reduce this image `sudo pishrink.sh recur.img` <- try without auto disk expand ?
- then gzip to zip this : `sudo gzip recur.img`
[pishrink]:https://github.com/Drewsif/PiShrink
[LCD-show-170703]: www.waveshare.com/w/uplosd/0/00/LCD-show-170703.tar.gz

View File

@@ -1,9 +0,0 @@
#!bin/bash
# launcher.sh
# navigate to home, to recur, run python then back
#export DISPLAY=:0.0
sleep 2
xmodmap ~/r_e_c_u_r/dotfiles/.remap1
#python3 ~/r_e_c_u_r/r_e_c_u_r.py

View File

@@ -1,5 +1,4 @@
#!/bin/bash
sudo sed -i "s/dev\/fb1/dev\/fb0/g" /usr/share/X11/xorg.conf.d/99-fbturbo.conf
sudo sed -i "s/dtoverlay=waveshare35a:rotate=270/##no_waveshare_overlay/g" /boot/config.txt
sudo reboot

View File

@@ -1,5 +1,4 @@
#!/bin/bash
sudo sed -i "s/dev\/fb0/dev\/fb1/g" /usr/share/X11/xorg.conf.d/99-fbturbo.conf
sudo sed -i "s/##no_waveshare_overlay/dtoverlay=waveshare35a:rotate=270/g" /boot/config.txt
sudo reboot

View File

@@ -1,6 +0,0 @@
#!/bin/bash
cd /
cd /home/pi/LCD-show
./LCD35-show 180
cd /

View File

@@ -1,6 +0,0 @@
#!/bin/bash
cd /
cd /home/pi/LCD-show
./LCD-hdmi
cd /