├── .gitattributes
├── README.md
├── images
├── columbia_A4.svg
├── columbia_A4_VS15.hpgl
├── logo.svg
└── screenshot.png
├── install.piplot.sh
└── uart-ctsrts.dtbo
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # PiPlot
4 | ***
5 | The PiPlot is a hardware shield that adds RS232 connectivity with serial hardware flow control to your Pi. It was designed to eliminate the need for USB -> Serial adapters and null modem cables when connecting to vintage plotters.
6 | This page has useful info on setting up your Pi for use with the PiPlot shield. The shiled enables hardware flow control using the Pi GPIO serial port /dev/ttyAMA0. It has been tested on the Pi4, Pi3b+,Pi Zero W and Pi Zero 2 W running (Raspbian) PiOS Lite. I would highly recomend the Pi Zero 2 W for this project, as it makes for a fast and compact solution.
7 |
8 | ## The quick and easy way
9 | If you are running the recomended (Raspbian) PiOS, this simple one liner will do all of the steps below:
10 |
11 | curl -sSL https://raw.githubusercontent.com/ithinkido/PiPlot/main/install.piplot.sh | bash
12 |
13 | ## Step by step install
14 |
15 | Download the `uart-ctsrts.dtbo` file into your `/boot/overlays` folder.
16 |
17 | sudo wget -P /boot/overlays https://raw.githubusercontent.com/ithinkido/PiPlot/main/uart-ctsrts.dtbo
18 |
19 | Add the following lines to your `/boot/config.txt` file:
20 |
21 | #flow control serial
22 | dtoverlay=disable-bt
23 | enable_uart=1
24 | dtoverlay=uart-ctsrts
25 |
26 | Change the read write permissions on the port
27 |
28 | sudo chmod a+rw /dev/ttyAMA0
29 |
30 | Set the baud rate and flow control
31 |
32 | stty -F /dev/ttyAMA0 9600 crtscts
33 |
34 | You can now send a file to your plotter using the `cat` command e.g.
35 |
36 | cat PATH/TO/YOUR/FILE > /dev/ttyAMA0
37 |
38 | Sadly, the Pi is not good at remembering port config. These setting will be lost on reboot. In order to make them permanent,
39 |
40 | add your user to tty groups,
41 |
42 | sudo adduser $USER tty
43 |
44 | remove the line `console=serial0,115200` from your `/boot/cmdline.txt` file.
45 |
46 | sudo nano /boot/cmdline.txt
47 |
48 | By default the Raspberry Pi uses this serial port for the console login via the software service “getty”. This will override your settings on this serial port. To disable getty use this:
49 |
50 | sudo systemctl stop serial-getty@ttyAMA0.service
51 | sudo systemctl disable serial-getty@ttyAMA0.service
52 |
53 | By adding the following to your cron tab, your Pi will automagically configure the AMA0 port with hardware flow control and the correct baud on boot:
54 | Open the crontab.
55 |
56 | crontab -e
57 |
58 | Add this to the bottom:
59 |
60 | @reboot sudo stty -F /dev/ttyAMA0 9600 crtscts
61 |
62 | And reboot...
63 | You will now have a permanent hardware flow controll configured on port dev/ttyAMA0 with read write permissions for your user profile on start up.
64 |
65 | # Pen Plotter Web Server
66 |
67 | [@henrytriplette](https://github.com/henrytriplette/ "@henryTriplette's Github home page") has done a amazing job creating a plotter web server. This, in combo with the PiPlot, takes all the hard work out of pen plotters. A modified fork of this , adapted for the Pi Plot, can be found here:
68 |
69 | https://github.com/ithinkido/penplotter-webserver/tree/PiPlot
70 |
71 |
72 | [
](https://github.com/ithinkido/penplotter-webserver/tree/PiPlot "Pen-plotter web server screen shot")
73 |
74 |
75 | # Manually sending files to your plotter
76 |
77 | If you would like to manually send files to your plotter, the following notes will be useful.
78 |
79 | As the PiPlot shield handles full hardware flow conrol there is no need for using any form of software buffer control. You can simply use `cat`. eg.
80 |
81 | cat myfile.hpgl > /dev/ttyAMA0
82 |
83 | The port should be configured on boot for the correct baud and flow control, if you have omitted adding this to the crontab, you should call`sudo stty -F /dev/ttyAMA0 9600 crtscts` before sending the file
84 |
85 | sudo stty -F /dev/ttyAMA0 9600 crtscts
86 |
87 | # `wget` (the easy way to plot stuff you found online)
88 |
89 | The wget command opens up the way to easily getting files you found on-line and sending them directly to the plotter all in one quick move.
90 | eg. Lets say you found [this](https://github.com/ithinkido/PiPlot/blob/main/images/columbia_A4_VS15.hpgl "HPGL file of the Colubia space shuttle") nice 80's classic plot of the space shuttle already in HPGL format. Throw this through the Pi Plot and watch the magic.
91 |
92 | wget -O - https://raw.githubusercontent.com/ithinkido/PiPlot/main/images/columbia_A4_VS15.hpgl | cat > /dev/ttyAMA0
93 |
94 | If you found an svg file, then vpype makes it easy, (presuming you have [vpype](https://github.com/abey79/vpype "vpype") installed - you really should - it rocks !)
95 | [
](https://github.com/abey79/vpype "vpype")
96 |
97 | wget -O - https://raw.githubusercontent.com/ithinkido/PiPlot/main/images/columbia_A4.svg | vpype read - layout --landscape a4 write -f hpgl -d hp7475a - | cat > /dev/ttyAMA0
98 |
99 | [
](https://github.com/ithinkido/PiPlot/blob/main/images/columbia_A4.svg "Columbia space shuttle")
100 |
101 | # Netcat and streaming
102 |
103 | Netcat can be used "stream" the files to your plotter wirelessly. To do this, first configure your Pi to listen on the port of your choice ( here 1234 ) using baud rate 9600 with hardware flow control enabled.
104 |
105 | sudo stty -F /dev/ttyAMA0 9600 crtscts
106 | nc -l -k 1234 > /dev/ttyAMA0
107 |
108 | Sending data can be done from the terminal program of your choice by openning up a telnet session to the Pi on the port you chose earlier ( 1234 in this case).
109 |
110 | Alternatively you can set up Netcat on your local machine and send your file using this command:
111 |
112 | nc PI-IP-ADRESS 1234 < yourfile.hpgl
113 |
114 | By adding this all as a boot entry to your cron tab, you have a wireless "plotter server" all setup and waiting after boot.
115 |
116 | sudo crontab -e
117 |
118 | add
119 |
120 | @reboot stty -F /dev/ttyUSB0 9600 crtscts && nc -l -k 1234 > /dev/ttyUSB0
121 |
122 | # Buttons for custom functions
123 |
124 | The PiPlot has two buttons that are connectend through de-bouncing ciruits to GPIO 22 and GPIO 27 on the Raspberry Pi.
125 | These can be used to trigger custom functions that the user creates.
126 |
127 | A basic example could be
128 |
129 | @import RPi.GPIO as GPIO
130 |
131 | GPIO.setmode(GPIO.BCM)
132 | GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
133 | GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
134 |
135 | def start_button(channel):
136 | print 'Start button pressed!'
137 |
138 | def stop_button(channel):
139 | print'Stop button pressed!'
140 |
141 | GPIO.add_event_detect(27, GPIO.RISING, callback=start_button, bouncetime=100)
142 | GPIO.add_event_detect(22, GPIO.RISING, callback=stop_button, bouncetime=100)
143 |
144 |
145 | ## Foot Notes
146 |
147 | * The Pi does not remember port configuration very well. It is good practice to call `sudo stty -F /dev/ttyAMA0 9600 crtscts` to reconfigure the port for hardware flow control before each plot( adjust baud to match your machine).
148 | * The Pi shares the serial port with bluetooth. This is why it is necessary to disbale BT by adding the `dtoverlay=disable-bt` to your `/boot/config.txt`.
149 | * On board LEDs are for buffer state (red) and TX data (green). When you plug in the PiPlot and power up the plotter the red buffer LED will turn **off**. This is a hardware a pre-check. It shows that the PiPlot and plotter are talking nicely to each other. In this case, on powering up, the plotter has said "I have space in the buffer", to which the PiPlot replies, "OK, I will turn off the buffer full LED then". The red LED is not a power indicator LED.
150 | * Netcat relies on a constant connection to stream the files during the plot. You will not be able to complete the plot if this connection is broken. Under normal use this is not an issue, but it does mean that you will not be able to continue plotting if you shut down your laptop/PC during the plot while streaming over Netcat.
151 |
152 |
153 |
154 | 
155 |
156 |
--------------------------------------------------------------------------------
/images/columbia_A4.svg:
--------------------------------------------------------------------------------
1 |
2 |
15 |
34 |
41 |
48 |
55 |
58 |
62 |
66 |
70 |
74 |
78 |
82 |
86 |
90 |
94 |
98 |
102 |
106 |
110 |
114 |
118 |
122 |
126 |
130 |
134 |
138 |
142 |
146 |
150 |
154 |
158 |
162 |
166 |
170 |
174 |
178 |
182 |
186 |
190 |
194 |
198 |
202 |
206 |
210 |
214 |
218 |
222 |
226 |
230 |
234 |
238 |
242 |
246 |
250 |
254 |
258 |
262 |
266 |
270 |
274 |
278 |
282 |
286 |
290 |
294 |
298 |
302 |
306 |
310 |
314 |
318 |
322 |
326 |
330 |
334 |
338 |
342 |
346 |
350 |
354 |
358 |
362 |
366 |
370 |
374 |
378 |
382 |
386 |
390 |
394 |
398 |
402 |
406 |
410 |
414 |
418 |
422 |
426 |
430 |
434 |
438 |
442 |
446 |
450 |
454 |
458 |
462 |
466 |
470 |
474 |
478 |
482 |
486 |
490 |
494 |
498 |
502 |
506 |
510 |
514 |
518 |
522 |
526 |
530 |
534 |
538 |
542 |
546 |
550 |
554 |
558 |
562 |
566 |
570 |
574 |
578 |
582 |
586 |
590 |
594 |
598 |
602 |
606 |
610 |
614 |
618 |
622 |
626 |
630 |
634 |
638 |
642 |
646 |
650 |
654 |
658 |
662 |
666 |
670 |
674 |
678 |
682 |
686 |
690 |
694 |
698 |
702 |
706 |
710 |
714 |
718 |
722 |
726 |
730 |
734 |
738 |
742 |
746 |
750 |
754 |
758 |
762 |
766 |
770 |
774 |
778 |
782 |
786 |
790 |
794 |
798 |
802 |
806 |
810 |
814 |
818 |
822 |
826 |
830 |
834 |
838 |
842 |
846 |
850 |
854 |
858 |
862 |
866 |
870 |
874 |
878 |
882 |
886 |
890 |
894 |
898 |
902 |
906 |
910 |
914 |
918 |
922 |
926 |
930 |
934 |
938 |
942 |
946 |
950 |
954 |
958 |
962 |
966 |
970 |
974 |
978 |
982 |
986 |
990 |
994 |
998 |
1002 |
1006 |
1010 |
1014 |
1018 |
1022 |
1026 |
1030 |
1034 |
1038 |
1042 |
1046 |
1050 |
1054 |
1058 |
1062 |
1066 |
1070 |
1074 |
1078 |
1082 |
1086 |
1090 |
1094 |
1098 |
1102 |
1106 |
1110 |
1114 |
1118 |
1122 |
1126 |
1130 |
1134 |
1138 |
1142 |
1146 |
1150 |
1154 |
1158 |
1162 |
1166 |
1170 |
1174 |
1178 |
1182 |
1186 |
1190 |
1194 |
1198 |
1202 |
1206 |
1210 |
1214 |
1218 |
1222 |
1226 |
1230 |
1234 |
1238 |
1242 |
1246 |
1250 |
1254 |
1258 |
1262 |
1266 |
1270 |
1274 |
1278 |
1282 |
1286 |
1290 |
1294 |
1298 |
1302 |
1306 |
1310 |
1314 |
1318 |
1322 |
1326 |
1330 |
1334 |
1338 |
1342 |
1346 |
1350 |
1354 |
1358 |
1362 |
1366 |
1370 |
1374 |
1378 |
1382 |
1386 |
1390 |
1394 |
1395 |
1396 |
1398 |
1399 |
--------------------------------------------------------------------------------
/images/columbia_A4_VS15.hpgl:
--------------------------------------------------------------------------------
1 | IN;PU;SP1;VS15;PU4246,4610;PD4151,4487,4267,4047;PU4229,4022;PD4115,4451,4118,4476,4135,4501,4176,4534;PU4187,4529;PD4148,4548,4148,4551,4281,4634,4373,4634,5040,4556;PU4974,4565;PD5093,4639;PU5154,4634;PD4395,4706,4281,4634;PU4434,4703;PD4373,4634,4353,4576,4949,4495;PU4938,4570;PD4993,4648,4870,4576;PU4813,4584;PD4865,4661,4761,4590;PU4705,4595;PD4743,4673,4653,4601;PU4604,4607;PD4631,4684,4533,4615;PU4503,4619;PD4544,4692,4428,4628;PU4450,4562;PD4340,4473,4506,4202;PU4434,4213;PD4448,4302,4702,4529;PU4694,4401;PD4705,4526,4741,4446;PU4749,4365;PD4359,4443;PU4400,4437;PD4376,4504;PU4434,4473;PD4461,4562,4486,4504;PU4489,4429;PD4503,4490,4531,4429;PU4558,4446;PD4561,4548,4594,4490;PU4558,4545;PD4395,4385,4617,4274;PU4583,4313;PD4558,4404,4542,4329;PU4625,4401;PD4625,4459,4653,4401;PU4699,4332;PD4779,4359,4833,4365,4877,4363,4920,4351,4957,4335,4996,4313;PU5036,4298;PD5060,4235;PU5090,4169;PD5140,4072,5251,3964,5362,3892;PU5448,3850;PD5603,3800;PU5506,3731;PD5359,3784;PU5243,3814;PD5129,3892,5018,3994,4963,4086;PU4935,4152;PD4916,4217;PU4813,4144;PD4830,4080;PU4855,4011;PD4907,3925,5024,3803,5132,3745;PU5082,3676;PD5026,3629,4963,3582;PU4922,3591;PD4945,3591,4966,3582,4979,3557,4979,3543,4733,3366;PU4747,3352;PD3630,2551;PU3727,2391;PD3700,2463,3633,2551,3467,2687,3281,2792,3079,2867,2871,2909,2655,2917,2445,2889;PU2326,2814;PD2298,2770,2489,2538,2910,2551,3334,2646,3367,2648,3406,2646,3478,2623,3539,2579,3630,2477,3675,2460,3700,2463,4774,3249;PU4788,3235;PD6295,4279,5815,4692;PU5794,4656;PD5894,4257,5891,4255,6015,4321,6057,4351,6074,4340,6035,4315,6060,4299,6093,4321,6110,4313,6068,4285,6015,4321;PU6024,4327;PD5977,4551;PU6032,4504;PD5461,4587;PU5503,4612;PD5564,4368,5653,4075;PU5605,4047;PD5456,4108;PU5442,4124;PD5276,4158;PU5207,4246;PD5251,4144,5362,4041,5475,3964;PU5553,3922;PD5705,3870;PU5747,3991;PD5841,3964,5797,4094;PU5791,4091;PD5822,3969;PU5863,3980;PD5819,4111;PU5838,4124;PD5891,4183,5849,4196;PU5830,4185;PD5353,4271;PU5373,4221;PD5456,4108,4653,3543;PU4708,3440;PD4910,3584,4993,3629;PU5007,3654;PD4896,3717,4780,3842,4733,3936;PU4708,4000;PD4689,4058;PU4556,3967;PD4575,3908;PU4603,3845;PD4653,3759,4794,3640,4905,3582;PU4943,3515;PD5004,3385;PU5038,3407;PD4979,3543,5049,3601,5115,3615,5107,3654,5085,3673,5059,3682,5021,3673,5797,4169,5849,4196,5896,4257,5916,4257,5932,4249,5946,4230,5946,4213,6068,4285,6132,4163;PU6068,4285;PD6251,4246;PU6334,4180;PD4844,3163;PU4896,3133;PD5049,2784,5121,2740;PU5115,2654;PD4966,2579,3794,1721,3292,1444;PU3287,1442;PD2952,1444,2816,1399,2270,1125,2074,1092,1966,1092,1556,1208,1352,1255;PU1342,1215;PD1470,1200,1644,1164,1713,1145,1794,1111,1871,1073,1954,1045,2040,1031,2129,1031,2215,1042,2298,1067,2774,1300,2990,1385,3101,1399,3265,1430,3808,1721,5007,2551,5135,2626;PU5151,2601;PD5035,2538,3905,1734,3769,1676,2461,1009,2367,970,2273,948,2176,940,2079,948,1985,970,1893,1009,1813,1059,1700,1120,1580,1158,1459,1181,1334,1183;PU1326,1150;PD1398,1164,1467,1164,1552,1150,1683,1103,1744,1061,1799,1012,1846,953,1882,890,1910,821,1924,749;PU1833,729;PD1805,801,1769,865,1722,926,1605,1020,1539,1053,1467,1075,1392,1089,1317,1089;PU1315,1061;PD1400,1050,1484,1025,1564,987,1636,937,1700,876,1752,807,1791,729;PU1855,1399;PD1788,1280,1514,1355,1583,1458,1857,1399;PU2046,1746;PD1802,1793,1761,1718,1990,1660,2046,1746;PU2256,1444;PD2148,1518,2298,1635,2364,1590,2420,1518,2256,1444;PU2364,1197;PD2270,1341,2514,1474,2625,1313,2364,1197;PU2215,2128;PD2364,2377;PU2229,2305;PD2201,2186,2162,2186,2134,2333,2176,2391,2229,2305;PU2107,2346;PD2162,2435,2121,2479,2038,2377,2107,2349;PU2121,2521;PD2065,2435,2065,2493,2107,2551,2121,2524;PU2165,2646;PD2364,2377,3251,2466,3298,2466,3387,2441,3461,2388,3492,2355,3514,2316,3533,2274,3550,2211,3572,2178,3603,2155,3639,2144,3677,2144,3713,2158,4913,3100;PU4954,3000;PD4190,2070,3497,1726,3475,1724,3447,1743,3442,1779,3508,2100,3509,2116,3495,2150,3483,2165,3468,2173,3430,2177,3414,2172,2018,1322,1938,1297,1774,1266,1702,1264,1489,1325,1406,1413;PU1388,1365;PD1436,1316,1484,1283,1539,1253,1594,1236,1741,1208,1833,1203,1921,1211,2013,1233,2093,1269,3129,1809,3345,1546,4190,2070,5049,2784,6176,3571,6558,3803,6993,4008,7254,4138;PU7159,4091;PD6924,4516;PU7060,4592;PD7013,4645;PU7093,4692;PD7140,4639;PU7129,4631;PD7351,4188;PU7533,4202;PD7774,4357,7589,4191;PU7650,4183;PD7894,4327,7733,4166;PU7805,4152;PD8040,4291,7858,4141;PU7946,4124;PD8157,4260,7996,4116;PU8071,4102;PD8309,4221,8148,4088;PU8223,4075;PD8423,4194,8276,4066;PU8356,4052;PD8572,4155,8461,4033;PU8517,4022;PD8686,4127,8572,4008;PU8647,3994;PD8813,4094,8697,3989;PU8666,3917;PD8387,3706;PU8464,3717;PD8450,3753;PU8506,3775;PD8533,3817,8572,3759;PU8572,3731;PD6984,4004,7035,3847;PU6963,3991;PD6733,4404;PU6763,4446;PD6450,4327,6381,4310,6317,4415,6240,4509,6146,4587,6040,4648,6040,4678,6328,4983,6750,5254,6827,5293,6907,5321,6993,5337,7079,5337,7165,5326,7248,5299,6999,5124;PU7063,5171;PD7146,5099;PU7151,5232;PD7021,5143,7104,5058,7226,5174,7151,5232;PU7101,5238;PD7094,5268,7076,5295,7051,5312,7023,5319,6993,5314,6967,5297,6949,5271,6942,5241,6947,5210,6963,5185,6989,5166,7020,5159,7051,5165,7075,5181,7093,5207,7101,5238;PU7123,5335;PD6932,5191,7151,4966;PU7049,4939;PD7007,4983,6683,4759,6664,4750,6605,4750,6569,4764,6553,4775,6525,4803,6509,4839,6503,4878,6510,4917,6531,4950,6852,5160,6913,5168,6952,5157,6999,5119,7024,5063,7024,5022,7010,4983;PU6896,4844;PD6858,4880;PU6794,4836;PD6824,4800;PU6716,4734;PD6702,4723,6680,4695,6669,4662,6672,4606,6689,4576,6713,4548,6747,4531,6780,4526,6799,4526,6833,4537,7240,4778,7256,4816,7254,4878,7235,4912,7223,4927,7193,4952,7135,4969,7093,4965,6716,4734;PU6716,4689;PD6409,4512;PU6376,4565;PD6392,4606,6423,4642,6459,4664,6503,4675,6547,4673,6589,4656,6625,4628,6650,4590,6661,4545,6658,4501,6641,4459,6614,4423,6575,4399,6553,4390,6531,4387,6486,4390,6445,4404,6448,4401,6758,4559;PU6763,4501;PD6450,4379;PU6450,4351;PD6763,4473;PU6658,4509;PD6763,4446,6763,4512,6755,4576,6736,4639,6708,4700,6672,4756,6625,4803,6572,4844,6514,4878,6453,4900,6387,4911,6323,4914,6256,4905;PU6245,5002;PD6489,6423;PU6450,6401;PD6110,4916;PU6010,4925;PD5918,4914;PU5918,4980;PD5738,4999;PU5744,5016;PD5644,5055,5592,5063,5539,5063,5486,5055,5436,5038,5389,5013;PU5475,5099;PD5508,5124,5545,5141,5625,5155,5666,5155,5708,5146,5780,5110;PU5799,5160;PD5968,5127;PU5979,5163;PD6281,5215;PU6262,5102;PD5935,5027;PU5988,4842;PD6409,6381;PU6378,6354;PD6259,6354,6137,6046,5661,4795,5769,4764,5960,4822,5905,4939,6439,6534;PU6436,6539;PD6439,6534,6802,6730,6802,6575,6381,6368,6533,6381;PU6542,6448;PD6342,5066;PU6362,4914;PD6121,4689;PU6179,4684;PD6171,4725,6173,4747,6187,4792,6212,4828,6248,4853,6290,4867,6312,4869,6334,4867,6376,4853,6412,4828,6425,4808,6445,4770,6450,4725,6442,4684,6423,4645,6389,4615,6351,4595;PU6312,4626;PD6625,4803;PU6569,4977;PD6472,5077;PU6536,5119;PD6655,5033;PU6689,5213;PD6719,5174,6967,5332;PU6977,5335;PD7107,5318,7268,5260,7511,5099,7558,5022,7611,4980,7647,4922,7661,4858,7661,4822,7644,4759;PU7699,4776;PD7715,4855,7711,4914,7694,4969,7677,4997,7636,5038,7608,5055,7581,5066;PU7484,5013;PD7484,4969;PU7517,4950;PD7575,4891,7597,4842,7600,4786,7586,4734;PU7520,4709;PD7533,4723,7550,4756,7553,4814,7531,4864,7486,4897;PU7478,4889;PD7376,5027,7594,5143,7592,5143,7661,5107,7716,5052,7752,4986,7763,4947,7766,4869,7744,4795,7500,4703;PU7473,4745;PD7478,4775,7475,4803,7453,4842;PU7431,4808;PD6340,4180;PU6367,4138;PD6340,4180,6245,4183,4802,3208;PU4774,3307;PD4974,3449,4899,3485;PU4979,3543;PD5057,3504,5148,3485;PU5251,3557;PD5162,3579,5090,3609;PU5115,3615;PD5838,4124,5843,4142,5833,4160,5814,4169,5794,4167;PU5774,4155;PD5633,4706,4461,3906,4384,3936,4303,3955,4220,3964,4140,3964;PU4118,3953;PD4013,4385,4024,4435,4071,4487,4148,4551,4068,4507,4015,4462,3971,4385,4076,3925;PU4165,3980;PD4054,4399,4062,4443,4079,4473,4162,4540;PU4420,4374;PD4442,4426,4461,4357;PU4442,4158;PD4387,4249;PU4412,4138;PD4359,4227,4448,4302,4464,4224;PU4489,3847;PD5281,4387;PU5276,4415;PD5985,4304;PU6018,4255;PD6090,4135,5882,4171;PU5891,4183;PD5946,4213;PU5910,4194;PD5949,4039;PU5833,4160;PD5871,4188,5930,4252;PU6162,4393;PD5340,4504;PU5387,4531;PD5423,4390,5511,4086;PU5348,4052;PD5154,4080;PU5060,4022;PD5229,3986;PU5112,3906;PD4946,3947;PU5007,3820;PD4816,3867;PU4871,3745;PD4686,3784;PU4578,3715;PD4774,3656;PU4558,3701;PD5373,4221,5320,4385;PU5337,4332;PD4517,3789;PU4500,3817;PD5320,4385,5281,4387,5270,4454;PU5162,4385;PD5182,4321;PU4874,4507;PD4700,4376;PU5287,4825;PD5326,4847,5370,4864,5461,4875,5550,4858,5592,4839,5484,4795,5306,4742,5290,4706,5284,4756,5284,4803,5292,4850,5306,4897,5328,4939,5356,4980,5600,5224,5838,5407,5910,5451,6071,5431;PU6057,5395;PD6403,5481;PU6417,5578;PD6101,5523;PU6123,5592;PD5974,5609;PU6135,5625;PD6207,5639;PU6237,5756;PD6173,5742,6032,5769;PU6082,5900;PD6226,5902;PU6231,5911;PD6281,5913;PU6265,6019;PD6484,6032;PU6500,6149;PD6301,6118;PU6323,6190;PD6201,6201;PU6340,6235;PD6517,6265;PU6301,6354;PD5752,4770;PU5683,4853;PD5902,4806;PU5960,4822;PD6653,5260;PU6686,5276;PD6816,5492,6866,5515,6918,5528,6974,5537,7029,5537,7085,5526,7184,5481,7265,5407;PU7198,5348;PD7132,5420,7046,5470,6996,5484,6899,5485,6851,5476,6794,5457;PU6767,5412;PD6810,5420,6894,5418,6974,5390,7040,5340;PU6924,5323;PD6888,5343,6813,5362,6736,5359;PU6708,5318;PD6761,5315,6805,5287;PU6752,5254;PD6736,5269,6708,5279,6686,5276,6653,5260,6791,5551,6802,6575;PU6802,6730;PD6786,6736,6409,6525,6409,6528,6259,6354;PU6273,6046;PD6143,6060;PU6459,5855;PD6198,5814;PU6497,5379;PD6586,5393,6791,5551;PU6791,5902;PD6545,5861;PU6611,6481;PD6509,5382;PU6822,5143;PD6792,5179,6786,5199,6787,5218,6804,5254,6843,5277,6864,5279,6886,5274,6920,5249,6932,5213,6921,5168;PU7248,5299;PD7281,5290;PU7431,5362;PD7281,5290,7334,5260,7500,5346,7431,5362,7416,5381,7378,5410,7342,5421,7304,5421,7268,5407,7173,5323;PU7442,5063;PD7414,5094,7377,5115,7336,5125,7295,5120,7261,5104,7231,5074,7212,5036,7206,4995,7213,4954,7231,4919,7262,4891,7300,4874,7342,4871,7383,4881,7414,4901,7442,4936;PU7384,4783;PD7251,4880;PU7232,4772;PD7290,4725;PU7201,4673;PD7486,4257;PU7647,4343;PD7478,4615;PU7536,4648;PD6425,4019;PU6259,4063;PD6423,3723;PU6353,3679;PD7157,3487;PU7157,3526;PD7129,3665,7090,3526;PU7063,3543;PD7027,3595,7010,3523;PU6954,3454;PD6941,3537,6905,3446;PU6858,3440;PD6849,3476;PU6752,3499;PD6737,3530,6708,3538,6680,3526,6669,3495,6684,3466,6713,3457,6739,3468,6752,3499;PU6702,3540;PD6680,3557,6649,3557,6624,3540,6614,3512,6628,3468,6645,3455,6681,3450,6700,3458;PU6628,3468;PD6315,3404;PU6298,3363;PD6270,3399,6215,3429;PU6259,3454;PD6273,3554;PU6268,3518;PD6292,3532,6312,3534,6335,3526,6350,3510;PU6353,3485;PD6340,3557,6273,3554,6276,3574,6295,3607,6326,3621,6353,3619,6378,3601;PU6409,3559;PD6395,3591,6364,3602,6335,3587,6327,3572,6325,3556,6338,3529,6354,3520,6369,3518,6397,3531,6409,3559;PU6384,3487;PD6503,3557,6478,3584,6326,3479;PU6367,3485;PD6409,3426;PU6495,3501;PD6497,3484,6502,3470,6528,3446;PU6614,3512;PD6262,3474;PU6279,3349;PD6315,3382,6315,3426,6287,3454,6245,3454,6096,3352,6057,3386,6002,3402,5946,3397,5897,3371,5865,3330,5852,3288,5853,3239,5866,3203,5888,3172,5933,3140,5987,3128,6027,3133;PU6046,3141;PD6029,3188,6028,3236,6039,3280,6072,3326,6131,3367,6194,3378,6256,3368,6304,3336,6328,3299,6342,3260;PU6370,3199;PD6536,2989;PU6395,2928;PD6220,3144;PU6243,3224;PD6229,3241,6211,3252,6175,3251,6149,3228,6143,3203,6146,3186,6148,3186,5808,3313,5636,3637;PU5511,3557;PD5672,3216,5952,3100;PU6040,3075;PD6245,2862;PU6076,2790;PD5803,2936;PU5777,3025;PD5550,3133,5387,3468;PU5265,3382;PD5428,3047,5619,2956;PU5652,2848;PD5924,2715;PU5766,2648;PD5528,2775;PU5448,2881;PD5306,2958,5146,3302;PU5049,3235;PD5184,2878,5287,2812;PU5408,2705;PD5617,2579;PU5481,2515;PD5298,2641;PU5191,2579;PD5345,2454;PU5212,2396;PD5082,2515;PU4982,2931;PD4204,2086;PU3508,1914;PD3501,1961,3489,1982,3473,2002,3428,2031,3377,2041,3335,2031,3291,2000,3265,1957,3257,1908,3268,1861,3299,1821,3340,1796,3389,1788,3434,1798,3454,1809,3471,1823,3500,1867,3508,1914;PU3350,1913;PD3360,1890,3382,1881,3405,1890,3414,1913,3405,1936,3382,1945,3360,1936,3350,1913;PU3018,2346;PD2910,2305,2966,2158,3087,2261,3018,2346;PU2841,2261;PD2924,2144,2691,2144,2677,2247,2841,2261;PU2611,2247;PD2625,2144,2420,2114,2378,2158,2475,2261,2611,2247;PU2237,2754;PD2448,2479,2896,2513,3358,2609,3420,2596,3484,2576,3539,2538,3617,2446,3665,2392,3727,2391,4855,3144,6340,4180,6284,4302,6209,4412,6121,4512,6015,4595,5896,4662,5772,4709,5639,4736,5506,4742,5373,4728,5237,4692,5154,4634,4367,4111,2237,2754,2201,2726,2162,2637,1990,2391,1406,1413,1382,1356,1341,1220,1326,1150,1317,1089,1319,998,1337,928,1369,866,1420,812,1475,770,1553,740,1618,727,1693,724,1827,729,1966,757,2336,877,2461,934,4941,2274,6536,2989,6954,3133,9038,3498,9309,3690,9556,3908,7716,4371,7960,4590,7761,4360;PU7725,4066;PD7716,3919;PU7758,3936;PD7725,4066,6750,3410,6162,3557,6018,3897;PU6137,3980;PD6304,3648;PU6542,3792;PD6367,4138,4858,3105,3741,2261,3728,2257,3683,2267,3653,2294,3525,2490,3481,2535,3453,2551,3392,2568,3332,2565,2874,2474,2378,2435,2201,2718;PU2896,2856;PD2761,2886,2664,2828,2788,2798,2896,2856;PU2974,2895;PD4434,3936,5622,4739,5633,4706;PU5592,4839;PD5702,4908,5702,4905,5658,4933,5611,4952,5558,4966,5508,4969,5456,4966,5403,4955,5356,4936,5312,4911;PU5561,5185;PD5638,5210,5678,5216,5720,5215,5767,5203,5808,5182;PU5833,5246;PD5799,5260,5727,5271,5658,5257,5624,5243;PU5695,5296;PD5738,5314,5799,5320,5855,5304,6015,5274,6384,5348;PU6362,4914;PD6719,5174;PU6453,4900;PD6204,4678;PU6043,4681;PD6096,4689,6198,4678,6292,4637,6334,4606,6400,4529,6425,4482,6442,4432,6450,4382,6450,4329;PU6514,4277;PD6736,3886;PU7065,4044;PD6916,4296;PU7118,4410;PD7254,4138,7323,4022,7586,3972,7647,3906;PU7581,3919;PD7586,3972;PU7456,3997;PD7431,4111,7254,3964;PU7442,3803;PD7414,3856,7403,3789;PU7553,3789;PD7506,3919,7459,3767;PU7456,3615;PD7473,3676,7484,3629;PU7539,3629;PD7567,3742,7605,3601;PU7619,3468;PD7716,3269;PU7910,3302;PD7808,3493;PU7772,3601;PD7758,3643,7744,3601;PU7819,3612;PD7827,3695,7871,3629;PU7946,3701;PD7946,3775,7974,3687;PU8015,3687;PD8021,3831,8082,3687;PU8132,3673;PD8478,3947;PU8464,3817;PD8478,3947,8409,3803;PU8370,3803;PD8340,3836,8315,3803;PU8259,3861;PD8240,3983,8207,3834;PU8151,3834;PD8137,3911,8110,3834;PU8002,3892;PD7968,4027,7932,3861;PU7894,3861;PD7855,3947,7852,3861;PU7725,3767;PD7752,3875,7774,3728;PU7689,3731;PD7647,3800,7619,3745;PU7345,3515;PD7389,3618,7409,3526;PU7284,3507;PD7268,3529,7254,3501;PU7218,3496;PD7968,4027;PU8240,3983;PD7650,3571,6514,3775,6597,3618;PU6777,3352;PD6954,3133;PU7043,3150;PD6952,3377;PU7154,3402;PD7273,3188;PU7506,3230;PD7381,3435;PU7268,3673;PD7315,3789,7334,3659;PU7171,3673;PD7198,3712,7226,3673;PU6561,3271;PD6727,3055;PU6481,3313;PD5993,3440;PU6040,3474;PD5896,3814;PU5761,3723;PD5918,3396;PU6057,3307;PD6037,3310,6015,3304,5999,3292,5990,3275,5988,3254,5994,3237,6027,3214;PU5400,3659;PD5237,3698;PU5049,3601;PD5040,3618,5029,3626,5011,3632,4993,3629,5021,3673;PU5010,3471;PD5747,3991,5677,4011;PU5805,4606;PD5700,4606,5686,4667;PU5863,4651;PD5600,4673,5611,4626,5528,4628;PU5774,5357;PD5824,5371,5874,5359;PU6636,4346;PD6858,3942;PU7406,4573;PD7585,4310;PU7556,4620;PD7960,4590;PU8245,3731;PD8273,3784,8304,3695;PU8209,3684;PD8184,3712,8165,3679;PU8029,3659;PD6736,3892,6791,3731;PU8024,3526;PD8143,3341;PU8370,3382;PD8259,3557;PU8489,3587;PD8575,3418;PU8827,3462;PD8766,3629;PU8777,3759;PD8846,3889,8858,3773;PU8846,3886;PD8658,3745;PU8669,3803;PD8666,3917,8600,3775;PU8780,3972;PD8919,4069,8819,3964;PU8874,3955;PD9015,4044,8924,3944;PU9015,3861;PD8885,3775,8029,3659,7921,3615,6791,3426,6231,3222,5090,2726,4855,2618,5082,2515,6040,3075,6777,3352,8982,3659,9038,3498;PU8982,3659;PD9201,3759,9309,3690;PU9334,3800;PD9511,3919;PU9401,3770;PD9295,3817;PU9317,3872;PD7420,4221,7306,4518;PU9063,3919;PD9148,4011,9013,3928;PU9193,3897;PD9245,3986,9140,3906;PU9268,3881;PD9378,3953,9317,3872,9295,3817,7254,4138,7716,4371,7431,4808,7581,5058,7605,5246,7647,5274,7605,5332,7553,5304,7500,5346;PU6605,6633;PD6617,6631,6478,5149;PU4927,3332;PD4763,3388;PU4470,2886;PD4423,2994,4376,3083,4265,3202,4137,3305,3996,3385,3844,3443,3686,3476,3522,3485,3362,3468;PU3087,2798;PD2979,2740,2835,2778,2935,2837,3085,2798;PU6932,1781;PD6932,1637,7011,1637,7011,1589,7011,1577,7011,1564,7012,1552,7012,1515,7012,1503,7012,1493,6867,1493,6867,1428,7012,1428,7012,1399,7012,1389,7012,1379,7012,1370,7011,1331,7011,1312,7011,1302,7011,1293,7011,1283,7077,1283,7077,1428,7221,1427,7221,1492,7077,1492,7077,1637,7011,1637,7011,1589,7011,1577,7011,1564,7011,1552,7012,1493,7002,1493,6983,1493,6964,1493,6954,1493,6935,1493,6925,1493,6906,1493,6867,1493,6867,1437,6867,1428,6867,1572,6858,1572,6838,1572,6809,1572,6723,1572,6723,1637,6867,1637,6867,1781,6923,1781,6932,1781,6932,1772,6932,1762,6932,1752,6932,1714,6932,1704,6932,1685,6932,1637,7077,1637,7077,1572,6932,1572,6932,1552,6932,1543,6932,1533,6932,1524,6932,1504,6932,1495,6932,1485,6932,1456,6932,1428,6867,1428,7012,1428,7011,1283,7077,1283,7077,1294,7077,1301,7077,1310,7077,1332,7077,1369,7077,1406,7077,1417,7077,1428,7221,1427,7221,1492,7125,1492,7096,1492,7086,1492,7077,1492,7077,1637,7077,1572,7067,1572,7057,1572,7038,1572,7019,1572,7009,1572,7000,1572,6990,1572,6980,1572,6961,1572,6932,1572,6932,1428,6867,1428,6867,1572,6723,1572,6723,1618,6723,1627,6723,1637,6867,1637,6867,1781,6932,1781;PU9076,3701;PD9207,3615;SP0;PU0,0;IN;
--------------------------------------------------------------------------------
/images/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ithinkido/PiPlot/2d652fcc0ba8acfaa8298014ca41682e0fd89c2e/images/screenshot.png
--------------------------------------------------------------------------------
/install.piplot.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | DIR="/boot/firmware"
4 | if [ ! -d "$DIR" ] ; then
5 | DIR="/boot"
6 | fi
7 | echo " Path: $DIR"
8 |
9 |
10 | spinner()
11 | {
12 | local pid=$!
13 | local delay=0.75
14 | local spinstr='|/-\'
15 | while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
16 | local temp=${spinstr#?}
17 | printf " [%c] " "$spinstr"
18 | local spinstr=$temp${spinstr%"$temp"}
19 | sleep $delay
20 | printf "\b\b\b\b\b\b"
21 | done
22 | printf " \b\b\b\b"
23 | }
24 | printf "\033[?25l"
25 | lsb_release -ds
26 | echo ""
27 | echo "Updating apt. This could take a while ..."
28 | (sudo apt-get update > /dev/null
29 | wait
30 | sudo apt-get -y upgrade -qq > /dev/null) & spinner
31 | wait
32 | if ! grep -q '#flow control serial' "$DIR/config.txt" ; then
33 | echo $'\n#flow control serial' | sudo tee -a $DIR/config.txt >/dev/null
34 | fi
35 | if ! grep -q 'dtoverlay=disable-bt' "$DIR/config.txt" ; then
36 | echo "dtoverlay=disable-bt" | sudo tee -a $DIR/config.txt >/dev/null
37 | fi
38 | if ! grep -q 'enable_uart=1' "$DIR/config.txt" ; then
39 | echo "enable_uart=1" | sudo tee -a $DIR/config.txt >/dev/null
40 | echo ""
41 | printf "UART 1 Enabled \n"
42 | fi
43 | if ! grep -q 'dtoverlay=uart-ctsrts' "$DIR/config.txt" ; then
44 | echo "dtoverlay=uart-ctsrts" | sudo tee -a $DIR/config.txt >/dev/null
45 | echo ""
46 | printf "CTS RTS Device tree enabled \n"
47 | fi
48 | sudo sed -i -E 's/console\s*=\s*\w+\s*,\s*[0-9]*//g' $DIR/cmdline.txt
49 | sudo wget -q -c -P /boot/overlays https://raw.githubusercontent.com/ithinkido/PiPlot/main/uart-ctsrts.dtbo
50 | sudo wget -q -c -P /boot/firmware/overlays https://raw.githubusercontent.com/ithinkido/PiPlot/main/uart-ctsrts.dtbo
51 | sudo systemctl -q stop serial-getty@ttyAMA0.service
52 | sudo systemctl disable serial-getty@ttyAMA0.service
53 | echo ""
54 | sudo adduser -q $USER tty
55 | if ! grep -q 'stty -F /dev/ttyAMA0 9600 crtscts' '/etc/rc.local' ; then
56 | sudo sed -i '/^exit 0/i stty -F /dev/ttyAMA0 9600 crtscts' /etc/rc.local >/dev/null
57 | fi
58 | echo "Done !"
59 | echo ""
60 | echo " _____ _ _____ _ _ "
61 | echo "| _ |_| | _ | |___| |_ "
62 | echo "| __| | | __| | . | _|"
63 | echo "|__| |_| |__| |_|___|_| "
64 | echo ""
65 | printf "Rebooting in 5 sec "
66 | (for i in $(seq 4 -1 1); do
67 | sleep 1;
68 | printf ".";
69 | done;)
70 | echo ""
71 | printf "\033[?25h"
72 | printf "Rebooting"
73 | sleep 1
74 | sudo reboot
--------------------------------------------------------------------------------
/uart-ctsrts.dtbo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ithinkido/PiPlot/2d652fcc0ba8acfaa8298014ca41682e0fd89c2e/uart-ctsrts.dtbo
--------------------------------------------------------------------------------