home | track record |
-->
d
1

 

(Modified: March 2011)

The projects are listed in reverse chronological order.

 

Embedded systems consulting

(Nov 2006 – in progress)

1.        Volvo 3P

(Oct 2010 – present)

·         Deployed from the System Architecture department to a project role as Technical Leader support. The work involved keeping track of progress within the sub project team and working with cross-team issues within the total project. Also system investigations were performed.

2.        Saab Microwave Systems, Gothenburg

(Nov 2008 – Oct 2010)

·         Development of distributed power solutions as schematic reuse blocks and also complete power solution on PBA's. The work involved design of filters, switched and linear voltage regulators, DC/DC-modules, power budget, thermal calculations, on-board current and voltage measurements, supporting circuit solutions for ADC, enable signals etc. Other tasks included verification of power units, PBA's and practical trouble-shooting.

3.        Saab Microwave Systems, Gothenburg

(Feb 2008 – Oct 2008)

·         Maintenance of a radar simulator. The background is that the previous competence & knowledge had left the company. The work involved trouble-shooting, maintenance and development of the simulator. The radar simulator consists of a VME crate with a SPARC and several DSP boards. The maintenance work consisted of building software able to run on the target machine with old libraries, backing up hard drives (clone), documentation of the development environment etc.

4.        Ericsson Mobile Platforms, Lund

(Nov 2006 – Feb 2008)

·         Analyzed and implemented customer originated Error Reports and Change Requests on core platform functionality, e.g. mixed signal ASIC driver, battery charging, file system, NAND driver, error handler, MSL-link, DMA, dump analysis.

·         Involved in customer projects. Responsible for integration of customized software modules and building of customer phone software for delivery to customer. The work consisted mainly of trouble-shooting compile and link errors.

 

M2M-system

(Feb 2006 – Oct 2006)

1.        Introduction

This project is an addition to the Climate control system described further down. It is connected to the CAN bus of the Climate control system.

2.        Description

This system introduces ARM7 and 32-bit MCU’s to the company. The system consists of a GSM-module, a bunch of other UART’s, temperature sensors, digital inputs, two CAN interfaces. The purpose of the system is to connect the Climate control systems in the trucks with a web server and the standard CAN bus of a truck and it also adds GPRS-communication to the previous generation of the Climate control system. The web interface mainly provides the means to show logger data and geographical position of the trucks. It also gives fleet managers the ability to remotely perform other tasks such as changing system settings. Another important function of the M2M-system is to deliver temperature alarms to the central web server. The application had to be modular because of the different contexts this system will operate in. As mentioned the system also need the ability to connect to an older climate control system which does not have a CAN bus nor the same logger format. It must also be able to operate as a stand-alone telemetry system.

3.        Responsibilities

My main tasks were to write the customer specifications, design the architecture of the system on a system level and do all implementation. Other tasks were dealings with the M2M/GSM operator and with the company that provides the web server functionality.

4.        Experiences

4.1.           GSM-module communication

Having no experience in this technology it was a bit of a challenge getting it right. I had to make a parser for AT commands, specify the protocol for the data layer and at the same time implement my own web server to be able to test it all out.

4.2.           Data layer protocol

The M2M-system on the data layer operates in the role of a server. A protocol was specified for the communication with the web server. This protocol had to be generic because the M2M-system will also be used by our customer in other contexts.

5.        Value

Some technical experiences gained:

  • The intricacies of TCP/IP communication over a mobile telecom network.
  • Protocol parsing.
  • Wavecom/SonyEricsson GSM-modules.
  • ARM-based microcontrollers.
  • UML.
  • Inter-task communication.

 

 

Modifications of an MSSQL report application

(Jan 2004 – Mar 2004)

1.        Description

For a short while I was on loan to a company that sells software consulting services. They were selling consulting services to a nuclear power plant. The application we were working on was a report system that collects data from SQL databases and creates different types of reports.

