Visit my New Site
En Español
My Resume

Name:
Mauricio Giovagnini
Age:
33 years old
Title:
Electric and Electronic Engineer
Profession:
Embedded Software Developer using microcontrollers. PC Software Developer.
E-mail:
mgiovagnini < at > maunix.com.ar View Mauricio Giovagnini's profile on LinkedIn





Education



. Electrical and Electronic Engineer: In the Universidad Católica de Córdoba College.

. Inglés : Intermediate level, Cambridge First Certificate in 1992.-






Experience

 

2005 to present

I work as an Embedded Software Developer at Fiplex Communications Inc., an american company with its R&D headquarters located in Córdoba Argentina.
I'm the responsible of the Embedded Software. The equipments developed in the company include microcontrollers for control and supervision, with multiple connectivity options for Machine to Machine applications like: direct PC connection via a RS232 and/or RS485, wireless links like GSM (SMS, GPRS), iDEN.

The systems are single or multi-microcontrollers boards with a master/slave connection scheme. I'm responsible for developing and testing the communication protocol of the Microcontroller-Microcontroller links and the Microcontroller-PC links.
I'm also responsible of the design/test/code of the PC software that interfaces with microcontrollers.

 
  2003 to 2005

I worked as self-employed with an associate and friend to do automotive applications. During this period we developed several devices and tools for CNG and LPG fueled vehicles.
During this period I also did embedded software for Fiplex Communications Inc., the company I work for now.
The new company projects become more and more complex, with the need of a highly interaction between all the engineers involved; this made the company to hire us as permanent staff of their R&D team.
 
  2000 a 2003

I worked in a toll traffic company, called Caminos de las Sierras in Córdoba (Argentina). I was the responsible of the hardware and software of the already installed system.
The system had many problems and my job was to analyze the causes and find/propose the solutions to allow the system to be operative in a 24x365 scheme.
I made many changes in the hardware, PC software, embedded software and in the working methodology. I was in touch with several different devices like Generator Sets, UPS, voice and data radio links (over 40Km), PBX, NT Servers, dozens of Industrial PCs , hundreds of sensors and special boards with microcontrollers with embedded software.
The PC software was done and modified by a third-party provider (a french company named Ascom) under my supervision.
 
  2000 a 2003

During this period I worked as a self-employed engineer doing technical jobs with PCs and microcontrollers. I also did my carreer's final work related to the milk industry. The project was about a cow-shed automation.
 
  1998 a 2000

During this period I worked as a self-employed engineer doing technical jobs with PCs and microcontrollers. I also did my carreer's final work related to the milk industry. The project was about a cow-shed automation.

If you wish to read more about my work experience, you're invited to take a look to my Projects Section.
 

Skills

 
  Microcontrollers
  • More than eight years of experience using microcontrollers specially the ones provided by Microchip
  • Deep knowledge of the MIcrochip PICs architecture.
  • I code in ANSI C and Assembly.
  • I'm used to work with macros and libraries allowing code reuse while improving coding speed.
  • Real time applications, state machines, I/O buffers, multi-tasking, using almost every feature each microcontrollers have.
  • Applications with local or remote management features.
  • Several M2M (Machine To Machine) applications.
  • Development of Microcontroller based solutions were some working parameters can be changed after being installed, allowing the user to adjust the application to his needs.
  • High availability applications.
  • Multi-Mirocontrollers systems with a master-slave scheme where every device is in charge of a specific task and all are managed and controlled by the central master processor.
 
  PC
  • Development of PC applications with Borland Delphi to interface with microcontroller boards for data acquisition and related purposes.
  • Development of manufacturing-oriented software to improve production areas where microcontroller based hardware are produced.
  • Development of several automation applications using embedded PC hardware like 3.5" SBC, PC-104 and others.
  • Development of remote managment and supervision applications using UDP/IP and TCP/IP links.
  • Used to Objet Oriented programming techniques. Experience building Delphi Visual Components, helping to improve team work while encapsulating the complexity of some hardware related tasks.
  • PC hardware knowlege, operative systems, system administration due to many years working as a computer technician while in College.
 

Projects

  I've been involved in many projects, each one with its own characteristics and particularities. Its in the projects that one can realize about the need of combining diverse engineering fields as embedded hardware design; PC high level software development analysis and design; embedded software design, coding and adaptations (to the limits of the low resources hardware) and creating, coding or using communication interfaces.

