SimulIDE https://simulide.com/p Circuit Simulator Thu, 12 Mar 2026 21:08:50 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://simulide.com/p/wp-content/uploads/2023/11/simulide_64.png SimulIDE https://simulide.com/p 32 32 SimulIDE 1.1.0-SR2 (Stable Release 2) available for download. https://simulide.com/p/simulide-1-1-0-sr2-stable-release-2-available-for-download/ Thu, 12 Mar 2026 21:08:50 +0000 https://simulide.com/p/?p=4487 Hi guys. I Hope you are doing very well.

Just to announce that stable version 1.1.0 has been updated to release SR2.
It is available in our download section as always: https://simulide.com/p/downloads/

This project is possible thanks to our collaborators, donations and everybody who reported bugs,
translated or contributed in any other way.

Don’t forget to report any problem in our forum.
Most problems are usually solved in a few days, so if you want something solved please report it.
If you don’t report maybe nobody else does and the problem remains unsolved.

Have a great day and thank you very much for your support!

]]>
“Time to Switch: Launchpad Phasing Out Bazaar for Git” https://simulide.com/p/time-to-switch-launchpad-phasing-out-bazaar-for-git/ Mon, 14 Jul 2025 19:39:51 +0000 https://simulide.com/p/?p=4116 Hey everyone! So, Launchpad, the team behind Ubuntu Linux, just dropped a quick announcement that not many people might have seen. They’re letting us know that their old version control system, Bazaar, is going to be unsupported pretty soon.

They’re urging everyone to switch their Bazaar branches over to Git before the deadline hits. Git’s been around for a while now and is actually the go-to format on their platform.

We had been using Bazaar in Launchpad for a while, and the development branch was transitioned to GitHub some time ago. However, version 1.1.0 was still being maintained in a Bazaar repository. We have now moved version 1.1.0 to a Git repository, which you can find here.
Note that you can download tester builds for 1.1.0 here.

If you have any questions, please let us now in our forum.

Have a great day and thank you very much for your support!

]]>
SimulIDE 1.1.0-SR1 (Stable Release 1) available for download. https://simulide.com/p/simulide-1-1-0-sr1-stable-release-1-available-for-download/ Thu, 17 Oct 2024 03:00:24 +0000 https://simulide.com/p/?p=3724 Hello everybody.
I Hope you are doing very well.

I’m glad to announce that the next “stable” release 1.1.0-SR1 is available for download.

This project is possible thanks to our Patrons, collaborators, donations and everybody who reported bugs,
translated or contributed in any other way.

Don’t forget to report any problem in our forum.
Most problems are usually solved in a few days, so if you want something solved please report it.
If you don’t report maybe nobody else does and the problem remains unsolved.

Have a great day and thank you very much for your support!

]]>
SimulIDE 1.1.0-SR0 (Stable Release 0) available for download. https://simulide.com/p/simulide-1-1-0-sr0-stable-release-0-available-for-download/ Mon, 25 Mar 2024 03:37:47 +0000 https://simulide.com/p/?p=3262 Hello everybody. I Hope you are doing very well.

I’m glad to announce that the first “stable” release for 1.1.0 is available for download:

https://simulide.com/p/download110/

The documentation is being updated to match this version:
https://simulide.com/p/simulidekb/
Still some work to do but it is progressing.
If you miss something please report in our forum to add it.

There is also a new repository for the development branch at GitHub:
https://github.com/Arcachofo/SimulIDE-dev
Now on all the development will happen in this repo.

Next version is already being developed, with a strong focus in making easy to create and share custom components.
There is also plan to add a section in the website to share components.
So hopefully soon we will have many new components available.

This project is posible thanks to our Patrons, collaborators, donations and everybody who reported bugs, translated or contributed in any other way.

Don’t forget to report any problem in our forum.
Most problems are usually solved in a few days, so if you want something solved please report it.
If you don’t report maybe nobody else does and the problem remains unsolved.

Have a great day and thank you very much for your support!

]]>
LONG DISTANCE MEASUREMENT_(DF353) https://simulide.com/p/long-distance-measurement_df353/ Fri, 02 Feb 2024 17:44:32 +0000 https://simulide.com/p/?p=2796 (Simulide R2162 or higher).

CONCEPT:

To measure distances there are multiple devices such as measuring tapes, lasers, ultrasounds, etc., but when you want to measure longer distances, measure a terrain with all its potholes and obstacles or measure the perimeter of an irregular property, the “ODOMETER” is used . This measuring equipment consists of a wheel as a sensing element that, when manually rolled over the ground, measures the distance traveled in meters using a counter.
 
The project that we propose here is based on the design of an odometer, for this we use the Simulide DC motor encoder. In this case, the motor is used passively (for simulation only), so its shaft is attached to the measuring wheel. We have included an OLED screen with a counter of the meters traveled and the value of the wheel radius. For the measurement to be correct, the circumference in meters must be known, which is achieved with the <WHEEL> adjustment potentiometer. When starting up the system enters adjustment mode, by moving the potentiometer you can enter the value of the wheel radius up to a maximum of 1 meter. From this data, the length of the wheel circumference is displayed on the OLED.
 
 
 
Below we detail the controls and use of our odometer:
 
  • [START/STOP]: In STOP the radio is adjusted and the odometer data in meters can also be deleted and the <STOP> LED flashes continuously. In START the measurement starts. The wheel will rotate if the <PAUSE> switch and the power supply have a voltage between 0 and 5 volts to simulate the measurement speed. In this position the radio can no longer be adjusted and the <STOP> LED turns off. The degree LEDs will begin to move at the rate of rotation of the measuring wheel marking each of the quarters of the wheel where the measurement is taken, these ranges are: 0 to 89 degrees, 90 to 179, 180 to 269 and 270 to 359
  • [RESET] In STOP mode the odometer counter can be reset.
  • ADJUSTMENT POTENTIOMETER. In STOP mode, the wheel radius can be adjusted from 0 to 0.99 meters. The data is displayed on the OLED.
  • MEASURING WHEEL: It is associated with the motor shaft that moves the potentiometer of the internal encoder of the DC motor.

To know more about the odometer:  https://es.wikipedia.org/wiki/Od%C3%B3metro

SCHEME:

The project is based on Arduino UNO as a controller. The 128×64-bit monochrome OLED display is connected via I2C. The [RST] and [START/STOP] buttons are connected to D4 and D2 respectively with internal PULLUP. The set of LEDs used as a monitor are connected as shown in the diagram and calculated for a current of about 20mA each. The <WHELL> potentiometer provides a regulated voltage between 0 and 5V through input A3. Through A1, the DC-motor encoder voltage from 0 to 5v is entered. The ENCODER-MONITOR is a complementary encoder position information device. The power supply and the <PAUSE> switch make up the rotation simulation stage, introducing a voltage of 0 to 5V to the motor to simulate the rotation speed of the wheel and therefore the measurement. This speed does not affect the measurement result, nor even its potential variations.

PROGRAM:

C program for Arduino with the libraries: Wire.h, Adafruit_GFX.h and Adafruit_SSD1306.h. These are very standard and easy to find and download.
 
The program is commented on its key points. It is worth highlighting the use of the [START/STOP] pushbutton by interruption, a necessary operation given that the loop is mainly occupied with continuous and real-time attention in reading the motor encoder.
 
// LONG DISTANCE METER BY WHELL ROTATION (Odometer). DEFRAN24
// Use Arduino and Simulide R2162.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 
#define SCREEN_HEIGHT 64 
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
int MON=13;
int G1=8, G2=9, G3=10, G4=11;
int MEAS=2;
int RST=4;
int senV;
int dista=A1;            // ENCODER SENSOR
int Wheel=A3;            // RADIUS POTENTIOMETER
int v1, v2, v3, v4;
float radius=0;
float rota=0;
float ruedaR;
float circun;
float rueda4;
int state=HIGH;
int MEASv;

void setup() 
{
  pinMode(MEAS, INPUT_PULLUP);
  pinMode(RST, INPUT_PULLUP);
  pinMode(MON, OUTPUT);
  pinMode(G1, OUTPUT); pinMode(G2, OUTPUT); pinMode(G3, OUTPUT); pinMode(G4, OUTPUT);
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {for(;;);}   // Address 0x3C
  display.cp437(true);
  display.clearDisplay();
  attachInterrupt(digitalPinToInterrupt(MEAS), RUPTO, RISING); // Interruption
  MEASv=LOW;
}

