Author Archives: Makarand Kapoor

About Makarand Kapoor

My Detail 1

Beautiful presentations with Prezi

There are some applications available on the net which are fun to use. A Pdf /Powerpoint presentations can be fun but often we look for something different/creative. Here is one of my recent finds where a presentation can be made to be a movie. While trying to create a creative presentation i happen to create a roller coaster circuit tree movie. Well watch the Prezi presentation below to find out. The story covers a daily grind of a hardware engineer.

Write back with your  comments at

Tip: Through setting bar change the auto movement to 10 second for best view.

Different types of IOT hardware

IOT Introduction

IOT stands for Internet of things. IOT is network which connects small devices such as door bell , parking sensor and many more to the internet.  This enables easy transfer and control of data between devices. There are certain factors which helped in the growth of IOT

  1. Availability of low power and cost microcontroller/processor devices.
  2. Development of low power radio’s
  3. Availability of development boards having microcontroller/processors with components such as radio’s, sensors which are sold with industry specific application program.
  4. Growth of big data and cloud computing.

Let us consider a interesting IOT use case of NEST. It is a intelligent thermostat found in Homes and connected to the cloud. NEST IOT device

NEST IOT device [Link]


Here is how the NEST device typically operates:

IOT architectureBoard HardwareBoard softwareConnectivityCloudGUI
HardwareSensor DataMicrocontroller/ProcessorRadioIOT GatewayMobile/PC/Server
Monitor TemperatureRead sensor Data from temperature sensorTransfer data to the cloud using RF protocols to communicate with gatewayStore dataDisplay data
Send data to the cloud through the radioCheck data across the AI engine to understand the optimal temperature settings to keep. Generate custom reports
Display temperature data on the Display. Check data across the AI engine to understand the optimal temperature settings to keep. Generate custom reports
Temperature controlChange the room temperature of the AC/heater
ShutdownGenerate shutdown alerts. Send alerts on the GUI.

Type of IOT Hardware

From the table above we can observe that two type of hardware boards are needed:

  1. IOT modules/sensorBoards: These boards typically have sensors, low power consuming micro controllers , radio’s , actuators, displays etc. They are typically powered through battery or make be connected to supply outlet. One of the most innovative IOT modules i admire is available at link with a video of its use case
  2. IOT gateways: A gateway acts as a bridge between the IOT modules/sensor boards and the cloud. Typical gateway boards would need to connect to multiple IOT sensor boards while parsing the information and passing it to the cloud. Security of the data and the gateway is must to prevent misuse. The hardware typically contains:
    1. Processor core running above 600Mhz core frequency. Having security engines to encrypt the data is a must. Must support the following interfaces
      1. DDR3/DDr4 Memories
      2. Ethernet connectivity ports such as RGMII/SGMII
      3. Radio modules
      4. Memories for firmware storage.
      5. Other peripherals as per the use case.

Challenges and Questions

To start creating different type of IOT hardware a designer should explore the following:

  1. Are there any inexpensive starter kits available which contains all the devices and controller that he needs for the IOT sensor/gateway ?
  2. What is the board power consumption, radio ranges, software stacks available?
  3. Is the final board form factor the same as required in your application?
  4. Can i reduce the cost of these starter kits if used in production?

and many more. More the number of questions you ask at the initial stage more it would define the product maturity.

Using the starter kits for testing may or may not work based on his needs being met with these boards. For instance look at the variety of IOT sensors available in the market and a quick survey would show that none of the starter kits can have plugin boards/shields with these sensor parts mounted on it.  Production with these starter kits is not recommended due to cost and large form factor even through the hardware churn may be less.

How can circuit tree help?

There are numerous articles which states that designing hardware is hard. Not at Circuit Tree it is very easy for us and it is a couple of minutes job for us.

Typically in a board design cycle a engineer would iterate through the long human controlled steps to generate designs in months. At circuit tree we do things differently wherein a AI engine designs the hardware for you based on your bespoke requirements.

