Get started with hardware generator

Soon, you will be ready to easily design embeded hardware circuit for all your needs ! If you don't received your EBE yet or if you just don't want it, no problem. Just check the Download page and get LaboV1 executable . Because it's just code, some details may change with time, hope in a better way. 

Bit of theory

Before we go futher, you may understand a little of the way that the program think, barely a meta-physical reflection about how system works. In a hardware circuit,  every device may need resources to work, and may offer resources to others devices. That's the point off this program.

In the program, every device correspond to a library ".dev" file, that contains information about. In these files is wrote the offered and needed resources for the device.  To draw connections between devices, every virtual devices looks for other device's offered resource that may handle one of its needed. If both resources share the same type (supply,analog,logic...) and are on the same tension levels, the connection is made.  Every devices correspond to a device in Eagle ".lbr" file that contains geometry of package and symbol used. That's how it can translate data to an Eagle ".scr" script and draw right connections on the schematic. A device can contains several physical components connected to ONE main component in an internal circuit, to abstract little adds like resistors and capacitors needed to get it working. So keep in mind that a device refers to a little circuit around one component. 

First touch

Ok, so now let's try it. Open labo program on Desktop and click on the "Hardware"  up-left corner tab. You should see something like this:

Numbers corresponds to :

  • 1 : Circuit name Edit. 
  • 2 : Statistics button. It will open a window with generals statistics as the approximate final circuit area, the total price of components and the necessary tools for assembly/soldering the circuit.
  • 3 : Save circuit button. It will browse files to save the circuit correcty
  • 4: Add button. You will have to choose a device or a group of devices in libraries you got in the system.
  • 5: Clear circuit button.
  • 6: Export the circuit as an Eagle file. 


The application

One of the most difficult thing with this program is to choose features of your application. At this step you need to know what you want, and what the program can do. For now, this system is working good with logical network like most of every-day application. Analogic filtering or amplification could be complex and long to do so if it's your first time, try something smaller !

If you don't have application idea for now, let's take the basic example of the LED tree project, from here. To achieve this machine, the internal circuit must obsiously offer the following features:

  • RGB LED chain
  • WiFi compatible
  • Little LCD screen to display things (not necessary)
  • Buttons (not necessary) 

A circuit always needs ONE controller that is the master of every other devices. You can't add a controller if one is already there. The controller is shown at the center of the display. 

The most difficult part is here: to know witch device you actually want to add. A name of device is not necessary similar to the corresponding component name, but is give the way that the device may be use with. For example, the arduino Uno directory contains two device files "master.dev" and "slave.dev". The first one is a controller, the other is just a generic device, and the offered and needed resources are not the same, as the internal circuit may change.  We recomand you to add few devices randomly at first and choose the one you want. 

When you have added a device to the current circuit, the program will autonatically connect it with the other ressources, as explained at the top of page. After this, every device will verify itself and show a logo corresponding to it state.

When you have added a device to the current circuit, the program will autonatically connect it with the other ressources, as explained at the top of page. After this, every device will verify itself and show a logo corresponding to it state.  Every devices shows it connecting state with a logo the green one stands when the device's needed resources are all handled by other device. The entire circuit will only be ready when every device will show the green icon. A red Icon can mean that at least one of these needs is still missing. A yellow icon is for library decoding error, if the device can't find its data in system file.


The most difficult part is here: to know witch device you actually want to add. A name of device is not necessary similar to the corresponding component name, but is give the way that the device may be use with. For example, the arduino Uno directory contains two device files "master.dev" and "slave.dev". The first one is a controller, the other is just a generic device, and the offered and needed resources are not the same, as the internal circuit may change.  We recommend you to add few devices randomly at first and choose the one you want. 

The following picture show the result of adding an ESP8266 and a RGB LED chain at the following paths:

  • ESP : "/devices/controlers/ESP8266/master.dev"
  • LED : "devices/display/leds/neopixel.dev"


On previous picture on Fig 4, you can see the white connection between the two devices, corresponding to the GPIO signal, needed by the led and offered by the ESP8266 controler. At that time, both of devices shows the red icon. It is normal in that case, this example has some more to tell you. But for now, bit of theory about resources.

Bit of theory

Time now to tell you more about the "ressources" that you might see on previous pictures. It represent a package of signals that bring the same feature. For example, a SUPPLY resource must contains two signals VCC and GND ( respectively + and - signals). A connection between two ore mode devices have to be on the same resource type. Moreover, a resource contains other parameters like the voltage operating limit and a quantity called C that can represent the current consumption, or a chainable ressource type. If a needed resource has a non-zero C, that means that it is not handled. To handle this resource, the potential given resource has to have a C greater than the C's needed. When a connection is made, the system will update these parameters and decrease C of connected devices.  and draw the corresponding line between. The line's color is chosen depending on the resource type, as shown on Fig 6  below. After this connection, the newly handled needed resource 


Get the circuit done

 To add the nesesary missing devices, just click on one. The following picture show the LED's settings window. :


The find ressource selected tab shows the possibilities of devices that could handle one of the device's needed ressource. Please check the following items:

  • 1 : Device's description found in corresponding eagle ".lbr" file
  • 2 : Delete this device in circuit
  • 3 : Cancel operation
  • 4 : Browse the different device's needed ressource
  • 5 : Information about the current needed resource that is looking for handling 
  • 6 : information about one of offered resources found in circuit
  • 7 : information about the proposed device
  • 8 : device preview
  • 9 : Browse the proposed devices. The order of the list is the result of computing the price, the number of occurences etc.. The first device shown is often the best "obvious" solution.

Click on Add button to add this device to the current circuit. You should see someting like this:

Now the LED if fully connected as shown by the green icon. Both of the two other devices are showing red. Just repeat this operation until all is green, and it's done !

To export the circuit, click on Export button. The program will generate an Eagle script ".scr". Problem is that device can't run the Eagle program for now. So get the script on your computer via VNC or SSH for example and open it on Eagle. 

The schematic ".sch" file will be automaticly generated and the corresponding empty board will open. Place your components and route it like usual (or following this tuto)

 That's it ! Now you can order you circuit on web. OshPark is very good for naked boards, Digikey is for components. Run the "bom.ulp" program to generate the BOM file (list of components and their reference).


Hope you apreciate to discover it, if you got some issues, remarks or suggestions, dont hesitate to contact us !