Merge branch 'meshtastic:master' into master

This commit is contained in:
Jm Casler 2021-11-23 19:15:47 -08:00 committed by GitHub
commit bc5133eb3c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 662 additions and 36 deletions

View file

@ -4,3 +4,10 @@ title: Concepts
sidebar_label: Concepts
slug: /getting-started/concepts
---
Various high level concepts used in the Meshtastic meta verse:
* mesh networking: By using [low-power radios](https://meshtastic.org/docs/hardware) to connect other low-power radios using LoRa to be able to send and receive messages and data. This can be completely separate from any other network such as the internet. You can start small and get two devices to start experiementing. Do not expect to stream music or videos as LoRa is intended for smaller, lower bandwidth type uses.
* captive portal: Using Meshtastic, you can create a separate wifi network for you join your phone or computer on a mesh network. See [Web Interface](https://meshtastic.org/docs/software/web/web-app-software) for more info. This is ideal in a situation where you are remote, such as in the forest or on a mountain or if there is a major power/internet outage such as in a storm other other disaster.
* Meshtastic channels: Can create a *somewhat* secure method of communication on the same mesh network. They channel can be encrypted, to prevent normal people from listening in on the traffic. But, it could probably be easily cracked by determined indviduals. See [Channel Config](https://meshtastic.org/docs/software/settings/channel) for more info.
* LoRaWan: If you add a LoRa gateway, then you can interact with more networks, such as the internet.

View file

@ -110,7 +110,7 @@ Q: How do I turn on the WiFI radio?
* See: https://meshtastic.org/docs/software/device/device-wifi
Q: When I turn on WiFi, Bluetooth turns off. Why is this?
* Currently WiFi and Bluetooth can be turned on at the same time.
* Currently WiFi and Bluetooth can not be enabled at the same time.
Q: How do I access the network from my web browser?
* Visit http://meshtastic.local (Note: This is a work in progress.)

View file

@ -27,25 +27,26 @@ Some newer boards may require the drivers for the [CH9102](http://www.wch.cn/dow
]}>
<TabItem value="linux">
> Open a `Terminal` and enter the following command:
> Connect your Meshtastic device to your USB port, open a `Terminal` and enter the following command:
> ```bash
> lsusb
> ```
> You should see something like: `ID 10c4:ea60 Silicon Labs CP210x UART Bridge` for CP210X or `ID 1a86:55d4 QinHeng Electronics USB Single Serial` for CH9102
</TabItem>
<TabItem value="macos">
> Navigate to `Apple Menu  > About This Mac > System Report... > Hardware > USB`.
> You should see something like `CP210X USB to UART Bridge Controller`. If not download the appropriate drivers
</TabItem>
<TabItem value="windows">
> Navigate to `Device Manager > Ports (COM & LPT)`.
> Navigate to `Device Manager > Ports (COM & LPT)`. You should see something like `Silicon Labs CP210X USB to UART Bridge (COM5)`. If not download the appropriate drivers
</TabItem>
</Tabs>
You should see something like `CP210X USB to UART Bridge Controller`. If you don't, you will need to install the appropriate driver from [Silicon Labs](https://silabs.com/developers/usb-to-uart-bridge-vcp-drivers).
### Download Latest Firmware
@ -83,7 +84,7 @@ The [T-Beam 0.7](../hardware/tbeam-hardware#t-beam---v07) board is an earlier ve
> If `python3` is not installed, install with
> ```bash
> sudo apt-get update
> sudo apt-get install python3.6
> sudo apt-get install python3
> ```
> If `pip` is not installed, install with
> ```bash

View file

@ -24,3 +24,8 @@ sidebar_label: Heltec
[<img src="Heltec WiFi LoRa 32 (V2)" src="/img/hardware/heltec-v2.png" style={{zoom:'25%'}} />](/img/hardware/heltec-v2.png)
* There are two versions of the Heltec (V2). Below is a picture highlighting the visual differences:
[<img src="Heltec WiFi LoRa 32 (V2)" src="/img/hardware/heltec_v2_vs_v21.png" style={{zoom:'25%'}} />](/img/hardware/heltec_v2_vs_v21.png)
* See [hardware update log](https://heltec-automation-docs.readthedocs.io/en/latest/esp32/wifi_lora_32/hardware_update_log.html) for more details

View file

@ -38,13 +38,13 @@ Any channel you add after that Primary channel is Secondary. Secondary channels
Secondary channels **must** have a PSK (encryption).
```bash title="Adding a channel called testing-channel"
$ meshtastic --ch-add testing-channel
```bash title="Adding a channel called testing"
$ meshtastic --ch-add testing
Connected to radio
Writing modified channels to device
```
The device will now have a Secondary channel called "testing-channel"
The device will now have a Secondary channel called "testing"
```bash title="Expected output"
$ meshtastic --info
@ -52,7 +52,7 @@ Connected to radio
...
Channels:
PRIMARY psk=default { "modemConfig": "Bw125Cr48Sf4096", "psk": "AQ==" }
SECONDARY psk=secret { "psk": "HW7E3nMbiNbvr6MhsDonLCmj7eSAhttzjbIx/r5OQmg=", "name": "testing-channel" }
SECONDARY psk=secret { "psk": "HW7E3nMbiNbvr6MhsDonLCmj7eSAhttzjbIx/r5OQmg=", "name": "testing" }
Primary channel URL: https://www.meshtastic.org/d/#CgUYAyIBAQ
Complete URL (includes all channels): https://www.meshtastic.org/d/#CgUYAyIBAQopIiAdbsTecxuI1u-voyGwOicsKaPt5ICG23ONsjH-vk5CaCoFYWRtaW4
```

View file

@ -19,6 +19,11 @@ You must use pip version 20 or later. To upgrade to the latest pip, do: `pip ins
:::info
Make sure that the `PATH variable` also gets installed by checking the box while installing python. If you don't, python may not be available and you may not be able to call `meshtastic` from your CLI. If you do forget to check that box, you will need to install the path environment variable for python on your operating system.
:::
:::important
You may need to install a driver from Silicon Labs for the [CP210X USB to UART bridge](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers)
Some newer boards may require the drivers for the [CH9102](http://www.wch.cn/downloads/CH343SER_ZIP.html) or [Direct Download](https://github.com/Xinyuan-LilyGO/CH9102_Driver) for Windows 7.
:::
<Tabs
groupId="operating-system"
@ -37,27 +42,49 @@ Make sure that the `PATH variable` also gets installed by checking the box while
```bash
lsusb
```
* You should see something like `CP210X USB to UART Bridge Controller`
* If not download the drivers from [Silicon Labs](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers).
* You should see something like:
* `ID 10c4:ea60 Silicon Labs CP210x UART Bridge` for CP210X
* `ID 1a86:55d4 QinHeng Electronics USB Single Serial` for CH9102
* Check that your computer has Python 3 installed.
* Use the command
```bash
python3 -V
```
* If this does not return a version, install [python](https://www.python.org)
* If this does not return a version, install python
```bash
sudo apt-get update
sudo apt-get install python3
```
* Pip is typically installed if you are using python 3 version >= 3.4
* Check that pip is installed using this command
```bash
pip3 -V
```
* If this does not return a version, install [pip](https://pip.pypa.io/en/stable/installing/)
* If this does not return a version, install pip
```bash
sudo apt-get install python3-pip
```
* Optional: use a python virtual environment (otherwise jump to step "Install pytap2")
* Install python-virtualenvwrapper (arch based distros as an example)
```bash
sudo pacman -Syu python-virtualenvwrapper
```
* Create a virtual environment
```bash
source /usr/bin/virtualenvwrapper.sh
mkvirtualenv meshtastic
workon meshtastic
```
* Install pytap2
```bash
sudo pip3 install --upgrade pytap2
pip3 install --upgrade pytap2
```
* Install meshtastic:
```bash
sudo pip3 install --upgrade meshtastic
pip3 install --upgrade meshtastic
```
</TabItem>
@ -90,6 +117,7 @@ Make sure that the `PATH variable` also gets installed by checking the box while
pip3 -V
```
* If this does not return a version, install [pip](https://pip.pypa.io/en/stable/installing/)
* Install pytap2
```bash
sudo pip3 install --upgrade pytap2
@ -130,7 +158,7 @@ Make sure that the `PATH variable` also gets installed by checking the box while
```powershell
pip3 install --upgrade meshtastic
```
</TabItem>
<TabItem value="termux">
@ -164,4 +192,4 @@ Be aware that the Meshtastic CLI is not able to control the nodes over USB throu
:::info
You may need to close and re-open the CLI. The path variables may or may not update for the current session when installing.
:::
:::

View file

@ -11,37 +11,56 @@ import styles from './styles.module.css';
const features = [
{
title: "Diverse Software Ecosystem",
imageUrl: "img/software.svg",
title: "Radio Mesh Text Messaging",
imageUrl: "img/homepage/messages.svg",
description: (
<>
Having an ever-growing, vibrant software ecosystem, there's almost
certainly, a capable solution ready to go for your project. With
libraries for Typescript and Python, apps for all major platforms and a
whole suite of native integrations, there's something for everyone.
Off-grid messaging using inexpensive hardware to create your personal mesh. Radios forward messages to the next to flood the network. Communicate kilometers/miles between nodes. Internet-connected relay nodes enable the conversation to move online too.
</>
),
},
{
title: "Extremely Versatile",
imageUrl: "img/versatility.svg",
title: "Encryption",
imageUrl: "img/homepage/encryption.svg",
description: (
<>
Create a highly scalable mesh with hardware on a multitude of platforms
to fit your unique requirements: Create an environment monitoring mesh
and produce real-time heatmaps, or maybe decentralised, encrypted
messaging network, your imagination is the limit.
Messages are AES256 encrypted. Only radios supplied with your channel settings (which includes the key) should be able to read your messages. Using multichannel settings you can send encrypted messages on one channel and still participate in a default Meshtastic mesh.
</>
),
},
{
title: "Peak Efficiency",
imageUrl: "img/efficiency.svg",
title: "Conserve Battery",
imageUrl: "img/homepage/battery.svg",
description: (
<>
Go for days on end and on a single battery, or extend it infinitely with
a solar cell, communicate with tens kilometres between nodes on
inexpensive beginner friendly hardware.
Go for days on end and on a single battery or extend it infinitely with a solar cell. Power management ensures the device will last the duration of your use.
</>
),
},
{
title: "Extendable",
imageUrl: "img/homepage/extendable.svg",
description: (
<>
Create a highly scalable mesh with hardware on a multitude of platforms to fit your unique requirements: Create an environment monitoring mesh and produce real-time heatmaps, or maybe decentralised, encrypted messaging network, your imagination is the limit.
</>
),
},
{
title: "Platform Agnostic",
imageUrl: "img/homepage/platforms.svg",
description: (
<>
Meshtastic clients are built or being built for all major desktop and mobile platforms. Linux, Windows, Mac, Android, and iOS are all supported or well on their way to being supported.
</>
),
},
{
title: "Open Source",
imageUrl: "img/homepage/opensource.svg",
description: (
<>
All Meshtastic software is open source. If you want an improvement, submit a pull request or file an issue on Github. Happy coding!
</>
),
},

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View file

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="150 150 650 650"
x="0px"
y="0px"
width="1000px"
height="1000px"
version="1.1"
id="svg2552"
sodipodi:docname="battery.svg"
inkscape:version="1.1-dev (f9311a1, 2019-12-25)">
<metadata
id="metadata2558">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2556" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
inkscape:document-rotation="0"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1440"
inkscape:window-height="829"
id="namedview2554"
showgrid="false"
inkscape:zoom="0.35812299"
inkscape:cx="632.38652"
inkscape:cy="857.96959"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1"
showguides="false" />
<g
id="g1421">
<g
style="isolation:isolate"
id="Layer_1"
data-name="Layer 1">
<path
style="stroke-width:0.947916;fill:#8c8ea0;fill-opacity:1"
inkscape:connector-curvature="0"
d="M 247.5,596.33329 H 656.99985 V 353.66671 H 247.5 Z m 30.33333,-212.33326 h 348.8332 v 181.99993 h -348.8332 z"
id="path842" />
<rect
style="fill:#67ea94;fill-opacity:1;stroke-width:0.947916"
x="298.39377"
y="405.74518"
width="307.72208"
height="138.51901"
id="rect844" />
<rect
style="stroke-width:0.947916;fill:#8c8ea0;fill-opacity:1"
x="672.16669"
y="424.44751"
width="30.333321"
height="101.11423"
id="rect846" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="150 150 650 650"
x="0px"
y="0px"
width="1000px"
height="1000px"
version="1.1"
id="svg2552"
sodipodi:docname="encryption.svg"
inkscape:version="1.1-dev (f9311a1, 2019-12-25)">
<metadata
id="metadata2558">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2556" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
inkscape:document-rotation="0"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1440"
inkscape:window-height="829"
id="namedview2554"
showgrid="false"
inkscape:zoom="0.21985622"
inkscape:cx="-461.19183"
inkscape:cy="389.09841"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="0"
inkscape:current-layer="svg2552" />
<path
id="path2031"
d="m 604.2826,369.65498 h -72.27958 v -85.03476 a 102.04171,102.04171 0 1 0 -204.08336,0 v 85.03476 h -72.27955 a 12.755214,12.755214 0 0 0 -12.75522,12.75521 v 297.62165 a 12.755214,12.755214 0 0 0 12.75522,12.75522 H 604.2826 a 12.755214,12.755214 0 0 0 12.75522,-12.75522 V 382.41019 A 12.755214,12.755214 0 0 0 604.2826,369.65498 Z m -112.67104,0 h -123.3004 v -85.83197 a 61.650202,61.650202 0 1 1 123.3004,0 z"
inkscape:connector-curvature="0"
style="fill:#8c8ea0;fill-opacity:1;stroke-width:1.06293" />
<path
id="path1428"
d="m 540.01854,526.74488 c 0,10.20417 0,20.09437 3.21824,29.35662 -33.83075,39.71777 -131.47682,152.67009 -131.47682,152.67009 l 2.27632,28.49319 c 0,0 27.31578,25.9029 31.39745,21.97821 12.08802,-11.77404 19.46642,-19.78039 19.46642,-19.78039 l 5.68293,-34.02698 36.97835,-2.72373 2.96706,-36.73502 38.95638,-0.74569 0.38462,-39.31745 41.35829,1.64836 7.06443,-14.7882 c 12.16651,5.25908 23.23411,7.3784 37.44146,7.3784 53.76813,0 97.33209,-41.91559 97.33209,-93.56439 0,-51.64881 -43.59536,-93.40742 -97.36349,-93.40742 -53.76813,0 -95.68373,41.9156 -95.68373,93.5644 z m 148.15672,-18.21052 a 30.494773,30.494773 0 1 1 -30.49478,-30.49477 30.463375,30.463375 0 0 1 30.49478,30.49477 z"
inkscape:connector-curvature="0"
style="fill:#67ea94;fill-opacity:1;stroke:#8c8ea0;stroke-width:15.6987;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.1-dev (f9311a1, 2019-12-25)"
sodipodi:docname="extendable.svg"
id="svg2552"
version="1.1"
height="1000px"
width="1000px"
y="0px"
x="0px"
viewBox="150 150 650 650">
<metadata
id="metadata2558">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2556" />
<sodipodi:namedview
inkscape:current-layer="svg2552"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="597.2888"
inkscape:cx="336.80252"
inkscape:zoom="0.38374466"
showgrid="false"
id="namedview2554"
inkscape:window-height="829"
inkscape:window-width="1440"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
inkscape:document-rotation="0"
bordercolor="#666666"
pagecolor="#ffffff" />
<path
style="fill:#67ea94;fill-opacity:1;stroke:#8c8ea0;stroke-opacity:1"
id="path3864"
d="m 626.17928,465.50584 h -26.52301 a 1.9177887,1.9177887 0 0 1 -1.91779,-1.91778 v -74.06499 a 37.262634,37.262634 0 0 0 -37.26264,-37.26264 h -74.06499 a 1.9177887,1.9177887 0 0 1 -1.91779,-1.91779 v -26.52301 c 0,-26.0244 -20.61624,-47.81047 -46.64063,-48.26116 a 47.494037,47.494037 0 0 0 -48.32827,47.47486 v 27.30931 a 1.9177887,1.9177887 0 0 1 -1.91779,1.91779 h -74.06499 a 38.106461,38.106461 0 0 0 -37.99141,37.99139 v 67.48698 a 1.9177887,1.9177887 0 0 0 1.91779,1.91779 h 25.80385 c 28.16273,0 51.47345,24.43262 51.8666,52.59536 0.40273,28.64217 -22.54361,54.80081 -51.09948,54.80081 h -26.57097 a 1.9177887,1.9177887 0 0 0 -1.91779,1.91779 v 67.48698 a 38.106461,38.106461 0 0 0 37.99141,37.99139 h 67.48698 a 1.9177887,1.9177887 0 0 0 1.91778,-1.91779 v -20.06964 c 0,-29.03533 23.73264,-54.0337 52.73919,-54.71451 28.86272,-0.67124 54.65698,19.47514 54.65698,48.21319 v 26.57096 a 1.9177887,1.9177887 0 0 0 1.91778,1.91779 h 68.21575 a 37.262634,37.262634 0 0 0 37.26264,-37.26263 v -74.79375 a 1.9177887,1.9177887 0 0 1 1.91779,-1.9178 h 27.30931 c 26.49425,0 47.48445,-21.73813 47.48445,-48.32827 0,-26.59014 -22.24635,-46.64063 -48.27075,-46.64063 z"
stroke-width="32"
stroke-linejoin="round"
stroke-linecap="round"
stroke="#000"
fill="none"
inkscape:connector-curvature="0" />
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.1-dev (f9311a1, 2019-12-25)"
sodipodi:docname="messages.svg"
id="svg2552"
version="1.1"
height="1000px"
width="1000px"
y="0px"
x="0px"
viewBox="150 150 650 650">
<metadata
id="metadata2558">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2556" />
<sodipodi:namedview
inkscape:current-layer="svg2552"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="676.32321"
inkscape:cx="-42.928485"
inkscape:zoom="0.42598983"
showgrid="false"
id="namedview2554"
inkscape:window-height="829"
inkscape:window-width="1440"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
inkscape:document-rotation="0"
bordercolor="#666666"
pagecolor="#ffffff" />
<g
id="g3794">
<path
inkscape:connector-curvature="0"
d="m 585.20406,337.46384 v 148.39991 a 52.284954,52.284954 0 0 1 -52.13599,52.13601 H 379.31305 a 7.4479993,7.4479993 0 0 0 -4.77683,1.73109 l -9.22817,7.69352 v 20.92747 a 52.284953,52.284953 0 0 0 52.13599,52.136 h 153.75502 a 7.4479989,7.4479989 0 0 1 4.77501,1.7311 l 87.25396,72.74889 v -74.47999 h 37.23999 a 52.284953,52.284953 0 0 0 52.13599,-52.136 v -178.752 a 52.284953,52.284953 0 0 0 -52.13599,-52.136 z"
style="fill:#67ea94;fill-opacity:1;stroke:#8c8ea0;stroke-width:29.79200000000000159px;stroke-linejoin:round;stroke-opacity:1"
id="path839-0-4" />
<path
id="path839"
style="fill:none;stroke:#8c8ea0;stroke-width:29.792px;stroke-linejoin:round;stroke-opacity:1"
d="M 532.55599,255.03389 H 249.53201 a 52.284957,52.284957 0 0 0 -52.13599,52.136 v 178.75199 a 52.284957,52.284957 0 0 0 52.13599,52.13599 h 37.24 v 74.48 l 87.25331,-72.74834 a 7.4479995,7.4479995 0 0 1 4.77603,-1.73166 h 153.75464 a 52.284957,52.284957 0 0 0 52.136,-52.13599 V 307.16989 a 52.284957,52.284957 0 0 0 -52.136,-52.136 z"
inkscape:connector-curvature="0" />
<circle
id="circle841"
r="29.791998"
cy="396.54596"
cx="301.66803"
style="fill:#8c8ea0;fill-opacity:1;stroke:#8c8ea0;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
id="circle843"
r="29.791998"
cy="396.54596"
cx="391.04401"
style="fill:#8c8ea0;fill-opacity:1;stroke:#8c8ea0;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
id="circle845"
r="29.791998"
cy="396.54596"
cx="480.41998"
style="fill:#8c8ea0;fill-opacity:1;stroke:#8c8ea0;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.1-dev (f9311a1, 2019-12-25)"
sodipodi:docname="opensource.svg"
id="svg2552"
version="1.1"
height="1000px"
width="1000px"
y="0px"
x="0px"
viewBox="150 150 650 650">
<metadata
id="metadata2558">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2556" />
<sodipodi:namedview
inkscape:current-layer="g2767"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="792.26674"
inkscape:cx="55.230787"
inkscape:zoom="0.25792546"
showgrid="false"
id="namedview2554"
inkscape:window-height="829"
inkscape:window-width="1440"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
inkscape:document-rotation="0"
bordercolor="#666666"
pagecolor="#ffffff" />
<g
id="g2144"
transform="matrix(-2403.8462,0,0,0,-624628.82,150)">
<circle
id="circle937-3"
r="72.800003"
cy="348.21353"
cx="-259.90799"
style="stroke-width:0.65" />
<path
id="path939-9"
d="m -259.90798,441.81355 c -45.123,0 -135.2,27.872 -135.2,83.2 v 41.6 h 270.39999 v -41.6 c 0,-55.328 -90.077,-83.2 -135.19999,-83.2 z"
inkscape:connector-curvature="0"
style="stroke-width:0.65" />
</g>
<g
id="g2767"
transform="translate(-72.893828,73.324518)">
<circle
style="fill:#67ea94;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none"
id="path4674-0"
cx="809.71533"
cy="368.6572"
r="23.734468" />
<circle
r="23.734468"
cy="210.17131"
cx="682.32843"
id="path4674"
style="fill:#67ea94;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none" />
<circle
style="fill:#67ea94;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none"
id="path4674-4"
cx="682.32843"
cy="369.75418"
r="23.734468" />
<g
style="fill:#8c8ea0;fill-opacity:1"
transform="matrix(1.4200109,0,0,1.4200109,247.07705,-14.128526)"
id="g2753">
<circle
id="circle2148"
r="46.799999"
cy="296.29715"
cx="94.256836"
style="fill:#8c8ea0;fill-opacity:1;stroke-width:0.65" />
<path
id="path2150"
d="m 147.55684,369.09715 c -18.304,-9.295 -38.506,-13 -53.299997,-13 -28.977,0 -88.4000005,17.771 -88.4000005,53.3 v 27.3 H 103.35684 v -10.4455 c 0,-12.35 5.2,-24.7325 14.3,-35.0545 7.2605,-8.242 17.4265,-15.8925 29.9,-22.1 z"
inkscape:connector-curvature="0"
style="fill:#8c8ea0;fill-opacity:1;stroke-width:0.65" />
<path
id="path2152"
d="m 216.45684,363.89715 c -33.8455,0 -101.4,20.904 -101.4,62.4 v 31.2 h 202.8 v -31.2 c 0,-41.496 -67.5545,-62.4 -101.4,-62.4 z"
inkscape:connector-curvature="0"
style="fill:#8c8ea0;fill-opacity:1;stroke-width:0.65" />
<circle
id="circle2154"
r="57.200001"
cy="285.89716"
cx="216.45685"
style="fill:#8c8ea0;fill-opacity:1;stroke-width:0.65" />
</g>
<path
style="fill:#8c8ea0;fill-opacity:1;stroke-width:0.493184"
inkscape:connector-curvature="0"
d="m 714.13879,210.27688 a 31.56376,31.56376 0 1 0 -47.83883,27.03141 v 103.46995 a 31.56376,31.56376 0 1 0 31.56376,0 V 237.89518 a 31.593351,31.593351 0 0 0 16.27507,-27.6183 z m -31.56376,-15.78187 a 15.78188,15.78188 0 1 1 -15.78189,15.78187 15.78188,15.78188 0 0 1 15.78189,-15.78187 z m -0.49319,189.38256 a 15.78188,15.78188 0 1 1 15.78188,-15.78188 15.78188,15.78188 0 0 1 -15.78188,15.78188 z"
id="path1533" />
<path
style="fill:#8c8ea0;fill-opacity:1;stroke-width:0.493184"
inkscape:connector-curvature="0"
d="M 824.61195,340.77824 V 239.86791 a 45.422223,45.422223 0 0 0 -45.37291,-45.3729 h -17.26143 v -26.66645 l -43.33112,42.44832 43.33112,42.44833 v -26.66644 h 17.26143 a 13.809145,13.809145 0 0 1 13.80915,13.80914 v 100.91033 a 31.56376,31.56376 0 1 0 31.56376,0 z m -15.78189,43.09933 a 15.78188,15.78188 0 1 1 15.78189,-15.78188 15.78188,15.78188 0 0 1 -15.78189,15.78188 z"
id="path1535" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.1-dev (f9311a1, 2019-12-25)"
sodipodi:docname="platforms.svg"
id="svg2552"
version="1.1"
height="1000px"
width="1000px"
y="0px"
x="0px"
viewBox="150 150 650 650">
<metadata
id="metadata2558">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2556">
<linearGradient
id="linearGradient5705"
osb:paint="solid">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop5703" />
</linearGradient>
</defs>
<sodipodi:namedview
inkscape:current-layer="svg2552"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="438.09337"
inkscape:cx="667.05517"
inkscape:zoom="0.39126799"
showgrid="false"
id="namedview2554"
inkscape:window-height="829"
inkscape:window-width="1440"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
inkscape:document-rotation="0"
bordercolor="#666666"
pagecolor="#ffffff" />
<rect
style="fill:#67ea94;fill-opacity:1;stroke:#000000;stroke-width:2.1259;stroke-opacity:0.894118"
id="rect5697"
width="102.79914"
height="193.76836"
x="655.36603"
y="295.9169"
ry="0" />
<rect
id="rect3910"
style="fill:#67ea94;fill-opacity:1;stroke:#8c8ea0;stroke-width:28.92530000000000001px;stroke-linejoin:round;stroke-opacity:1"
ry="29.051876"
rx="29.051876"
height="274.79065"
width="376.0293"
y="362.05963"
x="225.88797" />
<line
id="line3912"
style="fill:#67ea94;fill-opacity:1;stroke:#8c8ea0;stroke-width:28.92530000000000001px;stroke-linecap:round;stroke-miterlimit:10;stroke-opacity:1"
y2="651.31293"
x2="630.84259"
y1="651.31293"
x1="196.96265" />
<path
style="fill:#8c8ea0;fill-opacity:1;stroke:#2c2d3c;stroke-width:0.417192;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path5091"
d="M 759.78194,284.43303 H 654.64949 a 7.5094606,7.5094605 0 0 0 -7.50946,7.50946 V 490.526 a 7.5094606,7.5094605 0 0 0 7.50946,7.50946 H 759.78194 A 7.5094606,7.5094605 0 0 0 767.2914,490.526 V 291.94249 a 7.5094606,7.5094605 0 0 0 -7.50946,-7.50946 z M 662.15895,471.33516 V 311.13333 h 90.11353 v 160.20183 z" />
<g
id="g7659"
transform="matrix(0.78403486,0,0,0.44950568,541.89089,237.0322)"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;fill:#2c2d3c;fill-opacity:1">
<g
style="fill:#2c2d3c;fill-opacity:1"
id="g7653"
transform="matrix(0.201804,0,0,0.351989,167.289,216.061)">
<path
style="fill:#2c2d3c;fill-opacity:1"
id="path7651"
d="m 250.912,334.664 -55.737,81.739 -16.286,-11.106 63.864,-93.657 c 1.834,-2.69 4.878,-4.301 8.134,-4.304 3.256,-0.003 6.303,1.602 8.142,4.289 l 64.011,93.51 -16.266,11.135 z"
inkscape:connector-curvature="0" />
</g>
<g
style="fill:#2c2d3c;fill-opacity:1"
id="g7657"
transform="matrix(0.205009,0,0,0.357578,174.224,154.227)">
<path
style="fill:#2c2d3c;fill-opacity:1"
id="path7655"
d="m 89.878,582.923 67.115,-98.421 -16.591,-11.314 -67.115,98.421 z"
inkscape:connector-curvature="0" />
</g>
</g>
<g
style="clip-rule:evenodd;fill:#2c2d3c;fill-opacity:1;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"
transform="matrix(4.180922,0,0,2.3970211,-467.70386,-322.83841)"
id="g7659-8">
<g
style="fill:#2c2d3c;fill-opacity:1"
transform="matrix(0.201804,0,0,0.351989,167.289,216.061)"
id="g7653-0">
<path
style="fill:#2c2d3c;fill-opacity:1"
inkscape:connector-curvature="0"
d="m 250.912,334.664 -55.737,81.739 -16.286,-11.106 63.864,-93.657 c 1.834,-2.69 4.878,-4.301 8.134,-4.304 3.256,-0.003 6.303,1.602 8.142,4.289 l 64.011,93.51 -16.266,11.135 z"
id="path7651-2" />
</g>
<g
style="fill:#2c2d3c;fill-opacity:1"
transform="matrix(0.205009,0,0,0.357578,174.224,154.227)"
id="g7657-4">
<path
style="fill:#2c2d3c;fill-opacity:1"
inkscape:connector-curvature="0"
d="m 89.878,582.923 67.115,-98.421 -16.591,-11.314 -67.115,98.421 z"
id="path7655-8" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5 KiB

@ -1 +1 @@
Subproject commit b75f60a91abc22367ec017ab0c9eea828784a6ac
Subproject commit d0339f0297c629f1bd6873b4abccfecb98443538