We have thousands of low power micro controllers, processors along with peripherals all in the perfect mix to help you generate a quick IOT hardware of any type.

Some of the sensor components and radio components in circuit tree library are listed below:

Device namemanufacturerType
lis2hh12ST Microelectronicsaccelerometer
mma8451qNXP semiconductoraccelerometer
mpu9250TDK InvenSenseaccelerometer
adt7461Analog Devicestemperature
hdc1080Texas Instrumentshumidity+temperature
l3g4200dST microelectronicsgryoscope+temperature
mpl3115a2NXP semiconductorpressure+temperature
si7006Silicon Labshumidity+temperature
si7034Silicon Labshumidity+temperature
si7051Silicon Labstemperature
tmp75bNXP semiconductortemperature
bmc150Bosch Sensorteccompass
mag3110NXP semiconductorcompass
bmc280Bosch Sensortecpressure
bmc250Bosch Sensortecgryoscope
m41t65ST Microelectronicsrtc
pcf85063tpNXP semiconductorrtc
tsc2046Texas Instrumentstouch_controller
a2200Maestro Wireless SolutionsGPS
Circuit Tree identifierOrdering Part numberManufacturerType
cc3200CC3200MODR1M2AMOBTTexas Instrumentwifi module
esp8266ESP8266-12EAi Thinkerwifi module
sn800088-00153-02Muratawifi module
spbtle_rfSPBTLE-RFST MicroelectronicsBluetooth
pn7120_moduleOM5577NXP semiconductorNFC
a2500r24aA2500R24A00GMAnaren2.4 Ghz radio
rfm75RFM75-SHopeRF2.4 Ghz radio
xbee_s2cXB24CZ7UIS-004Digi InternationalZigbee


In the world of endless possibilities and number of hardware combinations circuit tree makes hardware development easy.

IOT Hardware

IOT Hardware

Using the circuit tree requirements editor a IOT sensor/gateway board can be easily created.

To get started on your hardware idea design implementation head to the app. If you have come across innovative implementation of IOT hardware or need any custom development write to us at


Evaluation of circuit tree with a stm32f407 microcontroller board -Part2

Design Goal

Time for another test of capability. These tests help us check the hardware compiler performance to a actual built commercial board. Some of the items for us to check are:

  1. How closer are we able to design the board with respect to requirements?
  2. Is there any possibility of optimization among circuit tree outputs?
  3. What is the board cost compared to the comparison board?
  4. Circuit Tree designs would be different than the designed board. How do we verify the design?

Olimex board

This time we compare the capability of circuit tree with another commercial board in the market available from olimex. It is a great open source hardware board available at a competitive price with great support from olimex.

Let us again pick the requirement of the board from site :

  1. STM32F407ZGT6 microcontroller
  2. JTAG connector with ARM 2×10 pin layout for programming/debugging
  3. Ethernet 100Mbit
  4. UEXT connector (UEXT is a board to board connector which supports three serial communication interfaces – I2C, SPI and RS232. There is also 3.3V line and GND.)
  5. USB host
  6. USB OTG
  7. SD-card
  8. Input DC DC power supply which allows operation from 6-16VDC source
  9. Power and user LEDs
  10. Reset and user buttons
  11. 4 full 20-pin Ports with the external memory bus for add-on modules
  12. Arduino platform with unsoldered headers
  13. 4 rubber pads for the mount holes
  14. PCB: FR-4, 1.5 mm (0.062″), soldermask, silkscreen component print
  15. Dimensions: 101.6 x 86mm (4 x 3.4″)
  16. Boards costs 40USD in quantity of unit 1 as per olimex.

Requirement entry in Circuit Tree

Let us add this requirement on circuit tree requirement editor:

Step 1:

We add requirements in the tool by adding spi, i2c and other buses to a UEXT connector. Similarily for the Arduino connector the spi and uart bus signals are routed to the connectors. We additionally add the GPIO connector having close to 11 pins. Additional interfaces such as ethernet with lan8710, usb type AB port with esd protection, sd card and jtag ports are added as per the snapshots below.






























