OSSM-hardware

OSSM has been developed in PlatformIO. For people used to the Arduino IDE, moving to PlatformIO can seem daunting. Trust us that it is simpler than it looks to operate and works far better than the very basic Arduino IDE as the project grows and changes.

This is particularly important when it comes to managing all the libraries and dependencies. This gets very complex, very quickly. Earlier builds of OSSM it was sort of possible to mash it into the Arduino IDE and get a compile happening. It has now past the point when it is easier to teach you to use PlatformIO than it is to repackage OSSM for the Arduino at each release.

Why? More time for coding features and easier collaboration! OSSM is moving fast. Once you get used to VSCode there are some other great features such automatic downloads from Github and linting (autocomplete for code).

  1. Start by installing VSCode and the PlatformIO extension. There are plenty of guides for this on the web.

  2. Restart VSCode wait until PlatformIO has started and look on the sidebar for this button.

image

  1. Click “Open”

image

  1. This will pop up

image

  1. Click “Open Project” and search for the OSSM directory that has platformIO.ini in it

image

image

  1. In the src directiory you should find main.cpp, click on that

image

  1. Near the bottom of the window look for a tick (compile) and an arrow (upload)

image image

  1. You can then compile or skip that step and upload directly to your board.

What if that doesn’t work? Check the debug screen but chances are you have not selected the right Com port for the OSSM board or the wrong board for the project.

  1. COM or /DEV/TTY will vary from machine to machine. It is set here in platformIO

image

  1. The reference board for OSSM has an embedded “Espressif ESP32 Dev Module”.

  2. If the project fails to build and the upload fails DON’T PANIC! Chances are there has been some kind of external library update. Try changing the following lines in platformIO.ini in the root of the project

“platform = espressif32” to “platform = espressif32@3.5.0”