The boards folder uses ~142.8 MB, being the largest in the repository.
This is due mostly to board images, which are in most cases not
optimized for web content. This patch tries to address this problem by
converting all pictures to JPEG (quality 75) and by adjusting its size
up to 750 px (the width of the documentation content). Images that
specified a fixed width in rst files are converted down to that value
instead.
With this patch, folder goes down to ~53.5 MB from 142.8 MB (-~63%).
Note that this patch introduces a new set of binary files to git
history, though (bad).
The process has been automated using this quickly crafted Python script:
```python
from pathlib import Path
import re
import subprocess
def process(doc, image, image_jpeg, size):
subprocess.run(
(
f"convert {image}"
"-background white -alpha remove -alpha off -quality 75"
f"-resize {size}\> {image_jpeg}"
),
shell=True,
check=True,
cwd=doc.parent,
)
if image != image_jpeg:
(doc.parent / image).unlink()
for doc in Path(".").glob("boards/**/*.rst"):
with open(doc) as f:
content = ""
image = None
for line in f:
m = re.match(r"^(\s*)\.\. (image|figure):: (.*)$", line)
if m:
if image:
process(doc, image, image_jpeg, size)
image = Path(m.group(3))
if image.suffix not in (".jpg", ".jpeg", ".png"):
content += line
image = None
continue
image_jpeg = image.parent / (image.stem + ".jpg")
size = 750
content += (
f"{m.group(1)}.. {m.group(2)}:: {image_jpeg}\n"
)
elif image:
m = re.match(r"\s*:height:\s*[0-9]+.*$", line)
if m:
continue
m = re.match(r"\s*:width:\s*([0-9]+).*$", line)
if m:
size = min(int(m.group(1)), size)
continue
content += line
if line == "\n":
process(doc, image, image_jpeg, size)
image = None
else:
content += line
with open(doc, "w") as f:
f.write(content)
```
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Devicetree aliases, accel0 and magn0, were recently introduced to enable
sensor sample applications to support multiple sensor drivers of the
same type and thereby reduce the number of driver-specific sensor sample
applications.
This was implemented by adding devicetree nodelabels to accelerometer
and magnetometer sensor nodes, which unfortunately can suffer from
naming conflicts when using shield boards. Fix the problem by appending
the I2C bus address or SPI chip select to the devicetree nodelabel for
sensor nodes on shield boards only. Base boards are left alone to keep
their nodelabels as short as possible.
Signed-off-by: Maureen Helm <maureen.helm@intel.com>
We now 'select I2C' and/or SPI bus in Kconfig in the sensor driver
Kconfig's so there is no need to have boards do the following:
config I2C
default y if SENSOR
config SPI
default y if SENSOR
Signed-off-by: Kumar Gala <galak@kernel.org>
Set accel0 alias for all boards with the FXOS8700 and compatible
accelerometer to use by the accel_polling sample.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
For all boards that have a magnetometer devicetree alias, configure the
appropriate bus (I2C or SPI) default to be enabled when the sensor
driver class is enabled. This will simplify enabling the magn_polling
sample application for these boards (and using the magnetometer in
general) because it will eliminate the need to add a bunch of
board-specific configuration overlays to the application.
Signed-off-by: Maureen Helm <maureen.helm@intel.com>
Sets a magnetometer devicetree alias for all boards that contain the
FXOS8700 sensor to enable the magn_polling sample application.
Signed-off-by: Maureen Helm <maureen.helm@intel.com>