Step 2:

Circuit Tree hardware compiler next finds the controller which can support these function. Circuit Tree returns close to 186 parts. We have option to select STM32F407ZGT6 or STM32F407ZET6 with several other parts. We choose STM32F407ZET6 as olimex schematic has this part designed into it.












We next select power of 6V to 14V as required in the requirement and get the schematic design generated in a minutes time. You would notice that the BOM cost derived from Octopart comes to USD 51. The pdf, bom and eagle schematic design is available at link













We select a board size of 130mm x64 mm.


















Output placement file is shown below with the constraint that all components be placed on the top side of the board. The red color denotes the placement of the component on the top side of the board. We need to work more on the board by adding the constraints to the board footprints. The arduino connectors are misplaced in the picture below. Files are uploaded at link










Comparison between two designs:

  1. SDHC section visual check: Circuit tree auto creates processor symbol based on the bus sections and adds them to the connector page. All pins of the connector and the processor pins are the same for sections stated below:
micro sd check

micro sd interface check










  1. JTAG section visual check:
Jtag connection visual chec

Jtag connection visual check








  1. USB section visual check: Two usb otg ports are compared. The connector pinouts, vbus generators and esd connections can be checked in the schematic.















  1. Ethernet RMII section: Comparison of lan8710 and STM32F407ZET6 connections are done. All controllers pins are the same except for the PG11 which in case of circuit tree schematic is PB11 which is correct as per pin mux.

lan8710 ethernet schematic

















  1. UEXT connector connections: The connections of the controller pins and the UEXT assignment is different than allocated. The connector pin definition is also different than the one desired.













  1. Other differences:
    1. Power, clock and reset generation is different in circuit tree. It shows that circuit tree can generates it own power supply connections based on what it calculates the extremes.
    2. Some of BOM parts selected by circuit tree are high is cost. One of the examples being integrated magnetics which cost close to usd 10. We would address this concern once we have sufficient parts in the library which would provide value range to the user.
    3. Arduino connectors are not compared as the pin assignment and gpio connections are not as per connector requirements even though the muxing from controller is correct. In the next release we would have new feature to change the connector pin outs.
    4. IFC pin connections failed as circuit tree does not generate a connection where it observes conflict of IO’s. The commercial schematic uses jumpers to isolate segments which we can also support at a later date.
    5. The placement of the design was not the same as the olimex board. We are in process of improving the constraint addition which would  help to create more custom designs.

It was a long post with visual comparison of the two boards. Write back to us at with your feature requests and suggestions.

Circuit-Tree Hardware Compiler Detailed Feature List

At Circuit Tree we have number of embedded board components and features which allow you to build a custom board quickly and reliably.  Circuit Tree has 1000’s of controller/processor along with number of peripheral devices.

List of Peripheral Interfaces

