Tag Archives: eagle

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.

Requirement_editor-1

Requirement_editor-1

 

 

 

 

 

 

 

Requirement_editor-2

Requirement_editor-2

 

Requirement_editor-3

Requirement_editor-3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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.

processor_selection

processor_selection

 

 

 

 

 

 

 

 

Step3:

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

schematic-final

schematic-final

 

 

 

 

 

 

 

 

 

Step4:

We select a board size of 130mm x64 mm.

placement_file

placement_file

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Step5:

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

placement_with_details

placement_with_details

 

 

 

 

 

 

 

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.
usb_otg_sch

usb_otg_sch

 

 

 

 

 

 

 

 

 

 

 

 

 

  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.
ethernet_schematic

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.
UEXT_connector_connections

UEXT_connector_connections

 

 

 

 

 

 

 

 

 

 

Differences

  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 info@circuit.swapdevelopment.com with your feature requests and suggestions.

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:
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 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.

drone_with_motors

drone_with_motors

 


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.


Update no 8: July 31st 2020

Circuit Diagram and design files for the drone project is available at the github link 

https://github.com/makarandkapoor/Circuit_Tree_Designs/tree/master/Development_boards/Small_drone_board

The assembled board is also available for sale at https://circuit-tree.com/shop/

For any additional questions contact info@circuit.swapdevelopment.com 

 


 

Ten quick reasons to use circuit tree in your next embedded PCB board design

1. Save Design Time and Cost by quickly creating automatic schematic and pcb placement design with any of the 1000 processors or micro-controllers. We dont store any circuit board designs and all design are auto generated on the fly. Get the most intelligent component placement recommendation for the board.

Circuit-tree-designs3


 

2. Wide range of processors and micro-controller parts from Texas-intrument, Nvidia, St micro, Atmel or NXP.

supported_semiconductor_vendors


 

3. Export your design creations to popular Cadence orcad , Mentor pads, Eagle and Altium for further customisations. Designs remain yours forever.

pcb-vendors2


 

4. Quick Product cost estimate. Get real time cost from octopart and PCB house for the pcb cost.

bill of material excel sheet generated from octopart

bill of material excel sheet generated from octopart


 

5. Support for variety of board form factors such as Computer on Module, System on Module and Various form factor boards.

various-periphearl


 

6. Large peripheral library along with growing list of components. Change components on the fly for the design and get a new design created in 60 seconds.


 

7. Assured quality. We go the extra mile to ensure that the designs generated are correct.

 


 

8. We value your Privacy. We don’t sell personal information to another site.


 

9. Growing Artificial Design Engine that grows with every user interaction and part addition in library. artificial-intelligence-in-embedded-pcb-design


 

10. Site has been created by engineers for engineers.


 

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.

Here is a introduction video to circuit tree:

To start building your circuit board design now click on Access Tool. For help/guidance needed with embedded hardware design write to us at info@circuit.swapdevelopment.com


 

Pain Points for Electronic Engineers

A few years back element14 conducted a survey to find the paint points which an electronic engineer faces. It is an interesting read available at :

Element14 survey results

Well, it is not surprising that the pain points presented in few years old studies are still valid today. Here is the summary of these:

  1. Initial design stages (before prototype assembly and testing) typically require the most time and effort to gather all the necessary information.
  2. There’s never enough time to properly utilize every relevant source.
  3. Incomplete information is common across relevant sources.
  4. Managing customer and vendor relations throughout the design process can be complicated, consuming even more time and resources.

At circuit tree we are trying to solve these pain points. Circuit-tree is completely automated and auto-generates for your embedded circuit board designs

  1. Build design schematic design in Eagle and Altium
  2. Real-Time Bom cost with octopart.
  3. Integrated footprints

The application is completely automated and one-stop for all the information you may need. It has been designed to provide a reliable design and helps you jump start your embedded circuit board design quickly.

Let us know what do think about our application tool capability in solving these problems.


Short Introduction to Circuit tree

Circuit-tree is an online EDA application having the 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.

A short introduction to Circuit Tree:

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


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 onboard 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. 

Thanks for reading the post.


Short Introduction to Circuit tree

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

A 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.

STM32f407_Board_Requirement

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.

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 an online EDA application having the 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 an introduction video to Circuit tree: