If you are new to embedded programming or if you are new to the complex world of setting up secure IoT devices requiring X.509 certificate and PKI management, then the SharkSSL IDE for ESP32 is a great starting point. With this IDE, even a "Noob" can be up and running with the first RTOS powered IoT device in 30 minutes.
In addition to many C code examples, the SharkSSL IDE also includes a project that lets developers with no C code experience program the ESP32 using a high level programming language called Lua.
In a nutshell, the ESP32 provides a free development environment. Ready to run low cost ESP32s can be purchased online.
Typically, embedded programming is notoriously known to be difficult to get started with since you need a deep understanding of hardware and device driver design, and require expensive equipment such as a JTAG probe and an IDE compatible with the JTAG probe. If this sounds all Greek to you, don't worry. You do not need to learn any of this when using the ESP32. With the ESP32, the compiled code (the firmware) is uploaded from your computer to the ESP32 by using a USB cable. The ESP32 uses the FreeRTOS Real Time Operating system and all examples included in the SharkSSL IDE use FreeRTOS.
The following video shows how the ESP32 can be used for controlling both a servo and LEDs. The SharkSSL ESP32 IDE includes several projects, and the following video shows how to use the included Barracuda App Server, which enables programming the ESP32 using Lua.
Although the ESP32 command line development environment is free, it may be complex for a beginner to set up. Also, everything needs to be done via the command line, which takes time to learn. The SharkSSL ESP32 IDE provides a GUI front end to the command line environment and packages everything into one unit that is super easy to install.
Some examples, such as the AWS IoT Core MQTT example, require PKI configuration. The SharkSSL IDE simplifies this configuration by enabling a drag and drop configuration option, which automatically modifies the C code with your AWS certificates. After the drag and drop configuration, a simple button click compiles and uploads the AWS IoT Core MQTT firmware to the ESP32, which then immediately connects to your AWS IoT Core instance.
SharkSSL is a TLS stack for embedded systems that includes many IoT protocols such as MQTT and WebSockets. The TLS stack also includes many examples that show how to set up a complete Public Key Infrastructure (PKI). Many developers new to IoT initially struggle with security and PKI. The ready to run examples can be used "as is"; however, if you are new to PKI, check out the article Certificate Management for Embedded Systems.
Many hard core embedded developers perform all of the software development directly on the device, but this setup typically requires an expensive development environment and a JTAG probe. Since all device drivers for the ESP32 come ready to use, a developer need only focus on the higher levels. The higher levels can easily be developed on your host computer such as on Windows using Visual Studio or on Linux using gcc. All IoT examples that come with SharkSSL can easily be compiled for your host operating system using your favorite host IDE. This development pattern not only makes your development easier, but also much faster. When you are done with testing and debugging the high level code, simply integrate the code into one of the examples in the SharkSSL IDE, compile the code, and upload it to the ESP32.
You can download the SharkSSL Source Code from GitHub and compile the same examples for your host computer.
You can use any ESP32, but we recommend using the ESP32 WROVER version which has more memory and lets you run the Barracuda App Server for ESP32 that in turn lets you use the Lua programming language -- not just C code. The C Code examples do not need the WROVER and can run on any ESP32.
Whether you are a maker, a startup, or a large business, we've got you covered. Please send us an email if you have any questions or if you are unsure on what product to select. We are here to help you find the best solution, and we'd really like to help you with your hardware/software project challenges.
Expedite your IoT and edge computing development with the "Barracuda App Server Network Library", a compact client/server multi-protocol stack and toolkit with an efficient integrated scripting engine. Includes Industrial Protocols, MQTT client, SMQ broker, WebSocket client & server, REST, AJAX, XML, and more. The Barracuda App Server is a programmable, secure, and intelligent IoT toolkit that fits a wide range of hardware options.
SharkSSL is the smallest, fastest, and best performing embedded TLS stack with optimized ciphers made by Real Time Logic. SharkSSL includes many secure IoT protocols.
SMQ lets developers quickly and inexpensively deliver world-class management functionality for their products. SMQ is an enterprise ready IoT protocol that enables easier control and management of products on a massive scale.
SharkMQTT is a super small secure MQTT client with integrated TLS stack. SharkMQTT easily fits in tiny microcontrollers.
An easy to use OPC UA stack that enables bridging of OPC-UA enabled industrial products with cloud services, IT, and HTML5 user interfaces.
Use our user programmable Edge-Controller as a tool to accelerate development of the next generation industrial edge products and to facilitate rapid IoT and IIoT development.
Learn how to use the Barracuda App Server as your On-Premises IoT Foundation.
The compact Web Server C library is included in the Barracuda App Server protocol suite but can also be used standalone.
The tiny Minnow Server enables modern web server user interfaces to be used as the graphical front end for tiny microcontrollers. Make sure to check out the reference design and the Minnow Server design guide.
Why use FTP when you can use your device as a secure network drive.
PikeHTTP is a compact and secure HTTP client C library that greatly simplifies the design of HTTP/REST style apps in C or C++.
The embedded WebSocket C library lets developers design tiny and secure IoT applications based on the WebSocket protocol.
Send alarms and other notifications from any microcontroller powered product.
The RayCrypto engine is an extremely small and fast embedded crypto library designed specifically for embedded resource-constrained devices.
Real Time Logic's SharkTrust™ service is an automatic Public Key Infrastructure (PKI) solution for products containing an Embedded Web Server.
The Modbus client enables bridging of Modbus enabled industrial products with modern IoT devices and HTML5 powered HMIs.