Skip to content

Commit c115288

Browse files
authored
Fixed newlines...
1 parent e85b524 commit c115288

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

README.md

+18-18
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,20 @@ The ESP camera component was modified to send the data as it's received from the
1717

1818
The wifi data is send using packet injection with configurable rate - from 2 MB CCK to 72MB MCS7 - and power.
1919

20-
The air unit can also record the video straight from the camera to a sd card. The format is a rudimentary MJPEG without any header so when playing back the FPS will be whatever your player will decide.
20+
The air unit can also record the video straight from the camera to a sd card. The format is a rudimentary MJPEG without any header so when playing back the FPS will be whatever your player will decide.\
2121
There is significant buffering when writing to SD (3MB at the moment) to work around the very regular slowdowns of sd cards.
2222

2323

2424

2525
The receiver is a Raspberry PI 4 with 2 wifi adapters in monitor mode (TL-WN722N). The adapters work as diversity receivers and the data is reconstructed from the FEC packets.
2626

27-
The JPEG decoding is done with turbojpeg to lower latency and - based on the resolution - can take between 1 and 7 milliseconds.
27+
The JPEG decoding is done with turbojpeg to lower latency and - based on the resolution - can take between 1 and 7 milliseconds.\
2828
It's then uploaded to 3 separate textures as YUV and converted to RGB in a shader.
2929

30-
The link is bi-directional so the ground station can send data to the air unit. At the moment it sends camera and wifi configuration data but I plan to have a full bi-directional serial port for telemetry coming soon.
30+
The link is bi-directional so the ground station can send data to the air unit. At the moment it sends camera and wifi configuration data but I plan to have a full bi-directional serial port for telemetry coming soon.\
3131
The back link uses 64byte packets with a 2/6 FEC encoding (so quite solid) at a low wifi rate (I think 1Mb).
3232

33-
This is very WIP at the moment, but it proves that the ESP32 can definitely stream video with very low latency.
33+
This is very WIP at the moment, but it proves that the ESP32 can definitely stream video with very low latency. \
3434
I plan to use this is a long range micro quad.
3535

3636
Here is a video shot at 30 FPS at 800x600 (video converted from the source mjpeg):
@@ -44,18 +44,18 @@ https://user-images.githubusercontent.com/10252034/116135308-43c08c00-a6d1-11eb-
4444
- In the air_firmware, execute this: `idf.py -p /dev/tty.usbserial1 flash monitor`. Replace `tty.usbserial1` with your serial port.
4545
- Make sure you place the board in flashing mode bu connecting IO0 to GND and resetting the board.
4646
- After compiling and resetting, you should get some stats per second, smth like this in the console:
47-
`WLAN S: 695196, R: 350, E: 0, D: 0, % : 0 || FPS: 64, D: 401268 || D: 0, E: 0`
48-
`WLAN S: 761616, R: 420, E: 0, D: 0, % : 0 || FPS: 69, D: 443679 || D: 0, E: 0`
49-
`WLAN S: 763092, R: 420, E: 0, D: 0, % : 0 || FPS: 69, D: 449410 || D: 0, E: 0`
50-
`WLAN S: 764568, R: 420, E: 0, D: 0, % : 0 || FPS: 69, D: 450996 || D: 0, E: 0`
47+
`WLAN S: 695196, R: 350, E: 0, D: 0, % : 0 || FPS: 64, D: 401268 || D: 0, E: 0`\
48+
`WLAN S: 761616, R: 420, E: 0, D: 0, % : 0 || FPS: 69, D: 443679 || D: 0, E: 0`\
49+
`WLAN S: 763092, R: 420, E: 0, D: 0, % : 0 || FPS: 69, D: 449410 || D: 0, E: 0`\
50+
`WLAN S: 764568, R: 420, E: 0, D: 0, % : 0 || FPS: 69, D: 450996 || D: 0, E: 0`\
5151
`WLAN S: 761616, R: 350, E: 0, D: 0, % : 0 || FPS: 69, D: 449347 || D: 0, E: 0`
5252

5353
### Raspberry Pi ground station:
5454
- I use a Raspberry Pi 4 in a RasPad3 enclosure, but any HDMI display should work. Raspberry Pi 3 should work as well.
5555
- You need to use 2 TL-WN722N adapters connected to USB. Check the EZ-wifibroadcast wiki for more info about the hardware revision of these adapters and alternative adapters. Make sure you get the 2.4GHz ones, of course. NOTE: the adapters are critical, not all work in monitor mode!
56-
- If you only have one adapter or they are not called `wlan1` & `wlan2`, check the `main.cpp` file and change the names and number there:
57-
`rx_descriptor.interfaces = {"wlan1", "wlan2"};`
58-
`tx_descriptor.interface = "wlan1";`
56+
- If you only have one adapter or they are not called `wlan1` & `wlan2`, check the `main.cpp` file and change the names and number there:\
57+
`rx_descriptor.interfaces = {"wlan1", "wlan2"};`\
58+
`tx_descriptor.interface = "wlan1";`\
5959
Eventually this should be command line driven.
6060
- The UI uses ImGui and is touch driven - but mouse should work as well
6161
- Dependencies:
@@ -64,15 +64,15 @@ https://user-images.githubusercontent.com/10252034/116135308-43c08c00-a6d1-11eb-
6464
- Run `sudo -E DISPLAY=:0 ./gs`
6565

6666
The GS can run both with X11 and without. However, to run it without GS you need to compile SDL2 yourself to add support for kmsdrm:
67-
`git clone https://github.com/libsdl-org/SDL.git`
68-
`cd SDL`
69-
`mkdir build`
70-
`cd build`
71-
`../configure --disable-video-rpi --enable-video-kmsdrm --enable-video-x11 --disable-video-opengl`
72-
`make -j5`
67+
`git clone https://github.com/libsdl-org/SDL.git`\
68+
`cd SDL`\
69+
`mkdir build`\
70+
`cd build`\
71+
`../configure --disable-video-rpi --enable-video-kmsdrm --enable-video-x11 --disable-video-opengl`\
72+
`make -j5`\
7373
`sudo make install`
7474

75-
To run without X11 using the just compiled SDL2, do this:
75+
To run without X11 using the just compiled SDL2, do this:\
7676
`sudo -E LD_LIBRARY_PATH=/usr/local/lib DISPLAY=:0 ./gs`
7777

7878
Some other things that should improve latency:

0 commit comments

Comments
 (0)