void loop() 
{
  FLA:
  if (MEASv==LOW)                          // ADJUSTMENT CALCULATION
  {
    senV=0; 
    ruedaR=analogRead(Wheel);              // V. analog from encoder
    ruedaR=map(ruedaR, 0, 1023, 0, 100);   // Scale (0 to 100) 
    radius=ruedaR/100;                     // Radius
    circun=radius*2*3.14;                  // Circumference
    rueda4=circun/4;                       // Circumference /4
    OLED(); 
    digitalWrite(MON,HIGH); delay(200); digitalWrite(MON,LOW); delay(50);
    if(digitalRead(RST)==HIGH) {senV=0; rota=0; OLED();}       // RESET
    goto FLA;
  }
  do {senV=analogRead(dista); digitalWrite(G1,HIGH); v1=senV;}  // UP
  while (senV>0 && senV<224);     // RANGE
  digitalWrite(G1,LOW);           // LED
  if (v1>v4) rota=rota+rueda4;    // DIRECTION
  OLED();
  do {senV=analogRead(dista); digitalWrite(G2,HIGH); v2=senV;}  // LEFT
  while (senV>225 && senV<511);
  digitalWrite(G2,LOW);
  if (v2>v1) rota=rota+rueda4;
  OLED();
  do {senV=analogRead(dista); digitalWrite(G3,HIGH); v3=senV;}  // RIGHT
  while (senV>512 && senV<767);
  digitalWrite(G3,LOW);
  if (v3>v2) rota=rota+rueda4;
  OLED();
  do {senV=analogRead(dista); digitalWrite(G4,HIGH); v4=senV;}  // DOWN
  while (senV>768 && senV<1023);
  digitalWrite(G4,LOW);
  if (v3>v4) rota=rota+rueda4;
  OLED();
}

void OLED()
{
  display.clearDisplay(); 
  display.setTextSize(1);                 // Size 1
  display.setTextColor(BLACK, WHITE);     // White background
  display.setCursor(0, 6);
  display.print(" LONG DISTANCE MEAS. ");
  display.setTextColor(WHITE);
  display.drawLine(0,16,126,16,WHITE);    // LINE X,Y,WIDTH, Y FIN
  display.setCursor(2, 20);
  display.print("WHEEL RADIUS: ");
  display.print(radius);                  // Radius
  display.print(" m");
  display.setCursor(2, 32);
  display.print("CIRCUMFEREN.: ");
  display.print(circun);                 // Circumference
  display.print(" m");
  display.setTextSize(2);                // Size 2
  display.setCursor(6, 46);
  display.print(rota,1);                 // Distance
  display.print(" m");
  display.display();
}

void RUPTO() 
{
 state=!state; if (state==LOW) MEASv=LOW; else MEASv=HIGH; // Interruption
}

MISCELLANY.

The attached zip file typically includes:

  1.  Electrical diagram.
  2. Program.
  3. “data” subcircuits folder.

This data folder contains the subcircuits (custom) created by the author. The presence of this folder is necessary for the execution of the project. 

SUBCIRCUIT:

A subcircuit It is a “custom” circuit that accumulates a set of Simulide base components to obtain a new or an adapted function. These subcircuits are treated by Simulide as another component of its own structure.
Subcircuits are very useful to create a component that does not exist in the simulide set, to compress a complete schematic in a single block and thus improve the complexity and compression of the final circuit where it is integrated or for any other function that you want to have available when making a schematic.

  DC-MOTOR and linear encoder.

The subcircuits must be properly incorporated in the “data” folder of simulide, in the “User Data” folder or in the “data” scheme folder that must be attached together with the schematic of the project itself. Attaching the subcircuits to the Simulide “data” folder is not advisable because they can be lost with updates to it. Attaching them in “User Data” is the correct thing to do. Attaching it to the “data” folder of the diagram is necessary when it is shared.
Creating and locating a subcircuit is simple once you know the procedure that is explained in detail in the simulide tutorials: https://simulide.com/p/subcircuits/
 
* Communication with the author: Simulide/User/Messages/Defran

