Saturday, February 13, 2016

PCB milling: how to verifiy the accuracy of routed traces

Inspecting an Eagle PCB milled board

Here is how I verify that my pcbgcode settings are good, and more precisely, how accurate the "etched" traces are, in relation to the depth of cut. The latter is not easy to set when using V-shaped mill bits, since the deeper, the wider the traces. The one below, between two pads is only 0.01 inch, i.e. 10 mils, and it was properly milled.

The trick was to overlay the live image from an USB microscope over the Eagle board design, scaling the windows appropriately. I applied 50% transparency to the webcam window (I am using ''cheese'' here), which is trivial with Kubuntu / linux. The microscope is an Andonstar, a great & cheap tool, for which I wrote a micro-review here.

By the way, I will no more use these "titanium" coated V mill bits, as they produce rough edges compared to the cheaper ones I bought earlier on ebay. This board is just ugly. Well, the PCB copper clad is also a super cheap one (I bought a lot "50Pcs 70 x 100 x 1.5mm FR-4 Single Side Copper Clad PCB Laminate Board" for $37 on ebay: I could not expect much but they are NOT FR4 but old style bakelite, not fiber glass! Much more fragile, not really worth).


Also my holes are slightly off-center, but not bad enough to be fatal here. Cheap 0.8 mm drills?


Review: microscope for electronics (three Andonstar USB microscopes)

Here: fixing a board (0805 SMT resistors near a µSD socket, 0.6 mm wires).
A microscope is a much needed tool to inspect electronics, or to work at small scales.
(shot on my $160 workhorse, a very good Andonstar ADSM302)
This post shows the microscopes I have been using so far, sorted in historical order. This is also sorted by price, not surprisingly: with time my gear tend to get more expensive...
I am using microscopes all the time to inspect PCBs, read SMT component values, work at small scales, or whenever my (ageing) eyes are tired... And it feels like being in another world when you end up raising your eye back to the reality after a few hours :)

Wednesday, January 27, 2016

Funny Chinese counterfeit?

It makes sense... :D
Item: "3m Strong Permanent Double Sided Super Sticky Tape Roll"
Comment: "Counterfeit tape Not the real 3M tape by Scotch Knock off"
Banggood Reply: "Hello customer, this is not a 3M brand product, the 3m means 3 meters."

Review: arduino mega pro mini (aka Meduino)

This is a smaller variant of the Arduino Mega, and it is like what the Pro is to the Uno. It is even smaller than regular Arduino Uno boards, and costs about the same (less connectors, eh). And yes, it has all of what the Mega provides: extra memory & extra pins. And extra stuff to have in stock :)

Ref: check for "meduino" on ebay, or "mega2560 pro mini". There is also the "Mega2560-CORE mini" which needs and FTDI cable (no USB), and which is slightly cheaper. I bought the one below for $16 S&H included, and it took only 9 days from china to FR with tracking, impressive.


The Arduino Mega 2560 Pro Mini (aka Meduino) is a small factor regular Arduino Mega.

Thursday, December 3, 2015

Wednesday, December 2, 2015

Rewriting a bare millis() clock on an AVR without the Arduino environment

This is a short stand-alone C source code that I wrote to simulate the Arduino millis() function on an Atmel AVR 328p microcontroller. It is part of a growing collection of AVR routines.


AVR 328p minimalist serial read/write source code

This is a C source code I wrote to do serial read/write on an Atmel AVR 328p microcontroller.
This is the same processor as the Arduino Uno for example. It is part of a growing collection of AVR routines.

And since you can set your own limits, you can use this code in place of the usual Serial class, as the default buffers are quite small and they may overflow if you are not processing them fast enough, or if you are sending too much data at once (eg. file copy/paste). Note that some terminals let you set add a small delay automatically after each line is sent, which is the way to go so as to leave enough time for your program to process the incoming flow.