Before giving up on Kicad one last attempt: ERC misery

No a brainfart. I confused you and @Seth_h sorry about that.

The strange thing is that if i make a new project i get shorter timestamps with 5.1.0. Not sure what i should make of that.

please note that on a new schematic with the same arduino part the labels behaved correctly, see my post and screenprint

@Rene_Poschl here is the file of the clean schematic:
(editing an existing post does work :wink: )

test custom symbols veecad.zip (6.2 KB)

Could you upload the new schematic as well? (I am curious about the timestamps.)

I just created a new schematic on my 64 bit KiCad and the timestamps of the components seem to be 8 hex digits.

$Comp
L power:GND #PWR02
U 1 1 5CB7503C
P 4500 3300
F 0 “#PWR02” H 4500 3050 50 0001 C CNN
F 1 “GND” H 4550 3100 50 0000 C CNN
F 2 “” H 4500 3300 50 0001 C CNN
F 3 “” H 4500 3300 50 0001 C CNN
1 4500 3300
1 0 0 -1
$EndComp

It seems logical that the issues are related.
Would it be a sensible test to modify the timestamps in the schematic to 8 digits with a text editor?

After truncating to 8 digits, at least I can now open the schematics (I tried with @Rene_Poschl’s cleaned-up version). But the ERC errors remain.

I’m still wondering how these 16 digits timestamps appeared.

1 Like

This was a bug! I just pushed a fix.
The fix will automatically repair your design, but I’ve also attached a repaired version here so that you can use it in the meantime before a version is released that contains this fix.
I’m not sure how it got into this state in the first place, but now it passes ERC and the netlist looks correct.

MouseOleum IR board SHIELD.sch (38.0 KB)
MouseOleum IR board SHIELD-cache.lib (10.6 KB)

6 Likes

Interesting!

I just received a project from a new user that appears to have done a conversion from Eagle into KiCad. KiCad was unable to open the schematic file. After reading this thread, I used a text editor to edit the timestamps to 8 characters.

The weird thing is that not all of the timestamps were 16 characters, only about half of them.

It was also the case with the OP’s file. Possibly a lead for the dev(s) who read this :wink:

I just had a quick look at the fixed schematic posted by craftyjon. I can open it and it does not have ERC errors, but some things have shuffeled around a bit. The pictures are gone and footprints have changed.

In post #51 OP says that he also stated that (at least a part) of the schematic is from an Eagle => KiCad conversion.

@craftyjon
Here is the file that I received:
Lab 9 Board.sch (5.6 KB)

Any part definition entry that starts with “L Lab_9_Board-eagle-import:” has 16 characters for the timestamp in the following line.

Maybe it would be interesting (if possible, and if not done yet) to make the original Eagle file available to @craftyjon as well - I guess the Eagle conversion brings these 16 hex digits timestamps, which are not readable with KiCad 32 bit.

To all who helped out a big THANK YOU!

Apparently I stumbled upon a bug but hey, what makes Kicad great are the people behind it. I give me confidence to ditch Eagle CAD now and continue to invest time in Kicad.

This is why I needed a netlist because Veecad use it to generate ratsnests. Without it I would not consider a stripboard design.

Now users can build my project without the hurdle of making a custom pcb.

The finished board:

For this moustrap:

I first thought your Mouse thingie was computer mouse related, but yesterday I found your github page and youtube vid’s of your mouse traps. :slight_smile:

I do wonder why you want to use Veecad though.
First I have to say I build a few strip board designs 25 years ago and I really disliked it. You have to cut a lot of connections and this thinking in negative, where you do not only have to make new connectons, but also have to cut the strips to prevent loads of short circuits , combined with the mirror image on working on the backside of a PCB was too much for me. I found working with boards with 1 hole per isle much easier.

If you look at the screenshot of your finished board, do the connections you do not have to make because of the strips really outweigh all the tracks you have to cut on the crosses?

Now an Idea is growing, which is partly based on my own experience, and partly new.
The goal would be to make a one-off PCB on Vero board (1 hole per isle). If you want to make 2 or more boards, then drawing all the tracks and making a real PCB starts to outweigh the time of soldering wires by hand.

The idea is:
1). Draw schematic in KiCad.
2). Make a reasonable component placement (Pcbnew, or VeeCAD, or whatever).
… 2a). All components should be aligned on 0.1" grid.
3). Print the Silkscreen with components on a piece of paper.
4). Glue the paper on a piece of 1-hole/isle vero board.
5). Punch the needed holes with a needle or similar.
6). Take pieces of 0.2mm lacquered wire to route the board.
… 6a). Put the wires though the holes of the components (firs try if it fits).
… 6b). Power and GND connectons should be “star” based from the power supply.
7). Put the components through the same holes as the wires.
8). Solder the wires to the components and pads with a hot (temperature controlled) Iron.

It’s probaby better if you do not glue the paper to the board, but just punch the holes. The wires and components will fix the paper to the board, and you can easily rip out the paper later if it does not work properly. Maybe glue or tape only the corners of the paper to the board.

