Skip to content

Commit 191b715

Browse files
committed
bricks/ev3: Update installation instructions.
The microSD card is no longer required.
1 parent cef8586 commit 191b715

File tree

1 file changed

+30
-99
lines changed

1 file changed

+30
-99
lines changed

bricks/ev3/README.md

Lines changed: 30 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -17,137 +17,68 @@ Since it won't have Linux, it won't have certain features like Wi-Fi or support
1717
for advanced accessories. For those uses cases, Pybricks 2.0 on ev3dev will
1818
remain available.
1919

20-
## Requirements
21-
22-
Since USB communication is not yet implemented, you need the following hardware
23-
to use this:
24-
25-
- A USB serial adapter to connect to sensor port 1 on the EV3 brick. You could
26-
use [this one](http://www.mindsensors.com/ev3-and-nxt/40-console-adapter-for-ev3).
27-
Or make your own using a standard USB to serial adapter and connecting it to the
28-
data wires of an EV3 cable.
29-
- A microSD card (32 GB or less) to store the firmware image.
30-
3120
## Prerequisites
3221

3322
Before attempting to build this, please follow the instructions to build the
3423
firmware for one of the other targets, such as the SPIKE Prime Hub, as
35-
explained [here](../../CONTRIBUTING.md).
24+
explained [here](../../CONTRIBUTING.md). Make sure that `pybricksdev` is
25+
installed.
3626

37-
Then, install the following additional tools:
27+
Install the following additional tools:
3828

3929
```
4030
sudo apt install u-boot-tools
4131
```
4232

43-
Prepare a microSD card (32 GB or less) and format it as a single FAT32
44-
partition. It is not necessary needed to set any boot flags.
33+
Unlike most other alternative EV3 firmware solutions, Pybricks does not require
34+
using a microSD card. Instead, Pybricks is installed as a firmware update.
4535

46-
In the following examples, we assume that the formatted volume is called
47-
`ev3`.
4836

49-
## Building the firmware
37+
## Put EV3 into update mode
5038

39+
- Attach the USB cable (you can leave it plugged in all the time).
40+
- Make sure the EV3 is off.
41+
- Hold right button and start the EV3 with the center button.
42+
- The display should now say "Updating.."
43+
44+
## Building and deploying the firmware
5145

5246
```bash
5347
# Navigate to the repository.
5448
cd pybricks-micropython
5549

56-
# Build the uImage.
50+
# Optional: clean.
5751
make -C bricks/ev3 clean
58-
make -C bricks/ev3 uImage -j
59-
60-
# Copy the result and resources to the root of microSD card, e.g:
61-
cp bricks/ev3/build/uImage /media/user_name/ev3/uImage
6252

53+
# Build firmware and deploy with Pybricksdev.
54+
make -C bricks/ev3 -j deploy
6355
```
6456

65-
Note: This should not be confused with other existing or outdated EV3 builds in the `bricks` folder such as the `ev3dev` or `ev3rt` builds. They can serve as inspiration, but are completely separate from this build. From a code point of view, this new `bricks/ev3` build will be a lot more like `bricks/primehub`.
57+
Instead, you can download the [latest nightly build](https://nightly.link/pybricks/pybricks-micropython/workflows/build/master). Install it as follows:
58+
59+
```
60+
pybricksdev flash ~/Downloads/ev3-firmware-build-3782-git1bcea603.zip
61+
```
6662

6763
## Operating the brick
6864

69-
- Connect your serial adapter to sensor port 1 on the EV3 brick.
70-
- Start a terminal emulator such as `screen` or `picocom`.
71-
- Insert the microSD card into the EV3 brick.
72-
- Press the center button to boot.
65+
Press the center button to turn on the EV3. Press the back button to turn it
66+
off.
7367

74-
You should see something like the following output:
68+
If the hub freezes, press and hold the back and center buttons for several seconds to
69+
reboot.
7570

76-
```
77-
EV3 initialization passed!
78-
Booting EV3 EEprom Boot Loader
79-
80-
EEprom Version: 0.60
81-
EV3 Flashtype: N25Q128A13B
82-
83-
EV3 Booting system
84-
85-
Jumping to entry point at: 0xC1080000
86-
87-
88-
U-Boot 2009.11 (Oct 26 2012 - 10:30:38)
89-
90-
I2C: ready
91-
DRAM: 64 MB
92-
MMC: davinci: 0
93-
In: serial
94-
Out: serial
95-
Err: serial
96-
ARM Clock : 300000000 Hz
97-
DDR Clock : 132000000 Hz
98-
Invalid MAC address read.
99-
Hit 'l' to stop autoboot: 0
100-
reading boot.scr
101-
102-
** Unable to read "boot.scr" from mmc 0:1 **
103-
reading uImage
104-
105-
209016 bytes read
106-
## Booting kernel from Legacy Image at c0007fc0 ...
107-
Image Name:
108-
Image Type: ARM Linux Kernel Image (uncompressed)
109-
Data Size: 208952 Bytes = 204.1 kB
110-
Load Address: c0008000
111-
Entry Point: c0008000
112-
Loading Kernel Image ... OK
113-
OK
114-
115-
Starting kernel ...
116-
117-
System init in platform.c called from startup.s
118-
119-
Hello, world at time (ms): 0
120-
Hello, world at time (ms): 0
121-
Hello, world at time (ms): 0
122-
Hello, world at time (ms): 0
123-
Hello, world at time (ms): 0
124-
Hello, world at time (ms): 0
125-
Hello, world at time (ms): 0
126-
Hello, world at time (ms): 0
127-
Hello, world at time (ms): 0
128-
Hello, world at time (ms): 0
129-
Traceback (most recent call last):
130-
131-
File "%q", line %dhello.py", line %d9���D�, in %q
132-
<module>
133-
KeyboardInterrupt:
134-
Pybricks MicroPython v1.20.0-23-g6c633a8dd on 2024-06-08; MINDSTORMS EV3 Brick with TI Sitara AM1808
135-
Type "help()" for more information.
136-
>>>
137-
```
71+
## Interfacing with the EV3
13872

139-
You can remove the microSD card after booting. After updating the uImage, you
140-
can try out your new build by rebooting: Press and hold the center and back
141-
buttons for 4 seconds.
73+
The data wires on sensor port 1 are set up as a UART for debugging. This
74+
provides the MicroPython REPL. All other ports can be used normally.
14275

143-
For now, there is just the REPL and several builtin MicroPython modules.
144-
Sensors and motors are not yet enabled.
76+
A REPL is also available as a USB serial device
77+
after you reboot the brick at least once. This feature may go away when we enable a proper USB driver for downloading and running programs.
14578

14679
## Development status
14780

148-
This is a highly experimental development. Pretty much nothing is enabled yet.
149-
The intention is to prepare a minimal build where we can add drivers one by
150-
one, with help from experts in the community.
81+
This is a highly experimental development. Sensors, motors, and some EV3 peripherals [are working](https://www.youtube.com/watch?v=9Iu6YpFLwKo). Please refer to our discussion forums for a status or to help with ongoing developments.
15182

15283
Inspiration for future hardware implementation:
15384
- [ev3dev](https://www.ev3dev.org/docs/kernel-hackers-notebook/ev3dev-linux-kernel/): Well documented resources for EV3 on debian Linux.

0 commit comments

Comments
 (0)