Tag Archives: auto placement

Small Drone Design Prototype

We have chartered a new goal to create development boards of the designs created by circuit tree to showcase Circuit Tree Design capability. To keep the task fairly simple the development board requirements are listed below:
1. Create a drone board which can fly while being controlled from mobile bluetooth. The frame of the board would be a PCB where the Motors would mount.
2. The drone board should be powered by a battery and should have battery charging capability.
3. The Main elements of the drone board would be a small micro-controller, bluetooth radio, accelerometer, gyroscope, compass, jtag port for debug, 4 pwm’s, led and reset switch.
4. The battery of this board when in air should last for minimum 15 minutes.
5. As a first bringup goal the drone board should be able to fly till small altitude.

We start by estimating the weight of the drone board with battery to find if it can meet the goal no 4.  We analysed and decided to select the motors for the project listed below:
1. https://www.banggood.com/2-x-7mm-Hollow-Cup-Motor-For-Hubsan-H107L-Upgraded-Version-p-80923.html?p=OY2106728901201408U4
2. https://www.banggood.com/4X-Racerstar-615-6x15mm-59000RPM-Coreless-Motor-for-Eachine-E010-E010C-Blade-Inductrix-Tiny-Whoop-p-1115474.html?rmmds=detail-bottom-alsobought

Next we start the electronic design. We chose circuit tree design to first look at the list of controllers which can be used for the drone design. Based on the component avaibility results we narrowed down to stm32l052k6t6 from st micro electronics. Quickly the components were selected as shown below and a block diagram generated.

Board requirement catpure screen

Board requirement capture screen

Board block diagram of the components selected

Board block diagram of the components selected

We did wait for schematics to generate within 2.5 minutes and within that time did scan the Bill of material file generated from the tool. There are certain discrete components which circuit Tree could not select which is left to the designers to update.

Also in the schematic we have a dummy connector added for GPIO/PWM pins. The connector is important as it helps in allocating the micro-controller pins for the GPIO. The intent of using GPIO is to allow mosfets to be added to these pins to eventually allow motors to be driven.

Next we click on the layout viewer to select a dxf file and check if the placement dxf outline is correct. Next we fire the background process to generate placement.

Board components prior to start of auto placement algorithm

Board components prior to start of auto placement algorithm

Within next 3 minutes the placement of the board is generated and it looks as shown below:

Finished Board component placement

Finished Board component placement

The algorithm shows that the components can be fit in the given board dxf file. It is time to define the board boundary restriction so that the algorithm can rerun and produce more symmetrical placement around 4 weeks.

We would keep updating the blog as we get the results.

Here is the Git hub link for design files for the drone design.



Latest New Addition -component Footprint and auto-placement of components

Our Goal is to push the application capability to design and develop a complete end hardware product. I am pleased to announce that with each design created with circuit tree the design would bundle layout footprints along with the schematics. The footprints are currently in eagle format and porting to other EDA cad format is ongoing.

Intelligent component placement stage

Pre Component Placement stage

In addition the application is able to provide intelligent placement of component based on the required board outline. Option is given for the User to select a dxf file from a menu option or can provide his/her dxf file. The component auto-placement algorithm looks at following parameters:
1. Board outline
2. Holes position
3. Placement restriction, top and bottom side
4. Components type and component footprints
5. Netlist relation of the component.
6. Plenty of other secret sauce.

The end results of auto-placement algorithm are interesting. Some of the interesting insights we see here
1. Most of the decoupling capacitors are placed close to the IC pins. [Check the present tool Limitation covered in the blog post]
2. The components such as crystal, clocks osscilator are placed close to the receiver.
3. Most of the Connectors are placed close to the edges with correct orientation for easy plug in of cables.
4. Unlike other EDA components placement power components are placed to allow planes or thick traces to connect the components from far off positions. Circuit Tree does not try to minimise the power distances. It would try to keep linear power regulators close the components which needs it and would keep switching regulator far off.
5. Ethernet transceivers and ethernet magnetics are placed close by as needed.
6. Irrespective of the shape of the board the component placement is correct for the all use cases tested.
7. Components were not placed in the holes or placement restricted areas.
8. Component placement is done on top and bottom layer and emphasis is to have sufficient separation so that components don’t overlap.