Also:
I found R13 pretty weird.
A resistor over the crystal is sometimes used, but it is only for reliably starting the crystal oscillator, and when the oscillator is oscillating it is useless, and even detrimental to the working of the oscillator, and as far as I know the AVR controllers do not need this resistor at all. If you want to keep it in your schematic, a value of 1MOhm or more is more common than the 10k you used.

Thank you, I read your comments with interest. For me using stripboard is also not new and I’ve also used board with only holes but it get messy very quickly.

Veecad is a great help to get the components connected with 100% accuracy and I can print out a mirrored 1:1 sheet so making the cuts with a drill bit should be easy. On the front side I will print out the component layout on adhesive vinyl so I get a nice pcb like surface. Placing the wires etc is very easy this way.

This project on stripboard is an experiment so I’m curious how my experience is after finishing it.

About R13: YES this resistor should be 1M! but because of the weird ERC errors I copied another resistor and forgot to change the value afterwards…

I got this resistor from a schematic from the original Arduino Uno so I figured it should be ok. I’m just a hobbyist with not much education so I look to other designs for inspiration. :wink:

Again, thanks for your comments and help!

When you post stuff on a forum there is no way for the people reading it if you are aware of such things, or if it is usefull to point it out because you made a mistake.
Same with the ERC errors which were “easy fixable”. If you had fixed those low hanging fruits in advance it makes it obvious and easier to focus on the real problem.

Yet another of those simple mistakes. You should always have a decoupling cap between pins 20 and 22 of the AVR’s (M328?). (A1 on your 2nd screenshot of VeeCAD). It looks Like C7 is there, but it’s much to far away from the AVR. Wires of decoupling caps should really be very short. Same for the crystal. Keep the crystal close to the AVR, and cut the tracks right after the crystal, so you do not have antenna’s on the crystal pins.

You said you cut the tracks with a drill. there used to be specially designed cutters for cutting the tracks on strip board. (But I never used them).

Paul, I’m sorry I expressed myself the wrong way, I was very glad you pointed out my mistake on the value of the resistor. So no offence was intended in any way.

I do not agree the ERC error were easy fixable, not by me anyway.

I was very frustrated when I asked for help. I am used to do all I can to solve my own problems. for example: the DCF Analyzer clock I designed (hardware and software) and build was a fruit of 1 year hard labor, learning C++, Eagle CAD, a bit of electronics etc.etc. …and 20.023,024 mistakes. I’m proud of it despite having no education, being a newbie.

When I asked for help here I was ready to take every bit, every ‘0’ and ‘1’ of the Kicad software out of my PC, roasting them and feeding the whole bunch to our chickens!
So that’s why my question here was not perfect.

Thanks for the tips on the capacitors! I should have known that and the fault is corrected!

But as said before, I’m grateful I got help here, giving me confidence to invest more time in Kicad.

About the drill: the special tool is expensive and I can tell you that a sharp 3.8mm drill does a great job. drilling a hole takes 2 turns, giving a very clean cut.

To close this tread, I will post the result of the stripboard project so other can see how amazing Veecad is! (I get no money from them)

Hi
Can confirm that Kicad 5.1 can’t open schematic due to long hex number in *.sch file. Quick editing in vim makes eeschema open a file. Few things that I notice:

  1. Disconnecting capacitor C9, J8 FTDI connector and A1 arduino board components by moving them on the side doesn’t make extra errors for unconnected pins when DRC is rerun. Its weird.

I deleted and added them again and DRC started reporting errors for unconnected pins. After placing them in proper space a lot of the error disappeared.

  1. Switch SW1 have pins set to “Unspecified” so hoover mouse over SW1 component, press CTRL-E to open Library Editor, change pins to “Passive”, save a file, and rerun DRC. It should lower error counter

  2. Same changes can be made for A1 arduino board, for example VCC, AVCC, GND pins should be changed to “Power input”. Rest of the pins can be changed to “Bidirectional” like in Atmega328 chip.

After replacing old +5V and GND component for a new one and adding PWR_FLAG all DRC errors disappeared.

EDIT: vim command for shortening hex numbers: :%s/\(.*\) \([0-9A-F]\{8}\)[0-9A-F]\{8}/\1 \2/g

I haven’t heard of VeeCAD before, quite interesting. It reminds me of a similar tool I used many years ago called WireCAD, a netlist post-processor for generating wire-wrap lists.

Yes it’s a bit the same, I discovered Veecad a month ago and I’m very glad I did! I made 20 pcb’s for custom projects but this is great for open source projects and small batches.

So here’s the result of my first Veecad project:

I decided to make the component print permanent by using self adhesive “Heavy Duty White Labels” weatherproof, oil, dirt, UV and temperature resistant (-20 (-4F) to +80 (176F) degrees Celcius!)
Avery part number: L4775-20 (LASER)

1 Like