Downloads:

]]>
AM MODULATION (DF340) https://simulide.com/p/am-modulation-df340/ Mon, 29 Jan 2024 01:13:40 +0000 https://simulide.com/p/?p=2760

(Simulide R2116 or higher.) DF340A.

Modulation in AM is obtained by modifying the power of the modulating stage so that the positive and negative half-waves of the carrier wave are modulated with a phase shift of 180 degrees with the same modulating signal, otherwise what is called overmodulation occurs. which leaves the carrier at a constant amplitude and therefore the emission of the signal does not occur.

The AM broadcast of commercial radio stations, amateur radio stations and others has been replaced by FM broadcasting, which has advantages in terms of broadcast quality due to its lower sensitivity to disturbances. However, AM is still used due to the simplicity of the system in general, both in emission and reception. The commercial AM band is between 500 kHz and 1700 kHz.

In this porject we use a much lower carrier frequency, 10kHz because what we intend is simply to do a practical simulation of this type of modulation. The modulator signal must be noticeably lower than that of the carrier, in our case 40 Hz as a base. At the output of the diagram on the oscilloscope, the modulating signal and the already modulated carrier are shown. To manage this modulator we have three controls:

  • a) Modulator wave type switch.
  • b) A potentiometer to control the level of the modulating signal.
  • c) A potentiometer to control modulation depth

To know more about AM modulation:  https://en.wikipedia.org/wiki/Amplitude_modulation

SCHEME:

The circuit in our example is composed of three operational amplifiers that do all the operation with a symmetrical 5V supply (+5V and -5V). The output opamp directly receives the 10kHz carrier wave and the 40 Hz modulating signal is introduced into its positive and negative power inputs. At the positive power input its opamp is amplification with a phase shift of ZERO degrees and in the power supply negative with a phase shift of 180 degrees. The input of these opamps is common and is controlled by two potentiometers: One to adjust the signal input LEVEL and another to adjust the carrier modulation DEPTH, 50% is a standard setting. At the input of the level potentiometer, a switch has been provided to select the type of wave to be emitted: Sinusoidal, sawtooth, triangular, square, random and an input of a variable oscillator. The output of the modulator stage and that of the zero phase shift opamp have been applied to the oscilloscope.
 

AM-MODULATOR AND SIMPLE DEMODUL. (Simulide, R2094 or higher). DF340B

 
This Project is an AM modulator and a simple demodulator. The modulator is a subcircuit with the diagram of example 340. The carrier wave is a 30 kHz sine wave (Changeable by clicking on the modulator). The modulating wave is 40 Hz.The demodulator is composed of a rectifier diode to eliminate the negative half-wave and an LC filter to eliminate carrier remains.
 
The modulator oscilloscope shows the modulated and modulating wave. On demodulator oscilloscope shows the modulating wave extracted from the AM.
 
MODULATOR CONTROLS:
 
a) Waveform selector with EXT position to connect another oscillator (Pressing several positions simultaneously shows curious modulations).
b) The potentiometer next to EXT adjusts its input level.
c) WAVE: Adjust the level of the modulating signal.
d) DPTH: Adjust the modulation depth.
 
Examples of modulations achieved with the modulator subcircuit:

 

The modulator subcircuit contains the same structure of the modulator already discussed.

OVERMODULATION. (Simulide, TRUNK R2094 or higher). DF340C.

 
 
This scheme corresponds to a circuit that adds the carrier plus the modulating signal. Here in the positive and negative half waves the modulating wave is in phase, this is called OVERMODULATION where it can be seen that the carrier always maintains the same amplitude. In this case, there is no amplitude modulation, so the signal could not be broadcast.
 

MISCELLANY:

The attached zip file typically includes:

1) Electrical diagram.
2) “data” folder.

SUBCIRCUITS:

 
This example integrates several subcircuits located in the “data” folder into the ZIP attached. This folder must always be next to the “sim1” scheme so that it can be executed. A subcircuit is a “custom” circuit that accumulates a set of Simulide base components (primitive function) to obtain a new or an adapted function. These subcircuits are treated by Simulide as another component of its own structure. User can create his own subcircuits or use the ones published here in your own designs once the procedure is known, explained in detail in the Simulide tutorials:  https://simulide.com/p/subcircuits/
 
