First KiCad PCB Reivew/Feedback

Hello World,

I’ve been pretty dormant in the Particle community since finishing my capstone project. Stuffing so much new information in my tiny brain apparently necessitated a few year break :sweat_smile: with that said, i’m ready to start making dumb mistakes again.

I am trying to design my first PCB via KiCAD and was hoping to have some peer review before i spend the INSANE amount of money to get it made.

I’ve designed a small board to help me get the basics down. It’s going to hold two hardware interrupt circuits similar this THIS ONE i posted about some years back.

I prototyped the circuit on a breadboard with the below simple code and it works. Next i put it into KiCad to start designing a small PCB. Before i go to source it I was hoping to get more sets of eyes to make sure I’m not doing anything dumb.

Here is my circuit:

And my PCB layout, it passes the DRC

i decided to use all 0805 footprints because those should be easier to hand solder? I believe all my tracings clear the RF devices at the front of the photon.

With all that said, I think i should be good to potentially waste the four dollars on this board. Any feedback is greatly appreciated.

and here’s the code for what it’s worth

// This #include statement was automatically added by the Particle IDE.
#include <elapsedMillis.h>

#define floatPinTop D6
volatile int flowup =1;
volatile int flowdown=0;
volatile int h = -1;
int laststate=-1;

elapsedMillis timer0;
#define interval 100

void setup() {
    Serial.begin(9600); 
    pinMode(floatPinTop, INPUT);
    attachInterrupt(floatPinTop, WaterAbove, CHANGE);

}

void loop() {
    


    //laststate=-1;
   
    if(laststate!=h){
        if(h==1){
            Particle.publish("TopFloat","FlowingUP");
        }
    else if(h==0){
        Particle.publish("TopFloat","FlowingDOWN");
    }
    
    laststate=h;
}
    
}


void WaterAbove() {
    if (timer0 >interval){
        if((h==-1) || (h==0)){
            
            
            h=1;
            Serial.println("flowing up");
            timer0=0;
    
        }
    }
    if (timer0 >interval){
        if (h==1){
          
            Serial.println("flowing down");
            timer0=0;
            h=0;
        }
    }
}

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.