The GUI is a Visual Studio C++ DLL which is called from Origin (a scientific graphing tool).

2.        Responsibilities

Changing the GUI and adding new functionality. Changing the layout of the reports and adding new data to the reports which are generated in Origin.

3.        Value

This assignment introduced me to Visual Studio programming, SQL databases and more advanced features of version control systems. I have since then been programming in Visual Studio C++ and setting up SQL (MSSQL, MySQL) databases in my spare time.

 

 

Climate control system

(Mar 2003 – Feb 2006)

1.        Description

The customer of this system manufactures automotive climate control systems. These are mainly put into your average truck delivering groceries and what-not. These climate control systems are very complex in terms of hardware configuration as they are modified for different customers. This puts high requirements on the embedded system controlling them. The embedded software is basically the same but also very different and this leads to the requirement of a highly modular system.

The system consists of one or several main computer boards connected via a CAN bus. The number of boards required depends on the customer’s system. The computer board is equipped with what to expect from a control application; digital inputs, analogue inputs, relays and a multitude of Flash memories (e.g. data logger, user configuration settings). The physical dimensions of the board allows for 8 relays. For some applications the number of required relays exceeds 8 by far so up to two additional computer boards are required.

This system also comes with a Windows application. This is used to download new firmware over the CAN bus, reading logger data, reading application settings from Flash and other tasks. It can also simulate the control panel’s graphic display by running its HC12 code. It simply connects itself to the CAN bus via our RS232 to CAN converter.

To handle these situations it is required that the OS messaging API is transparent as to where a certain OS task is located. Task B is located either on the same board as task A or on a different one. It is all the same to task A where task B is physically located. The application programmer must however take into account the data throughput rate.

2.        Project setup

Five people have been involved in this project. I and two others were the software ‘core group’. One of the other two wrote the OS himself as no OS supported the banked memory architecture of the platform. The second of the two coded the display control panel application. The display is located in the truck drivers cabin and is connected to the CAN bus.

As for myself I coded most of the drivers and the main application. The remaining project members designed the data logger and the hardware.

3.        Responsibilities

In 2004 the other two of the core group left the company leaving me to deal with the incomplete display control panel which heavily added to my duties. The main application design was still not complete and I was the one to design and implement it. The customer specifications of the functionality were continuously being altered. I also wrote the specifications because they were always given verbally over the phone and was always ambiguous and lacked information necessary to implement them. This required a lot of guessing and putting oneself in the customer’s position.

The Windows application was also added to my responsibilities.

The software release planning, releases, version control and issue/bug tracking are other functions that I introduced, developed and was responsible for.

4.        Experiences

4.1.           Prototype start-up

When I first started working at the company I was put in charge of testing the first prototype of the computer board. I wrote test code for all the peripherals, modified the CPLD code for the banked memory architecture, patched the board etc. The usage of oscilloscope and logic analyzer was quite extensive as almost all peripherals were external; ADC, CAN-controller, RAM, Program Flash, other Flash, RTC and the peripheral MCU.

4.2.           The drivers

Some of the drivers I designed and implemented:

  • ADC’s
  • RTC
  • CAN
  • SPI-communication with a checksum to the peripheral microcontroller.
  • Phase guard for the 3 phase mains.

 

4.3.           The application

As mentioned in the description the application had to be modular. The application is built up by several tasks and every task is built up by several function modules that can be either removed or exchanged depending on the physical real-world configuration of the customer’s control system.

5.        Value

I was really put in the heat straight away. This was my first job after university and my education was focused on ASIC design and not on embedded systems. Working on this project gave me a lot of knowledge about every aspect of embedded systems design.

I also gained knowledge of EMI related issues through diagnosing problems out in the field.

Some technical experiences gained:

  • Embedded systems.
  • CAN.
  • EMI and EMC.
  • HC08 and HC12 microcontrollers.

 

Some soft experiences gained:

  • Customer relations.

Updated: March, 2011.