We will provide it within two day.
Steps to Install Periplex 0.0.2
-
Frsrt you should Run the following command to refresh the package list:
sudo apt update && sudo apt upgrade
-
Install the periplex package,run the following command:
sudo apt install periplex
-
After installing the periplex package, you need to reboot the Board:
sudo reboot
Once the system is back online, you can use periplex-sync
as before.
Regarding Your Issue
We have resolved the issue of receiving 3000 bytes at 9600 baud rate without any delay. However, at 115200 baud rate, the same approach does not work due to internal FIFO limitations.
To successfully receive data at 115200 baud, you can use the following Python script, which introduces a 20-millisecond delay between transmitted packets:
import serial
import time
import random
import string
# Open the serial port
ser = serial.Serial(
port='/dev/ttyUSB0', # UART port
baudrate=115200, # Common default baudrate, adjust as needed
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
timeout=1 # Read timeout in seconds
)
def generate_random_string(length):
"""
Generate a random string of specified length
using uppercase letters and spaces
"""
# Use uppercase letters and space for variety
characters = string.ascii_uppercase + ' '
return ''.join(random.choice(characters) for _ in range(length))
# Generate a long random string of the same length as the previous numeric string
data = generate_random_string(3000) # Same approximate length as previous data
try:
# Write data in chunks with a delay
chunk_size = 100 # Adjust this value to control transfer speed
delay_between_chunks = 0.02 # 20 milliseconds between chunks
for i in range(0, len(data), chunk_size):
# Write a chunk of data
chunk = data[i:i+chunk_size]
ser.write(chunk.encode('utf-8'))
# Print progress
print(f"Sent chunk {i//chunk_size + 1}, {len(chunk)} bytes")
# Delay between chunks
time.sleep(delay_between_chunks)
print("Random data successfully written to /dev/ttyUSB0")
except serial.SerialException as e:
print(f"Error opening serial port: {e}")
except Exception as e:
print(f"An error occurred: {e}")
finally:
# Close the serial port
ser.close()
The reason for the issue at 115200 baud rate is that the internal FIFO buffer gets filled up quickly, causing data loss. However, for smaller data packets, transmission at 115200 baud works correctly.
We are actively working on a solution, and a new updated package will be released soon to address this issue.
Thank you for the updated version of Periplex, however now I am not able to open ttyPERI0 port on minicom…it is giving me the following error :-
I have configured 3 UART ports :-
Also, it would be really helpful if you could provide something like a patch note for the current update of Periplex.
Make sure to do this: After installing Periplex 0.0.2, run the periplex-sync
command again to generate 3 UARTs.
Can you provide the service log, Periplex version, dmesg log, and kernel details?
For service log:
sudo systemctl status periplexer.service > service_log.txt
To check the version of the Periplex:
apt info periplex
For dmesg log:
sudo dmesg > dmesg.txt
To check kernel details:
uname -a
Here are the following details :-
vicharak@vicharak:~$ uname -a
Linux vicharak 5.10.233-vaaman #vaaman SMP Tue Mar 25 16:49:58 IST 2025 aarch64 aarch64 aarch64 GNU/Linux
vicharak@vicharak:~$ apt info periplex
Package: periplex
Version: 0.0.2
Priority: optional
Section: admin
Maintainer: vatsal vhkevadiya15@gmail.com
Installed-Size: 120 kB
Depends: libxml2-dev, libcjson-dev, libsqlite3-dev, curl, libwebsockets-dev, libjson-c-dev, libssl-dev, libcurl4-gnutls-dev, rah-service (>= 1.2.0), vicharak-config (>= 0.1.6), linux-image-5.10.233-vaaman, bitman
Conflicts: linux-image-5.10.160-vaaman, linux-image-5.10.226-vaaman, linux-image-5.10.228-vaaman, linux-image-5.10.230-vaaman
Download-Size: 26.6 kB
APT-Sources: http://apt.vicharak.in stable-vaaman/vaaman arm64 Packages
Description: Generate peripherals on the demand
Periplex gives Users access to create peripherals to the existing board using the FPGA on vaaman.
N: There is 1 additional record. Please use the ‘-a’ switch to see it
dmesg_01_04_25.txt (42.8 KB)
service_log.txt (498 Bytes)
Can you provide the rah-service log and once check the overlays settings for
Vaaman FPGA communication
overlay is enable ?
For rah-service log:
sudo systemctl status rah.service > rah_log.txt
For check the overlays settings, follow below steps:
Step-1 : Run the command sudo vicharak-config
Step-2 : Select the Overlays
options.
Step-3 : after selecting the Overlays
Navigate to the Manage Overlays
.
step-4 : Enable the Enable Vaaman FPGA communication
overlay.
Note: if the Enable Vaaman FPGA communication
overlay is not visible in the Manage Overlays
checkbox, please send me a screenshot of the checkbox settings.
Vaaman FPGA overlay checkbox overlay isn’t visible.
Here is the rah-service log :-
● rah.service - Rah Service
Loaded: loaded (/etc/systemd/system/rah.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-11-22 02:27:22 IST; 1 year 4 months ago
Main PID: 1539 (rah_service)
Tasks: 3 (limit: 2303)
Memory: 8.4M
CPU: 299ms
CGroup: /system.slice/rah.service
└─1539 /usr/bin/rah_service
Nov 22 02:27:22 vicharak rah_service[1539]: using card ‘/dev/dri/card0’
Nov 22 02:27:22 vicharak rah_service[1539]: mode for connector 139 is 1280x1024
Could you please send a screenshot of the output of the following commands?
ls /opt/bitman
cat /opt/periplex/content.txt
Follow each of the steps below to resolve the issue. Do not skip any steps:
Step 1: Remove Bitman sudo apt purge bitman
Step 2: Remove Periplex sudo apt purge periplex
Step 3: Clean up unused packages sudo apt autoremove
Step 4: Update kernel dependencies sudo apt update && sudo apt upgrade
Step 5: Reinstall Periplex sudo apt install periplex
Step 6: Reboot the system sudo reboot
Step 7: After reboot, you can use the periplex-sync
command as before.
For detailed guidance, refer to the official documentation: Usage guide for Periplex | Vicharak
hello,
Which pins should I use for UART communication?
I have already used ‘GPIOT_RXP28’ for TX and ‘GPIOT_RXN28’ for RX.
I need two more UART pins for communication
You can configure any pin to be UART pin, that’s the beauty of an FPGA. For example I am using the pins GPIOL_73, GPIOL_75, GPIOR_173 and GPIOL_72 as UART Rx and Tx pins for /PERI1 and /PERI2 peripherals.
Thank you. I will try and let you know.
I am using GPIO pins GPIOL_73 and GPIOL_75, as well as GPIOR_173 and GPIOR_174, as UART Rx and Tx pins for the ttyPERI0 peripheral, but these pins are not working as UART.
These pins are working as UART pins ‘GPIOT_RXP28’ for TX and ‘GPIOT_RXN28’ for RX. I need two more UART pins for communication.
can you send the json
file
{
“uart”: [
{
“id”: 0,
“TX”: “GPIOL_73”,
“RX”: “GPIOL_75”
}
],
“i2c”: ,
"gpio": [
{
"id": 1,
"GPIO-0": "GPIOR_168",
"GPIO-1": "GPIOL_17",
"GPIO-2": "GPIOL_20",
"GPIO-3": "GPIOL_18",
"GPIO-4": "GPIOR_187",
"GPIO-5": "GPIOL_24",
"GPIO-6": "GPIOL_66",
"GPIO-7": "GPIOL_62"
}
],
"pwm": [],
"ws": [],
"spi":[],
"onewire": [],
"can": [],
"i2s": []
}
If you modify the JSON configuration file, you must run the periplex-sync
command again.
you can run like this
sudo periplex-sync -p <json_file>
Yes, I used this command after changing the JSON file.
sudo periplex-sync -p config.json
After running periplex-sync
for the new configuration, the script will prompt you to reboot the system. Make sure to reboot once.
Yes, I rebooted the system, but it is still not working.