Skip to content

Commit 02e1eeb

Browse files
1 parent d51e372 commit 02e1eeb

File tree

302 files changed

+5674
-31
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

302 files changed

+5674
-31
lines changed

pull/5/_sources/tools/pluto/devs/index.rst.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Content
2828
#. :dokuwiki:`Schematics <university/tools/m2k/hacking/hardware>`
2929
#. :dokuwiki:`Detailed Performance <university/tools/m2k/devs/performance>`
3030
#. :dokuwiki:`Accessing FPGA JTAG <university/tools/m2k/devs/fpga>` with the
31-
:dokuwiki:`ADALM-JTAGUART </university/tools/uartjtag>` adapter
31+
:ref:`ADALM-JTAGUART <uartjtag>` adapter
3232

3333
#. C Applications or Shell scripts on the Pluto
3434

pull/5/_sources/tools/pluto/hacking/power_amp.rst.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ with pin control.
272272
Testing in IIO Oscilloscope
273273
---------------------------
274274

275-
The :dokuwiki:`Advanced Tab </resources/tools-software/linux-software/fmcomms2_advanced_plugin#axillary_io_adc_dac_control_io_temp_sensor>`
275+
The `Advanced Tab <https://analogdevicesinc.github.io/scopy/plugins/ad936x/index.html>`__
276276
indicates how to control these in the IIO oscilloscope.
277277

