This repository contains the following main folders:
- backend: Contains the server-side code.
- frontend: Contains the client-side code.
- extension: Contains the Chrome extension.
- generator: Contains the code for generating firmware.
Make sure you have the following installed on your system:
- Node.js and npm
- Arduino CLI
- Python
Clone this repository to your local machine:
git clone https://github.com/jishnu-baruah/firmDev.git
cd FirmDev
- Install dependencies for the root of the project:
npm install
- Install dependencies for the backend:
npm run install-backend
- Install dependencies for the frontend:
npm run install-frontend
- Install
concurrently
globally if not already installed:
npm install -g concurrently
If you encounter permission issues, try running:
sudo npm install -g concurrently
Start the backend and frontend servers concurrently:
npm start
- Navigate to the
extension/host
directory:
cd extension/host
- Run the installation script:
./install.bat
- Open Chrome and navigate to
chrome://extensions/
. - Enable "Developer mode" in the top right corner.
- Click "Load unpacked" and select the
extension/extension-src
directory.
To use Gemini, you need to add your API key to the .env
file in the backend
directory.
- Create a
.env
file in thebackend
directory if it doesn't already exist. - Add the following line to the
.env
file, replacingAPI_KEY
with your actual API key:
API_KEY=YOUR_GEMINI_API_KEY
To use the upload function, ensure you have Arduino CLI and Python installed on your system.
- Open the web application and select the hardware components and settings.
- Generate the firmware code.
- Connect your microcontroller device via USB.
- Use the Chrome extension to upload the generated firmware directly to the connected device.
We welcome contributions to this project. Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch
- Make your changes and commit them:
git commit -m "Description of changes"
- Push to the branch:
git push origin feature-branch
- Create a pull request on GitHub.
This project is licensed under the MIT License.