PC Engines APU2C4 Assembly

Building a DIY network router and connecting to it over serial port connection.

So, I decided I need want a new router. Partly because the support ended for my current Netgear router, and because I always wanted a good reason to run some BSD so I could learn more about it and networking in general.

I researched a bunch of boards with Intel Atom / Celeron CPU’s at first. But finally decided on a PC Engines apu2c4, for some not too shabby reasons:

  • This board is supposed to work perfectly with pfSense.
  • Designed for passive cooling.
  • Intel NICs help offload the CPU more than Realtek NICs.
  • The Jaguar CPU should be able to push several hundred mega bytes per second.
  • It also has AES-NI which is nice if I ever want to do VPN.
  • AMD Open Source.

The only downside I can see:

  • No graphics chip, requires you to use a serial terminal over null modem cable.

The board comes with a cooling plate included. This is a passive cooling that is designed specifically for their case. It’s really neat how you just stick it to the bottom of the case, so the heat can dissipate through the case. Just hope that disassembly is never needed.

The case comes with all the screws and even rubber feet - nice! =)

Close ups of the board:

I do not have any pictures of me assembling the cooling, as this was quite fiddly. But PC Engines provides very good instructions with pictures.

Here it is with all the internal parts assembled in the case:

This thing is definitely sturdy. No more cheap and shiny plastic products from consumer brands!

Here is what the final product looks like:

To connect to this board and install an OS, a null modem cable and a serial terminal client is required.

In order for the serial terminal to work properly, I applied the following settings in putty:

  • Speed (baud): 115200
  • Data bits: 8
  • Stop bits: 1
  • Parity: None
  • Flow control: None

Most of these settings are documented by pfSense. But one thing that is not mentioned there is the setting for Flow control. The default value for Flow control in putty is XON/XOFF, for me this prevents the keyboard from working in the terminal. Setting it to None makes the keyboard work.

Hopefully there will not be much need to use the serial port after installing the OS. Although at some point I will probably want to flash a new BIOS, since they keep developing it quite a lot after releasing the board.

Some additional reading by pcengines: