Amicus18: upgrading with PIC16F18855


A few days ago I was making some order in my parts inventory, and I stumbled upon an old development board that I purchased almost ten years ago, only to leave it to gather dust: the Amicus18 development board is an 8-bit PIC microcontroller development board, with Arduino Uno form factor.

Warning: Use of undefined constant ICL_LANGUAGE_CODE - assumed 'ICL_LANGUAGE_CODE' (this will throw an Error in a future version of PHP) in /home/teodorc8/public_html/wp-content/plugins/insert-php/includes/class.execute.snippet.php(456) : eval()'d code on line 19

Warning: Use of undefined constant ICL_LANGUAGE_CODE - assumed 'ICL_LANGUAGE_CODE' (this will throw an Error in a future version of PHP) in /home/teodorc8/public_html/wp-content/plugins/insert-php/includes/class.execute.snippet.php(456) : eval()'d code on line 22

Why haven’t I used it? Because this board has more flaws than advantages, and it has a very limited compatibility with existing Arduino shields.

However, with the new 8-bit PIC microcontroller that has PPS (Peripheral Pin Select) some of the issues of the Amicus18 board can be overcome, so upgrading to a PIC16F18855 makes sense. So, what do we gain from upgrading? We will see.

First, a quick look at the original Amicus 18 board:

Amicus18: preparing the PIC16F18855

Amicus18: preparing the PIC16F18855

The board comes initially with a PIC18F25K20 with 32kb FLASH, 1536 bytes SRAM and 256 bytes EEPROM, The clock source is an external 16MHz crystal. The microcontroller comes preprogrammed with a UART bootloader. Communication with the PC is achieved via USB, using one FT232RL USB-UART bridge.

Here we notice one of the major flaws of this board: the USB connector is of type A, same as the USB host. A special USB-A to USB-A cable must be used, and that cable is hard to find, and sometimes can cost two or three times more than a regular USB cable.

I have mentioned above the poor compatibility with USB shields. Let’s compare the pinout of the Amicus18 board and that of an Arduino Uno.

Amicus18 vs Arduino Uno pinout

Amicus18 vs. Arduino Uno pinout

The first thing we notice is that the makers of the Amicus18 have assigned the pins from each port in sequential order, without paying much attention to the layout of the Arduino Uno boards. While there’s a match for A/D pins and UART pins, SPI, I2C and PWM lines are in the wrong positions.

On Arduino Uno, pins A4 and A5 are also used for I2C communication. The PIC18F25K20 uses pins RC3 and RC4 for I2C, which will put the I2C lines on pins 2 and 3 of an Arduino Uno. Any shield that uses I2C communication will require some extensive hardware changes to work with the Amicus 18.

Same happens with shields using SPI. On the Uno, pins 11, 12, and 13 are used for SPI communication (some shields rely on using the pins from the ICSP programming connector). Amicus18 uses pins 3,4 and 5 for SPI.

The ATMEGA328P has six PWM pins, corresponding to pins 3, 5, 6, 9, 10 and 11 of the Arduino Uno board. Most 8-bit PIC microcontroller have only two PWM pins. Our PIC18F25K20 can be configured to use pins RC1 and RC2 as PWM. Thus we have a limited compatibility with some Arduino shields.

Overall, many disadvantages and limitations, and the use of the Amicus18 board with Arduino shields is severely restricted.

1 2

Comments are closed.