Here's a list of the most relevant projects I've been involved but they are not the only ones:

  • Operation, Control and Maintenance System: its the project in which im currently working in and its in an advance stage.  The project is a global remote monitor system which is able to communicate with many different devices over many hardware interfaces.  The remote devices are of different kinds, each one with its own characteristics and particularities. The main software is able to communicate with each one and provides a common platform to visualize all the devices in a centralized interface.
    Its name is OMS, an acronym for Operation and Maintenance System.
    The project is composed by several modules:

    • OMS Server Software: its a Server Application, composed by a SQL Database engine and several windows services. Each services is responsable on handling one or serveral communication protocols, working over a common database updating its data.
      This services are in direct communication with the devices they monitor and/or control.

    • Client Software: its a client application that connects to the OMS Server allowing many different users to watch, analyze and modify the status of the monitored devices, watch anomalies reports, program scheduled tasks and many more. The devices are represented by custom small images that change their color according to its status so the user can rapidly find a failed device.

    • Administration Software: its another OMS client application for administration purposes. The main functions are to create users, profiles, groups, allowing permissions to do or not a certain task. The permissions can be configured per user or per group.

    • Portable OMS Software: it’s an application meant to have a direct link with the monitored device for local supervision or device reconfiguration by a technical oriented user. Its has many features not present in the other software. According to his profile the user can supervise, monitor or change operating parameter. An advanced technical user is for example, allowed to reconfigure almost the entire behavior of the device and/or update its firmware.

    • Devices' Embedded Software: every controlled device has one or more microcontroller with custom embedded software programmed in it. Each one has a certain task like data acquisition and/or driving actuators. The embedded code is a multi-task application that gives the device the capability of being monitored locally or remotely while doing its job.


    I'm the project leader and a developer of this complex system. My duties vary from defining the application arquitecture, requirements and documentation. Next you'll find a list of tasks I'm responsible for:

    • Design, development, testing and implementation of the device's embedded software. The code is in ANSI C and assembly.

    • Communication protocol design mostly based on HDLC.

    • Design and development of Borland Delphi visual components. Some of the components are made to handle a certain device dealing with its information and allowing to control it. The components make possible to easy integrate a certain remotely control device special capabilities on an application without having to deal with low level characteristics.

    • Co-developer of the Portable OMS Software in Borland Delphi. I'm primaly focused on the communication interface through many protocols and hardware layers like Ethernet (UDP/IP, SNMP), RS232, RS485, iDEN (UDP/IP), GSM (SMS, UDP/IP over GPRS).

    • Development of high level rountines in Borland Delphi to solve specific problems so they can be re-used by other developers.



  • Operation and Control software for HBCS-126 iDEN Bidirectional Amplifiers (BDAs)
    Its a Controlled Bidirectional Amplifier which can be reconfigured with a local or remote connection. I was the project leader and developer of the hole system which involved several different devices with its own characteristics. I was in charge of all the embedded softwares, the PC platform Master non-gui software, the PC based Local Management Software, the design of the communication protocol between all the devices:

    • The Master and OMS Server communication protocol
    • The Master and Local Management communication protocol for direct connection via Ethernet
    • The Master and Local Management communication protocol for direct connection via RS232
    • The Master and Local Management communication protocol for remote connection via an iDEN link

    The HBCS-126 is equipped with Power Amplifiers, Heterodyne Filters, RF Power Attenuators, Alarm Board and a Master Main-Board. The Device supports the addition or remotion of modules without needing to reconfigure the system. The master will detect this operations and will inform any anomalies and reconfigurations to the Server in the Network Operation Center.

    The hole system is formed by several devices each one with its own characteristics.

    • Microncontrollers' Embedded Software: each one of the device modules is managed by a microcontroller. The devices communicate with an RS485 interface with a Master/Slave architecture using a propieatry HDLC type communication protocol.

    • HBCS-126 Master Software: the master is a SBC 3.5" computer with low resources for cost reduction. The master software is a non-Gui application developed as a Windows Service with Borland Delphi. Its a multi-threaded application designed to manage and monitor the boards of the equipment and to add communication features to the device. The software will report to the OMS any alarm trigger and read the working status of each board. Its able to communicate via RS232, Ethernet and iDEN. It automatically connects to the OMS software and it is capable of communicating with many Local Management Software sessions at the same time if needed.

    • Local Mananagement Software: its an application completely developed in Borland Delphi, its used to directly communicate with the BDA master board. Its able to communicate via a RS232 connection, ethernet or wireless via an iDEN link. Among its features it allows a technician to completely check the equipment working progress and status. It also used to reconfigure operational parameters and or enable/disable special debug modes.

    • Operation and Maintenance software in the Network Operation Center: I was in charge of the project leadership and the low level communication protocol design.



  • Autotune Device: Its an aumatic tunnable RF device than can keep track on frequency changes in any of its 4 inputs. The embedded software tasks are divided among two microcontrollers, one which is always sensing the RF input and another that is the responsible of the whole control loop and communication interface. I also made a PC software to communicate and configure the Device. The software is capable of configuring many application parameters and to visualize its operation with a nice, simple to use and very complete user interface.


  • Embedded Software for Communication Devices: I made several jobs for RF devices which are equipped with one or more microcontrollers. The embedded software its meant to control power consumption, programm a desired working frequency, attenuate the power output, shutdown a power amplifier if it's sensed as defective and more. The information is shown on a LCD display, seven segment display or LEDs.


  • Programmable RF tone generator: its a device that can generate an RF tone from 800 to 900 MHz. Its a equipped with a microcontroller, a LCD display and a keyboards. I was responsible of the development of the embedded software. The user has a Menu where it can set many options and configure the desired frequency of the tone.


  • I2C Memory Tool: its a device with a firmware that can read/write i2c memories using a PC software as the User Interface. I did the PC software and firmware. The communication protocol between the device and the PC is an RS232 full duplex , with commands and error messages that help to find out possible hardware errors.


  • Timing Advance Processor: it is a device designed for CNG or LPG fueled vehicles. Its purpose is to dynamically adapt the ignition point, emulating the engine injectors and the car oxygen sensor. Its software can automatically detect many vehicules configurations.


  • Timing Advance Processor Tester Its a production oriented tool for testing Timing Advance Processors. It can detect hardware and software failures. The hardware failures can be easily solved due to a easy to follow error code scheme.


  • Pickup Sensor Generator: the firmware generates the pickup signal of a electronic ignition engine. Is able to generate inductive or Hall sensor signals of different engines and brands. Its main purpose is to help to develop other related automotive applications.


  • Digital Tachometer: the firmware can detect the Revolutions per minute of a combustion engine by sensing its pickup sensor. The system do not interfere with the normal vehicle operation. It has a RS485 interface to communicate with a computer software that reads and processes the information. It can be equiped with an LCD display as well.


  • Continuos Form Printer control device: its a closed loop control application that provides accurracy in the printing process of Four Colors Printers. The control loop is done over a Servo Motor. The device has a Graphical User Interface done with a T6963 based graphical LCD display, a keyboard and an RS232 connection to interface with a PC software to upload new working parameters if needed.


  • Printer Numbering Device for Continuos Form Printer: it is a device which has several functions: counts the number of repetetions each numbered sheet will have, gives the signal to an external mechanical device to increment the number, has control over the RPM of a Servo Motor via a User Keyboard. The device is equiped with a LCD display so the user can program its behaviour with an easy interface made with menus and with a simple and intuitive keyboard.
 

