{"id":37890364,"url":"https://github.com/bunpc/ninjaweb","last_synced_at":"2026-01-16T16:55:53.945Z","repository":{"id":271615295,"uuid":"911759887","full_name":"BUNPC/ninjaWeb","owner":"BUNPC","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-15T15:30:42.000Z","size":485,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T20:40:49.549Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BUNPC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-01-03T19:28:14.000Z","updated_at":"2025-08-11T18:09:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"41263a0e-7fa7-4eb6-91d7-22389f7e05d7","html_url":"https://github.com/BUNPC/ninjaWeb","commit_stats":null,"previous_names":["bunpc/ninjaweb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BUNPC/ninjaWeb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUNPC%2FninjaWeb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUNPC%2FninjaWeb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUNPC%2FninjaWeb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUNPC%2FninjaWeb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BUNPC","download_url":"https://codeload.github.com/BUNPC/ninjaWeb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BUNPC%2FninjaWeb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"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":[],"created_at":"2026-01-16T16:55:53.875Z","updated_at":"2026-01-16T16:55:53.932Z","avatar_url":"https://github.com/BUNPC.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n---\n\n## Table of Contents\n\n* [Prepare Your SD Card with Raspberry Pi5 OS](#prepare-your-sd-card-with-raspberry-pi-os)\n* [Setup Wi-Fi Router / Mobile Hotspot](#setup-wi-fi-router--mobile-hotspot)\n* [Copy ninjaWeb Code to Raspberry Pi](#copy-ninjaweb-code-to-raspberry-pi)\n* [SSH into Raspberry Pi](#ssh-into-raspberry-pi)\n* [Enable SPI kernal module](#Enable-SPI-kernal-module)\n* [Setup `data-server` and `bokeh-server` Environments](#Setup-data-server-and-bokeh-server-Environments)\n* [Run ninjaWeb](#Run-NinjaWeb)\n\n---\n\n## Prepare Your SD Card with Raspberry Pi OS\n\nHere's a step-by-step guide to preparing your SD card for Raspberry Pi OS:\n\n### 1. Insert SD Card\n\nInsert the SD card into your computer’s SD card reader.\n\n### 2. Download Raspberry Pi Imager\n\nOpen your web browser and go to the [Raspberry Pi Software](https://www.raspberrypi.com/software/) download page.\n\n### 3. Download and Install Raspberry Pi Imager\n\nPress the **Download for Windows** button. Once the download completes, run the `.exe` file to install Raspberry Pi Imager on your system.\n\n### 4. Launch Raspberry Pi Imager\n\nAfter installation, Raspberry Pi Imager will automatically open.\n\n### 5. Select Device\n\nIn the Imager interface, under **Device**, select **Raspberry Pi 5**.\n\n### 6. Choose Operating System\n\nUnder **Operating System**, choose:\n\n* **Raspberry Pi OS (other)** $\\rightarrow$ **Raspberry Pi OS Lite (64-bit)**.\n\n### 7. Select Storage\n\nUnder **Storage**, choose the SD card that you inserted earlier.\n\n### 8. Proceed to Settings\n\nPress **Next** to continue.\n\n### 9. Edit Settings\n\nClick on **Edit Settings** to configure the Raspberry Pi’s network, hostname, and other settings. Enter the following:\n\n**General:**\n\n* **Set Hostname:** `ninja-pi.local`\n\n* **Set Username:** `NinjaNIRS`\n\n* **Set Password:** `nn2022pidev`\n\n**LAN Settings:**\n\n* **SSID (Wi-Fi network name):** `ninjaGUIpy`\n\n* **Password:** `ninjaGUIpy2023`\n\n* **Wireless LAN Country:** `US`\n\n**Set Time Zone:**\n\n* Configure the correct time zone (for example, `America/New_York` if you're in the Eastern Time Zone).\n\n### 10. Services\n\nEnable **SSH** and select **Use password authentication**.\n\n### 11. Options\n\nUncheck **Enable telemetry**.\n\nOnce all settings are configured, press **Save**.\n\n### 12. Write to SD Card\n\nAfter saving, you'll be asked to confirm; press **Yes** to begin writing the Raspberry Pi OS to the SD card.\n\n### 13. Completion\n\nWait for the process to finish. Once done, safely eject the SD card and insert it into your Raspberry Pi 5.\n\nYour Raspberry Pi 5 is now set up with the **ninjaWeb** configuration. Proceed to power it up and connect it to the internet via LAN or Wi-Fi, and you should be good to go!\n\n---\n\n## Setup Wi-Fi Router / Mobile Hotspot\n\nTo ensure seamless connectivity, configure your Wi-Fi router or mobile hotspot with the following details:\n\n* **Wi-Fi Network Name:**\n    ```\n    ninjaGUIpy\n    ```\n* **Password:**\n    ```\n    ninjaGUIpy2023\n    ```\n\nInsert the **SD card** into the `ninjaNIRS` Raspberry Pi. Connect your computer's Wi-Fi to the same router.\n\n---\n\n## Copy ninjaWeb Code to Raspberry Pi\n\nYou'll need to transfer the `ninjaWeb` code from GitHub to your Raspberry Pi. Software like **WinSCP** is ideal for this.\n\nUse the following connection details:\n\n* **Hostname:**\n    ```\n    ninja-pi.local\n    ```\n* **Username:**\n    ```\n    NinjaNIRS\n    ```\n* **Password:**\n    ```\n    nn2022pidev\n    ```\n\n---\n\n## SSH into Raspberry Pi\n\nTo access your Raspberry Pi's command line, use an SSH client like **PuTTY**.\n\nHere are the SSH details:\n\n* **Hostname:**\n    ```\n    ninja-pi.local\n    ```\n* **Username:**\n    ```\n    NinjaNIRS\n    ```\n* **Password:**\n    ```\n    nn2022pidev\n    ```\n\n---\n\n## Enable SPI kernal module\n\nRun ```sudo raspi-config``` in the terminal, select interface options and Enable automatic loading of SPI kernal module.\n\n---\n\n## Setup `data-server` and `bokeh-server` Environments\n\nNow run these commands to set up the `data-server` and `bokeh-server` environments:\n\n```bash\ncd ~/ninjaWeb/data-server/\npython3 -m venv .\nsource ./bin/activate\npip install -r requirements.txt\ndeactivate\n\ncd ~/ninjaWeb/bokeh-server/\npython3 -m venv .\nsource ./bin/activate\npip install -r requirements.txt\ndeactivate\n```\n\n---\n\n## Run NinjaWeb\n\n### 1. Power On\n- Turn on the **ninjaNIRS** device.\n\n### 2. Network Configuration\n- Ensure that **both the ninjaNIRS system and the laptop running ninjaWeb** are connected to the **same Wi-Fi network**.\n\n### 3. Launch Servers\nOpen **two putty terminal windows** on the computer and ssh into  raspberry pi\n\n### Terminal 1: Start Data Server\n```bash\ncd ~/ninjaWeb/data-server/\nsource ./bin/activate\npython3 nn_data_server_main.py\n```\n\n### Terminal 2: Start Bokeh Server\n```bash\ncd ~/ninjaWeb/bokeh-server/\nsource ./bin/activate\nbokeh serve web-app --allow-websocket-origin=ninja-pi.local:5006\n```\nThese two processes can be automatically launched when the Raspberry Pi boots up.\n\n### 4. Access Web Interface\n- Open a web browser and navigate to:  \n  **http://ninja-pi.local:5006/web-app**\n\n### 5. Set System Time\n- Click the **“Date and Time”** button to sync the system clock on ninjaNIRS.  \n  \u003e 🔹 *The button will fade to gray once the time is set successfully.*  \n  \u003e 🔹 *If the router is connected to the internet, the time may already be set.*\n\n### 6. Enable Power Calibration\n- Click the **\"Enable Power Calibration\"** button to activate calibration controls.\n\n## 7. Perform Calibration\n- Complete the **power calibration** process and press **Return** button\n\n## 8. Start Data Collection\n- After calibration, click the **“Run”** button to begin data collection.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbunpc%2Fninjaweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbunpc%2Fninjaweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbunpc%2Fninjaweb/lists"}