STEMlab can be programmed on different levels, depending on the application complexity and the user's programming skills. Programming possibilities include controlling STEMlab by using MATLAB, LabVIEW, Mathematica, or SciLab and Python (this is most simple one), writing one’s own program that runs directly on board using C application programming interfaces or API, which provide the user control of all of STEMlab's features, developing web based applications following guidelines available in Red Pitaya's online documentation, or programming a field programmable gate array or FPGA by modifying one of the already available STEMlab FPGA images or by developing a custom image. Why do users decide to integrate STEMlab into their product? It has reliable hardware (more than 30,000 STEMlabs running worldwide), open source software with APIs, documentation, and examples available to speed up development time. It also has the best price-to-performance ratio, and the Red Pitaya team also offers services for the development of custom apps.