Skip to main content

A toolchain bringing the best of software development to the real-world!

Project description

Shows a black logo in light color mode and a white one in dark color mode.


Logo atopile

📖 What is atopile?

atopile is a tool to build electronic circuit boards with code.

🗣️ Join us on Discord

What's your story in electronics? What would you like us to build? Come talk on discord.

Discord Banner 3

⚡️ato code examples

Votlage divider

import Resistor from "generics/resistors.ato"

module VoltageDivider:
    signal top
    signal out
    signal bottom

    r_top = new Resistor
    r_top.footprint = "R0402"
    r_top.value = 100kohm +/- 10%

    r_bottom = new Resistor
    r_bottom.footprint = "R0402"
    r_top.value = 200kohm +/- 10%

    top ~ r_top.p1; r_top.p2 ~ out
    out ~ r_bottom.p1; r_bottom.p2 ~ bottom

RP2040 Blinky Circuit

import RP2040Kit from "rp2040/rp2040_kit.ato"
import LEDIndicator from "generics/leds.ato"
import LDOReg3V3 from "regulators/regulators.ato"
import USBCConn from "usb-connectors/usb-connectors.ato"

module Blinky:
    micro_controller = new RP2040Kit
    led_indicator = new LEDIndicator
    voltage_regulator = new LDOReg3V3
    usb_c_connector = new USBCConn

    usb_c_connector.power ~ voltage_regulator.power_in
    voltage_regulator.power_out ~ micro_controller.power
    micro_controller.gpio13 ~ led_indicator.input
    micro_controller.power.gnd ~ led_indicator.gnd

    led_indicator.resistor.value = 100ohm +/- 10%

🔨 Getting started

Find our documentation and getting started video.

atopile is on pypi.org: https://pypi.org/project/atopile/

❓ Why atopile?

Describing hardware with code might seem odd at first glance. But once you realize it introduces software development paradigms and toolchains to hardware design, you'll be hooked, just like we've become.

Code can capture the intelligence you put into your work. Imagine configuring not the resistance values of a voltage divider, but its ratio and total resistance, all using physcial units and tolerances. You can do this because someone before you described precisely what this module is and described the relationships between the values of the components and the function you care about. Now instead imagine what you can gain from reusing a buck design you can merely configure the target voltage and ripple of. Now imagine installing a servo drive the same way you might numpy.

Version controlling your designs using git means you can deeply validate and review changes a feature at a time, isolated from impacting others' work. It means you can detangle your organisation and collaborate on an unprecedented scale. We can forgo half-baked "releases" in favor of stamping a simple git-hash on our prototypes, providing an anchor off which to associate test data and expectations.

Implementing CI to test our work ensures both high-quality and compliance, all summarised in a green check mark, emboldening teams to target excellence.

🔍 Discover what people build

Browse and submit your modules at packages.atopile.io

Project details


Release history Release notifications | RSS feed

This version

0.2.6

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atopile-0.2.6.tar.gz (8.1 MB view details)

Uploaded Source

Built Distribution

atopile-0.2.6-py3-none-any.whl (165.8 kB view details)

Uploaded Python 3

File details

Details for the file atopile-0.2.6.tar.gz.

File metadata

  • Download URL: atopile-0.2.6.tar.gz
  • Upload date:
  • Size: 8.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for atopile-0.2.6.tar.gz
Algorithm Hash digest
SHA256 abdb2b49512ca0f64b9b02c5b0cd738805f8052830b3ed5b3eebd0c58e304285
MD5 aad70a214ed03a41d386db2ef40ee303
BLAKE2b-256 89e957c176b38e963fea5b01dced15b2977f02d0922be70d455e5b2e2566218b

See more details on using hashes here.

File details

Details for the file atopile-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: atopile-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 165.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for atopile-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 4989f303641d23e142a11eff5da867da6314350ae15f515a97f534a459ae338d
MD5 e7b78242fbf45c83f152769b429ba4e5
BLAKE2b-256 9c2f700f08d5d1e01d4b64787103456694e6e09e3e6a61230a2cd14a2abf1b8e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page