* Communication with the author: Simulide/User/Messages/Defran

Downloads:

]]>
Protected: January update https://simulide.com/p/january-update/ Fri, 19 Jan 2024 12:33:37 +0000 https://simulide.com/p/?p=2669

This content is password-protected. To view it, please enter the password below.

]]>
SimulIDE 1.1.0-RC1 available for download. https://simulide.com/p/simulide-1-1-0-rc1-available-for-download/ Mon, 15 Jan 2024 12:24:25 +0000 https://simulide.com/p/?p=2653 Hi guys, how are you doing?

The new Unstable release candidate 1.1.0-RC1 has been published:

There are a bunch of fixes, support for Arduino IDE 2 and some minor new features.
You can see the complete list of fixes here:
https://bazaar.launchpad.net/~arcachofo/simulide/trunk/changes

This release was planned to be published at the same time than 1.0.0-SR2, but was delayed a bit to fix a few important issues.

Next release is planned for March 2024… let’s see if we can get it ready.

Don’t forget to report any problem in our forum.
Most problems are usually solved in a few days, so if you want something solved please report it.
If you don’t report maybe nobody else does and the problem remains unsolved.

Have a great day and thank you very much for your support!

]]>
SimulIDE 1.0.0-SR2 available for download. https://simulide.com/p/simulide-1-0-0-sr2-available-for-download/ Thu, 21 Dec 2023 20:07:59 +0000 https://simulide.com/p/?p=2516 Hi guys, how are you doing?

I’m glad to announce the new stable release 1.0.0-SR2.

There are a bunch of fixes, specially the problems with Arduino compiler was very anoying.
You can see the complete list of fixes here:
https://bazaar.launchpad.net/~arcachofo/simulide/1.0.0/changes

Please report any bug or problem you find in our forum.

And note that we publish new builds every few days with the last fixes and new features here:
https://simulide.com/p/testers/

Have a great day and thank you very much for your support.

]]>
ECG signal generator. https://simulide.com/p/ecg-signal-generator/ Tue, 28 Nov 2023 21:11:12 +0000 https://simulide.live/p/ecg-signal-generator/ Introduction:

This article presents a detailed explanation of an ECG signal generator circuit built using a 74HC4017 decade counter. The circuit enables users to modify the wave shape of the ECG signal, allowing for a more comprehensive understanding of the cardiac activity.

ECG signal:

There are three main components to an ECG:

  • The P wave, which represents depolarization of the atria.
  • The QRS complex, which represents depolarization of the ventricles.
  • The T wave, which represents repolarization of the ventricles.

In this circuit you can modify the wave shape using several potentiometers to control different parts of the wave and 2 switches to activate/deactivate the 2 main branches.


Circuit Description:

The ECG signal generator circuit is constructed using a 74HC4017 decade counter, which is a high-speed, low-power CMOS counter.
The pulse train is created by connecting the output of the 74HC4017 to a series of resistors and capacitors, which shape the waveform of the ECG signal.
These resistors and capacitors are adjusted to control the amplitude, duration, and shape of the ECG signal. The outputs of the 74HC4017 are arranged in 2 branches:

  • P/T Branch: Output Q0 generates the P pulse and output Q3 generates The T pulse. These 2 pulsed are combined to form the P/T branch.
  • R/S Branch: Output Q2 generates a pulse that is divided in 2 pulses: R and S.

These 2 branches are then mixed to generate the complete signal.
There are 2 switches to connect/disconnect each of the main branches from the output and see which parts of the signal are actually controlled by each branch.

There are 2 potentiometers and 2 variable resistors to control each component of the signal:

P T: Potentiometer controlling the proportion of P respect to T components in P/T branch.

P/T R/S: Potentiometer controlling the proportion between the 2 branches: P/T and R/S.

R: Variable resistors controlling the R peak in R/S branch.
S: Variable resistors controlling the S peak in R/S branch.

There is also a LED triggered at the heart beat frequency, controlled by the clock.

By configuring different values for the resistors and capacitors and/or adding new ones you can shape the different components of the signal.
You can experiment adding other branches and mixing wit the existing ones to create more complex or more realistic patterns.


Resources:

– 74HC4017 datasheet.
More information about electrocardiography in Wikipedia.


Downloads:

]]>