Category Archives: Capability Test

ESP32 Gateway board


ESP32 Gateway board is the second board designed using circuit tree application having following feature set:

  1. ESP32D-WROOM Module used.
  2. Mikro click connectivity on board. More details at
  3. 12V Power input for connecting DC jack.
  4. 10/100 Base T Ethernet port
  5. USB to UART cable connector for connecting FTDI USB to UART cable.
  6. Onboard regulators of 3.3v/5V along with control logic
  7. Switch and LED’s to provide status.
  8.  4 layer design

The board has been designed autonomously by Circuit Tree application. This design has been added in Example 4 in and can be customized/modified with any changes desired.

Here are some of the screenshots of the top/bottom SVG renderings.














esp32 gateway svg Top_Side


esp32 gateway svg Bot_layer













Fabricated Board



Assembled Board















Bring-up test is underway for the board. So far initial tests show no electrical failures. We did miss on the silkscreen but that is why we need to automate more so that errors are minimized.

Design files are uploaded in the Github link.

More details of applications with these boards in upcoming blogs.



ESP32 rapid development click board

Board objective:

Everybody likes rapid development kit. These boards should be easy to interconnect to a number of boards/shields and offer firmware to jump-start to start testing the idea.

What better to have click modules designed by Mikro-electronica which offers more than 500+ boards to connect any type of peripheral.

esp32 from express-if is another popular board that offers wifi/Bluetooth along with a number of peripherals bus to connect to a variety of devices.

Combining these two functions on the board boosts a number of different ideas that can be implemented with this board.

So introducing our new board named esp32 rapid development click board. The board has been designed using Circuit tree app autonomously except for some placement change and silkscreen updates which were done manually.

Here are some of the key features of the board:

  1. ESP32D-WROOM Module used.
  2. USB/Battery powered board
  3. On-Board UART to USB function for debugging and programming.
  4. Onboard regulators of 3.3v/5V along with control logic
  5. Switch and LED’s to provide status.


Here are some of the screenshots of the top/bottom SVG renderings.

















esp32 rapid development board-PCB Fabrication -Top side















Design files are available at Github.

There is much more planned fun along with the board which would be shared in upcoming blogs.

This board is available on sale from our website.

Designing a board gives a lot of satisfaction and fills you with motivation to keep going. The happiness and motivation that we got from the project were boosted much more as it was not only the successful board bring up but it was the Circuit Tree application that was also tested.

I hope you are also able to share our joy.


STM32 Micro-python 1.1 board


We are big fan of Python as it is extensively been used on most of our development tasks. One of our colleagues mentioned to create a third board using circuit tree having micro-python running on it. That sounded like a cool idea.

pyboard1.1 (Link:Sparkfun)

We wanted to build the board having feature set similar to the micro python 1.1 board. The additional constraint was to even have the interfaces and the dimensions the same.

Using Circuit Tree the design was loaded using command line entry through schematic. The Circuit Tree application autonomously completed these different activities:

  1. Interconnected the components specified in the requirement.
  2. Selected power, clock, reset components
  3. Selected discrete values needed by different components as per the electrical requirement.
  4. Generated the clean and error free schematic
  5. Accepted the board boundary which was the micro python form factor.
  6. Completed board placement. This placement had to be modified as some some components were placed far off. So human intervention was done here.
  7. Generated a two layer PCB design on it own. All the pcb routing, plane creation, Thick traces routing , length matching was autonomously. Here Human intervention was introduced to redo some traces. Human intervention was introduced to ensure that the design was correct.
  8. Gerber files were generated by the app after the silk screen was updated by engineer working on the program.

Using BOM component links the components were ordered. So yes it was minimal human intervention and feels good looking at the task circuit tree application is now able to undertake.

It is a two layer design with pictures below displaying svg of all layers, bottom and top layers.


Bottom side pyboard1.1

Top side pyboard1.1


































