|
|
|
Code & Applications
This page lists available sample projects. Some are "major", and some are just examples of what's possible.
You can freely reuse all published code (subject to this
disclaimer).
This is a new project page. Each project that gets on the new page is retested and reevaluated for relevance.
Old projects page is here.
Serial-over-IP Application
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
Many Tibbo customers first came to know us by our fixed-function device servers and modules. This project is a serial-over-IP (SOI) application written in Tibbo BASIC. The application is nearly 100% compatible with our fixed SOI firmware.
advanced, soi, serial-over-ip, application, em1000, ds1000, ds1100, ds1101, ds1102, ds1010, EM1206, DS1202 (EM1202EV), DS1206 (DS1206N), EM500 (EM500EV)
|
DS10x4 Remote I/O
EM1000 |
DS10x4
|
More Info |
|
The DS10x4 is a rugged BASIC-programmable industrial controller featuring with eight A/D channels, four D/A channels, two low-power relays, and one RS232/485 port.
advanced, ds10x4, em1000
|
DS10x5 Remote I/O
EM1000 |
DS10x5
|
More Info |
|
The DS10x5 is a rugged BASIC-programmable industrial controller featuring eight opto-isolated digital sensor inputs, six high-power relays, and one RS232/485 port.
ds10x5, em1000
|
Terminal Application Demo
EM1000 |
EM100-TEV
|
More Info |
|
This demo utilizes the EM1000-TEV and works as a data collection terminal, or more specifically, a time recorder. The IDs used for access are punched in using the keypad, though this can be easily changed to using a card reader.
advanced, application, terminal, demo, em1000, em1000-tev
|
TR610 Time and Attendance Terminal (OEM Project)
EM1000 |
TR610 Time and Attendance Terminal
|
More Info |
|
When GigaTMS approached us to design a top-of-the-line Time and Attendance Terminal for them, we immediately reached for our EM1000 module.
advanced, oem, time and attendance, em1000, tr610, terminal
|
Test Application for the AggreGate (AGG) Library
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
This is the test application described in the AggreGate library documentation. The ZIP archive you'll download contains seven separate projects that correspond to seven steps of creating the application (as narrated by the documentation).
library, settings, stg, sock, network, agg, aggregate
|
PPPoE Demo
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
This demo application contains the minimum amount of code needed to demonstrate the PPPoE object. With it, your programmable Tibbo device should be able to dial an ADSL modem and get a connection to the Internet.
network, pppoe, application
|
LED Blinker
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
This is one of the simplest demos of Tibbo BASIC. The red LED blinks 3 times when you push the button. At all other times the LED is green. Also, at power-up both Green and Red LEDs blink together 3 times.
entry, led, EM1000, DS1000, EM1000-EV, EM1000-TEV, EM1202, EM1202-EV
|
Hello World in Morse Code
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
This project uses LEDs to send "HELLO WORLD!" in morse code. It builds on the LED blinker project and shows how a long LED pattern (that cannot be set in pat.play in one "go") is split and loaded based on the on_pat event.
entry, hello, world, morse, EM1000, DS1000, EM1000-EV, EM1000-TEV, EM1202, EM1202-EV
|
Controlling LED (Inband Command)
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
This demo shows how simple it is to implement inband commands. Using the $ and % characters as delimiters, you can control the LEDs of your device with a telnet connection, and also transfer data.
intermediate, led, EM1000, DS1000, EM1000-EV, EM1000-TEV, EM1202, EM1202-EV
|
CRC-16 Library
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
CRC is a type of hash function used to produce a checksum of a small, fixed number of bits checked against a block of data, such as a packet of network traffic or a block of a computer file. The checksum is used to detect errors after transmission or storage.
intermediate, crc-16, EM1000, DS1000, EM1000-EV, EM1000-TEV, EM1202, EM1202-EV
|
Device Memory Wipe
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
Some Tibbo BASIC projects save data to device memory; then, when you upload another project, the data is still there. Or perhaps you want to upload the same project again, but test your setting initialization code. In other words, you want the device to be wiped clean before you upload your project, so you can see what your code does on a brand-new device.
entry, memory, wipe
|
Cellular Phone Keypad
EM1000 |
EM1000-TEV
|
More Info |
|
This project implements cellphone-like text entry using a keypad, including special behaviour for long key presses and changing between alphabetical and numerical modes.
intermediate, phone, keypad, EM1000, EM1000-TEV
|
Host Check (ping)
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
This function is useful for checking whether or not a host is available on the network. This is not necessarily the same device with which your application eventually tries to communicate; for example, perhaps you just want to verify that a certain router along the way is alive. Or perhaps you want your application to scan several IP addresses and issue an alert if any of them drops off the network.
entry, host, check, ping
|
IP-Based Access Control
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
This Access Control demo uses an IP Look-up table to determine if a connection should be allowed. Connections that are not allowed are dropped, an easy but effective way to make your DS selectively inaccessible.
intermediate, acl, access, control, ip, EM1000, DS1000, EM1000-EV, EM1000-TEV, EM1202, EM1202-EV
|
KLM610 Burn-in Test
EM1000 |
EM1000-TEV
|
More Info |
|
This is a little program we developed in-house to test our KLM610 devices. It keeps sending a command string over and over again, and then measures how long the KLM610 takes to respond. If the KLM610 doesn't respond on time, the burn-in test causes the buzzer to beep.
entry, klm610, test, burn-in, EM1000, EM1000-TEV
|
Quote Machine
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
This project will turn your device into a Quote Machine -- it will output selected quotes from Star Wars (TM) whenever you push the button. There's even a special mode for Wookiees!
entry, quote, machine, EM1000, DS1000, EM1000-EV, EM1000-TEV, EM1202, EM1202-EV
|
Screen Capture Demo
EM1000 |
EM1000-TEV
|
More Info |
|
This project produces screen captures of what is currently on the LCD and display it on the web page. This is useful when creating the user manual for a new product. It obviates the need to take (and post-process) photos of the display.
Intermediate, screen, capture, library, EM1000, EM1000-TEV
|
Simple Device Server
EM500 |
EM1000 |
EM1202 |
EM1206 |
NB1010 |
DS1202 |
DS1206 |
DS1101 |
DS1102
|
More Info |
|
This project implements the simplest "serial device server" possible. There is a single TCP connection. Once this connection is established, whatever is received through TCP is sent out via the serial port and vice versa.
entry, server, device, EM1000, DS1000, EM1000-EV, EM1000-TEV, EM1202, EM1202-EV
|
EEPROM & Resource File
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This demo shows how romfiles and EEPROM memory work. These are the two places used for persistent data storage.
intermediate, data, storage, eeprom, application, , em1000, ds1000, em1000-ev, em1000-tev, em1202, em1202-ev
|
Asynchronous Serial Data Splitter
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This application demonstrates asynchronous data transfer between serial ports using the ser.notifysent syscall. The idea is to emulate the data flow in a system with one master serial port and multiple slave ports.
advanced, data, storage, application, em1000, ds1000, em1000-ev, em1000-tev
|
FTP Server
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This lightweight FTP server demo was designed to showcase the possibility of implementing FTP server.
advanced, data, storage, ftp, server, em1000, ds1000, em1000-ev, em1000-tev, em1202, em1202-ev
|
Modbus Energy Meter
EM1000 |
EM1000-TEV |
|
More Info |
|
This is a quick demo we've put together to allow network access to the CAPTECH PM390 Multifunction Power Meter.
intermediate, data, storage, modbus, em1000, em1000-tev
|
Virtually Unlimited Math and Conversion
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This demo's mission in life is to help you convert very large numbers between different bases, as well as perform simple calculations on very large numbers. This can be very handy for hashing algorithms, encryption, and all sorts of other tasks that require number conversion.
advanced, data, storage, math, calculations
|
DNS demo
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This is a pretty complex reusable code. It allows the device to lease a dynamic IP from a DHCP server, and also register a device name with the server.
intermediate, network, dns, library, em1000, ds1000, em1000-ev, em1000-tev, em1202, em1202-ev
|
FTP Client - V2
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This demo transforms a Tibbo device into an FTP client. This effectively lets you publish data on an external webserver directly. It was originally developed by Carlo Tauraso to interface a DS202 with a WS2300 Professional Weather Station and submit the station's sensor data to an FTP server.
intermediate, network, ftp, application, em1000, ds1000, em1000-ev, em1000-tev, em1202, em1202-ev
|
Modbus Converter
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This is a bridge demo between Modbus/ASCII/RTU and MODBUS/TCPIP. The serial port is connected to a Modbus/ASCII or MODBUS/RTU device, while the Ethernet port is connected to the server. Commands are sent from the server via Ethernet, and the slave device gets these after they've been converted.
intermediate, network, modbus, application, em1000, ds1000, em1000-ev, em1000-tev, em1202, em1202-ev, em1206, em1206ev, ds1206, ds1206n
|
NetBIOS Naming Service
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This project shows the basics of interfacing with NBNS. When a network device searches using a certain NetBIOS name, the demo will reply with the proper answer.
intermediate, network, netbios, application, service, em1000, ds1000, em1000-ev, em1000-tev, em1202, em1202-ev
|
HTML Form
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This project implements a simple HTML login form. Enter a username and password in /index.html, then click login. The result is displayed on the next HTML page (/login.html).
entry, html, web, em1000, em1202, ds1000, em1000-ev, em1000-tev, em1202-ev
|
LED and Webserver
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This program sets up a simple web page on the device, with a form which is used to control the LEDs of the device. The form can be used for turning on either of the two LEDs, and also for entering a complex sequence of LED flashes. After entering a complex sequence and submitting the form, the sequence can be played by pressing the button on the device itself.
entry, led, web, http, em1000, em1202, ds1000, em1000-ev, em1000-tev, em1202-ev
|
SNTP Client (Internet Time)
EM500 |
EM1000W |
EM1202W |
EM1206W |
DS1202 |
DS1206 |
DS1100 |
DS1101 |
DS1102
|
More Info |
|
This project shows how to get the current time from an SNTP (Simple Network Time Protocol) server. It also incorporates the DNS demo, because the IP address of SNTP servers may change from time to time.
advanced, sntp, library, web, em1000, ds1000, em1000-ev, em1000-tev, em1202, em1202-ev
|
Segment LED Display with SSI Object
EM1000 |
EM1000-TEV
|
More Info |
|
This application shows how to use the SSI object to communicate with a MAX7219 IC driving an 8-digit LED display.
advanced, ssi, external, led, display, em1000, em1000-tev
|
Read/Write from External Serial EEPROM
EM500 |
EM1000W |
EM1202W |
EM1206W |
|
More Info |
|
This demo project was created by Sebastjan Vodopivec. It allows a Taiko device to read and write data from an external EEPROM. To try the demo, you would need serial EEPROMs from the 24Cxx family (such as 24C16, 2kbytes EEPROM).
advanced, external, eeprom, em1000, em1202, em1000-ev, em1000-tev, em1202, em1202-ev
|
I2C communication with a Philips PCA9555 IC
EM1000W |
EM1202W |
EM1206W |
|
More Info |
|
The PCA9555 is a 16-bit I2C bus expander. This project shows how to communicate with it, and was created by Tibbo user Seulater.
advanced, external, em1000, em1202, ds1000, em1000-ev, em1000-tev, em1202, em1202-ev
|
Old projects page is here.
|