The CEENBoT-TI

About the CEENBoT-TI

The CEENBoT-TI refers to a special firmware that you flash up to the CEENBoT, that allows it to interpret commands issued from select TI (Texas Instruments) Scientific Calculators to allow the CEENBoT to perform a variety of tasks. Basic tasks include manipulating and controlling the CEENBoT's stepper motors to set speed, acceleration and travel distance. Users can also query the state of the IR proximity sensors as well as control the indicator LEDs on the controller board. Programs are written on the calculator itself using a programming language called TI-Basic that is supported out of the box by select TI scientific calculators. Within the program, users send commands to the CEENBoT using specially formatted commands in their TI-Basic programs that manipulate the CEENBoT in a variety of ways. The purpose of the CEENBoT-TI firmware is to serve as an interpreter of these calculator-issued commands.

The calculator connects to the CEENBoT via the so-called serial LINK cable as shown in the below figure. To do so, a special adapter is required for CEENBoTs with controller board revision 2.21. CEENBoT controller boards with revision 2.23 already come equipped with the connector that is part of the controller PCB itself that the cable plugs into. Information about the hardware, and the TI-adapter board can be obtained by contacting CEENBoT, Inc.

CEENBoT-TI
Fig. 1 -- CEENBoT (v2.21) with TI calculator adapter. A TI scientific calculator controls the CEENBoT through a program running on the calculator written in TI-Basic. Commands are sent through the serial LINK cable and interpreted by the CEENBoT-TI firmware running on the CEENBoT. The calculator shown in the image is a TI-83+ (Plus). CEENBoT (v2.23) does not require an adapter board.

Develpment of the CEENBoT-TI ws driven by the University of Nebraska College of Education. It was meant to be used by entry-level junior-high students (as well as high-school) for doing basic robotics tasks and as an improvement to the Norland Robotics Platform, pictured below.

Norland Robot
Fig. 2 -- The Norland robot by Norland Research. The robot is basically a platform large enough to mount the TI calculator. A TI-Basic program is used to control it. Unlike the CEENBoT, the Norland robot only has one mechanical bump sensor, and motors are either ON or OFF with equal speed. (Photo from [1]).

Users of the CEENBoT had a desire to use it in the same manner as the Norland robot, which was limited by the fact that its motors only moved at a single speed (ON or OFF) and only came equipped with a single mechanical bump sensor at the center of the frame. The CEENBoT, in comparison, has two IR bump sensors, and motors can be independently controlled with variable speeds and acceleration parameters. Not to mention other controllable features such as LEDs, and the ability to query IR and pushbutton states on the CEENBoT.

It has been used by a few educational institutions in the state of Nebraska as well as in competition, such as the Nebraska Robotics Expo (below).

Norland Robot
Fig. 3 -- Competition teams do a trial maze navigation run on a practice course at the 2011 Nebraska Robotics expo using CEENBoT-TI.

The initial CEENBoT-TI software infrastructure was written by Nicholas Wertzberger. It was then adapted into the mainline CEENBoT-API with minor modifications where it's currently maintained.


Supported Calculators

The CEENBoT-TI supports the following (tested) calculators:

  • TI-82
  • TI-83+
  • TI-84+
  • TI-85/86
  • TI-89 (and variants)

If you are considering using CEENBoT-TI you are highly advised to test it yourself with the model(s) of interest for suitability and purpose before committing to its use with a larger audience, as the CEENBoT-TI is mainly an experimental feature of the CEENBoT-API.


Requirements