Circuit tree application results delight us as we are usually not prepared to see a machine able to achieve quite human like performance. Some of the auto-placement examples which we captured during our testing are shown below:

Intelligent component placement

DXF Board example 2 auto placement of components

Intelligent component placement

DXF Board example 4 auto placement of components

DXF Board example 3 auto placement of components

DXF Board example 3 auto placement of components

Ongoing further work in this area:
1.Currently DXF import is restricted to certain design formats. We would like to make it universal to allow all dxf files.
2. We would like to offer option to allow user to generate smallest size board placement. Here circuit Tree would suggest the board outline which can recommend smallest size board based on the component present.
3. Option for user to move components on the board as per his requirement and use the auto-placement algorithm to regenerate the board placement based. Other option would be to allow users to select placement on top/bottom or both sides, define placement boundaries etc.

The goal of this new feature is to offer component footprints and auto-placement of components such that auto router can be used to route the board. This will reduce the turnaround time of design and provide quick prototype testing with minimal effort.

Circuit Tree in a new avatar

Circuit Tree is expanding day by day and in order to meet the complexity of vast requirements of embedded design we have redesigned the application. The new application is super easy to use, 10x faster than the previous version and efficient enough to generate designs as needed.

Embedded Part selection

Select Embedded elements and parts

select embedded processor and controllers

Select processors from the various options and search bar

Embedded board power up

Select various power up cases

Select Advanced circuit design options.

Select Advanced circuit design options.

Not only is the user interface changed we now support loads of features to provide quick design export options. You can now export Altium, Orcad and Eagle designs through circuit tree through menu or request dispatch over the registered email.

Embedded hardware design Automation

Various design export options as well options to email files when then generate

We now also support auto placement module where based on the dxf file intelligent board component placement is generated by circuit tree. The time required to generate simple placement to complex placement varies between 20 seconds to 7 minutes which is solely dependent on the complexity of the design. Compare this time to the manual placement of the components and you will find it useful. Circuit Tree is most useful tool to you where iteratively at prototype stage various combinations need to be tested to find the best fit.

Intelligent component placement stage

Pre Component Placement stage

Interested to see more of some interesting placement results. Additional details of this new feature is covered in a separate post.

Automated intelligent component placement by circuit Tree

Automated intelligent component placement by circuit Tree

Automated intelligent component placement by circuit Tree

Example of Automated intelligent component placement by circuit Tree

Send us your feedback comments at info@circuit-tree.com

Ever tried Auto-placement?

Here are few pictures which tell a story of how most of the circuit board design software’s doing a component placement job.

Schematic with decoupling

Schematic with decoupling capacitors

Component Placement on PCB

Component Placement on PCB1

Component Placement on PCB 2

Component Placement on PCB 2

The placement Picture shows how badly the CAD tools have badly messed up placement. With bad placement the objective of placement of capacitors closer to the device stands nullified. It is important that decoupling capacitors are placed closer to the power pins of the device in correct orientation with the shortest path possible with thick traces which can offer lower inductance path for the current flow.

From our experiments the auto placement results were poor when using under following conditions:

  1. Irregular Board outline
  2. Segregating high voltage circuits from low power circuits
  3. Placement of high speed components around on the board to minimise noise and get good signal integrity on the signals.

Hence most of the designers prefer to perform the component placement of the board and then use or don’t use auto routers for quick layout.

Component placement should ideally have knowledge about:

  1. What the circuit is all about? It should know what are components, power, clocks, reset, high speed circuits, smd/through hole footprints, constraints? Without this knowledge any placement engine output is just not complete.
  2. It should understand the board outline, placement constraints, pcb layers.
  3. It should understand netlist which most of the routers use for current optimal placement. All components are placed so that the nets/traces can have shortest distance between the device and receiver.

At circuit tree we care about this problem and are working to solve this problem.  We believe that by offering intelligent part placement of our design solutions designers can use auto routers or manually route the board to significantly reduce the time it takes to complete the design.

This new feature is under development and showing promising results. Stay tuned to know when we start offering this exciting new feature.


Short Introduction to Circuit tree

Circuit tree is a circuit board design software application having intelligence of a hardware engineer to create embedded circuit board designs. It features more than 1000+ processors and controllers along with extended hardware peripheral library.

To start building your circuit board design now click on Access Tool.