Interfaces supported by the hardware compiler:

  1. DDR3/DDR3L memory library

    1. Supports 8 Bit/16 Bit memories for a bus size of 8 bit to 64 wide bit.
    2. Added VTT termination support
    3. Support for multiple memory manufacturers.
    4. Additional features select options from the hardware compiler:
      1. Memories selected based on datarate, cas latency, single/dual die option.
      2. Hardware compiler is Intelligent to route DQS and Data group connection to various memory type based on the 8 Bit/16bit memories and the bus connection needed
      3. Route the ddr3 Bus Connections to any connector to provide capability to add plug in card.
  2. Parallel Memory library:

    1. Asynchronous Nor [16 Bit] -Various memory sizes
    2. Synchronous Nor [16 Bit] -Various memory sizes
    3. Nand Flash 8 bit -Various memory sizes
    4. Async Sram 16 Bit -Various memory sizes
    5. Additional features select options from the hardware compiler:
      1. Control memory selection based on the memory density and manufacturer
      2. Bus connections can be routed to a connector to provide capability to add plug in card.
  3. Serial Memory Library:

    1. QSPI, SPI,I2c -Various memory sizes and manufacturers
    2. Additional features the hardware compiler:
      1. Select Based on memory density, manufacturer
      2. Select addresses needed for each i2c device
  4. Ethernet Library:

    1. Wide number of transceivers supported for:
      1. Sgmii,GMII, Rgmii,RMII and MII
      2. Additional features select options from the hardware compiler:
        1. Auto selection of transceivers and option to change the transceiver to
          one of the transceivers from menu option. Auto routing for MDC/MDIO
          signals for all the transceivers.
        2. Ethernet transceivers connections are routed to the integrated magnetics.
        3. Option to change management bus address, features and functions of the
          selected transceivers.
  5. USB Library:

    1. ULPI Transceivers
    2. USB2.0 and USB3.0 differential from processor/micro-controllers
      1. Option to select USB Host, device, OTG mode.
      2. ESD protection diodes are added by default.
      3. Power fault protection circuitry
      4. Multiple peripheral support.
    3. Additional features select options from the hardware compiler:
      1. Select USB Host, device, OTG mode (Connectors, USB power
        switch, configurations and connections are done automatically by circuit-tree).
      2. Select multiple ULPI transceivers.
  6. Display library:

    1. Graphics LCD
    2. OLED LCD
    3. TFT LCD
    4. HDMI differential signals
    5. LVDS connection using display Bus
    6. HDMI output Using display bus
    7. DVI output using display bus
    8. Additional features select options from the hardware compiler:
      1. Option to select Component configuration
  7. Wireless Library:

    1. WIFI modules
    2. Bluetooth module
    3. NFC module
    4. Radio 2.4Ghz module
    5. Zigbee module
    6. GPS module
    7. Additional features select options from the hardware compiler:
      1. Component configuration
  8. Sensor Library:

    1. Temperature
    2. Accelerometer
    3. Humidity
    4. Compass
    5. Pressure
    6. Gyroscope
    7. RTC
    8. Additional features select options from the hardware compiler:
      1. Component selection from various vendors
  9. UART library

    1. RS232  transceivers of various vendors
    2. Additional features select options from the hardware compiler:
      1. Option to route the signals to DB9 or a 2×5 header
      2. Option to route any custom connector.
  10. Jtag Library:

    1. ARM Jtag 2×10 header
    2. ARM Jtag 2×5 header
    3. ARM SWI 2×5 header
    4. ARM SWI 2×10 header
    5. Additional features select options from the hardware compiler:
      1. Option to route the Jtag signals to any custom connector.
  11. PCIe library:

    1. Mini PCIe slot
    2. PCie x1, x4 and x8
    3. Additional features select options from the hardware compiler:
      1. Option to route the PCIe signals to any custom connector.
  12. SATA library:

    1. Sata connector without power from the board.
    2. Additional features select options from the hardware compiler:
      1. Option to route the SATA signals to any custom connector.
  13. SD library:

    1. SDHC connector
    2. or choose Emmc Memory
    3. Additional features select options from the hardware compiler:
      1. Option to route the sd signals to any custom connector.
  14. Audio library:

    1. Audio transceivers from various vendors
    2. Additional features select options from the hardware compiler:
      1. Option to select audio transceivers
      2. Option to select part features such as number of Microphones ,speaker etc
      3. Option to route the audio signals to any custom connector.
  15. CAN library:

    1. CAN transceivers
    2. Additional features select options from the hardware compiler:
      1. Option to select CAN transceiver
      2. Option to select features for a transceiver
      3. Select DB9 or a different connector to have the CAN signals routed to be connected to another CAN device.
      4. Option to route the CAN signals to any custom connector.
  16. Camera Library:

    1. Library contains Camera PCB Module and sensor.
    2. Additional features select options from the hardware compiler:
      1. Option to select Camera part from different manufacturer
      2. Option to select features for a camera pcb module.
      3. Option to route the camera signals to any custom connector.
  17. GPIO/ADC/DAC Library:

    1. Get the number of GPIO’s, ADC’s DAC’s needed for an application. The hardware compiler would select pins from processor/micro-controller to be added to a header for connection.
  18. Button/LED Library

    1. various leds are added on the board as per function needs of the board.

