...
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************************************
|
||||
gestion des états de boutton
|
||||
***************************** gestion des états de boutton *****************************************
|
||||
*******************************************************************************************************/
|
||||
|
||||
// Include the Bounce2 library found here :
|
||||
|
||||
@@ -11,6 +11,7 @@ void consigne_set(int i); // calcul des consignes
|
||||
void motor_calc(int pot, int motor) // calcul des consignes de moteurs et du flag de changement de position
|
||||
{
|
||||
lecture_pot(motor); // lecture des potentiomètres
|
||||
lecture_pot(pot); // lecture des potentiomètres
|
||||
// calcul de la consigne de position des moteurs en min et max
|
||||
if (position_set[motor] < min_val_pot)
|
||||
{
|
||||
@@ -126,45 +127,17 @@ void consigne_set(int i) // calcul des consignes de moteurs
|
||||
}
|
||||
}
|
||||
|
||||
else if (const_out_L_state == true) // si uniquement const_out_L actif
|
||||
else if (const_out_L_state == true or const_out_R_state == true) // si uniquement const_output actif
|
||||
{
|
||||
const int gain_const = 0;
|
||||
const int volume_const = 1;
|
||||
switch (i)
|
||||
{
|
||||
case gain_const:
|
||||
position_const_calc(gain_const, volume_const);
|
||||
break;
|
||||
case volume_const:
|
||||
position_const_calc(volume_const, gain_const);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#ifdef DEBUG // si DEBUG activé
|
||||
breakpoint();
|
||||
#endif
|
||||
if (i == 0 or i == 2) // si potentiomètre de gain
|
||||
position_const_calc(i, i + 1);
|
||||
else if (i == 1 or i == 3) // si potentiomètre de volume
|
||||
position_const_calc(i + 1, i);
|
||||
}
|
||||
#ifdef DEBUG // si DEBUG activé
|
||||
breakpoint();
|
||||
#endif
|
||||
|
||||
else if (const_out_R_state == true) // si uniquement const_out_L actif
|
||||
{
|
||||
const int gain_const = 2;
|
||||
const int volume_const = 3;
|
||||
switch (i)
|
||||
{
|
||||
case gain_const:
|
||||
position_const_calc(gain_const, volume_const);
|
||||
break;
|
||||
case volume_const:
|
||||
position_const_calc(volume_const, gain_const);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#ifdef DEBUG // si DEBUG activé
|
||||
breakpoint();
|
||||
#endif
|
||||
}
|
||||
/*
|
||||
Serial.print("position_set[");
|
||||
Serial.print(i);
|
||||
|
||||
@@ -12,11 +12,11 @@ c.saillant@gmail.com
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ******************** pour activer ou non le DEBUG *****************************************************
|
||||
// ******************** // #define DEBUG = INACTIF *******************************************************
|
||||
// ******************** #define DEBUG = ACTIF ************************************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
******************** pour activer ou non le DEBUG ******************************************************
|
||||
******************** // #define DEBUG = INACTIF ********************************************************
|
||||
******************** #define DEBUG = ACTIF *************************************************************
|
||||
*******************************************************************************************************/
|
||||
|
||||
// #define DEBUG
|
||||
|
||||
@@ -33,9 +33,9 @@ c.saillant@gmail.com
|
||||
#endif
|
||||
*/
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** include ***************************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
****************************************** include ****************************************************
|
||||
******************************************************************************************************/
|
||||
#include "variables.h"
|
||||
#include "pot.h"
|
||||
#include "moteur.h"
|
||||
@@ -45,9 +45,9 @@ c.saillant@gmail.com
|
||||
#include "valeurs.h"
|
||||
#include "consigne.h"
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** boucle setup ***********************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
****************************************** boucle setup ***********************************************
|
||||
******************************************************************************************************/
|
||||
void setup()
|
||||
{
|
||||
#ifdef DEBUG // si DEBUG activé
|
||||
@@ -128,11 +128,12 @@ void setup()
|
||||
digitalWrite(const_out_R_led, LOW);
|
||||
digitalWrite(stereo_link_led, LOW);
|
||||
bouton_set(); // lecture et controle des boutons
|
||||
last_motor_end = millis();
|
||||
}
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** boucle principale ******************************************
|
||||
// *******************************************************************************************************
|
||||
/********************************************************************************************************
|
||||
****************************************** boucle principale *******************************************
|
||||
*******************************************************************************************************/
|
||||
void loop()
|
||||
{
|
||||
bouton_set(); // lecture et controle des boutons
|
||||
@@ -141,34 +142,33 @@ void loop()
|
||||
button_position_save(); // enregistrement de position des potentiomètres
|
||||
state_button_change = false; // remise à zéro du flag de changement de bouton
|
||||
}
|
||||
// *******************************************************************************************************
|
||||
// ********************************* boucle de lecture des potentiomètres ********************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
********************************* boucle de lecture des potentiomètres ********************************
|
||||
******************************************************************************************************/
|
||||
for (int i = 0; i <= 3; i++)
|
||||
{
|
||||
// *******************************************************************************************************
|
||||
// ********************************* boucle de controle des boutons **************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
********************************* boucle de controle des boutons **************************************
|
||||
******************************************************************************************************/
|
||||
lecture_pot(i); // lecture analogique potentiomètre avec mise à jour du flag de changement de potentiomètre
|
||||
if (position_change[i] == true) // si changement de position d'un potentiomètre
|
||||
{
|
||||
if (stereo_link_state != true && const_out_L_state != true && const_out_R_state != true && millis() >= last_pot_change[i] + 150) // si pas de contrôle constant output
|
||||
// si pas de contrôle constant output ou stereo link avec potentiomètre plus bougé depuis plus que bounce_time_pot
|
||||
if (stereo_link_state != true && const_out_L_state != true && const_out_R_state != true && millis() >= last_pot_change[i] + bounce_time_pot)
|
||||
{
|
||||
valeurs_set(i); // controle des valeurs et des relais en mode normal
|
||||
motor[i].stop(); // stop moteur
|
||||
motor_change[i] = false;
|
||||
}
|
||||
// si contrôle constant output ou stereo link avec moteur arrêté depuis plus que bounce_time_pot
|
||||
else if (motor_change[i] != true && millis() > last_motor_end + 500)
|
||||
// si contrôle constant output ou stereo link avec moteur arrêté et potentiomètre plus bougé depuis plus que bounce_time_pot
|
||||
else if (motor_change[i] != true && millis() > last_motor_end + bounce_time_pot && millis() >= last_pot_change[i] + bounce_time_pot)
|
||||
{
|
||||
if (abs(position_lue[i] - position_set[i]) > ECART_V_STOP)
|
||||
{
|
||||
position_set[i] = position_lue[i];
|
||||
motor[i].brake();
|
||||
consigne_set(i); // mise à jour des consignes
|
||||
position_set[i] = position_lue[i]; // mise à jour de la consigne de position du potentiomètre
|
||||
consigne_set(i); // mise à jour des consignes
|
||||
for (int i = 0; i <= 3; i++)
|
||||
{
|
||||
// if (motor_change[i] != true)
|
||||
valeurs_const_set(i); // controle des valeurs et des relais en mode constant output
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/*******************************************************************************************************
|
||||
gestion de la vitesse et du sens de déplacement des moteur
|
||||
****************** gestion de la vitesse et du sens de déplacement des moteur **********************
|
||||
*******************************************************************************************************/
|
||||
|
||||
#include <SparkFunMiniMoto.h> // Include the MiniMoto library
|
||||
/*
|
||||
Attempts to set speed lower than 6 will be ignored; speeds higher than 63 will be truncated to 63. The sign of the value determines the direction of the motion.
|
||||
Attempts to set speed lower than 6 will be ignored; speeds higher than 63 will be truncated to 63.
|
||||
The sign of the value determines the direction of the motion.
|
||||
*/
|
||||
|
||||
MiniMoto motor[4] = {gain_0_motor, vol_0_motor, gain_1_motor, vol_1_motor}; // Create MiniMoto instances, pour controle des moteur en I2C (DRV8830)
|
||||
@@ -90,10 +91,11 @@ void moteur_set(int i) // fonction de gestion de vitesse et position moteurs ave
|
||||
moteur_stop(i); // stop moteur
|
||||
return;
|
||||
}
|
||||
// *******************************************************************************************************
|
||||
else if (position_lue[i] > position_set[i]) // si moteur doit aller vers la gauche
|
||||
/*******************************************************************************************************
|
||||
si moteur doit aller vers la gauche
|
||||
*******************************************************************************************************/
|
||||
else if (position_lue[i] > position_set[i])
|
||||
{
|
||||
// myPID.configure(Kp, Ki, Kd, Hz, output_bits, output_signed); // configuration PID
|
||||
switch (i) // configuration PID en fonction du moteur (i)
|
||||
{
|
||||
case 0:
|
||||
@@ -101,18 +103,17 @@ void moteur_set(int i) // fonction de gestion de vitesse et position moteurs ave
|
||||
break;
|
||||
case 1:
|
||||
myPID_1.setOutputRange(-PID_speed_max, -PID_speed_min); // plage de sortie du PID
|
||||
|
||||
break;
|
||||
case 2:
|
||||
myPID_2.setOutputRange(-PID_speed_max, -PID_speed_min); // plage de sortie du PID
|
||||
|
||||
break;
|
||||
case 3:
|
||||
myPID_3.setOutputRange(-PID_speed_max, -PID_speed_min); // plage de sortie du PID
|
||||
break;
|
||||
}
|
||||
error_state = false; // remise à zéro du flag d'erreur
|
||||
if (position_set[i] <= min_val_pot + ECART_V_MIN_MAX) // si consigne de position du potentiomètre = min
|
||||
error_state = false; // remise à zéro du flag d'erreur
|
||||
// si consigne de position du potentiomètre = min
|
||||
if (position_set[i] <= min_val_pot + ECART_V_MIN_MAX)
|
||||
{
|
||||
motor_speed[i] = -63;
|
||||
switch (i) // mise à zéro du PID en fonction du moteur (i)
|
||||
@@ -125,7 +126,6 @@ void moteur_set(int i) // fonction de gestion de vitesse et position moteurs ave
|
||||
break;
|
||||
case 2:
|
||||
myPID_2.clear(); // remise à zéro du PID
|
||||
|
||||
break;
|
||||
case 3:
|
||||
myPID_3.clear(); // remise à zéro du PID
|
||||
@@ -159,10 +159,11 @@ void moteur_set(int i) // fonction de gestion de vitesse et position moteurs ave
|
||||
}
|
||||
motor[i].drive(motor_speed[i]); // controle moteur
|
||||
}
|
||||
// *******************************************************************************************************
|
||||
else if (position_lue[i] < position_set[i]) // si moteur doit aller vers la droite
|
||||
/*******************************************************************************************************
|
||||
si moteur doit aller vers la droite
|
||||
********************************************************************************************************/
|
||||
else if (position_lue[i] < position_set[i])
|
||||
{
|
||||
// myPID.configure(Kp, Ki, Kd, Hz, output_bits, output_signed); // configuration PID
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
@@ -181,8 +182,8 @@ void moteur_set(int i) // fonction de gestion de vitesse et position moteurs ave
|
||||
break;
|
||||
}
|
||||
error_state = false; // remise à zéro du flag d'erreur
|
||||
|
||||
if (position_set[i] >= max_val_pot - ECART_V_MIN_MAX) // si consigne de position du potentiomètre = max
|
||||
// si consigne de position du potentiomètre = max
|
||||
if (position_set[i] >= max_val_pot - ECART_V_MIN_MAX)
|
||||
{
|
||||
motor_speed[i] = 63;
|
||||
switch (i)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*******************************************************************************************************
|
||||
/*************************************************************************************************************
|
||||
gestion des valeurs des relais avec incrément et décrément et de l'envoie des valeurs sur les cartes relais
|
||||
*******************************************************************************************************/
|
||||
**************************************************************************************************************/
|
||||
|
||||
#include "PCF8574.h" // https://github.com/RobTillaart/PCF8574/blob/master/examples/PCF8574_test1/PCF8574_test1.ino
|
||||
|
||||
@@ -82,8 +82,6 @@ void relais_set(int relais)
|
||||
|
||||
void relais_send(int relais, int value, int byte_value)
|
||||
{
|
||||
// PCF.write(const uint8_t pin, const uint8_t value) writes a single pin; pin = 0..7; value is HIGH(1) or LOW (0)
|
||||
// uint8_t write(const uint8_t value) writes all pins; value = 0..255
|
||||
// envoie I2C des valeur sur les cartes relais
|
||||
switch (relais)
|
||||
{
|
||||
|
||||
@@ -374,7 +374,7 @@ void smoothgain_set(int i) // calcul des valeurs lissées de gain et mise à jou
|
||||
|
||||
void smoothvolume_set(int i) // calcul des valeurs lissées de volume et mise à jour des relais
|
||||
{
|
||||
smoothvol[i] = map(smoothvol[i], 0, max_val_pot, 0, 255); // map de 0 à 255
|
||||
smoothvol[i] = map(smoothvol[i], 0, 255, 0, 156); // map de 0 à 255
|
||||
smoothvol[i] = constrain(smoothvol[i], 0, 255); // constrain de 0 à 255
|
||||
relais_vol_val[i] = smoothvol[i]; // valeur du relais = valeur du volume
|
||||
// mise à jour des relais
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** PIN MAPPING ************************************************
|
||||
// *******************************************************************************************************
|
||||
// définition LED
|
||||
/*******************************************************************************************************
|
||||
****************************************** PIN MAPPING ************************************************
|
||||
******************************************************************************************************/
|
||||
// LED
|
||||
#define const_out_L_led 5 // Digital OUT led const_out_L
|
||||
#define const_out_R_led 6 // Digital OUT led const_out_R
|
||||
#define stereo_link_led 7 // Digital OUT led stereo_link
|
||||
|
||||
// définition switch
|
||||
// switch
|
||||
#define const_out_sw_L 2 // Digital IN switch const_out_L
|
||||
#define const_out_sw_R 3 // Digital IN switch const_out_R
|
||||
#define stereo_link_sw 4 // Digital IN switch stereo_link
|
||||
|
||||
// définition PIN curseur potentiomètre
|
||||
// PIN curseur potentiomètre
|
||||
#define gain_0_pot A1 // entrée pot gain gauche
|
||||
#define vol_0_pot A0 // entrée pot volume gauche
|
||||
#define gain_1_pot A3 // entrée pot gain droite
|
||||
#define vol_1_pot A2 // entrée pot volume droite
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** potentiomètre **********************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
****************************************** potentiomètre ***********************************************
|
||||
*******************************************************************************************************/
|
||||
// variables potentiomètre
|
||||
int position_lue[4] = {0, 0, 0, 0}; // tableau des valeur lus sur les potentiomètre
|
||||
int valut_pot_old[4] = {0, 0, 0, 0}; // tableau de comparaison de valeur lus sur les potentiomètre
|
||||
@@ -31,13 +31,13 @@ bool motor_change[4] = {false, false, false, false}; // tableau
|
||||
byte analog_pot[4] = {gain_0_pot, vol_0_pot, gain_1_pot, vol_1_pot}; // tableau de PIN des potentiomètre
|
||||
|
||||
// réglagle de précision de lecture du potentiomètre
|
||||
#define bit_read_pot 4 // 4 = 8 bits, 2 = 9 bits, 1 = 10 bits
|
||||
/*
|
||||
Max-val_pot / divider relais / divider_analog
|
||||
255 / 1 / 4
|
||||
512 / 2 / 2
|
||||
1023 / 4 / 1
|
||||
*/
|
||||
#define bit_read_pot 1 // 4 = 8 bits, 2 = 9 bits, 1 = 10 bits
|
||||
|
||||
#if bit_read_pot == 4
|
||||
#define divider_relais 1
|
||||
@@ -57,7 +57,6 @@ Max-val_pot / divider relais / divider_analog
|
||||
#define offset_max_pot 0 // valeur de suppression de la valeur max du potentiomètre (lecture à 0% de la course)
|
||||
#define offset_min_pot 5 // valeur d'ajout de la valeur min du potentiomètre (lecture à 100% de la course)
|
||||
|
||||
const int middle_value = max_val_pot / 2; // valeur du milieu du potentiomètre
|
||||
|
||||
unsigned long max_pot_time[4] = {0, 0, 0, 0}; // compteur de temps de maintien moteur pour la valeur max du potentiomètre
|
||||
unsigned long last_pot_change[4] = {0, 0, 0, 0}; // compteur de temps de changement de valeur du potentiomètre
|
||||
@@ -78,14 +77,15 @@ int min_pot[4] = {30, 29, 20, 21}; // valeur min potentiomètre pour cal
|
||||
|
||||
int calibrating_midle_pot[4] = {value_middle_pot_0, value_middle_pot_1, value_middle_pot_2, value_middle_pot_3};
|
||||
#else
|
||||
const int middle_value = max_val_pot / 2; // valeur du milieu du potentiomètre
|
||||
int calibrating_midle_pot[4] = {middle_value, middle_value, middle_value, middle_value};
|
||||
#endif
|
||||
|
||||
#define bounce_time_pot 200 // interval de temps entre 2 lecture de l'état du potentiomètre
|
||||
#define bounce_time_pot 200 // interval de temps entre 2 lecture de l'état du potentiomètre en ms
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** moteur *****************************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
****************************************** moteur ******************************************************
|
||||
*******************************************************************************************************/
|
||||
// adressage I2C carte moteur
|
||||
/*
|
||||
0xC8 : A0 = open, A1 = open
|
||||
@@ -100,11 +100,10 @@ int calibrating_midle_pot[4] = {middle_value, middle_value, middle_value, middle
|
||||
|
||||
int motor_speed[4]; // tableau de valeur de vitesse des moteur
|
||||
unsigned long last_motor_end = 0; // compteur de temps d'arrêt moteur
|
||||
// unsigned long last_motor_end[4] = {0, 0, 0, 0}; // compteur de temps d'arrêt moteur
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** relais *****************************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
****************************************** relais *****************************************************
|
||||
********************************************************************************************************/
|
||||
// adressage I2C carte relais
|
||||
/*
|
||||
0x39 : A0 = 0, A1 = 1, A2 = 1
|
||||
@@ -122,11 +121,11 @@ byte relais_gain_val[2] = {0, 0}; // tableau de valeur des relais gain
|
||||
byte relais_vol_val[2] = {0, 0}; // tableau de valeur des relais volumes
|
||||
byte relais_old[4] = {0, 0, 0, 0}; // tableau de comparaison de valeur des relais
|
||||
byte relais_map[4] = {0, 0, 0, 0}; // tableau de mappage des valeur des relais
|
||||
#define delay_relais 5 // temps de commutation entre relais
|
||||
#define delay_relais 1 // temps de commutation entre relais pour éviter les clic audio
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** boutton ****************************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
****************************************** boutton ****************************************************
|
||||
*******************************************************************************************************/
|
||||
bool const_out_L_state_old = false; // variable de comparaison d'état du bouton const_out_L
|
||||
bool const_out_R_state_old = false; // variable de comparaison d'état du bouton const_out_R
|
||||
bool stereo_link_state_old = false; // variable de comparaison d'état du bouton stereo_link
|
||||
@@ -136,29 +135,31 @@ bool stereo_link_state = false; // variable d'état du bouton stereo_link
|
||||
bool state_button_change = false; // variable de changement d'état des boutons
|
||||
#define interval_button 10 // interval de temps entre 2 lecture de l'état du bouton
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** variable diverse *******************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
****************************************** variable diverse *******************************************
|
||||
******************************************************************************************************/
|
||||
int smoothgain[2] = {0, 0}; // tableau de valeur de lissage du gain
|
||||
int smoothvol[2] = {0, 0}; // tableau de valeur de lissage du volume
|
||||
// bool const_state = false; // variable d'état constant ouptut/stereo_link
|
||||
// bool error_motor = false; // variable d'erreur de communication avec le moteur
|
||||
|
||||
// *******************************************************************************************************
|
||||
// ****************************************** fonction erreur LED ***************************************
|
||||
// *******************************************************************************************************
|
||||
/*******************************************************************************************************
|
||||
****************************************** fonction erreur LED ***************************************
|
||||
*******************************************************************************************************/
|
||||
bool error_state = false;
|
||||
bool error_led_state = LOW;
|
||||
|
||||
int blink_speed_led = 250;
|
||||
unsigned long old_led_time = millis(); // variable de temps courant
|
||||
|
||||
void error_led() // fonction clignotement LED en cas d'erreur
|
||||
{
|
||||
unsigned long current_led_time = millis(); // variable de temps courant
|
||||
if (current_led_time - old_led_time >= 100)
|
||||
if (current_led_time - old_led_time >= blink_speed_led)
|
||||
{
|
||||
old_led_time = millis();
|
||||
error_led_state = !error_led_state;
|
||||
digitalWrite(stereo_link_led, error_led_state);
|
||||
digitalWrite(const_out_L_led, !error_led_state);
|
||||
digitalWrite(const_out_R_led, !error_led_state);
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
/Users/electron_rare/Documents/Lelectron_rare/HLabs/HLabs_analog_felling/PCB/PCB Hlabs motor cotrol/_autosave-Hlabs motor cotrol.kicad_sch
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -72,6 +72,31 @@
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
"files": [
|
||||
{
|
||||
"name": "Hlabs motor cotrol.kicad_pcb",
|
||||
"open": false,
|
||||
"window": {
|
||||
"display": 0,
|
||||
"maximized": true,
|
||||
"pos_x": 92,
|
||||
"pos_y": 171,
|
||||
"size_x": 1496,
|
||||
"size_y": 883
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Hlabs motor cotrol.kicad_sch",
|
||||
"open": false,
|
||||
"window": {
|
||||
"display": 0,
|
||||
"maximized": false,
|
||||
"pos_x": 116,
|
||||
"pos_y": 116,
|
||||
"size_x": 1496,
|
||||
"size_y": 866
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,20 +63,26 @@
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint": "error",
|
||||
"footprint_type_mismatch": "error",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"invalid_outline": "error",
|
||||
"isolated_copper": "warning",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"lib_footprint_issues": "warning",
|
||||
"lib_footprint_mismatch": "warning",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"missing_courtyard": "ignore",
|
||||
@@ -86,9 +92,14 @@
|
||||
"padstack": "error",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "warning",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
@@ -97,7 +108,6 @@
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zone_has_empty_net": "error",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
@@ -105,20 +115,65 @@
|
||||
"allow_microvias": false,
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.0,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.19999999999999998,
|
||||
"min_microvia_drill": 0.09999999999999999,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.7999999999999999,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.3,
|
||||
"min_track_width": 0.19999999999999998,
|
||||
"min_via_annular_width": 0.049999999999999996,
|
||||
"min_via_diameter": 0.39999999999999997,
|
||||
"solder_mask_clearance": 0.0,
|
||||
"solder_mask_min_width": 0.0,
|
||||
"solder_mask_to_copper_clearance": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 5,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_onpadsmd": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_ontrackend": false,
|
||||
"td_onviapad": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [
|
||||
0.0
|
||||
],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
{"hostname":"Mac-de-clems","username":"electron_rare"}
|
||||
@@ -1 +0,0 @@
|
||||
{"hostname":"Mac-de-clems","username":"electron_rare"}
|
||||
Reference in New Issue
Block a user