Programmable IoT OverviewTibbo Project System (TPS)ControllersBoardsModulesOTA ManagementCode & Apps

Creating the Internet of Things
Since Before the Internet of Things

Internet of Things

Right from Tibbo's inception in 2001, our mission statement has been...

...To provide the hardware, software, and tools that
streamline the creation of IoT devices*.

Tibbo is the whole IoT widget company. We provide:

  • A line of easy-to-use programmable controllers, boards, and modules
  • Lightweight, ultra-reliable, and hacker-proof Tibbo Operating System (TiOS)
  • High-level Tibbo BASIC and Tibbo C programming languages
  • Tibbo IDE (TIDE) development software featuring network debugging
  • CODY — our low-code-to-no-code code generator — and other online tools

In combination, our offerings help eliminate much of the undifferentiated heavy lifting associated with developing IoT devices and systems.

In contrast to hobbyist-oriented platforms like Arduino, Tibbo hardware and OS deliver professional-grade reliability and are ideally suited for:

  • The Industrial Internet of Things (IIoT) products
  • Distributed control and data collection systems
  • Industrial automation devices


* Of course, there was no "IoT" back then. Everyone used the term "embedded devices" instead. Tibbo entered the IoT business long before the term "IoT" was coined.

Page TopThe HardwareTibbo Basic / CCODYTibbo IDETibbo OSObjectsApps

Four Classes of Programmable Devices to Choose From

  • Tibbo Project System (TPS) is a family of configurable controllers suitable for various automation applications. TPS is based on standardized I/O blocks called Tibbits. Take a Tibbo Project PCB (TPP), plug in the Tibbits of your choosing, encase the assembly in a Tibbo Project Box (TPB), and you've built yourself a tailored automation controller!

  • DS/WS110X are programmable serial controllers targeting the Serial-over-IP (SoI), sensor-to-cloud, and IoT/IIoT applications requiring RS232/422/485 communications.

  • The EM2001 is a self-contained IIoT board. The board is perfect for low-volume production runs.

  • WM2000, EM2000, EM1206, and EM510 are programmable IIoT modules. Of those, the WM2000 is our latest and greatest Wi-Fi/BLE device supporting a slew of new features, such as the ability to store two Tibbo BASIC/C applications, wireless debugging, and TLS security. Other modules in this category are Ethernet-first/Wi-Fi-optional devices.

"Hello, World" in Tibbo BASIC, Tibbo C,
or a Combination of the Two

Code in battle-tested BASIC and C languages reincarnated as Tibbo BASIC and Tibbo C. Familiar to millions and easy to learn, BASIC and C are perfect for developing sophisticated IIoT and automation applications.

In our world, Tibbo BASIC and C are equals. BASIC is not simpler. C isn't faster. Choosing one over another is largely a matter of personal preference and habit. You can even mix BASIC and C code inside a single project!

Tibbo BASIC and C are thoroughly documented. We spent an enormous amount of time making sure our Programming Manual is brief yet comprehensible.

Embedded Systems

Purity of languages

Many programming languages mix the language itself with input/output facilities of specific hardware.

For example, a printf statement in C prints a line of text into the "default output," which is often a screen.

Tibbo BASIC and Tibbo C are pure in the sense that they are entirely free of any I/O.

Objects and platforms

Separated from the core of Tibbo BASIC and C, all input and output capabilities of Tibbo hardware are accessible through objects.

For example, the print method of the lcd object (lcd.print ) outputs text onto a display screen.

The lcd object is only available on platforms representing Tibbo devices that have a screen.

Event-driven, asynchronous programming

Tibbo BASIC/C applications are event-driven and asynchronous.

Whenever anything of note happens, the system generates an event, which your Tibbo BASIC/C program can respond to in the corresponding event handler.

Most I/O operations are asynchronous. For example, if you use tcp.send, your code won't have to wait until the sending is complete. The sock (sockets) object will handle the sending in the background while your application is free to keep on crunching code.