And here is the PCB Fabricated using circuit tree application design:

Fabricated board













The board is now under pcb assembly. Waiting patiently to get the boards so that we can load the micro python the board.

The PCB has been in India and this is the third board from us. Lots of learnings along the way.

We dream for the day when we are able to design complex boards (6+ layers, 400+ components including BGA components) using Circuit Tree application under 3 hours of effort.

If board design is a pain point for you write back to us what you would like us to solve. 

New Developments

New features and updates added in Circuit tree:

  1. Updated requirement editor which allows generation of variety of design using variety of components and blocks.
  2. UI/UX improvements.
  3. Placement engine update. The new engine is more efficient optimiser and produces placements and board outlines similar to a engineer on the project would do.
  4. Layout creation. The engine can now generate 2/4/6 layer designs depending on the complexity or requirement defined. BGA/small pitch components are easily routed.
  5. Designed three new boards complete with assembly. These boards have been autonomously designed at circuit tree with some manual help. It has been very useful and productive exercise.

More details of these boards in upcoming posts.

Boards designed with circuit tree

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
      3. Bus connections can be routed to a connector to provide capability to add plug in card.
  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.
        4. Bus connections can be routed to a connector to provide capability to add plug in card.
  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.
      3. Bus connections can be routed to a connector to provide capability to add plug in card.
  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
      2. Bus connections can be routed to a connector to provide capability to add plug in card.
  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.

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


Board Design with TMS320DM8148 processor

We start to create a board design similar to TMDXEVM8148 board which is distributed by Texas Instruments. Some of the feature set of the board are listed below:

  1. Dual 32bit DDR3 controller of TMS320DM8148 interfaced to a DDR3 Memory of 1GB
  2. 256MB NAND Flash Memory placed in 48 pin TSOP socket
  3. 256-Kb I2C Serial EEPROM to store the board ID information
  4. 32Mb SPI Flash provided on the EVM for optional booting
  5. On Board Audio Codec AIC31066 “Ultra low power microcontroller MSP430 used for power monitoring using the current shunt & power monitor devices INA220
  6. Expansion connectors supporting plug-in application boards
  7. Two USB-OTG ports with integrated 2.0 PHY
  8. Supports analog video output such as, Composite video and S-video
  9. 1080p HDMI Video Output with ESD Protection
  10. On board Audio Input (Line in and Mic) and Audio Output (Line Out and Headphone)
  11. 4-bit SD/MMC interface
  12. Two Gigabit Ethernet port with onboard Ethernet PHY’s using RGMII ports
  13. Dedicated UART port for Debug and MSP430
  14. IR Receiver interface
  15. JTAG for DM814x and MSP430
  16. PCIeX1 lane support on PCIe-x4 connector
  17. SATA 3Gbps direct Interface to HDD with on board HDD power connector
  18. DC supply 12V +/- 5%, 5A Max through Power adapter
  19. On Board Clocks for DM814x and for SATA/PCIe
  20. Reset and power on/off switches for controlling the DM814x EVM
  21. Boot switches for various boot configuration selection
  22. Expansion IO Boards
    1. 512 MBit NOR Flash memory
    2. 3 axis smart digital output accelerometer
    3. 256-Kb I2C CMOS Serial EEPROM to store the board ID information
    4. WLAN Daughter card provides IEEE802.11 b/g/n wireless LAN, Bluetooth v3, including Bluetooth low energy (BLE) connectivity
    5. SPDIF interface through TOSLINK & RCA jack Analog SD IN (S-Video & composite video) digitized using TVP5147M1 decoder
    6. Analog HD IN (RGB & VGA) using triple high-performance analog-to-digital (A/D) converter TVP7002
    7. Digital HD Video capture using DVI Receiver (SiI1161)
    8. LCD connector for interfacing LCD adapter board Serial camera interface through CSI
    9. 12- Bit parallel camera interface
    10. UART
    11. Dual DCAN Bus interface

