In my final week, we wrap up with the PCB design of the product prototype and retrace & document the work completed in my nine weeks at Aeste.

For one last time, click here to skip to the conclusion.

Routing Completion

The design of the circuit board is complete. Last week, it was suggested that it might be necessary to make compromises in the layout, perhaps in routing the RB1, RB2 or Port E pins to the Spartan-6. However, with a bit more component-shifting and trace-redrawing, these pins too were successfully routed, which happened to be a pleasant surprise for the designer involved.

The unfortunate victim instead is the Micro HDMI Type D receptacle; there was little space left on the board and it had to make way for the routing of digital IO pins to the Spartan-6. Nevertheless, it is still possible to include the connector as an optional feature in future versions of the development board, but traces & vias smaller than was set in the initial design rules may be necessary, as this TI application note demonstrates. It would be a shame to waste it given the work that has been done to use the FPGA as a graphics chip.

PCB Design Miscellania

The last three additions to the board were an array of LEDs for user-defined purposes, 3D models for each component and stamping the company name on the PCB. Only the third task was (mildly) non-trivial, no thanks to a bug in KiCAD’s Bitmap2Component utility which adds lines on the top left corner of the image. A workaround for this bug as well as additional tips on scaling & producing silkscreen graphics in KiCAD can be found here.


For the remainder of the week, the aim was to document the design work poured into this project. To that end, the circuit schematics have been tidied up and readied for submission. In addition, a bill of materials for the prototype was compiled. For the benefit of ongoing projects dealing with System-on-Chip design of the FPGA, a .UCF file defining all the functions of the Spartan-6 pins was also prepared.

Going even further back, the SPI emulation functions for the PIC18 were also properly commented and annotated for future conversion into documentation using Doxygen.

There remains nothing else but to compose the concluding blogpost.

To recap my tasks throughout my internship:

  • I designed a circuit schematic in KiCAD for Aeste’s development board.
  • I spent a couple of weeks doing embedded C programming to write some SPI-device emulation functions for the PIC18.
  • I returned to KiCAD to design the PCB layout for the prototype.

In total, I have only spent two months in Aeste – a short time for an internship and an even shorter time to finish a development board! As much as I would like to take credit, my project is built on the foundation of effort poured out by the team at Aeste, and I was merely acting on the advice and work of my supervisor as well as my past & present peers.

I would like to thank everyone at the company for being such an amazing bunch of colleagues and I apologize for any mistakes I may have caused. Part of my thanks also goes to the Otak-Otak Programme, without which I would not have known of Aeste in the first place!

Moving forward, the PCB may be “complete” but more changes may be expected before the first release; the next step is to produce a prototype for testing. The work on Linux, Verilog and C programming is still ongoing. Moreover, a more complete set of documentation for the board and the source code is required; whoever is going to be in charge of that, I wish you all the best!

Happy Merdeka Day and Malaysia Day, everybody!

Categories: Experiential


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.