Familiar yet enhanced

We haven't just copied what was available but reimagined and improved upon the standard features of BASIC and C.

For example, the Tibbo C language, while having its roots in the ANSI C standard, supports BASIC-style strings and functions like left(), instr(), chr(), and asc(). This is highly unusual but is also extremely useful. Try this and see for yourself!

To have this level of control over the features of Tibbo BASIC and C, we needed to create our own compilers and tools, and so we did!

From Low-Code to No-Code with CODY

Low-code software development is the future because no one has the time to write and debug complex applications line-by-line.

Enter CODY, our online code generator that produces working Tibbo BASIC applications from the information you enter on a few simple configuration screens. For many usage scenarios, such as sensor-to-cloud applications, CODY will output fully functional, immediately deployable code.

CODY's magic bullet is AppBlocks. With AppBlocks, all supported features and software modules are represented by functional blocks, which you drag onto and interconnect inside a project canvas. This draw-an-application approach turns CODY into a truly no-code development tool for many types of applications.

Here are two short videos that show what CODY is: Part 1, Part 2.

Meet Tibbo IDE 5

Other editors may keep gaining weight and visual clutter with every release, but our Tibbo IDE (TIDE) software for Windows stays light, agile, and pleasing to the eye — all while packing a ton of features. Good things don't need a gig of drive space, folks. Enjoy the right kind of lean!

DownloadDownload TIDE 5

Also in development: WebTIDE
for Chromium-based browsers (including Chrome, Edge, and Opera)

Advanced Project Browser

Slice, dice, and analyze your project structure and memory utilization.

Streamlined Toolbar

No excess. Only important stuff. Logically presented from left to right.

Smart Editor

Remembers where you have been. Helps with where you are going.

Universal Search Toolbar

Instant project-wide search. Neatly classified results. Try this — it is phenomenal!

Advanced Output Pane

Colorized and organized output of search and compile results.

F-key bar

Function key reminders for ease of use and that nice retro feel.

Sophisticated Watch

Differentiates between BASIC and C. Calculates expressions.

And more...

Other notable TIDE improvements.

Don't study TIDE. Explore it.

Tibbo IDE was designed for "learning by exploring." Its features are in plain sight — no need to memorize obscure CTRL+SHIFT+ALT sequences. Just look around and try stuff.

Here is a cool example. Many TIDE panes have related configuration options. And how do you know there are options to play with? By noticing a gear icon in the top right window corner!

F5 to compile, upload, and run

It literally takes one keystroke — F5 — to compile your Tibbo BASIC/C project, upload it onto a target device, and run it with full debugging capabilities.

Creating easy-to-use, no-hassle products is in our DNA.

ICE-less cross-debugging

Set breakpoints, watch variables, inspect the stack, step through your code... Tibbo IDE provides all the tools for convenient debugging...

...And yet, our debugger does not rely on any special hardware such as an ICE machine or a JTAG board.

Simply connect your programmable Tibbo device to your LAN, select this device in TIDE as your debug target, and you are all set! Our new WM2000 Wi-Fi/BLE module even supports debugging over Wi-Fi!

Tibbo Integrated Development Environment

Tibbo OS: Simple. Reliable. Simply reliable.

What's the point in taking a superfast CPU, combining it with gigabytes of memory, and then burdening this powerful hardware with layers upon layers of OS complexity? Often, the weight of the OS negates the CPU's agility, leading to sluggish performance and poor reliability. Ironically, target applications running atop these bloated systems are often very simple!

At Tibbo, we have created our own embedded operating system that is lightweight and streamlined. Tibbo OS (TiOS) is slim enough to run on a mid-range microcontroller. With TiOS, the complexity and board size are minimized, costs go down, reliability goes up, and you still get an excellent automation platform that is extremely comfortable to program for.

Two processes

TiOS is a dual-process system. Yes, not multi-process, but dual-process. The first process is in charge of real-time stuff like TCP communications, while the second process — a virtual machine — executes your compiled Tibbo BASIC/C application.

