Creating IoT Devices...
Since Before the Internet of Things

Internet of Things

The year is 2016 and the "Internet of Things" is one of the most abused and overused phrases ever coined.

At Tibbo, we are proud of the fact that we have been supplying the building blocks for miniature, network-enabled embedded devices (a.k.a. "IoT devices") since 2008.

Right from its inception in 2001, Tibbo has single-mindedly pursued a singular objective:

To simplify and speed up the development of IoT devices*.

To this end, we have developed a line of easy-to-use hardware, Tibbo OS (TiOS), high-level Tibbo BASIC and Tibbo C programming languages, as well as Tibbo IDE (TIDE) software for Windows. Our AggreGate personal cloud solution is one of the most sophisticated cloud products on the market.

Tibbo programmable hardware offerings include our modular Tibbo Project System (TPS), as well as controllers, boards, and IoT modules.

*That's a new edit. Our mission statement used to refer to "embedded systems" instead. Tibbo was in the IoT business long before the term became popular.

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

Code in time-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 cool IoT 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. In fact, you can even mix BASIC and C code within a single project!

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

So buy a programmable Tibbo device, install TIDE, read the Manual and you will be productive in no time at all!

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 onto the "default output", which is often a screen.

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

Objects and platforms

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

For example the print method of the lcd object (lcd.print ) outputs text onto the LCD screen.

This lcd object is only available on platforms representing Tibbo devices that have (or may be connected to) a screen.

Event-driven, asynchronous operation

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

Whenever something interesting happens, the system generates an event , which your Tibbo BASIC/C program can respond to in the event handler code.

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 object will handle the sending in the background while your application is free to go on processing other tasks.

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 very useful. Try and see for yourself!

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

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

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 are you 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 windows inside TIDE 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 key — F5 — to compile your Tibbo BASIC/C project, upload it onto the target, 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 Ethernet LAN, select this device in TIDE as your debug target, and you are all set!

Tibbo Integrated Development Environment

Four Classes of Programmable Devices to Choose From

Tibbo offers the entire spectrum of hardware devices – from standalone external controllers to embedded IoT modules. Our products are perfect for industrial Internet of things projects, home control (home automation), and a myriad of other applications.

Tibbo Project System (TPS) is a family of configurable controllers suitable for various automation application. The TPS is based on Tibbit blocks. Each Tibbit implements a dedicated I/O function. Take a Tibbo Project PCB (TPP), plug in the Tibbits of your choosing, encase the assembly in a Tibbo Project Box and you've built yourself a tailored automation controller.

DS110X are programmable serial controllers targeting applications involving RS232, 422, and 485 communications.

The EM1001 is a self-contained IoT board. This embedded controller is perfect for low-volume production and hobbyist projects alike.

EM1000, EM1206, and EM500 are embedded IoT modules. Use one as the heart of your next smart connected device.

Our Very Own Tibbo Operating System (TiOS)

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? Very often, the weight of the OS negates the CPU's agility, leading to sluggish performance. Ironically, target applications running atop these bloated systems are often very simple!

At Tibbo, we have created our own OS that is lightweight and streamlined. The Tibbo OS (TiOS) runs fast enough on a mid-range microprocessor, and in a tiny memory space. With TioS, the complexity and board space needed by electronics is 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 the byte code (a.k.a. p-code), which is then executed by the VM. Your applications can play freely but cannot crash or stall the OS.

Full Debugging Control at All Times

In the debug mode TiOS retains full debugging control over your application, regardless of what it attempts to do. No special debugging hardware is needed – TIDE controls TiOS and your application with commands that are sent over your Ethernet LAN.

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 – up to sixteen simultaneous UDP, TCP, or HTTP sessions.

Wln (Wi-Fi)

Documentation

Handles Wi-Fi communications.

Ser (Serial Ports)

Documentation

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

Net (Ethernet Port)

Documentation

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

Accesses the Internet over a serial modem (GPRS, etc.).

Pppoe (PPPoE)

Documentation

Accesses the Internet over an ADSL modem.

Supports up to four serial synchronous interface channels (for SPI, I2C, etc.).

Io (Input/Output)

Documentation

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

Rtc (Real-time Clock)

Documentation

Keeps track of date and time.

Fd (Flash Disk)

Documentation

Manages our hardened flash memory file system, as well as direct access to sectors of the flash IC.

Stor (EEPROM)

Documentation

Provides access to the EEPROM. This memory type is ideal for storing operational parameters.

Romfile (Resources)

Documentation

Facilitates access to resource files (fixed data). Use these files to store tables, lists, etc.

Sys (System)

Documentation

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

Lcd (Display)

Documentation

Controls graphical display panels (several display types supported).

Kp (Keypad)

Documentation

Works with matrix and binary output keypads. Up to 64 keys can be connected.

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. Output frequency is programmable too.

Button (System Button)

Documentation

Monitors a special system (MD) button.

Tibbo and the Industrial Internet of Things

The Industrial Internet of Things (IIoT) is the use of Internet of Things (IoT) technologies in manufacturing. Also known as the Industrial Internet, IIoT incorporates machine learning and big data technology, harnessing the sensor data, machine-to-machine (M2M) communication and automation technologies that have existed in industrial settings for years. The driving philosophy behind the IIoT is that smart machines are better than humans at accurately, consistently capturing and communicating data. This data can enable companies to pick up on inefficiencies and problems sooner, saving time and money and supporting business intelligence efforts.

- Definition of the Industrial Internet of Things from techtarget.com

Tibbo hardware and software are perfect choices for your next IIoT system. Our IoT modules can be used in the design of low-cost data collection and sensing nodes. Tibbo Project System (TPS) devices can act as controllers and data concentrators. Finally, the AggreGate platform can control and monitor your distributed data collection and control system, collect and aggregate the data, make sense of it all through built-in analysis and reporting tools, and feed corrective control actions back to the nodes.

Tibbo in Home Control (Home Automation)

Smart house technology is finally moving from the realm of trade show presentations and into your living room.

Tibbo products, such as our versatile Tibbo Project System (TPS) platform, are perfectly suited for use as intelligent smart home controllers.

Tibbo is looking for distributors, resellers, and technology partners that will take us into the home automation, building automation, and hotel automation domains.