Engineer, software developer, inventor, entrepreneur
Email: me at sebastiannilsson dot com or go to the contact page for more means of getting in touch.
- Programming (C, Matlab, Simulink and, above all, Python and PHP).
- Databases (mostly MySQL).
- Circuit board (PCB) design and electronics in general
- Mechanical CAD
- Prototype design
- Wireless communication
- Sensors, signal processing, filtering and data collection
- Automated testing, automated building of software and continues integration (CI) mainly with Jenkins
- M.sc.. in System, control and mechatronics, Chalmers University of technology, Gothenburg. See completion letter including grades.
- Bachelor in Automation and Mechatronics, Chalmers University of technology, Gothenburg
- ABB Industrial upper secondary school, Västerås, 3300 points with 19,3 in avarage.
A control arrangement, WO2019011451A1
A new way of automatically calibrating errors during joystick maneuvers with boats.
Watercraft control method and watercraft control system, US10202182B2
Describes an autonomous control method for boats.
A method for operating a marine vessel comprising a plurality of propulsion units, WO2018086714A1
Describes a method for applying propulsion in multiple driveline installations for boats.
Software engineer at Volvo Penta, Gold Coast, Australia
Projects at Volvo Penta Australia
January 2018 - currently: Market support with a specialty in troubleshooting and correcting the Volvo Penta Electronics Vessel Control system. Support is done either during the build at the OEM (Riviera, Maritimo or Palm Beach), or on the field. I am usually only involved when an issue can't be resolved by the Volvo Penta Center/Dealer, so the job includes a fair amount of travel in the Oceania region.
January 2018 - currently: Mobile app software development for Volvo Penta Easy Connect. All code written in Xamarin C# for crossplatform support (iOS and Android). The app shows vessel and engine data on Volvo Penta powered boats. More info about the app on the official webpage and youtube.
Mid 2018: I implemented Over-the-air updates via Bluetooth LE (4.0) on Volvo Penta EasyConnect. This allows the user to update the Volvo Penta hardware from their mobile phone app.
Software Design Engineer at CPAC Systems AB, Gothenburg
June 2014 - January 2018
Mainly working with marine control electronics (Volvo Penta Electronic Vessel Control and Yamaha Helm Master).
Projects at CPAC Systems
Late 2016 - January 2018: Developing a new product. I am working both with high level app development for iOS and Android, as well as low-level embedded programming. The app development is done using Xamarin C#, and the embedded programming mostly consists of C writing and RTOS configurations.
Late 2016 - January 2018: Automated build environment. I automated a large portion of the build environment for CPACs marine segment. Software releases used to take a day to build, package, refactor, document and archive. With the help of python scripts and Jenkins Continues integration (CI), the same job can now be done in about 30 minutes. Releases are then sent to be automatically tested in HIL rigs.
Late 2016: Prototyping new application features for Volvo Penta. Consisted of system engineering, software programming, simulating boat tests and performing real boat tests in the end of the project.
Mid 2016: During boat tests I spent too much time analyzing CAN bus log files so I made a tool in Python to automatically generate test reports with log files as input. For example I could feed the script data from a day of testing and in a matter of minutes it would produce plots containing the interesting parts of the data, (like position of the boat on a map based on GPS data, or RPM changes over time). Of course being able to plot data is nothing new, but what the tool does is automate report writing and evaluation of boat tests.
Mid 2015 - Late 2016: System design, control theory and writing embedded C code for outboard boats involving autonomous functions. I was part of the team developing control algorithms for continuously adjusting drive angles and propulsion forces to move the boat in a desired way.
Mid 2015 - Late 2016: Boat simulator for testing marine control software. Since most of the software needs to be tested in boats I made a simple boat simulator for testing software early in the development. I ended up using the Unity3D engine for generating computer graphics, C# code for vehicle dynamic simulations and python scripts for intefacing between the hardware (CAN network) and the simulation. The boat simulator is not overly complex but it helped me test control theory ideas and code before doing a proper boat test.
Mid 2016: Patentability work. I am inventor in a patent pending innovation for Volvo's portfolio, and I am also co-inventor on two pending patents with Yamaha. All three patents are filed but not yet public documents.
Mid 2014: Writing embedded C code for gateways and interfaces. One example is a dongle that makes third party autopilots communicate with the steering control unit in a boat. Another example is a dongle to interface between a NMEA2000 bus (external bus used mostly for connecting sensors) and the internal proprietary bus in the vessel control system.
June 2014 - Late 2014: Writing software and configuring hardware for automatic testing of Electronic Control Units. Basically connecting the essential control units for running a boat to the same system, and writing automatic test cases that perform hardware-in-the-loop (HIL) tests.
Late 2014: I made a tool that generates CAN network signal databases for the complete marine vessel control system. A excel-sheet is used as input where signal and CAN frame declarations are declared and linked. As soon as this excel file is pushed to the central version control (SVN), a Python-script will generate multiple CAN database files in various formats based on the excel file. Proved to be a quite valueable tool.
Early 2014: I made a desktop application tool that parses thousands of maintenance reports (generated when Volvo diagnostic tool is connected). Parsed reports are put in a searchable database, and with the tool we could make data driven decisions on which faults to improve upon.
January 2014 - June 2014 (not including lead time at the university): My project partner and I made a proof of concept system for a remote control to be able to drive a truck, from outside of the truck. The project included investigating wireless technology, safety aspects, designing and building PCBs, designing and building mechanics for the remote control device, systemizing the whole system and writing embedded code. Simulink was used to glue it all together. More information.
Treplex (Self employed)
2007 - currently employed (but only on small and chosen projects)
Private enterprise with Treplex. I started with design, but with time moved myself closer to assignments in programming and database development. Since I got the employment at Cpac Systems I am only taking on smaller projects, but while studying at university this private enterprise was my primary source of income.
April 2011 - August 2012
It started with an idea for better web analytics tool and together with two other people we started and ran Miseto. Experiences that I got as an entrepreneur includes how to run a startup, priority conflicts and the importance of early positive cash flow. As an employee, I was responsible for database- and web development and learned a lot about how to build database-driven services.
Other engineering projects
My most valuable project experience during Chalmers was as a Project Engineer at Chalmers Formula Student where I was responsible primarly for the design and manufacture of the electrical system of the new car that Chalmers is competing with in Formula Student. The following year, I joined a management course to be one of the leaders that helped the new team to achieve the same success as we did.
Self-balancing robots and other projects
Whenever I have the time I usually try to do small engineering projects, either on my own or in a small team. Most of those projects are published in my blog.
Swedish: Mother tongue.
English: Fluent in speaking and writing. IELTS Band score 8/9.
- Low level programming (C, some C++, Arduino, assembly)
- Object-Oriented (Java, C#, .netcore, .net)
- Script (Python, PHP, Matlab)
- Model-based design in Simulink
- I am comfortable in OSX, Windows, Linux (Ubuntu)
- Matlab, Simulink
- Catia, SolidWorks
- Eagle PCB, Altium Designer, Kicad
- I can work with the important Adobe products for image- and photo editing.
- Git, SVN, and version control in general.