278278
.. [1]
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
.. _pluto users asee_papers:
2+
3+
ASEE Papers using the Pluto SDR
4+
================================
5+
6+
This page documents academic papers that utilize the ADALM-Pluto SDR platform
7+
in educational settings.
8+
9+
Incorporating PlutoSDR in Communication Laboratory and Classroom
10+
-----------------------------------------------------------------
11+
12+
**Authors:** John E. Post (Embry-Riddle Aeronautical University), Dennis A.
13+
Silage (Temple University)
14+
15+
**Summary:** The paper explores integrating the $99 Pluto SDR—based on Analog
16+
Devices' AD9363 RF transceiver—into undergraduate communication courses. Key
17+
capabilities include "20 MHz of tunable channel bandwidth between 325 MHz to
18+
3.8 GHz" and full-duplex operation at 61.44 MSPS. The authors discuss software
19+
control via MATLAB, Simulink, GNU Radio, and HDL, plus practical laboratory
20+
demonstrations and student feedback.
21+
22+
**Link:** https://strategy.asee.org/incorporating-plutosdr-in-the-communication-laboratory-and-classroom-potential-or-pitfall
23+
24+
Experience of IoT Transceiver with Affordable SDR Platform
25+
-----------------------------------------------------------
26+
27+
**Author:** Dr. Liang Hong (Tennessee State University)
28+
29+
**Summary:** Project-based learning module combining IoT and SDR concepts using
30+
affordable hardware. The module emphasizes "hands-on experience in IoT domain"
31+
with assessment rubrics and measurable learning outcomes, including improved
32+
student engagement in wireless communications and broadened minority
33+
participation.
34+
35+
**Link:** https://peer.asee.org/experience-of-iot-transceiver-with-affordable-software-defined-radio-platform.pdf
36+
37+
Sample-Based Understanding of Wireless Transceivers
38+
----------------------------------------------------
39+
40+
**Author:** Alexander M. Wyglinski (Worcester Polytechnic Institute)
41+
42+
**Summary:** Educational framework viewing "communication system from the
43+
analog-to-digital converter (ADC) and digital-to-analog converter (DAC)"
44+
perspective. Curriculum progresses from fundamentals through modulation
45+
schemes, timing correction, and multicarrier modulation, utilizing Pluto SDR's
46+
compact form factor for classroom and field learning.
47+
48+
**Link:** https://peer.asee.org/sample-based-understanding-of-wireless-transceivers-and-digital-transmission-via-software-defined-radio.pdf
49+
50+
Software-Defined Radio Course in Computer Science
51+
--------------------------------------------------
52+
53+
**Author:** Marc Lichtman (University of Maryland College Park)
54+
55+
**Summary:** Addresses workforce gaps by offering SDR/DSP coursework within
56+
Computer Science rather than traditional ECE departments, recognizing that
57+
"software focused positions are more abundant" in industry and CS curricula
58+
emphasize coding skills aligned with professional demands.
59+
60+
**Link:** https://peer.asee.org/design-and-outcome-of-a-course-on-software-defined-radio-within-the-computer-science-department.pdf
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.. _pluto users calibration:
2+
3+
Calibrating the ADALM-PLUTO
4+
============================
5+
6+
The Rakon oscillator found on the ADALM-PLUTO is ±25 ppm. We can help calibrate
7+
that out.
8+
9+
.. note::
10+
11+
This page needs more detail later. If you have questions about calibration,
12+
please ask on :ez:`EngineerZone </>`.
Lines changed: 294 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,294 @@
1+
.. _pluto users customizing:
2+
3+
Customizing the ADALM-PLUTO
4+
============================
5+
6+
Changing the Network
7+
--------------------
8+
9+
The `RFC 1918 <https://en.wikipedia.org/wiki/Private_network#Private_IPv4_address_spaces>`__
10+
reserves the ``192.168.*.*`` range for private networks. Analog Devices uses
11+
``192.168.2.*`` for PlutoSDR devices, which may conflict with existing networks
12+
using the same subnet.
13+
14+
The default network settings are:
15+
16+
.. code-block:: ini
17+
18+
[NETWORK]
19+
hostname = pluto
20+
ipaddr = 192.168.2.1
21+
ipaddr_host = 192.168.2.10
22+
netmask = 255.255.255.0
23+
24+
.. image:: images/customizing/win_config_file.png
25+
:width: 500px
26+
27+
You can modify these values to avoid conflicts. Both addresses must remain
28+
unique and on the same subnet.
29+
30+
Multiple Devices
31+
~~~~~~~~~~~~~~~~~
32+
33+
For multiple PlutoSDR units on a single host:
34+
35+
* **USB mode**: Works without modifications
36+
* **Network mode**: Requires unique IP address assignments for each device
37+
38+
Each device must have a distinct subnet to prevent address collisions.
39+
40+
Zeroconf/mDNS
41+
~~~~~~~~~~~~~
42+
43+
The Avahi daemon running on the PlutoSDR enables zero-configuration networking.
44+
The hostname can be customized in ``config.txt`` and allows connection via
45+
``hostname.local`` format.
46+
47+
Linux
48+
^^^^^
49+
50+
Install Avahi support:
51+
52+
.. code-block:: bash
53+
54+
analog@analog:~$ sudo apt-get install avahi-daemon avahi-utils
55+
56+
Discovery commands:
57+
58+
.. code-block:: bash
59+
60+
analog@analog:~$ avahi-resolve --name pluto.local
61+
analog@analog:~$ avahi-browse -d local _ssh._tcp --resolve -t
62+
analog@analog:~$ avahi-browse -d local _sftp-ssh._tcp --resolve -t
63+
64+
Windows
65+
^^^^^^^
66+
67+
Windows implements LLMNR (Link-Local Multicast Name Resolution) by default,
68+
which Avahi doesn't support. You may need applications like Skype, iTunes, or
69+
Adobe Photoshop that bundle compatible protocols.
70+
71+
Config File Actions
72+
-------------------
73+
74+
The ``[ACTIONS]`` section in ``config.txt`` allows you to trigger specific
75+
operations:
76+
77+
.. code-block:: ini
78+
79+
[ACTIONS]
80+
diagnostic_report = 0
81+
dfu = 0
82+
reset = 0
83+
84+
Available actions:
85+
86+
.. list-table::
87+
:header-rows: 1
88+
:widths: 30 70
89+
90+
* - Action
91+
- Function
92+
* - ``diagnostic_report = 1``
93+
- Generates status file for troubleshooting
94+
* - ``dfu = 1``
95+
- Enters Device Firmware Upgrade mode
96+
* - ``reset = 1``
97+
- Reboots the device
98+
99+
**Process**: Edit ``config.txt`` → Save → Eject USB drive (not unplug) →
100+
Device processes changes after 2-3 seconds.
101+
102+
Upgrading the RF Transceiver
103+
-----------------------------
104+
105+
The ADALM-PLUTO can be configured to emulate different AD936x variants:
106+
107+
.. list-table::
108+
:header-rows: 1
109+
:widths: 20 30 20 30
110+
111+
* - Chip
112+
- Tuning Range
113+
- Bandwidth
114+
- Channels
115+
* - AD9363 (default)
116+
- 325-3800 MHz
117+
- 20 MHz
118+
- 2 Rx, 2 Tx
119+
* - AD9364
120+
- 70-6000 MHz
121+
- 56 MHz
122+
- 1 Rx, 1 Tx
123+
* - AD9361
124+
- 70-6000 MHz
125+
- 56 MHz
126+
- 2 Rx, 2 Tx
127+
128+
.. warning::
129+
130+
This only changes the software configuration. The hardware is still an
131+
AD9363, but it will operate with the extended capabilities of the selected
132+
variant.
133+
134+
Configuration via U-Boot
135+
~~~~~~~~~~~~~~~~~~~~~~~~~
136+
137+
Access the device via serial connection or SSH (user: ``root``, password:
138+
``analog``) and use U-Boot ``fw_printenv`` and ``fw_setenv`` commands.
139+
140+
**For AD9364 mode (70-6000 MHz, 1R1T):**
141+
142+
.. code-block:: bash
143+
144+
root@pluto:~# fw_setenv attr_name compatible
145+
root@pluto:~# fw_setenv attr_val ad9364
146+
root@pluto:~# fw_setenv compatible ad9364
147+
root@pluto:~# reboot
148+
149+
**For AD9361 mode with 2R2T:**
150+
151+
.. code-block:: bash
152+
153+
root@pluto:~# fw_setenv attr_name compatible
154+
root@pluto:~# fw_setenv attr_val ad9361
155+
root@pluto:~# fw_setenv compatible ad9361
156+
root@pluto:~# fw_setenv mode 2r2t
157+
root@pluto:~# reboot
158+
159+
Changing the Root Password (v0.32+)
160+
------------------------------------
161+
162+
Initial Setup
163+
~~~~~~~~~~~~~
164+
165+
First-time users must format the mtd2 partition:
166+
167+
.. code-block:: bash
168+
169+
root@pluto:~# device_format_jffs2
170+
171+
This requires confirmation and erases the JFFS2 partition in 64KB increments.
172+
173+
Setting a New Password
174+
~~~~~~~~~~~~~~~~~~~~~~
175+
176+
.. code-block:: bash
177+
178+
root@pluto:~# device_passwd
179+
180+
The system prompts for a new password with validation (minimum length
181+
requirements apply).
182+
183+
Password Reset
184+
~~~~~~~~~~~~~~
185+
186+
If you forget the password, add ``revert_passwd = 1`` under ``[ACTIONS]`` in
187+
``config.txt`` to restore default credentials (root/analog).
188+
189+
Persistent SSH Keys (v0.32+)
190+
-----------------------------
191+
192+
Prerequisites
193+
~~~~~~~~~~~~~
194+
195+
Format the mtd2 partition first using ``device_format_jffs2``.
196+
197+
Setup
198+
~~~~~
199+
200+
.. code-block:: bash
201+
202+
root@pluto:~# device_persistent_keys
203+
204+
This generates 256-bit ECDSA keys stored on the mtd2 partition. The system
205+
validates the MD5 sum at boot and uses persistent keys instead of generating
206+
temporary ones.
207+
208+
The output includes:
209+
210+
* Key fingerprint (SHA1)
211+
* Public key portion (ECDSA format)
212+
213+
USB Ethernet Compatibility Modes
214+
---------------------------------
215+
216+
Supported Protocols
217+
~~~~~~~~~~~~~~~~~~~
218+
219+
.. list-table::
220+
:header-rows: 1
221+
:widths: 30 70
222+
223+
* - Mode
224+
- Platform Support
225+
* - RNDIS (default)
226+
- Windows ✓, Linux ✓, macOS ✗
227+
* - CDC-NCM
228+
- Linux ✓, macOS ✓, iPad ✓
229+
* - CDC-ECM
230+
- Linux ✓, Android ✓
231+
232+
.. note::
233+
234+
* Default RNDIS doesn't work on macOS.
235+
* iPad requires high-power USB 2.0 support (500mA); iPhone doesn't qualify.
236+
237+
Configuration Methods
238+
~~~~~~~~~~~~~~~~~~~~~
239+
240+
**Method 1 - Config File:**
241+
242+
.. code-block:: ini
243+
244+
[SYSTEM]
245+
usb_ethernet_mode = ncm
246+
247+
**Method 2 - U-Boot Environment:**
248+
249+
.. code-block:: bash
250+
251+
root@pluto:~# fw_setenv usb_ethernet_mode ncm
252+
root@pluto:~# reboot
253+
254+
**Mode Values:**
255+
256+
* ``rndis`` or blank = RNDIS (default)
257+
* ``ncm`` = CDC-NCM
258+
* ``ecm`` = CDC-ECM
259+
260+
Access Methods
261+
--------------
262+
263+
Serial Connection
264+
~~~~~~~~~~~~~~~~~
265+
266+
Available through platform-specific drivers. See the
267+
:ref:`driver installation pages <pluto-m2k drivers windows>`.
268+
269+
SSH/Ethernet
270+
~~~~~~~~~~~~
271+
272+
Connect to ``192.168.2.1`` (default):
273+
274+
* Username: ``root``
275+
* Password: ``analog``
276+
277+
.. code-block:: bash
278+
279+
analog@analog:~$ ssh root@192.168.2.1
280+
281+
Web Interface
282+
~~~~~~~~~~~~~
283+
284+
The mass storage device is accessible when connected via USB. Open
285+
``config.txt`` in a text editor to modify settings.
286+
287+
Important Notes
288+
---------------
289+
290+
* File edits require proper ejection (not unplugging) to trigger processing
291+
* Hostname customization enables convenient network discovery
292+
* Multiple devices require subnet separation to prevent conflicts
293+
* Password and SSH key changes persist across reboots when stored on mtd2
294+
* Platform-specific USB mode selection prevents driver incompatibilities

0 commit comments

Comments
 (0)