If you want to make use of CEENBoT-TI you must fulfill the following requirements:

  • You need a CEENBoT: Must be platform 2.2x, and it must have an ATmega324 (or ATmega324P). The ATmega1284/P is NOT officially supported.
  • If your CEENBoT's controller is version 2.21, then you'll need a CEENBoT-TI Adapter as the one pictured in Fig. 1 above (the GREEN board plugged into the controller board). This adapter can be obtained from CEENBoT, Inc. If you have version 2.23, then the board already provides the plug for the serial Link cable.
  • You need a serial Link cable. These cables have a plug which looks similar to 2.5mm headphone plugs, but you must ensure they're ORIGINAL and AUTHENTIC TI LINK SERIAL cables and usually come with the calculator when purchased. These cables have a TIP/RING/SLEEVE that are dimensioned differently from off-the-shelf serial link cables. Using these generic cables will cause problems because they do not plug correctly into the TI-calculators.
  • You need to have an AVR-ISP (In-System Programming) cable. This can be obtained from Atmel or from third-party vendors. It should preferrably be a USB type AVR-ISP. An AVR-ISP programmer is pictured below. You need this cable to upload (flash up) the CEENBoT with the CEENBoT-TI firmware (command interpreter).
  • AVR ISP Programmer
    Fig. 4 -- AVR ISP Prgrammer (USB type).
  • You must have downloaded and installed Atmel Studio 6 available for free (with registration) from Atmel's website. For users who only use CEENBoT-TI, you need this for the program upload utility.
  • A Windows system. Atmel Studio 6 runs on Windows. If you have a Mac, you can install it on a Virtual Machine such as Parallels. If you don't know what that even means, pretend you didn't read this particular point.

Use of the CEENBoT-TI with AVR Studio 4 is no longer supported. However, you can still use it at your own risk. Old documentation is kept for this purpose. Please note that using Atmel Studio 6 is so much better and highly recommended. AVR Studio 4 only works on old 32-bit Windows (such as Windows XP) and does not work with newer versions of Windows. You should avoid it if at all possible.

The above set of requirements assume you're NOT using the CEENBoT Utility Tool and have not migrated your CEENBoT to make use of the Program Loader at which case you would need a USB-To-Serial cable (with gender changer) instead of the AVR-ISP cable. Furhter information can be found here.


How You Should Proceed

The general steps you should carry out to get started with CEENBoT-TI is as follows, provided, of course, that you meet all the requirements:

  1. Quickly read the Things You Should Know Before You Use CEENBoT-TI section further down on this page. After you've done that, and you're sure you want to proceed...
  2. Go to Atmel's website, and create an account with them (i.e., you need to register to download their software, it is FREE).
  3. Download and install the latest version of Atmel Studio 6 (you cannot do this unless you register with Atmel).
  4. Download the CEENBoT-TI firmware from the Downloads section below, extract its contents in a known location.
  5. Download and read the CEENBoT-TI: User's Guide & Command Reference. That guide shows you how to use AVR Studio 4 to upload the CEENBoT-TI firmware to your CEENBoT. You need to learn this procedure also to restore the factory firmware, which you will need to do to recharge your battery.
  6. Note that the guide mentioned above is written for AVR Studio 4, while the recommended version is Atmel Studio 6. I wish I could say an updated version is in the works, but for the time being you will have to use the current guide and extrapolate what you need to do (which is just flash the firmware).

  7. Look over the commands reference at the end of the user guide to learn what you can do with your CEENBoT/TI Calculator combination.
  8. Write short test TI-Basic programs to aid in your understanding of the functionality offered by the CEENBoT-TI firmware and its interpreter and to ensure commands do and behave in the way you expect them to (sometimes that does not happen).
  9. You also need to have your TI calculator's manual handy to know how to create TI-Basic programs, and enter/edit commands into your program as various models treat this process differently. Furthermore, it is assumed you know how to write TI-Basic programs. This is beyond the scope of the documents presented in this site.

Downloads

Please read the Things You Should Know Before You Use CEENBoT-TI section further below before you proceed with experimenting with the CEENBoT-TI firmware & command interpreter.

Please note that revision numbers have no relation to other files or the static library. The fact some documents have the same revision number is pure coincidence.

CEENBoT-TI Firmware & Command Interpreter
File/Desc. File Type Revision Size Posted Download
Link
CEENBoT-TI Driver/Firmware Intel Hex v1.05.029R 79KB 7/7/2015 Download

CEENBoT-TI Documentation
File/Desc. File Type Revision Size Posted Download
Link
CEENBoT-TI: User's Guide & Command Reference PDF 1.04 1.6MB 7/7/2015 Download

Very Important: Things You Should Know Before You Use CEENBoT-TI