There is a lot of other finer details which we support. If you have additional questions then visit faq section or feel free to write back with your questions at

To start testing these features today visit our hardware compiler site.

Circuit Tree has number of followers in hackaday and in ST Microelectronics community.

Checkout the hackaday page.

Who Needs Circuit-Tree?

Circuit Tree is a hardware compiler which aims to assist engineers and corporations to create quick prototypes in embedded space. This concepts has been on a wish list of many engineers and lately DARPA has joined this initiative with announcement of the program.

Circuit Tree has in its library set contains

  1. 1000 of processor/micro controllers [Link]
  2. Number of peripheral components typically used in embedded board design.
  3. Number of misc components for power, clock, reset, switches, leds, adc’s, dac’s.
select embedded processor and controllers

Select processors from the various options and search bar

Embedded Part selection

Select Embedded elements and parts



















In Total circuit tree has close to 6500 components in its library list. This is a good set of components which can generate non human controlled hardware designs from a budding hardware compiler. Are you aware that circuit tree hardware compiler also auto generated embedded board design with schematics and placement for 900+ different controllers in different board form factor in 60hrs . This is far more that a human capability and makes circuit-tree hardware compiler useful for a quick churn of embedded designs. Check out our Github repository for depth of the various designs.

GitHub circuit-tree embedded design repository





Is circuit tree a hardware eda tool to design schematics with full fledged capability of a typical cadence allego, eagle tool set ? No it is not. Consider Circuit-tree to be a engineering assistant to help you with design generation and pcb generation. The hardware compiler is knowledgeable of your design unlike a typical eda tool which is dumb and does not know what a component footprint in xy direction is and where to place or route connections from it. The hardware compiler can present various deliverable in cadence allegro, eagle, altium or mentor tool right from the application console.

There are new features coming to circuit tree which would make circuit-tree useful for further majority of the engineers. New capability need to be thoroughly tested and takes time but we are committed to get the best hardware compiler in the market.

Automated Designs from Circuit Tree

Circuit tree with wordcloud

Wordcloud is a powerful way to analyse the data on the website. Here is one of the datacloud which shows circuit tree capability and strength. Circuit Tree has common peripherals and loads of controllers and processors to help create the hardware design on the cloud. We have tested our basic design through pcb and assembly of the drone board. (Link to Small Drone project). Do share your creative projects created with the help of circuit tree on

Circuit Tree capability






Another Experiment at circuit tree

We keep enjoy experimenting. Experimenting to create new type of designs, find issues, open new exciting features, check new ways to test the circuit Tree designs. We have a lot of capability to churn and mine new embedded designs using so many controllers, peripherals , placement options. So how do we check so many designs to check if they meet circuit tree quality goals?

Experiments at Circuit Tree

Experiments at Circuit Tree (Image Link: quote fancy)

Well answer lies with scripts. We use scripts written in python for several application including this one which auto generate controllers designs with random placement files. Even though regular users have menu options to choose designs scripts do following testing autonomously:

  1. select a processor/microcontroller
  2. Randomly choose peripherals that can be connected to it to generate design. The number of peripheral selected are random.
  3. Randomly select a voltage to be applied to the circuit
  4. Randomly select applied voltage options. It can be through custom voltage adapter or through the battery select options.
  5. Randomly select board file through dxf file and does auto placement of components. Only the files where the part placement is possible the file picture is taken and displayed.
  6. Test for errors
    1. Error between circuit tree designs and eda tool export options
    2. Check if the symbols and footprints are being exported correctly on the library.
    3. Check if all the cad design can be generated without issues.

Now we invite you to be the judge of the designs created with circuit tree. Check the github directory to see our design listing and let us know if you are able to find design errors. Then we would know if the experiment helped us.

To start creating designs today log in to the hardware compiler at link


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:

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 Timer pins. The connector is important as it helps in allocating the micro-controller pins for the Timer/PWM. The intent of using Timer 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.


Update1: Sept 16th 2017

Muneeb started working on the eagle downloaded design to add motors pads and mosfets to the design.  He is one of smart engineers we have on circuit tree who took the design and first started to review the design and compare the output of circuit tree with the stm-cube tool output. Once we was happy with the output it was time to change the connector page to add the motors pads and mosfets as shown below. The only change he had to do in the downloaded eagle schematic file was to change the grid to default.

Here is the copy of the page he edited:

Updating dummy connector page with motors and mosfet.

Updating dummy connector page with motors pads and mosfet.

The next check for him was to check if the eagle ERC was displaying any errors. No errors were found but number of warnings were observed stating two similar named nets are connected to one another. After a check it was time to see if the the circuit tree board file can get newly added components(mosfets and motor pads) in the placement. He further customised the placement file to meet his requirement.

Board revised placement

Board revised placement


Update2: Oct 10th 2017

We have released the board file for fabrication and assembly. Eagerly waiting for the first circuit tree design to come to life.

drone pcb design with ground pour.

drone pcb design with ground pour.

Released schematic and Board file is available in our github repository .

Stay tuned to know how we progress ahead with this design. We cannot control our excitement.


Update no 3: Oct 20th 2017:

We just got the pcb fabricated from china. There is a minor issue with respect to the via tenting which the pcb vendor did not make despite being in the requirement. Components have been ordered and now the pcb assembly starts.

Top Side of the drone PCB

Top Side of the drone PCB

Bottom Side of the PCB

Bottom Side of the PCB

Looking for a healthy board bringup without any wires.


Update no 4: Oct 30th 2017:

Here are the set of assembled boards designed through circuit tree.   Board bringup’s are always interesting milestone for a hardware design engineer as we spark new life into a element.

Quick checks done so far:

  1. Component placement checked
  2. Power short check shows no issue so far.
  3. Weight of the board.
  4. Note there are no overlapping components.

So far so good. It is late in the evening will do the bringup tomorrow with a detailed test plan.

Assembled Drone Boards designed by circuit treeAssembled Drone Boards designed by circuit tree

Update no 5: Nov 2nd 2017

Picture of the board assembled with motors and power test. Board was first tested for open short test. The board was powered with usb cable and then the main board voltage was found to be 3.29v. Great work so far.




Update no 6: Nov 4th 2017

The moment we have been all waiting for is here. Here is a quick update on the board bringup:

  1. Powered the board through the usb cable connected to a laptop. All voltages are good.
  2. Connected the st micro to ST-LINK/V2 through a custom adapter cable as the connector on the board was incompatible with the pitch of the programmer.
  3. Detected the stm32l052 device on the programmer console.
  4. Programmed a code to drive the motors through the mosfet.
  5. Next connected the battery on the board after switching on the board.
  6. Result is as shown in the video. The right side of the drone had more lift compared to left side.

Really happy and satisfied with the result.

The next steps would be to connect the board through bluetooth to power on and off the board using laptop bluetooth control. Also we would interface with all the board sensors to get the real time data.

The good news is that the most of the hardware functionality is working as expected. Circuit tree application has designed a board which is reliable in short span of design time. In hardware design lots of items have to tick right and circuit tree has just shown the capability.

The next update would be in few weeks when we have created the software.



Update no 7: Dec 10th 2017

Here is another update to the drone testing. In the video below you will notice that Bluetooth and a application layer is running on the drone which allows turn on and off of the left side and right side motors. You will also notice that we had to connect a wire on the board to connect the stmicro with the bluetooth transceiver. This wire was added to allow the software to reset the transceiver as needed. This is the option which would integrate in the application.

This is a good learning we have had. In the next update we would share the application software used for the development which would be free to use.

Thank you for reading through the long post.



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 simple or complex 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 iterations at prototype stage need to be done to find the best form factor 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