This version is currently under development. Stay tuned for updates!For up-to-date minor changes check out the GitHub Releases.
This release brings a major rewrite of the KiCAD plugin, making it easier than ever to apply layouts and interact with your designs directly from KiCAD with a single button. The Model Context Protocol (MCP) is now set up automatically, streamlining AI-assisted development workflows and package management.The atopile library and example projects have been thoroughly cleaned up, and the language now supports enums in template arguments, unlocking new design possibilities. The VSCode extension introduces a powerful 3D model viewer, making it simple to visualize your designs in three dimensions.Numerous bug fixes and small improvements enhance stability, performance, and the overall user experience across the CLI, library, and extension. For a complete list of changes and improvements, see the full changelog linked below.Full Changelog: https://github.com/atopile/atopile/releases/tag/v0.11.0
Massive VSCode extension improvements with embedded package browser, KiCanvas PCB viewer, and 3D model viewer with GLB export. Added Model Context Protocol (MCP) support enabling AI-assisted development workflows.Multi-net support for complex routing configurations. Enhanced component lifecycle management with better datasheet handling and footprint loading from dependencies.Significantly improved Windows support fixing symlink permissions, PosixPath errors, and KiCad plugin issues. Better package management with automatic dependency syncing.Deterministic builds with stable file hashing and consistent net naming. CLI improvements including telemetry, better DRC error messages, and detection of CI providers.
Introduced comprehensive component lifecycle management for tracking part availability and obsolescence. Added support for 3D models in packages with automatic model rebuilding.Language Server Protocol (LSP) improvements including hover information, definition navigation, and enhanced syntax highlighting in VSCode.Better error handling with improved logging and diagnostic messages. Fixed deterministic net naming and part selection issues.Enhanced CLI with better part import path display and archive folder for logs.
Upgrading
Modules usingfootprint =
will need to transition to parts.Major Language Server Protocol (LSP) upgrade providing real-time syntax and compile-time error reporting. VSCode extension refactored with auto-installation of atopile and enhanced syntax highlighting.Improved snippets and trailing comment support. Fixed KiCad file format issues including pad zone connections and dimension handling.Better development workflow with automatic rebuilding of editable packages when using
uv sync
.Extended atopile language capabilities with new syntax features. Enhanced I2C support with addressors for 1 and 2 bit implementations and isolated bus checking.Improved
ato create component
command to handle missing signals and numeric pin names. Better syntax error formatting in the CLI.Library updates including adjustable regulator improvements and bridgeable trait for regulators.Added I2C Addressing & Bus viewerBuild artifacts are now included when publishing. This means that when you go to https://packages.atopile.io/, you’ll see the build artifacts ready to order or explore.Added
hide_designators
config option.Improved checks system with new exclude capabilityDisabled required check for top level modulesEnhanced ato create component
to handle pins named as numbersUpgrading
No required changes for upgrading.If the
.required
attribute is set True
on an interface, that interface MUST be connected to from outside that module.
Take the example of a LDO
- you reasonably MUST connect to the power input and outputs.
The antagonist concept to this is, like python, adding a _leading_underscore
to private variables.I2C
interfaces are now checked to ensure they have 900 to 100kΩ pullups on them.You can access lists and dicts (from stdlib/fabll) using square braces!(Beta) Windows support! atopile
now runs on Windows.Upgrading
No required changes for upgrading.atopile’s package management system has had a huge upgrade!To find packages, check out the entirely overhauled package index.The new commands to packages are clearer and help keep the packages all in sync. See the updated package guide.If you’re looking to publish your own packages, check out the guide.
Upgrading
- The
ato-version
field in yourato.yaml
is now calledrequires-atopile
. It remains a version spec, and we recommend that you set it to^0.4.0
. - The structure of dependencies has changed! It’s best to remap them to the new registry using the
ato add
command. Note: Many of the package names have also changed. - The
import
identifiers have also changed - to match the new project identifiers. Update these tofrom "{package-identifier}/file.ato" import MyThing
.
Firstly, thanks for using atopile! It’s been a ride, and we’re glad you’re here. 🙌
I’m seeing a bunch of
There will be a LOT of new deprecation warnings you’ll see.For the most part, it’s safe to ignore them for the minute, and we plan to make the breaking changes in 0.4.0Upgrading will give you more access to features as they’re added, but there’s no need to rush if you’re content.Standard Library (previously
This vastly improves our ability to version and iterate on the standard library, use the best practices and latest features.See
Changed Commands
Add--help
after any command to see new options in the CLI. This is always the most accurate source of information.Old | New |
---|---|
ato install --jlcpcb | ato create component |
I’m seeing a bunch of DeprecationWarning
There will be a LOT of new deprecation warnings you’ll see.For the most part, it’s safe to ignore them for the minute, and we plan to make the breaking changes in 0.4.0Upgrading will give you more access to features as they’re added, but there’s no need to rush if you’re content.PCBs are now directly modified
This means no more need to open the PCB file, import the netlist and cycle.ato build
now directly modifies the PCB file as required on each build.Standard Library (previously generics
) is now shipped built-in!
This vastly improves our ability to version and iterate on the standard library, use the best practices and latest features.See library
for the latest and greatest.It should be better documented. If this is important for you, please vote on the issue.