About me
 
  The Engineer's seed   (Some translations pending)

Me gusta programar desde que tomé contacto con mi primer computadora personal, allá por el año 1985. Se trataba de una Sinclair 1000, no era mucho lo que se podía hacer con ella pero para ese entonces era lo más avanzado que uno podía acceder.
Comencé tirando algunas líneas en el rudimentario Basic que contaban y desde allí en mi vida todo fue enfocado a las computadoras y afines. En 1988, ya comenzando el colegio secundario seguí con una Toshiba MSX, con 64K de RAM y 16K de Video RAM. Que tiempos aquellos!. Con ella seguí con el Basic, con los juegos (por supuesto) y me interioricé en el mundo de las bases de datos con el por entonces famoso D-BASE II y con un rudimentario MS-DOS.
En el 1991 mi familia adquirió su primer ordenador PC, un AT-286. En él aprendí a trabajar con un sistema operativo, a usar planillas de cálculo, software de bases de datos, procesadores de texto, aplicaciones para presentaciones gráficas, y comencé a usar el Turbo Pascal. Todo lo que llegaba a mis manos me producía curiosidad.
En el 1991 y 1992, participé de las Olimpíadas provinciales de informática en mi provincia, saliendo en primer lugar en ambos años. También por ese entonces, me la pasaba armando y desarmando mi PC, lo que despertó en mí la curiosidad por seguir Ingeniería Electrónica (y no una carrera meramente informática).
Durante mi carrera universitaria, seguí en estrecho contacto con mi fasceta de programador, probando de todo y ya conociendo más del hardware a bajo nivel, me animaba a desarrollar pequeñas aplicaciones que accedieran directamente al hardware.
Fue durante mis últimos años de carrera que me interesé por los microprocesadores y microcontroladores. Mi experiencia programando para PC en tiempos donde no había un "API" que resolviera las cosas y uno mismo debía gestionar desde la cosa más simple a la más compleja, hizo que la adaptación a los microcontroladores sea un paso natural.
Mi proyecto de final de carrera fue una automatización de un tambo, en donde interactuaban varios microcontroladores y un PC recopilaba la información de ellos.
Ya en el campo laboral, me desempeñaba integrando el conocimiento de PC y de hardware, realizando pequeñas automatizaciones las cuales poco a poco fueron ganando lugar en mi vida hasta que decidí dedicarme a eso a tiempo completo. El conocimiento del Pascal hizo que le paso natural fuera seguir usando el Borland Delphi aunque actualmente también utilizo el C y el Assembler.


Hobbies, Deportes, Gustos y aficiones

Mi mayor hobby es la música... suelo pasar horas oyendo música de los años '70 y 80, y si tengo algo más de tiempo toco mi guitarra eléctrica o el teclado (organo electrónico). Me encantan los animales; si enciendo mi televisor en general será para ver algún documental. Si hablamos de animales domésticos mi preferencia es sin lugar a dudas un perro. En cuanto a deportes me gusta practicar fútbol y natación. Tengo afición por la lectura, sobre todo novelas de aventuras, de ciencia ficción o policiales aunque también me puedo sentir atraído por otro tipo de literatura como alguna novela histórica. Me gustan las películas de acción, de ciencia ficción, las comedias francesas y ciertas películas de cine independiente.
Me gustan los video juegos, donde me considero atraído por los juegos de estrategia o de acción en primera persona.