Tools

On this page I list my competence and some primary tools I use.

Programming languages

I leave out outdated languages as Algol, Turbo Pascal and various others which I used many years ago.

  • Assembly
  • C/C++
  • Java(sdk7/sdk8)
  • Python

Programming technics & methods

  • Event handling
  • Multi-threading
  • Callback
  • Priority handling
  • Real-time
  • Low and Ultra low power
  • Connectivity (SPI, I2C, RS-XXX, Modbus, CAN, Bluetooth(LE), Wi-Fi)
  • Multi-processor

Tooling for Software

I have practical experience on several processors and System-on-Chip families of Texas Instruments. This also implies I’m well known with their development environment called Code Composer Studio and other (wireless)tools. Specifically the very extended debugging capabilities are just great. Most of the time I implement FreeRTOS or TI-RTOS combined with RTSC. You can find more information on this link:

Texas Instruments Development and walk around.

 

 

 

 

 

 

It is also this resource I use to select items which can be used for either “Proof-of-Concept”, “Prototyping” or as a starting point for the final product. Especially the “Resource Explorer” is useful to find a suitable Launchpad, software and additional documentation. This way I have several  platforms available which can immediately be used once the required application task has been added. Also its very easy to expand it with any hardware required for the project at hand.

If an interface is needed for testing a devices performance its connected to a PC or Laptop and I can use “GUI Composer” for a rapid realization of this. Then I can test for instance sensor readouts, servo- or motor controls as well as monitor and control any other internally embedded values on the fly.

 

Click here for more pictures

 

 

I used Netbeans to write a  Bluetooth Low Energy stack for the use with some dongles. The reason is the capabilities build within Netbeans to create native packages and encapsulate ‘stuff’ which might not be available on the users system. Since its all packaged together this results in a very simple installation not requiring anything else on Windows 7/10, Linux or Mac OSX.

I also used it for other Java embedded and GUI development. Though I’m not an expert yet I’ve already written a few multi-treaded GUI’s using SDK7 and SDK8. Also additional tools and plugins like iText and jFreeChart have been used.

 

 

Of course is GCC a must for all situation where other tools cannot, at least easily do, what you want to accomplish. I use it when different operating systems are involved and/or when cross-compiling is necessary between a PC or Laptop and a customized device and no other tools are available.

 

 

Tooling for Hardware

As stated before I mostly use components and Launchpad’s from Texas Instruments. Because of my own product developments I’ve become familiar with their “SimpleLink MCU Platform” family including the Wi-Fi and Bluetooth family of SoC(System-on-Chip). They even have a certified module combining both Wi-Fi and Bluetooth.

Since often the Launchpad needs to be customer extended I create the additional hardware myself. For this KiCaD is used. Its open source and runs on Windows, Linux and Mac. You should definitely have a look at  Kicad. I use it to create schematics, adding components and 3D shapes to the libraries, PCB layout, routing and design. Also you can export your data to many different formats. I often use the STEP format which can be imported into FreeCAD. This makes sure that everything will fit together. FreeCAD has a function to check if solids are not compromising each other. Also it makes it a lot easier to create an encompassing enclosure.

If you use this to partially ‘touch’ a component you could for instance use this feature to design an additional cooling block for some chip! You can do this since with FEM you can also calculate thermodynamic behavior.

 

KiCAD example KiCAD 3D representation

 

 

Tooling for Mechanics

FreeCAD is open source 3D Solid Model software which can be used to model multiple parts which can then form an assembly. From each part drawings could be made in several different ways suitable for production but there is a strong and good tendency to directly use the CAD->CAM files. Drawings can still be useful for documentation however. Also different types of meshes can be generated and together with constrains used for FEM(Finite Element Methods) for calculations of strain, stress and displacements. STEP and STL files also be exported and used for 3D Printing or CNC fabrication. The picture of the MDM on the home page has been made using FreeCAD.

In FreeCAD you can manipulate every part, object and attribute as well as write your own plugins and macro’s  using python. Here are some samples I used for designing the MDM and determination of the required material properties. Here are some parts and FEM calculations for the MDM.

Pull Carrier Strain block
Displacement under force Von Mises stress

 

 

Tooling for Production

 

Slic3r is also an open source slicer for 3D printers. I use it for preparing and checking the setting for prototyping. In an early stage of a project this is an economic way for being able to actually hold the product in your hands. This is the best if not the only way to get a first impression of the product. Many methods and materials exist and many companies offer their printing services via the internet. Having a part printed by these companies is often the most economic way of getting your prototype. This gives you also the freedom to chose the method, material  and color without having to buy several different printers.

Good materials for early prototyping printing are SLA and ABS. Once you get to the final prototype you will probably switch to other methods like SLS or even Carbon M1 for very fast production and extremely well quality.

 

FreeCAD design Slic3r slicing Photo of SLA printed part