{"id":28268764,"url":"https://github.com/iory/riberry","last_synced_at":"2026-01-26T15:01:21.555Z","repository":{"id":229845302,"uuid":"777146767","full_name":"iory/riberry","owner":"iory","description":"Riberry: Robot Intelligent Binary Enhancement Resource Revolutionary Yield","archived":false,"fork":false,"pushed_at":"2025-09-22T11:27:10.000Z","size":3180,"stargazers_count":2,"open_issues_count":0,"forks_count":5,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-09-29T11:28:45.562Z","etag":null,"topics":["esp32","iot","m5stack","radxa","raspberrypi","robot","robotics","vim4"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-25T09:45:23.000Z","updated_at":"2025-09-22T11:23:14.000Z","dependencies_parsed_at":"2024-04-16T15:32:58.968Z","dependency_job_id":"89604451-6e90-4107-bb8d-1918f97d9707","html_url":"https://github.com/iory/riberry","commit_stats":null,"previous_names":["iory/riberry"],"tags_count":99,"template":false,"template_full_name":null,"purl":"pkg:github/iory/riberry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iory%2Friberry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iory%2Friberry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iory%2Friberry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iory%2Friberry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iory","download_url":"https://codeload.github.com/iory/riberry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iory%2Friberry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28781308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","iot","m5stack","radxa","raspberrypi","robot","robotics","vim4"],"created_at":"2025-05-20T15:13:23.724Z","updated_at":"2026-01-26T15:01:21.549Z","avatar_url":"https://github.com/iory.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Riberry: Robot Intelligent Binary Enhancement Resource Revolutionary Yield\n\n## Install Riberry\n\n### For radxa\n\nAfter cloning this repository into your catkin workspace, build it:\n\n```\ncatkin build riberry_startup\n```\n\nAfter sourcing, install the systemd-related programs with the following commands:\n\n```\npip3 install -e .\nsudo ./install.py\nsudo reboot\n```\n\n#### Ubuntu 24.04 and later\n\nFor Ubuntu 24.04 and later versions, the installation script automatically sets up a Python virtual environment at `~/.riberry_venv`. Simply run:\n\n```bash\nsudo ./install.py\nsudo reboot\n```\n\nThe installation script will:\n- Detect Ubuntu 24.04+\n- Install python3-venv package\n- Create a virtual environment at `~/.riberry_venv`\n- Install the riberry package with all dependencies\n\nIf you prefer to set up the environment manually:\n\n```bash\n# Create virtual environment\npython3 -m venv ~/.riberry_venv\n\n# Activate the virtual environment\nsource ~/.riberry_venv/bin/activate\n\n# Install riberry package in development mode (this will install all dependencies)\npip install -e .\n\n# Run the installation script\nsudo ./install.py\nsudo reboot\n```\n\nThe systemd service scripts will automatically detect Ubuntu 24.04+ and use the virtual environment.\n\nYou can use the dry-run option to see which scripts will be installed without actually installing them:\n\n```\n./install.py --dry-run\n```\n\n### For atom s3 and atom echo\n\nPlease write the programs found under the [firmware](https://github.com/iory/riberry/tree/main/firmware) section into the atom s3 and atom echo to display the IP and capture audio.\n\nYou can also flash firmware directly from your web browser via USB connection at: https://iory.github.io/riberry/\n\n\n### Atom S3 Display\n\n#### Additional Information\n\nYou can use ROS to publish additional information to your Atom S3 display. The following script demonstrates how to publish a message with color formatting using the `colorama` library:\n\n\n```\nimport rospy\nfrom std_msgs.msg import String\nfrom colorama import Back\n\nrospy.init_node('publisher', anonymous=True)\npub = rospy.Publisher('/atom_s3_additional_info', String, queue_size=10)\nrospy.sleep(1)  # Ensure the publisher is properly set up\n\nmessage = String()\nmessage.data = Back.RED + \"Test\\nprint\\n\" + Back.RESET\npub.publish(message)\nrospy.loginfo(\"Message published\")\n```\n\nThis script sets up a ROS publisher node that sends a message to the `/atom_s3_additional_info` topic.\nThe message text is colored red using colorama. By using ROS and colorama, you can easily publish and display colored messages on your Atom S3 display.\n\n\u003cimg src=\"doc/atoms3-additional-info.jpg\" alt=\"Display additional message with Atom S3\" width=\"300\"\u003e\n\n#### Displaying Images on Atom S3\n\nYou can also display images on your Atom S3 by setting a ROS parameter.\nTo display an image, you need to set the `/display_image` parameter to the desired image topic. For example:\n\n```\nrosparam set /display_image \"/camera/color/image_raw\"\n```\n\nThis command sets the `/display_image` parameter to the `/camera/color/image_raw` topic, which will then be displayed on the Atom S3.\n\nTo revert back to the normal display (i.e., stop displaying the image), you can reset the `/display_image` parameter to an empty string:\n\n```\nrosparam set /display_image \"\"\n```\n\nBy managing the `/display_image` parameter, you can control when and which images are displayed on your Atom S3.\n\n##### Button States for `/atom_s3_button_state` Topic\n\nThe `/atom_s3_button_state` topic publishes messages of type `std_msgs/Int32`. The value corresponds to different button states as shown in the table below:\n\n\n| Button State        | Value   |\n|---------------------|---------|\n| Not Changed         | 0       |\n| Clicked 1-10 Times  | 1-10    |\n| Long Pressed        | 11      |\n| Released            | 12      |\n| Reset               | 13      |\n\n##### AtomS3 mode for `/atom_s3_mode` Topic\n\nAtomS3 has multiple modes, which can be switched with a long click. You can get which mode AtomS3 is in by topic. The `/atom_s3_mode` topic publishes messages of type `std_msgs/String`. You can use `/atom_s3_mode` as well as `/atom_s3_button_state` to define robot operations.\n\n##### Analyze Core Dump\n\nRiberry provides a tool to read and analyze core dumps from supported devices (e.g., M5Stack-Basic, Atom S3). `riberry-analyze-core-dump` allows you to retrieve\ncore dump information and generate a clickable GitHub issue link for reporting.\n\nRun the script to analyze a core dump:\n\n```bash\nriberry-analyze-core-dump\n```\n\nYou can optionally specify an ELF file for additional debugging information:\n\n```bash\nriberry-analyze-core-dump --elf-path /path/to/firmware.elf\n```\n\nHere’s an example of what the tool outputs when run on a Radxa Zero:\n\n```\nCore dumped Firmware version: 20df8eb\nLCD rotation: 1\nUse Grove: 0\nDevice: Radxa Zero\nCommunication: I2CBase\n\nPC      : 0x4209c205  PS      : 0x00060030  A0      : 0x820092bc  A1      : 0x3fcab140\nA2      : 0x3fc9b2f0  A3      : 0x3fc9b410  A4      : 0x3fc9b380  A5      : 0x00000004\nA6      : 0x3fcedf28  A7      : 0x80000001  A8      : 0x00000000  A9      : 0x3fcf5720\nA10     : 0x00060023  A11     : 0x00000003  A12     : 0x00060023  A13     : 0x80000000\nA14     : 0x00000000  A15     : 0x00ffffff  SAR     : 0x00000000  EXCCAUSE: 0x0000001d\nEXCVADDR: 0x00000000  LBEG    : 0x00000000\n\nClick here to create a GitHub issue\n```\n\nFeel free to create a GitHub issue.\n\n## Distribute radxa image as SD card\n\nWhen distributing images, it's necessary to adjust the disk size among other parameters initially due to writing to an SD card.\nThe `resize-helper.service` is a tool designed for this purpose. To enable this, please use the `--enable-oneshot` option to activate these settings.\nAdditionally, the `change-hostname-helper.service`, which randomly changes the hostname, will also be enabled.\n\nRun the following command just before making SD cards for distribution:\n\n```\nsudo ./install.py --enable-oneshot\n```\n\nIf you are concerned about the security of the network:\n```\n# sudo rm -f /etc/NetworkManager/system-connections/*\n```\n\n## Install wifi-connect\n\n```\nsudo apt install -y curl unzip\ncurl https://gist.githubusercontent.com/708yamaguchi/5dc14b90fedc30ca6785f8f7fb741627/raw/71de8351897517721c23bc6fe12f974ed6582a3a/radxa-install.sh | bash\n```\n\n## Contributing\n\n### Automatic Formatting\nriberry uses `ruff` for both linting and formatting which is configured in `pyproject.toml`, you can run with:\n```\nruff format\nruff check --fix .\n```\n\n### Clang-Format\nTo install `clang-format`, you can use the following command:\n```\npip install clang-format\n```\n\nOnce installed, you can format your files using a `.clang-format` configuration file. To format a file, run:\n```\nclang-format -i \u003cfilename\u003e\n```\n\nReplace `\u003cfilename\u003e` with the name of the file you want to format. The `-i` option tells `clang-format` to edit the file in place.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiory%2Friberry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiory%2Friberry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiory%2Friberry/lists"}