FAQs
- What exactly is Pictorus?
- Who is the target audience?
- Why is it called Pictorus?
- Will Pictorus continue to be free?
- Will Pictorus be Open Source?
- What do I need to get started?
- Can I deploy my app to an embedded device?
- Why is the code generator in Rust?
- How many devices can I register?
- What devices are supported?
- What protocols are supported?
What exactly is Pictorus?
Pictorus is a cloud-native software development platform for control systems, which generates and deploys Rust-language code to connected devices directly from your browser.
You can connect Single Board Computers (like a Raspberry Pi or Jetson Nano) to our cloud, and then use our in-browser visual flow and hand code editors to program the logic you’d like your hardware to run. We then automatically compile your application for you and deploy it to your hardware.
You can also connect to STM32 embedded processors as well, and use Pictorus as a firmware flashing tool for those boards. More on that here.
Pictorus is meant for engineers trying to develop new hardware products. We strive to seamlessly integrate both visual programming and hand coding so engineers can develop however they please. We also strive to create a compelling rapid iteration experience, where compilation and deployment to your devices takes seconds. It should be fun and easy to do software for hardware, finally.
Who is the target audience?
Our ideal users are engineers who are comfortable with electronics, and are looking for a powerful way to develop and deploy software to their devices. These are typically controls, electrical, aerospace, mechanical, or software engineers. Often they come with Matlab/Simulink backgrounds. But anyone who is comfortable with soldering, following wiring diagrams and a spec sheet, understands basic programming concepts, and can do a few simple linux terminal commands should be able to jump right in!
Why is it called Pictorus?
“Pictorus” is a constellation in the southern sky - Latin for “the painter” and fitting for a product that lets you draw algorithms like flow charts, while code literally writes itself in the background.
Will Pictorus continue to be free?
We absolutely will continue to provide a compelling free tier of our product as part of our general release. We believe strongly that one of the big problems with our sector is the inaccessibility of this kind of tooling for small teams and individuals. Paying customers will be those who have enterprise-level needs, or require more data/connectivity/device management than is feasible to support for free. But we will always provide our core product for free.
Will Pictorus be Open Source?
Eventually, mostly. We don’t want the core components to be mysterious black boxes. In fact, a big part of our long term vision is to allow modifying block functionality, tailored to a user's specific needs. By our general release (later this year), the goal is to have all block source code visible to the public and open for pull requests. The secret sauce we will keep proprietary (for now) is our code generator, which analyzes the diagram you draw in the browser and converts it into an application composed of those open source blocks. We believe strongly in the open source ethos, so as the product evolves, we’ll continue to explore ways in which a sustainable business (which covers the cost of free tier users) can thrive if we sought to open source more of the platform.
What do I need to get started?
Technically you don’t need anything except a web browser. You can build algorithms and simulations in the cloud to experiment with signal processing, controls theory, or really any linear algebra or programming logic.
But Pictorus really shines when you sync a remote device. There’s a good chance any linux-based computer (Raspberry Pi, Jetson, Odroid, Beaglebone) with a relatively recent OS will be able to run Pictorus apps. This includes a Linux laptop. But for now we’re only officially supporting the RaspberryPi series and the Jetson series computers, since device protocols are often hardware specific, and will require more time to fully support.
And of course, you’ll probably want some sensors and actuators to connect to your device and control from your browser!
Can I deploy my app to an embedded device?
We currently support a selection of STM32 microcontrollers, with plans to add support for more in the near future. If you're interested in supporting a particular board, please reach out to us.
Why is the code generator in Rust?
For a long time, most code generators for hardware applications have been C or C++. But one of our core beliefs at Pictorus is in Rust, a newer systems programming language with a lot of advantages over C/C++. Rust is gaining a lot of momentum within the Linux, embedded, and mission-critical software communities, and is poised to replace C/C++ as the language of choice for hardware control in the next decade. Check out our blog for more of our thoughts on the transition away from Matlab and C.
The TLDR; is our code generator can guarantee software safety in a way that is nearly impossible with traditional C/C++ code generators. Additionally, advances in incremental compilation in Rust allow us to rapidly rebuild and redeploy your apps within seconds. Lastly, the open source crate ecosystem for Rust is vast (and growing), making it easy to extend our block library in the future to include a lot of very powerful functionality for our users.
How many devices can I register?
For our free tier, we limit the number of devices you can concurrently pair with to 5. If you have a specific use case right now that could use an increased device limit, please reach out and we’d be happy to work with you. You can find our pricing options here https://www.pictor.us/pricing.
What protocols are supported?
For hardware protocols, we currently support GPIO, UART, I2C, PWM and CAN protocols. We know SPI is missing, as well as a few other common protocols. SPI will be supported in the next year, and we'll continue to add more protocols along the way.
For software protocols, we support UDP. We plan to support TCP and gRPC soon.
What devices are supported?
In addition to STM32 embedded processors, we currently also support most modern RaspberryPi SBCs (Pi3, Pi4, PiZero), and are in the process of supporting Jetson series SBCs as well. Other common platforms, such as Odroids, Beaglebones, etc, haven't been tested and certain hardware protocols in particular may not work. Software protocols should all work. You can even deploy to your Linux laptop, if you're just running a pure software app or simulation.