Introduction: Engadino

About: Thank you all for following me.

         This project is named "Engadino" after Engadin - ski resort in Switzerland. The reason for this is that I live in Switzerland, I like skiing and the name is easy to remember and pronounce. By itself the project is a clone of "Pinguino". 


          "Pinguino is an Arduino-like electronics prototyping platform. It supports different 8- and 32-bit ©Microchip microcontrollers, all with built-in USB module (no FTDI chip !).

        Pinguino comes with a USB Bootloader. This small program running inside the microcontroller is responsible for transferring your application from your PC to the microcontroller memory and handing over the control to this program afterwards.

       No programmer is needed(*), the microcontroller can be reprogrammed over USB with a PC.

8-bit : PIC18Fx550, PIC18Fx5K50, PIC18Fx6J50 and PIC18Fx7J53 family
32-bit : PIC32MX Mips family


         Pinguino boards can be used of different ways depending on your skills :
with the Pinguino IDE and the Pinguino Language (based on C and almost compatible with Arduino language)
with our own 32-bit MIPS-elf GCC toolchain (C/C++) or 8-bit SDCC/GPutils toolchain (C only)
with ©Microchip ©MPLAB X IDE toolchain
Pinguino is an Integrated Development Environement (IDE) which gives everyone the ability to write, compile and upload programs on a Pinguino board.

        Pinguino Language is almost compatible with Arduino's Language, Libraries and Shields.


        It makes you write easily your application without spending hours learning pragma, configuration bits or command line compiler.


        Pinguino is Free Open Source software released under the terms of the GNU GPLv2 (General Public License version 2). Pinguino Boards are Open Hardware."

