An easy-to-use electronic schematic capture and PCB design tool
๐ Website โข ๐ Documentation โข ๐ Report Bug โข ๐ก Request Feature
FidoCadJ is a modern, multiplatform electronic design automation (EDA) software with a vast library of electrical symbols and footprints (both through-hole and SMD). It serves as an easy-to-use editor for creating electrical schematics and printed circuit board layouts.
Origins: FidoCadJ is the successor to the original FidoCAD, a popular vector graphic editor that gained widespread adoption in the Italian Usenet community during the late 1990s. The original software used a compact text-based file format, perfect for sharing in newsgroups and forums.
Modern Evolution: FidoCadJ brings the simplicity of FidoCAD into the modern era with:
- Full UTF-8 text support
- Advanced features and professional output
- Internationalization
- Sleek, anti-aliased user interface
- Multiple export formats (PDF, EPS, PGF for LaTeX, SVG, PNG, JPG)
Note: FidoCadJ is a graphical drawing tool without netlist functionality. This provides maximum flexibility as a vector drawing application but does not include circuit simulation capabilities.
- ๐ Extensive library of electrical components and footprints
- ๐จ Multiple export formats (PDF, EPS, SVG, PNG, JPG, PGF)
- ๐ Multilingual interface (English, French, Italian, Spanish, German, Chinese, Dutch, Japanese, Greek, Czech)
- ๐ฑ Cross-platform compatibility
- ๐ง Simple mechanical drawing capabilities
- ๐ฏ Easy to learn and use
FidoCadJ comes with a built-in library of components, but the community has created many additional libraries to extend its capabilities! You can download specialized libraries for various purposes:
๐ Browse and Download Community Libraries
These community-contributed libraries include:
- Additional electronic components
- Specialized symbols and footprints
- Industry-specific elements
- Custom mechanical parts
- And much more!
Simply download the library files and import them into FidoCadJ to expand your component collection.
| Platform | Requirements |
|---|---|
| Windows | Windows 7, 8, 10, 11 with Java 9+ |
| Linux | All major distributions with Java 9+ |
| macOS | macOS 10.8+ with Java 9+ |
| Android | Android 4.0+ |
Download FidoCadJ_Windows.msi from the releases page and run the installer. Launch FidoCadJ from the Start menu.
- Download
FidoCadJ_MacOSX.dmgfrom the releases page - Open the DMG file and drag FidoCadJ to your Applications folder
๐ Note: The application bundle is self-sufficient and includes everything needed to run. You don't need to install Java separately.
Recent macOS versions may show a very misleading error when trying to run FidoCadJ:
"FidoCadJ.app is damaged and can't be opened. You should move it to the Trash."
This is NOT true! The application is not damaged. This is a security feature that prevents running apps from unidentified developers. The error message is misleading and doesn't explain the real issue.
What's happening:
- macOS activates the "quarantine" extended attribute on downloaded files
- The system refuses to run software with this attribute
- On some Macs (like M1/M2), you may be asked to install Rosetta first
Example of the error (macOS Ventura 13.3):
Solution - Follow these steps:
-
Remove the quarantine attribute: Open Terminal and type:
xattr -c /Applications/FidoCadJ.app
(If you haven't moved it to Applications yet, use the actual path to the file)
โ ๏ธ You need admin access and may need to authorize Terminal.app to modify files -
Right-click on FidoCadJ.app and select "Open" (don't double-click)
-
Confirm when the system asks if you really want to run the software downloaded from an untrusted source
Need help? See Issue #198 for discussion and alternative solutions.
๐ก If you know a way to solve this without using Terminal, please share it in the GitHub issue!
Method 1: Using the JAR file
java -jar fidocadj.jarMethod 2: Build from source
make
sudo make installDownload the APK file from the official GitHub releases page and install it on your device.
โ ๏ธ Security Note: Only download FidoCadJ from the official GitHub repository to ensure authenticity.
- Launch FidoCadJ using your preferred method
- Create a new drawing from the File menu
- Select components from the extensive library
- Design your schematic using the intuitive interface
- Export to your desired format (PDF, PNG, SVG, etc.)
๐ก Pro Tip: Expand your component collection by downloading community libraries!
๐ Need help? Check out the user manual (available in multiple languages).
FidoCadJ/
โโโ bin/ # Compiled classes and resources
โโโ busy being born/ # Screenshots and promotional materials
โโโ dev_tools/ # Build scripts and development tools
โโโ doc/ # Javadoc documentation
โโโ icons/ # Application icons
โโโ jar/ # JAR and manifest files
โโโ manual/ # LaTeX manual sources
โโโ OSes/ # Platform-specific files (including Android)
โโโ src/ # Java source files
โโโ test/ # Automated test suite
โโโ gpl-3.0.txt # License file
โโโ makefile # Build automation
โโโ README.md # This file
| Path | Description |
|---|---|
src/fidocadj/FidoMain.java |
Application entry point |
src/fidocadj/FidoFrame.java |
Main editor window |
src/fidocadj/primitives/*.java |
Graphic primitives |
src/fidocadj/dialogs/*.java |
Swing dialogs |
src/fidocadj/circuit/CircuitPanel.java |
Editor panel |
src/fidocadj/circuit/* |
Low-level editing (MVC) |
- Java Development Kit (JDK) 9 or higher
- Make (for Unix-like systems)
- Git
git clone https://github.com/FidoCadJ/FidoCadJ.git
cd FidoCadJUsing Make (macOS/Linux):
| Command | Description |
|---|---|
make |
Compile FidoCadJ |
make run |
Run FidoCadJ |
make rebuild |
Clean and rebuild |
make createjar |
Create JAR file in jar/ directory |
make createdoc |
Generate Javadoc |
make clean |
Remove compiled classes |
make cleanall |
Full cleanup |
Using Scripts (Windows):
cd dev_tools
winbuild.bat compile # Compile sources
winbuild.bat run # Run application
winbuild.bat rebuild # Clean and rebuildManual Compilation (Windows):
javac -g -sourcepath src -classpath bin .\src\fidocadj\FidoMain.java -d bin
java -classpath .\bin;.\jar;.\jar\ FidoMain- โ Java Version: Compatible with Java 14+
- โ Indentation: 4 spaces (no tabs)
- โ Line Length: Maximum 80 characters
- โ Newlines: Unix-style (LF) only
- โ
Naming Conventions:
- Classes:
PascalCase - Methods and variables:
camelCase - No underscores in names (deprecated)
- Classes:
- โ Documentation: Javadoc required for public classes and methods
- โ Quality: Commits must not break the build
Methods:
void exampleMethod(int param1, int param2)
{
// Method body with 4-space indentation
System.out.println("Example");
}Control Structures:
for (int i = 0; i < 10; ++i) {
// Loop body
System.out.println("Iteration: " + i);
}
if (condition) {
// If body
} else {
// Else body
}Classes:
class ExampleClass
{
// Class members
}We maintain high code quality using:
- Checkstyle: Enforces coding standards (
dev_tools/rules.xml) - PMD: Static code analysis (
dev_tools/pmd.sh) - FindBugs: Bug detection on compiled JAR
- Copy/Paste Detection: Identifies code duplication
๐ฏ Before submitting a pull request, run Checkstyle with
dev_tools/rules.xmlto ensure compliance!
FidoCadJ includes comprehensive automated tests in the test/ directory.
Run all tests:
./test/all_tests.shIndividual test suites:
| Test | Purpose |
|---|---|
test/export/test_export.sh |
Validates export functionality for all formats |
test/messages/test_messages.sh |
Checks translation file consistency |
test/size/test_size.sh |
Verifies element size calculations |
๐ Note: Before running tests, ensure
fidocadj.jaris up-to-date usingmake createjar.
We welcome contributions from the community! Whether you're fixing bugs, adding features, translating, or improving documentation, your help is appreciated.
FidoCadJ makes translation easyโno programming skills required!
To translate the interface:
- Locate language files in
bin/MessagesBundle_xx.properties(wherexxis the ISO 639-1 language code) - Copy the English reference file (
MessagesBundle_en.properties) - Translate the values (keep keys unchanged)
- Save with appropriate language code
- Submit a pull request
Example:
# English (MessagesBundle_en.properties)
File = File
New = New
Open = Open file
# French (MessagesBundle_fr.properties)
File = Fichier
New = Nouveau dessin
Open = Ouvre un fichierCurrent translations available: English, French, Italian, Spanish, German, Chinese, Dutch, Japanese, Greek, Czech
Getting started:
- ๐ด Fork the repository
- ๐ Read the coding conventions (Section above)
- ๐ฌ Open an issue to discuss your plans
- ๐จ Make your changes following our style guidelines
- โ Run tests and quality checks
- ๐ฌ Submit a pull request
Useful commands for developers:
make createdoc # Generate Javadoc documentation
dev_tools/checkstyle.sh # Run Checkstyle
dev_tools/pmd.sh # Run PMD analysis
dev_tools/profile # Run profilerFor all commits:
- Code builds successfully (PC and Android)
- Follows coding style (section 4.1)
- Comments added/updated where needed
- Checkstyle passes with
dev_tools/rules.xml
For PC application:
- JAR generated and automated tests pass
- PMD analysis completed
| Area | Description |
|---|---|
| ๐ Translation | Translate UI or documentation to your language |
| ๐ Documentation | Improve or update manuals and guides |
| ๐ฅ Tutorials | Create video tutorials for YouTube |
| ๐ Bug Reports | Report issues via GitHub Issues |
| ๐ป Code | Implement new features or fix bugs |
| ๐ฆ Packaging | Create distribution packages (deb, RPM, etc.) |
| ๐งช Testing | Expand unit test coverage |
Feature requests:
- Export to Gerber format
- Enhanced unit testing
- Linux packaging improvements
- And more!
- ๐ Documentation: User manuals (PDF files)
- ๐ฌ GitHub Discussions: Ask questions and share ideas
- ๐ Bug Reports: Create an issue
- ๐ง Email: davbucci@tiscali.it (no attachments please)
๐ก Tip: GitHub discussions are preferred for better collaboration among developers.
Found a bug? We appreciate your help in making FidoCadJ better!
- Check existing issues to avoid duplicates
- Create a new issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- System information (OS, Java version)
- Screenshots if applicable
Core Development:
- Davide Bucci
- Manuel Finessi
- josmil1
- phylum2
- Kohta Ozaki
- Dante Loi
- miklos80
Beta Testing:
- Kagliostro, Bruno Valente, simo85, Stefano Martini, F. Bertolazzi, Emanuele Baggetta, Celsius, Andrea D'Amore, Olaf Marzocchi, Werner Randelshofer, Zeno Martini, Electrodomus, IsidoroKZ, Gustavo, and many others!
Documentation:
- Carlo Stemberger
- Dante Loi
Translations:
- ๐ฎ๐น Italian: Davide Bucci, Pietro Baima
- ๐ฌ๐ง English: Davide Bucci, Pasu, DirtyDeeds
- ๐ซ๐ท French: Davide Bucci, Geo Cherchetout
- ๐ฉ๐ช German: Olaf Marzocchi
- ๐ช๐ธ Spanish: androu1, sbcne, simo85
- ๐จ๐ณ Chinese: Miles Qin "qhg007"
- ๐ณ๐ฑ Dutch: chokewood
- ๐ฏ๐ต Japanese: Kohta Ozaki
- ๐จ๐ฟ Czech: Chemik582
Libraries:
- Lorenzo Lutti, Fabrizio Mileto, DirtyDeeds, Electrodomus, IHRaM group, EY group (coordinated by simo85)
Icons:
Code snippets and algorithms adapted from:
- CenterKey Java Browser Launcher
- UNSW Natural Cubic Splines
- Various Stack Overflow contributors and Java community members
If you hold copyright to any reused code and have concerns, please open an issue and we will address it promptly.
FidoCadJ is free software licensed under GPL v3:
FidoCadJ is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
FidoCadJ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with FidoCadJ.
If not, see http://www.gnu.org/licenses/.
Additional Licenses:
glyphlist.txt(for PDF export): Apache License 2.0 - View License
FidoCadJ is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If a Greek letter appears after the version number (e.g., 0.24.8ฮฑ), you are using a preliminary/unstable version.
Copyright ยฉ 2007-2025 FidoCadJ Development Team
โญ If you find FidoCadJ useful, please consider starring this repository!
๐ Website โข ๐ฆ Releases โข ๐ Issues