Your CEENBoT comes pre-programmed with a default firmware, which throughout all documentation in this site is simply referred to as the factory firmware authored by the makers of CEENBoT. It is very important for users to be aware that the 'factory firmware' and a 'CEENBoT-TI firmware/interpreter' are completely separate and distinct pieces of firmware.

When you flash up and overwrite the contents of FLASH memory of your CEENBoT with the CEENBoT-TI firmware, you are erasing the factory firmware given everytime you flash up a program, a 'chip erase' is performed as part of the programming process of the ATmega324 microcontroller (or alternatively, if a chip erase is not automatically performed, the previous firmware is simply overwritten). When you do this, you do not have access to any of the factory firmware's features, of which the most important is the ability for you to RECHARGE YOUR BATTERY! So let me reiterate this one more time to be clear:

You need the factory firmware to recharge your battery AFTER you're done playing with your CEENBoT, whether it was running CEENBoT-TI or not.

This means that you need to have access to the factory firmware in hand (i.e., saved somewhere on your computer, or thumb drive, etc) ready for when you need the battery charging feature. You can obtain the factory firmware in two ways:

  • By downloading the latest version from CEENBoT, Inc's website located here. Look under Firmware for CEENBoT, Inc 324 Version 2.21 and 2.23 boards. The file you're interested is ATmega 324P microcontroller (v. 1.xxxR) Or...
  • By using your AVR-ISP cable to retrieve the factory firmware that is present on your CEENBoT (assuming you haven't yet overwritten it with the CEENBoT-TI firmware) and save that on your machine for later use. Also on CEENBoT, Inc's website, there's a document called Updating Firmware on the CEENBoT, which discusses how to upload the factory firmware to your robot. These same instructions for 'updating' firmware can be used to upload any firmware targeted for the CEENBoT. Do note that the document was written with AVR Studio 4, while the current generation of AVR tools is Atmel Studio 6, so it is a little outdated. Also, the CEENBoT-TI: User's Guide & Command Reference will show you how to upload the CEENBoT-TI firmware to your CEENBoT using AVR Studio 4 or Atmel Studio 6. These same instructions can also be used to upload ANY firmware targeted for the CEENBoT (including the factory firmware).

So, please keep in mind the following points:

  • Keep a copy of the factory firmware and know WHERE to always get the latest version of the firmware (Answer: CEENBoT, Inc's website).
  • Know how to flash up your factory firmware to your CEENBoT. The procedures are the same as those outlined in the CEENBoT-TI: User's Guide & Command Reference, so once you become comfortable flashing firmware, it'll become second nature.
  • The CEENBoT-TI firmware command interpreter has NO BATTERY CHARGING CAPABILITY! You will NOT be notified if your battery is low or in need of recharging. These things will become apparent from visual and performance cues: (e.g., Robot struggles to move, or motion is not as precise; LCD backlight begins to dim, specially when the motors are moving; robot begins to reset itself for no reason, etc).
  • Very Important: Hooking up the CEENBoT to its charger has NO EFFECT when it is running a CEENBoT-TI program. Once again, IF YOU WANT TO CHARGE THE CEENBoT, YOU NEED TO HAVE THE FACTORY FIRMWARE FLASHED IN!
  • Don't be a fool: If your CEENBoT begins to shows symptoms of low battery while running an API (or any API-based program, such as CEENBoT-TI), STOP what you're doing, flash up the factory firmware and recharge your CEENBoT. DO NOT WAIT UNTIL THE BATTERY COMPLETELY DIES OUT TO DO THIS! YOU NEED ENERGY TO FLASH YOUR FIRMWARE ONTO THE CEENBoT --- IF YOUR BATTERY IS DEAD, THIS CANNOT BE DONE! (This is a WORST-CASE scenario!)

If your CEENBoT shows symptoms of a low battery while running CEENBoT-TI firmware, STOP what you're doing, flash up the factory firmware and recharge your battery! If your CEENBoT completely dies out, you will be UNABLE to do this!


References

[1] - "Texas Instruments Calculator Controlled Robot". Norland Research. Accessed: Jul. 6, 2015. Available Online. URL: http://www.smallrobot.com/scimath.html