Virtual machine (VM)

This is the sandbox in which your application runs. Tibbo IDE (TIDE) software compiles your Tibbo BASIC/C program into a bytecode (a.k.a. p-code), which is then executed by the VM. Your applications can play freely but cannot crash or stall the OS.

Complete Debugging Control at All Times

In the debug mode, TiOS retains full debugging control over your application, no matter what the app is trying to do. No special debugging hardware is needed — TIDE controls TiOS and your application with commands sent over your LAN. Our latest wireless device — the WM2000 — even supports debugging over Wi-Fi!

Extreme Reliability by Design

TiOS devices do not need reboots, nor does their performance degrade over time. Employing a static memory model, they do not run out of resources or overflow. While any Linux device eventually requires a reboot, TiOS keeps running. And running. And running.

Equipped with a fault-tolerant, journaling file system for storing data, TiOS devices can also be rebooted at any time without damage to the file system or data. Good luck getting this level of reliability out of Linux.

Hacker-resistant through simplicity

Being a single-executable/single-app system, TiOS is much more secure than other systems. There is simply no place to hide malicious code, no way to install hacked drivers, and no possibility to infect the system with a virus. TiOS contains no secret backdoors, hidden terminal windows, exploitable ports, or dormant code. In the battle with hackers, the simplicity of design will always win!

Objects

Available objects and their features are so sophisticated that many of your applications will end up containing nothing but the glue code binding objects together.

Sock (Sockets)

Documentation

Socket communications — UDP, TCP, or HTTP sessions. Select platforms support TLS1.2.

Wln (Wi-Fi)

Documentation

Handles Wi-Fi communications. This object has been significantly expanded on the new WM2000 Wi-Fi/BLE module.

Ser (Serial Ports)

Documentation

Controls up to four serial ports. Each port can work in UART, Wiegand, or clock/data modes.

In charge of Bluetooth Low Energy communications.

Net (Ethernet Port)

Documentation

Controls the Ethernet port. Defines the device's IP address, gateway, netmask, etc.

Accesses the Internet over a serial modem (such as 4G/LTE).

Ssi (SPI and I2C)

Documentation

Supports up to four synchronous serial channels offering SPI and I2C modes.

Io (Input/Output)

Documentation

Handles general-purpose I/O lines, ports, and interrupts of the device.

Provides access to the onboard analog-to-digital converter.

Rtc (Real-time Clock)

Documentation

Keeps track of the date and time.

Fd (Flash Disk)

Documentation

Manages our hardened fault-tolerant file system. Sudden power losses are no threat to our flash disk!

Stor (EEPROM)

Documentation

Provides access to the device's EEPROM. This memory type is ideal for storing the device's operational parameters (settings).

Romfile (Fixed Resources)

Documentation

Facilitates access to resource files (fixed data). Use these files to store constants, lists, and other permanent data.

Sys (System)

Documentation

In charge of core system functions, such as the system timer, reboots, PLL control, etc.

Lcd (Display)

Documentation

Controls graphic display panels.

Kp (Keypad)

Documentation

Works with matrix and binary output keypads.

Pat (LED Patterns)

Documentation

"Plays" patterns on up to five independent pairs of green and red LEDs.

Beep (Buzzer Control)

Documentation

Generates buzzer (beeper) patterns.

Button (System Button)

Documentation

Monitors the system (MD) button.

Open-source Tibbo BASIC/C Applications

Tibbo has developed and published several key Tibbo BASIC/C applications.

All published apps are open-source. Feel free to modify or borrow from any app in any way you please. Chop the code up, slice it and dice it, put it back together, or turn the app into something else entirely.

Have no time or desire to write your own code? Contract Tibbo to do this for you! We offer first-class design-in support, including the contract development of your Tibbo BASIC/C app.

To see our published apps, visit the Code and Applications section of our website.

Programmable IoT OverviewTibbo Project System (TPS)ControllersBoardsModulesOTA ManagementCode & Apps