1
0
Fork 0
jebbatime/README.md

157 lines
3.2 KiB
Markdown

# jebbatime
<img src="res/jebbatime.png"/>
jebbatime is an operating system and application suite for the PineTime watch.
# Build
To build.
* Debian Buster (10).
## Dependenices
### Debian Packages
Install dependencies from Debian repos.
```
sudo apt install \
wget git build-essential libsdl2-2.0-0 python3-click python3-gi \
python3-numpy python3-pexpect python3-pil python3-pip python3-pydbus \
python3-serial unzip \
graphviz python3-recommonmark \
python3-sphinx \
python3-cairo \
python3-ecdsa \
pkg-config \
bluez \
ntpdate \
sudo \
gcc-arm-none-eabi ccache \
fonts-lobstertwo
```
### ccache
Add to `~/.bashrc`:
```
PATH=~/.local/bin:/usr/lib/ccache:$PATH
```
### Source
Source sauce.
```
git clone git@spacecruft.org:jebbatime/jebbatime.git
# Or
git clone https://spacecruft.org/jebbatime/jebbatime.git
cd jebbatime
./scripts/jebbatime-install-deb-deps
./scripts/jebbatime-install-py-deps
```
### Python
Manually, install Python dependencies with `pip`.
```
pip3 install --user -r wasp/requirements.txt
pip3 install --user freetype-py
```
## Bullseye
Debian Bullseye (11) on ppc64le wants `rustc` to build/install `pip`
package `cryptography`.
```
./scripts/jebbatime-install-deb-deps
sudo apt -y install rustc
./scripts/jebbatime-install-py-deps
```
### Submodules
Some submodules are mirrored.
```
make submodules
# XXX grabs some source zips
make softdevice
```
### Compile
Build thang.
```
# Blow out, rinse, repeat. Should take less than a minute or so.
make mrproper
make clean BOARD=pinetime
make submodules
make all BOARD=pinetime
```
### Fonts
HOWTO add font.
```
cd tools/micropython-font-to-py
./font_to_py.py \
/usr/share/fonts/opentype/lobstertwo/LobsterTwo-Bold.otf \
--xmap 64 \
--errchar 58 \
--smallest 48 \
--largest 58 \
lobstertwobold64.py
mv lobstertwobold64.py ../../wasp/fonts/
```
# Setup
This assumes two devices, the sealed watch and the open developers watch.
```
mkdir ~/.config/
cp -p config/jebbatime.conf ~/.config/
# Adjust as needed.
vim ~/.config/jebbatime.conf
```
# Use
Basic scripts are in `scripts/`.
# Upstream
## Fork
jebbatime is a lesser fork of Daniel Thompson's Wasp-os.
* Same licenses.
* Renamed.
* Removed more than added.
* Removing bits not used on Pinetime.
* Removing bits not used by me.
* No step counter.
* No heart rate monitor.
* Etc.
* Not much useful added.
* Nice digital face font. Battery and BLE icon removed from main app.
## Source
Upstream source code:
* https://github.com/daniel-thompson/wasp-os
# Non-free bits
XXX Appears to include non-free "5-Clause Nordic License". `:|`
* https://wasp-os.readthedocs.io/en/latest/five-clause-nordic.html
* https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf52%2Fstruct%2Fnrf52_softdevices.html
"A SoftDevice is a precompiled and linked binary software implementing a wireless protocol developed by Nordic Semiconductor."
* Non-free code gets pulled in via this build script:
`micropython/ports/nrf/drivers/bluetooth/download_ble_stack.sh`
* In `micropython/ports/nrf/drivers/bluetooth/`
```
4. This software, with or without modification, must only be used with a
Nordic Semiconductor ASA integrated circuit.
```