fab Lab Logo

Electronics Prodution
FabISP made

Electronics Production (2017-2019)

Last Update

Even tough the aim of this week was to produce electronics and not to design, I ended up a few weeks ago exploring KiCAD (as you can see from all my assignments I've been using Eagle all the way) The funny thing is that it was quicker to learn KiCAD, I'm happier cause it is open, and I even designed a FabISP aimed at the use of this clamps for AttinyX4 I bought in AliExpress.

Here is my version.

kiCAD FabISP 3d and all!

The Story...

millimg PCBs Everyone at the Lab wanted a FabISP!!!!

… Electronics production was a fight I took until the very end.
We were producing our electronics on a semi-closed/proprietary CNC called Carvey.
As an educational tool it carves wonders, and we managed to come up with a very simple workaround, which for simple boards like these, works very well.

That workaround, which I will describe first, allowed most of my colleagues to finish the course right there in 2017. In my case I was very unlucky using it and running against callibration problems.


Explorations and Experiences - Hacking the Carvey for Electronics Production

At the lab, we thought that by having a small and precise milling machine available - in this case, the CARVEY - we would easily follow Fab Academy repositories steps and produce electronics would easily become a “walk in the park”.
That wasn’t the case. Carvey revealed itself as a pretense open but quite close environment.

As a workaround and since Easel accepted SVG files, we were exporting Eagles boards as an High Resolution PNG, tracing it on Illustrator or Inkscape and after that saving the resulting file as SVG.

downloadable FabOptimus from Ali Shtarbanov traced and ready to export for SVG and then import to Easel Download this SVG of FabOptimus from Ali Shtarbanov traced and ready to import to Easel

Easel UI Easel - A very comprehensive and simple software the comes along in a free version

Electronics Production at Fab Lab FCT

ChilliPeppr In this case we were using the Grbl Workspace

"EagleCAD -> ChilliPeppr -> CARVEY" Workflow

  1. Requirements:
    • Browser supporting ChilliPeppr ;
    • Install Serial Port JSON Server available on this Github Repository;
    • Tools:
      1. 0.8 endmill (holes and outline cut)
      2. 0.3 or less mill;
  2. preparing it

  3. Prepare the PCB by adding thin double-sided tape to the back and sticking it to auxiliary plate you could than attach to the CNC table;
  4. Custom block Filipe Silvestre designer and prototyped a new custom block and circuit to allow to use the PCB itself as a Surface Block

  5. Find Zero position: This task is quite easier after the customization Filipe done;
  6. Import .brd Eagle file just by dragging and dropping on the browser window;
  7. settings some important settings

  8. Choose Settings for Eagle BRD, according to chosen tools and machine;
  9. Send Gcode to Workspace;
  10. Auto-level made easy thanks to Filipe Hack

  11. Run Auto-level;
  12. Send Auto-levelled Gcode to Workspace;

    ChilliPeppr machine pause Then the machine will pause...
  13. The machine will pause for toll changes:

    In this cases you will have to position the new tool (the 0.8 end mill) at the zero position manually.
    Chillippr doesn’t allow for automatic tool length measurement.
    For that you will have raise Z 30 mm, attach the tool not screwing it too much so it can still slide. Then, lower the tool again on the same amount (30mm).
    If the tool is not touching the PCB, just pull it down manually and then screw in a definitive way.

  14. After these step unpause again and wait for it to finish.

Welding everything and Programming

welding smd's
welding smd's


Since I suffer from myopia, which qualifies me as a nearsighted, welding a small SMD component is not a big issue. I usually apply a minimal amount of solder on top of the pads (really to color it). After holding the component tight to the board with tweezers, I apply heat with the iron, and when fixed, I use a little extra, allowing it to flow around and beneath gently.


My process follows this FabTinyISP programmer.

success kept getting an unrecongized signature from the chip. In the end, after destroying one of the boards trying to fix it, I noticed that I was calling the wrong ISP programmer

I had a tough time starting translating the programming tutorial to the Mac. I tried it a lot of different ways, ending up with an Arduino as ISP formula that, also not working on Mac, I ended up using it on a Linux Computer (Raspbian to be more precise, on a raspberry pi. The process was then straightforward to follow.

Arduino as ISP setupArduino as ISP example

Arduino as ISP setup

Since kept getting an unrecognized signature from the chip. In the end, after destroying one of the boards trying to fix it, I noticed that I was calling the wrong ISP programmer.
Turned out not being a Mac or Linux issue, but a minor confusion between assuming arduinoISP or Arduino as ISP.

in order to understand, I didn't use the makefile and instead I input all the needed commands, following the procedure

When indicating the programmer $ avrdude -c instead of arduino, I used avrisp and it run smoothly.

the formula would be something like this example: $ avrdude -p attiny45 -c avrisp -P /dev/ttyACM0 -e \ -U flash:w:fileWithFirmware.hex

all the rest, worked file by following Bas tutorial.