Sankofa � an Akan word meaning "go back and get it" � reminds us to learn from the past to move forward. SankofaWire brings that mindset to embedded hardware: diagnose faster by building on what works and fixing what doesn't.
Embedded setup analysis for ESP32, STM32, and Arduino. One-page dashboard: upload a setup photo, describe your goal and issue, get a structured diagnosis with likely causes, fix steps, verification checklist, code snippets, and a downloadable report. Practical, confident, and grounded in real hardware.
- What inspired this
- Gemini 3 integration
- Run locally
- Judge testing instructions
- Third-party tools
- Limitations
- Roadmap
Hardware debugging is painful. You're staring at a breadboard, serial logs, and datasheets � and progress is slow. I wanted a tool that acts like a mentor: grounded in engineering, clear about uncertainty, and focused on helping you learn faster. SankofaWire is that tool. Built from scratch during the Gemini 3 Hackathon contest period.
| Feature | Description |
|---|---|
| Multimodal input | Upload a photo of your setup; the model analyzes wiring, components, and layout. Images are resized/compressed server-side for reliability. |
| Structured JSON output | Diagnosis is returned as validated JSON � no markdown parsing, no hallucinations in the schema. |
| Uncertainty handling | When the image is unclear or evidence is incomplete, the model populates uncertainty_zones with concrete verification steps. Confidence stays "medium" or "low" instead of pretending to be certain. |
| Model fallback | If the configured model returns 404, the API calls ListModels and auto-selects a supported model (preferring Flash). |
git clone https://github.com/emmanuelakwasi/gemini3.git
cd gemini3
npm installCopy .env.example to .env.local and set:
GEMINI_API_KEY=your_key_here
GEMINI_MODEL=
Get your API key from Google AI Studio. GEMINI_MODEL is optional; if 404, the API auto-selects from ListModels.
npm run devOpen http://localhost:3000.
| Command | Description |
|---|---|
npm run dev |
Development server |
npm run build |
Production build |
npm run start |
Production server |
npm run lint |
ESLint |
Using the public URL (Demo Mode):
- Open the deployed app URL � no login required.
- Turn Demo on in the Setup card. The app loads a demo image and prefills goal and issue.
- Click Run Demo Analysis.
- Success: The Diagnosis card shows a structured result: title, summary, likely causes, fix steps, and explanations. Export the report or use Bench Replay to compare sessions.
- If you hit Gemini rate limits: The API tries multiple models in sequence. If all fail (429), Demo Mode returns a deterministic fallback result instead of an error. You'll see a "Demo fallback result" badge � the diagnosis content is still valid, but it was not generated by the live API. Retry later or use a deployment with a higher quota.
| Tool | Purpose | License |
|---|---|---|
| Next.js | React framework, App Router | MIT |
| @google/generative-ai | Gemini API client | Apache 2.0 |
| sharp | Image resize/compress for Gemini | Apache 2.0 |
| Zod | Request/response validation | MIT |
| Tailwind CSS | Styling | MIT |
No other third-party AI services. Gemini is the only model backend.
- Image quality matters. Blurry or low-contrast photos reduce accuracy.
- Models can hallucinate. Uncertainty zones and confidence levels are meant to keep you skeptical where evidence is thin.
- Free-tier Gemini quotas apply. If you hit rate limits, retry later or use a paid key.
- English only. The prompt and UI are not localized.
- Support for more boards (RP2040, nRF, etc.)
- Dark mode
- Export to PDF