Software

Many years ago more and more projects needed some software design until they rarely exist without each other. I ‘drifted’ into software very early on and have developed various skills as needed to support the electronics projects. Over the last 10-15 years software and firmware has become the predominant part of my work, both for other companies and my own.

Embedded firmare
  • Develop firmware for embedded micro controllers.
  • C/C++, Arduino, some assembler where required and more recently micro-python.
  • Microchip MPLAB and XC series C compilers.
  • Atmel AVR, using the Arduino or similar environment (very rapid development).
  • SPI/I2C/UART/RTC/Memory/etc.
  • Highly optimised code.
  • Low power.
  • Embedded system PCB design, see the electronics page here.
Applications
  • Desktop and Industrial systems applications.
  • Simple test applications to large applications.
  • Stand alone applications.
  • Integrated applications, web servers, background task, real time web sockets.
  • Windows/MacOS/Linux.
  • Languages, C / C++ / C# / Python / Micro-python / .net / assembler (as needed) / .netcore / Xojo oh, and VisualBasic.
  • Databases, MySQL, SQLite, Postgres and others.
  • Interfaces, Sockets, Serial etc.

(waiting for permission to use real images!)

Apps
  • Basic iOS/Android applications.
  • Generally part of a larger project.
Websites
  • Simple websites generally as part of larger projects.
  • HTML/CSS/JS etc
  • Websockets.

Examples

Low power counter

  • Atmel ATMega328p based.
  • Low power consumption, expect over 5 years batter life.
  • Sigfox connectivity.
  • Written in C/C++.
  • Optimised for low power.
  • Uses Sigfox backend along with our own PHP server for data collection.

Code reader monitoring system

  • Customer has multi-camera based system to read package codes and needed an updated monitoring system.
  • Initially windows based but now built on industrial Linux system
  • Connects to vision hardware via talent and ftp. Results and images are sent to the monitoring system.
  • Monitoring system monitors result accuracy, alarms and issues real time alerts.
  • Time based and manual flexible PDF and CSV reports generator.
  • Plugin architecture to allow for end-user plugin modules to communicate with the end user’s systems.
  • Micro service architecture with modules written in C/C++, C# (.NET Core). and python.
  • Web based GUI using signalR for realtime updates.¬†

Summary

  • Embedded systems:
    • Microchip / Atmel / Pycom / Espressif (ESP32 – 8366) / Arduino / 68k (real old school)/others
    • C/C++/Assembler/Micro Python
    • Low power
  • Applications:
    • Desktop/Industrial¬†
    • Linux/Windows/MacOS
    • C/C++/C#/.net/.NET Core/Python/VB
  • Web:
    • HTML/CSS/JS
    • Websockets
    • ASP.NET Core
  • Interfaces:
    • SPI/I2C/UART/RTC/Memory/Sockets/TCP-IP/UDP/etc.
  • Databases:
    • MySQL/SQLite/Postgres/MS-SQL