I’ve been playing around with the Arduino for a while now (offline to the blog) and while it is a great platform to get into the embedded arena (and electronics in general), I am yearning for something a little bit more, something beyond the Arduino.
I haven’t done a blog post in a while (I had great plans on posting my experiments and circuits as I learned) but the time it takes to create a post on a simple circuit that I built during the learning iteration process just didn’t work.
I was keen to move onto the next ‘idea’ so by the time it came to sit down and write something it was 3 mini-projects later. All I can say is that the best way to learn is to just physically build it.
Recently I’ve been studying digital circuits (nand2tetris is a good course) instead of analogue circuits and have been fascinated on how an actual the computer works (right down to the inner workings of the logic chips).
I think it is now time to move beyond the Arduino and get myself into some other projects. Maybe something that isn’t Arduino but is a little bit old and feeds my nostalgic urge (hint: z80).
Learning to fail and how you move on from it: In my previous twoposts I had designed and created a pcb layout for a simple 555 timer flasher. I thought it would be a simple thing to do because I really wanted to test the workflow on how to create a pcb from start to finish.
After placing and soldering all the components on my pcb, and applying power to it, I expected to see some nice flashing lights just like my breadboard model was doing. The first LED blinked on and off, the second blinked on.. and stayed on… Strange.
I double checked that the pcb matched the schematic – yep that is all correct. I turned on the circuit on the breadboard (I still have it on the breadboard as a working circuit when I created it) – and that was working. What could the problem be?
When showing off my excitement of designing my first pcb to an electrical engineering forum (EEVBlog) a kind soul (Hero999) pointed out that there was an error on my original schematic and that my circuit would not work.
After analysing it a bit further I had come to the conclusion that I had failed to copy my breadboard layout to a schematic correctly. Because this was wrong, everything else was wrong. During this time I also must have altered the breadboard circuit without updating the schematic file.
My original breadboard circuit was based on the one here and you can clearly see my schematic doesn’t follow this (R2 connects to +V instead of pin3).
Learning to Fail
So what have I learnt from all this?
I was so worried about creating a perfect schematic -> pcb workflow that I didn’t spend enough time on the breadboard -> schematic step causing everything to fail.
So while I did fail – I also succeed as the pcb is a correct representation of the schematic – just that the schematic was all wrong.
I also need to pay more attention to ALL the steps in the workflow and not just focus on one step. Each step is important and can have a cascading effect if you get it wrong.
All is not lost though – the same kind soul on EEVBlog (Hero999) has also suggested that I can fix it by removing a solder joint and running a manual wire to the correct location. I’m going to give that a go the next time I’m doing some soldering.
My 555 LED Flasher custom made pcb circuit finally arrived. Yay!
Previously I had designed this circuit and pcb layout as a test run (see previous post) and sent it off to OSHPark for manufacturing. It turned up in the post for last night.
It took about 3 weeks from time to placing the order to me receiving it, which seems quite reasonable for a part time hack like me. I don’t need high turn around times.
The PCB board looks really nice and well made. I could never get this much detail or compactness if I attempted to create a PCB on my own at home (hate playing with nasty chemicals!) But the proof will be when I solder in the components.
If I get some time this weekend I might have a go at transferring the components from the breadboard and soldering them onto the PCB. Once this is done then my workflow from design to finished product will be complete.