Bock Engineering
Final PCB Layout

Final PCB Layout

Final Schematic Drawing

Final Schematic Drawing

Schematic and Board Layout (Final)

I have finalized a Board layout and schematic, I ended up going with a double sided board since I was unable to route the entire board on a single plane. I had a BOM prepared but windows has managed to ruin that so ill have to rebuild it from scratch and post it at a later date.

I will be posting images of the complete schematic and board layout shortly, they should appear just above this post.

Over the next several days Ill be focusing on documenting the PCB creation process. Many many pictures to come.

The Nuclear Option ( Double Sided Boards )

Due to the inherent limitations of trying to route so many traces on a single plane it looks like I’m going to have to create a double sided PCB which I have never done before.

The advantage of a double sided PCB for those who aren’t aware is that there is copper clad on both sides of the board as opposed to a single sided board which has copper only on one side.

This allows us to run a signal from one side of the board to the other using a via, or a small hole which gives us one extra dimension of flexibility in our design, one extra layer in 3d space to route our signals.

Consider this puzzle as a simpler example of the same problem.

Current view from my world.Left: Board Layout Right: Board Schematic ( Hard To See )Center: Delicious Ginger-ale

Current view from my world.

Left: Board Layout Right: Board Schematic ( Hard To See )

Center: Delicious Ginger-ale

Working out the routing

Well I’m caught up now to the point where I am finalizing the schematic and board design and I’m having a fairly awful time trying to get eagle to produce exactly what I’m looking for so i have started looking to other developers to see what they have done and I came across this list of rules which all the Sparkfun developers abide by to help them create coherent designs, thought it might be worth posting to fill the time while I finish up the board design.

http://www.sparkfun.com/tutorial/Eagle-DFM/Eagle%20Rules.pdf

PIC24F 28Pin SSOP Breakout Board

Since I have never had experience with a sixteen bit processor or any of the pic24 series processors I thought it may be a good precaution to first design and create a pic24 breakout board for experimentation and familiarization with the pic24, after all…

“Technological advance is an inherently iterative process. One does not simply take sand from the beach and produce a Dataprobe. We use crude tools to fashion better tools, and then our better tools to fashion more precise tools, and so on. Each minor refinement is a step in the process, and all of the steps must be taken”

-Chairman Sheng-ji Yang, “Looking God in the Eye”

View Breakout Board Schematic

View Breakout Board Etching Mask

Embeded Ethernet Project (Component Identification)

The second step in any project is to identify the main components that I am going to need to make my goals play out. In this case I have chosen a Microchip PIC24F series Microcontroller as the core of my project supplemented with a Microchip ENC28J60 Ethernet controller to handle the MAC and Physical layers of the Ethernet structure.

The PIC24F series has many advantages over its 10 12 and 18 series cousins, First and foremost the 16 bit architecture allows the chip to have a far expanded instruction set which makes it much more viable to program the chip in a higher level language such as C or even BASIC. I myself will be using Microchip’s student version of its C30 Compiler which comes fully loaded with individual header files for each chip in the 24 series and even libraries to help out with the on chip hardware peripherals like USART, I2C, SPI, Etc. The 24 series also has one advantage that most people tend to overlook, its hardware peripheral pins can be remapped to almost any pin on the device meaning much less time working on routing a PCB. Its also interesting to notice the distinction between the 24F and 24H series controllers, while the 24H controllers can typically run at much higher speeds achieving in the range of 64mips, it typically lacks the expanded peripherals of the 24F series which on average has about double the hardware peripherals of the 24H series but performs at only around 16Mips

The exact model I’ll be using in this case is the PIC24Fj64GA002 with 64K of flash memory and 2 hardware SPI interfaces and a max speed of 32Mhz (16Mips).

I wont be writing a guide for using the pic24 however I was able to find an excellent tutorial for any interested.

The ENC28J60 Ethernet controller handles everything below the network layer of the standard OSI Model, it handles the media access control layer and the physical reception and transmission of packets. The ENC28J60 interfaces to a main controller via SPI and receives and transmits information via an internal 8k buffer operating in a FIFO fashion. the ENC28J60 supports full and half duplex modes as well as unicast, multicast, and broadcast packets. It is also fully compatible with all 10/100/1000 Base-T networks making it a very plug and play device.

During the course of this project I will be entering a lot of new territory, I have never before used a 16 bit uC, I have never before coded a Microcontroller in C, (until now I have only used the 8bit 12 and 16 series microchips and coded them in Assembly or PIC Basic), I have also never used the SPI hardware peripheral which many PIC’s provide and I have absolutely zero experience with the ENC28J60 module. So this project will without a doubt put me in a position to learn some new things.

Embeded Ethernet Project (Requirements Definition)

When you begin a project its important to identify what you hope to accomplish or learn in the process, This project will have plenty of both for me. First and foremost I would like to produce an inexpensive Ethernet enabled controller which I can interact with via the Internet. The device will be a product of its programming however, meaning that depending on what I need it to do it should be able to…

1) Host web content and display real time data via the web

2) Send emails or alerts when necessary

3) Monitor and interact with external devices, sensors, and appliances

4) Allow control of the above mentioned devices via email or web based interface.

Its important to note that I don’t plan to incorporate relays or other direct appliance control hardware directly into my design, I’ll probably just end up making a bank of I/O pins available for external connections from sensors or relays.

As a rule of thumb its always a good idea to do some research and find out if anyone has done some of your work for you, in this case it so happens I was able to find an excellent project to draw from, several years ago Ian from HackaDay posted an excellent How-To on building an embedded web-server which has a lot of the same functionality as my project. Its notable to mention that Ian is also the main developer of the very popular Bus Pirate module. There are also several other good sources of information about the ENC28J60 such as this article on Electronicfr.com or either one of these articles from tuxgraphics.org

So in the footsteps of giants I will lay out my project in the next several posts from Component Identification through Design, Prototyping, Building, Programming, and Testing.

As a final note, because I’m borrowing from other open source work and projects it seems only fair that I reciprocate and deliver my project documents and code as open source, and so it shall be.

Embeded Ethernet Project (Beginning)

I’m beginning an embedded Ethernet project inspired by some colleagues at work an an interest in both networking and embedded electronics. Hopefully ill be able to make frequent update posts on here and keep the process documented.

That’s the entire reason for this site in fact is to give me a place to start doing better documentation of my projects, I have SO MANY projects but so little documentation that I often find I have nothing to contribute back to the world after I have completed my toys.

I have begun laying out the schematics and the PCB for the project and should be able to post them here relatively soon, I have only a few more revisions to make to the board before it becomes a viable design.

As well as the schematics and PCB designs I would also like to do some introductions and examples with the micro-controllers ill be using, specifically the PIC 18 and 24 series devices produced by microchip.

I may also find time to fully document my PCB creation techniques which I have been meaning to do for eons now.