Circuit tree has been able to take in these complex board requirements and has been able to generate a complete schematic. The generated eagle schematic is available on the link.

Thanks for reading the post.

Short Introduction to Circuit tree

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

Short introduction to Circuit Tree:

Continue reading

Evaluation of circuit tree with a stm32f407 microcontroller board

Here is another capability test we wanted to conduct with the latest set of features. These tests help us check the limits to which we can test our engine check in addition to check the usability of the application.

We choose a stm32f407 reference design from STMicroelectronics for comparison as it is a complex board and our guess is that it has taken several week to design the board.

We quickly pulled in the design which we have created in our example library and selected components such as usb3317 from the usb library as our ulpi transceiver. We let circuit tree design remaining combinations for us. This is the what our design looked like in requirement editor.


Circuit tree quickly generated the design for us by doing all the complex tasks behind the scenes.

Let us compare the results. The table below shows what circuit tree could achieve in comparison with the board and what it could not.

Comparison chart

Comparison chart of features supported by the two boards

I am glad to report following findings:
1. Circuit tree did not connect two peripherals in parallel. For instance MicroSD connector and RS232 connectors. It also did not do create connections where audio port is shares pin with MicroSd port ON ST boards. Here are the list of pins allocated by the circuit tree versus the application board.
2. Some of the features we don’t support at the moment but we have capability to do so and extending our capability every day.
3. Finding processor pins for the peripherals, component selection for peripherals, power clock reset, optimisation, decision circuit configuration , schematic generation and check is all done in a shortest span of time. We like to keep things simple and easily understandable for our users which is reflected in our final output.
4. The application schematic generated can still be downloaded in a popular PCB design tool and used for further customisation.
5. The best part is that I can quickly go back to the requirement editor and change
a). The ethernet transceiver to Microchip lan8710 and
b). The CAN transceiver to TI SN65HVD230D and
c). Change zigbee module to Zigbee Internation XB24C module.
d). change input voltage to 9V.

The design file [containing Eagle and Altium] Schematic and the bill of material  is ready by the time i write this. You can check it out through the link below:


TIP: You could also go back to the board requirement menu ,delete the processor and add any other processor and still generate the design.


Short Introduction to Circuit tree

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

Here is a introduction video to circuit tree:

Evaluation of circuit tree generated schematic design with a AM3352 SOM EVB Board

We would be running a capability test with a circuit tree processor library part am3352 processors and a olimex based design which is a open source hardware boards listed at

Olimex SOM EVB


Olimex Am3352 SOM

The purpose of the test is to check the following

  1. Components selected by circuit tree and its comparison with the various peripherals selected by olimex Board.
  2. Pin Mux connections from the circuit tree versus the board.
  3.  Power, clocks and reset component selection and strategies by circuit tree engine to generate the design.

The processor lies on a system on module which connects with a base board where other peripherals are listed out. Our first goal is to create a board with similar peripherals connected by the olimex design.

We entered the requirements in the requirements editor as shown below in the picture and then generated the design. For more details of how to enter a requirements you can refer our post Guide for creating a fresh design

Am3352 board requirement

Am3352 board requirement

For more detailed overview of the requirements addition process we have covered it in our next blog.

The design generated by the circuit tree matches the am3352 design in terms of peripheral connectivity. There were differences in some parts which can be seen in the table below.


Circuit tree engine is able to generate a complex board design/schematic in a minute’s time after all the requirements are entered. We understand the pain of generating a embedded design and allowed the tool to simplify the complete design generation.

The generated design along with the bill of material cost can be downloaded through the link for the comparison.


Circuit tree now supports close to 1000 processors and number of peripherals components. Generate instant schematic design and much awaited pcb placement in few minutes to bring your product closer to completion using the application.

Login to our server to checkout the online EDA application. .


Team Circuit tree


Short Introduction to Circuit tree

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

Here is a introduction video to circuit tree: