You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NOTE: The below instructions are for Jade developers with access to Jade development boards or for those wanting to build and flash their own esp32/esp32s3 consumer devices - e.g. M5Stack or TTGO T-Display boards.
4
-
They are not for updating the firmware of an official Blockstream Jade HW unit - these can only be updated in-app, or using the 'update_jade_fw.py' script - see FWUPDATE.md
3
+
* DO NOT ATTEMPT TO BUILD/FLASH WITH OFFICIAL BLOCKSTREAM JADE HARDWARE UNITS
5
4
6
-
* DO NOT ATTEMPT THE BELOW WITH BLOCKSTREAM OFFICIAL BLOCKSTREAM JADE HW UNITS
5
+
The below instructions are for developers with access to Jade development
6
+
devices, or for those wanting to build and flash their own esp32/esp32s3
7
+
DIY consumer devices such as M5Stack or TTGO T-Display boards.
7
8
8
-
To build you can use the docker image (see Dockerfile) or install the esp-idf toolchain and repository following the commands below.
9
+
Official Blockstream Jade hardware units can only be updated via a supported
10
+
companion app, or by using the [Firmware Update Instructions](./FWUPDATE.md).
9
11
10
12
# DIY Hardware & Programming Notes
11
-
For information about suitable DIY hardware, as well as suggested configuration profiles and notes on secure boot,
12
-
see [DIY Guide](./diy/)
13
+
For information about suitable DIY hardware, as well as suggested configuration
14
+
profiles and notes on secure boot, see the[DIY Guide](./diy/)
13
15
14
16
# Build dependencies
15
17
16
-
Cmake and ninja are needed to build the firmware.
18
+
Cmake and ninja are needed to build Jade firmware images.
17
19
18
20
On Debian based distributions, install with with:
19
21
@@ -27,58 +29,47 @@ On MacOS:
27
29
brew install cmake ninja
28
30
```
29
31
30
-
Make sure to use a recent Python version (e.g. Python 3.11) as the current system version which is used by the install script below.
31
-
Failure to do so may result in problems installing Python dependencies.
32
+
Make sure to use a recent Python version (Python 3.11+) when running the
33
+
commands below. Failure to do so may result in problems installing Python
34
+
dependencies.
32
35
33
-
# Set up the environment
36
+
# Set up the build environment
34
37
35
-
Jade requires the esp-idf sdk.
38
+
Jade requires the esp-idf SDK. You can use our docker image to build or
39
+
install the esp-idf toolchain locally using the commands below.
36
40
37
-
More information is available in the [Espressif official guide](https://docs.espressif.com/projects/esp-idf/en/v5.4/esp32/get-started/index.html).
41
+
See the [Espressif official guide](https://docs.espressif.com/projects/esp-idf/en/v5.4/esp32/get-started/index.html)
Set up the idf environmental and make the `idf.py` command available:
52
-
53
-
```
54
-
. $HOME/esp/esp-idf/export.sh
55
-
```
56
-
57
-
# Devices
58
-
59
-
There are currently three Jade device targets:
46
+
There are currently four official Jade device targets:
60
47
- jade: The original Jade 1.0 with a selection wheel.
61
-
- jade_v1_1: Jade 1.1, which has a rocker/jog-wheel in place of the selection wheel.
62
-
- jade_v2: Jade Plus, with a larger screen and left/right selection buttons in place of a wheel or rocker.
48
+
- jade_v1_1: Jade 1.1, with a rocker/jog-wheel instead of the selection wheel.
49
+
- jade_v2: Jade Plus, with a larger screen and left/right selection buttons
50
+
instead of a wheel or rocker.
63
51
- jade_v2c: Jade Core, Jade Plus without camera and battery.
64
52
65
53
Change `jade` in any calls to the `switch_to.sh` script below to the
66
54
appropriate device you wish to target from the list above.
67
55
68
56
# Serial port
69
57
70
-
The serial port pseudo-tty file for Jade access via USB is usually `/dev/ttyACM0` or `/dev/ttyUSB0`, or `/dev/cu.SLAB_USBtoUART` on MacOS. Note that the supplied docker-compose.yml assumes the Jade device is at /dev/ttyUSB0.
58
+
The serial port pseudo-tty file for Jade access via USB is usually
59
+
`/dev/ttyACM0` or `/dev/ttyUSB0` (or `/dev/cu.SLAB_USBtoUART` on MacOS).
71
60
72
-
In order to have permission to use USB to install firmware, your user should be in `dialout` group on Debian
73
-
based distributions. Other distributions may use a different group name: Check the group of the serial
74
-
port pseudo-tty file using `ls -l` command to determine the required group, e.g:
61
+
In order to have permission to use USB to install firmware, your user should
62
+
be in the `dialout` group on Debian based distributions. Other distributions
63
+
may use a different group name: Check the group of the serial port pseudo-tty
64
+
file using `ls -l` to determine the required group, e.g:
If you have errors relating to unknown bytes when flashing, place your device
@@ -161,14 +214,18 @@ Beyond the build configurations in the `configs/` directory, you can edit the co
161
214
manually with the `menuconfig` tool:
162
215
163
216
```
164
-
idf.py menuconfig
217
+
$ idf.py menuconfig
165
218
```
166
219
167
-
Note: for any but the simplest CI-like build with no GUI, no camera, no user-interaction etc. it is recommended that PSRAM is available and enabled. ( Component Config -> ESP-32 specific -> Support external SPI connected RAM )
220
+
**NOTE**: for any but the simplest CI-like build with no GUI, no camera, no
221
+
user-interaction etc. it is recommended that PSRAM (available under
222
+
`Component Config -> ESP-32 specific -> Support external SPI connected RAM`
223
+
is available and enabled.
168
224
169
225
# Run the tests
170
226
171
-
Virtualenv and bluez-tools are required, you can install them on Debian based distributions with:
227
+
Virtualenv and bluez-tools are required, you can install them on Debian
Note that the tests require a CI build; this is a configuration that automatically
249
+
The tests require a CI build; this is a configuration that automatically
192
250
accepts the default action without requiring user interaction. This is enabled using
193
251
the `--ci` argument to `switch_to.sh` or by setting `CONFIG_DEBUG_UNATTENDED_CI=y`
194
252
in sdkconfig.defaults.
195
253
196
254
Debug support is also required to expose debug functions for testing. Use `--debug`
197
255
or set `CONFIG_DEBUG_MODE=y` to enable this.
198
256
199
-
# Use docker
200
-
201
-
If you are on MacOS, you are better off setting up the environment locally as detailed above, rather than trying to get access to your device from the docker container. For more, see [this article](https://dev.to/rubberduck/using-usb-with-docker-for-mac-3fdd).
202
-
203
-
The supplied docker-compose.yml assumes the Jade device is at /dev/ttyUSB0, but note that it may instead be e.g. /dev/ttyACM0 (or have another numeric suffix or path depending on the host operating system).
204
-
205
-
The build steps within docker are the same as detailed above, e.g:
0 commit comments