(reference http://www.pinguino.cc)


Step 1: The Original "Pinguino" Hardware

        The project data (schematics, PCB files and the software) can be downloaded from the "Pinguino" site or from here.
Pictures show the "Pinguino" PCB and schematics.

Step 2: The Differences...

                 Comparing with the original "Pinguino" the "Engadino" board differs in the following:
  1. The board shape is different - the "Engadino" board is square (5cm x 5cm).
  2. The "Engadino" PCB uses dual layer technology and uses mainly SMD components.
  3. The "Engadino" board supports both PDIP and SOIC 28-pin packages of the PIC18F25550 microcontroller. They can be soldered alternatively.
  4. The "Pinguino" is designed mainly to work with breadboards (it has male pin connectors), while the "Engadino" board is following the shield use approach (it has female header connectors)
  5. The "Pinguino" has a jumper to switch, between the external and the USB power supply. In the "Engadino" board i have used different solution: 
                I did not like the solution to change between both supply sources replacing each time you change them the jumper at the corresponding position. I wanted that the board automatically switches to the applied supply source. First I wanted to implement the solution used in the "Arduino" boards, where a comparator senses if an external supply is connected to the board and disconnects the USB supply line from the node by use of PMOS switch. After analyzing the "Arduino" power concept, I found that it has the following problem - if the board is supplied by the USB, the external voltage regulators output is exposed to the 5 V USB voltage, while its input is either grounded, either floating. This can cause that big current  flows  through the regulator chip and the device can be burned out. Also the PC USB chip can be damaged. Not a nice solution! Internet research gave the best solution - the chip TPS2110A from "Texas Instruments".
               "The TPS211xA family of power multiplexers enables seamless transition between two power supplies, such as a battery and a wall adapter, each operating at 2.8 V to 5.5 V and delivering up to 1 A. The TPS211xA family includes extensive protection circuitry, including user-programmable current limiting, thermal protection, inrush current control, seamless supply transition, cross-conduction blocking, and reverse-conduction blocking. These features greatly simplify designing power multiplexer applications."  (TPS211A datasheet).
                I have connected the chip in autoselection configuration - the preferred supply is the USB. If it drops under ~3V the supply is reconnected to the external source (if exist).

Step 3: The Hardware

         The schematic of the "Engadino" projects is presented on the pictures. The top and bottom side of the PCB are also shown. 
         The project database (schematic and PCB files in "Eagle" format) are available for download.

         The partlist of the project:

Resistors

21 x      470 Ohm          SMD-R2012
1  x      510 Ohm           SMD-R2012
2  x      10  KOhm          SMD-R2012 
1  x      27  KOhm          SMD-R2012 

Capacitors

2  x      22  pF              SMD-C2012 
2  x      100 nF             SMD-C2012
1  x      220 nF             SMD-C2012
2  x      10  uF              SMD-085CS_1AR   
1  x      100 uF             SMD-085CS_1AR   

ICs
1  x      PIC18F2550_28DIP   DIL28-3  Microchip
OR 
1  x      PIC18F2550_28W     SO28W    Microchip  
1  x      LM1117IMP-5             SOT223  Texas Instruments 
1  x      TPS2110A_PW_8      PW8         Texas Instruments   

LEDs
1  x      Green LED          CHIPLED_0805
1  x      RED LED             CHIPLED_0805

Quartz crystal
1  x      20.000MHz          HC49/S 

Switches
2  x     microswitch         B3F-10XX Omron 

Connectors
1  x     2 pin jumper
2  x    4 pin 2.54mm female header 
1  x     7 pin 2.54mm female header
1  x     8 pin 2.54mm female header
1  x     USB type B PCB connector PN61729 Berg
1  x     Power supply PCB jack DC-21MM



Step 4: The Assembled Board

      Some pictures of the assembled board

Step 5: The Software...

               "Pinguino boards can be used of different ways depending on your skills :

with the Pinguino IDE and the Pinguino Language (based on C and almost compatible with Arduino language)
with our own 32-bit MIPS-elf GCC toolchain (C/C++) or 8-bit SDCC/GPutils toolchain (C only)
with ©Microchip ©MPLAB X IDE toolchain
Pinguino is an Integrated Development Environment (IDE), which gives everyone the ability to write, compile and upload programs on a Pinguino board.

Pinguino Language is almost compatible with Arduino's Language, Libraries and Shields.

It makes you write easily your application without spending hours learning pragma, configuration bits or command line compiler
." (http://www.pinguino.cc)

              The "Engadino" ("Pinguino") IDE can be downloaded from here.

              The IDE is similar to Arduino IDE. You can write sketches, compile  and load them to the board. To be able to do this, you have to burn preliminary a bootloader program in the microcontroller. 

               "The Bootloader is a small program running inside your Pinguino's microcontroller (PIC18F or PIC32MX) which is responsible for transferring your user program to the program memory and handing over the control to this program afterwards. Without it your Pinguino board will have no use at all.
The bootloader is always pre-installed on commercial boards. If you made your own board you must program your Pinguino (only one time) using a standard PIC programmer which supports the PIC used in order to install the bootloader.
"(http://www.pinguino.cc)

              You can download it here.

              To burn the bootloader in the chip you will need a PIC programmer.
First I have tried with this. It did not work. I updated the firmware. It had again problems. After that I have found this DIY JDM programmer. I built it and worked perfectly. The only requirement is that your computer needs to have real (not TTL) serial (RS232) port. The port must work with +/- 15V and must be able to source/sink  min. 5 mA current. If you don't have such port, you have to look in internet for some other solution. In the "Microchip" site you can order programmers, which surely will work with PIC18F2550 chip.
             After burning the bootloader in the microcontroller, proper installing of the software, the drivers and the libraries you will be able to communicate with the "Engadino" board using the IDE program via the USB port.

Step 6: Applications...

                A lot of applications can be found for the "Engadino" board. Different shields can be invented. For example,  using only thyristors you can make simple controller for you Christmas lights. 
                An instructable presenting a GPIB shield for "Emgadino" can be seen here. The shield converts the "Engadino" board in USB to GPIB adapter, which can be used for controlling of different laboratory test, measurement, analysis and power supply devices by a single PC host.
                I would like to bring to your attention the following application :  "Digital signal generator". It is based on the open source project  "Kidogo" developed by Dilshan R Jayakody. He has created a software called "Kidogo player", which turns a simple PIC18F2550 board in 8-channel digital signal generator. The "Engadino" board is fully compatible with his hardware and software.
                 "Kidogo system consists with Signal Editor and USB interface module. Kidogo Player is the Signal Editor of the Kidogo system and it can support up to 512 time slots (each range between 1ms to 1s) with 8 channels.

The Kidogo Player is designed for Microsoft Windows OS and it has many features, we can list some of them here:

Save waveforms and settings as binary file or export waveform as a text file
Playback controls such as “Play to segment”, “Play from segment”, “Step back”, “Step next” and “Clear”
Shifting and rotating waveforms
Invert, Reset, Clocking and Binary Generator functions
Mute function to each individual channel
Launch without any installation or configuration
" (http://www.gadgetfactory.net/2012/04/8-channel-usb-digital-signal-injector)

                 Using this simple but effective digital signal generator you can test your digital projects, control different devices, lights...etc. Based on it I have created a simple "Philips" OTP  programmer.

                 The compiled firmware ("kidchip.hex"), which must be burned in the chip, the "Kidogo player" software and few signal pattern examples are provided as downloadable file.


Have a joy!

P.S. A bare PCB can be ordered at the e-mail address: chicho.mecho@gmail.com. Price 10 USD with shipping included.
Both PCB's (Engadino+GPIB Shield) for making GPIB adapter cost 16 USD (with shipping costs included)

UP! Contest

Participated in the
UP! Contest