The CEENBoT-API or Application Programming Interface is a statically-compiled C library targeting the ATmega324P microcontroller in the CEENBoT 324 v2.2x platform. The library allows users to write C programs using Atmel Studio IDE compiler toolchain that invoke functions provided by the library which facilitate the use and control of the CEENBoT's electronics without the need to have intimate technical details of the CEENBoT's electronic subsystems at the register level. The API consists of an extensive library of functions that allow users to easily control various CEENBoT hardware resources, which include:
In addition, the API provides services that are commonly needed in programming tasks, of which the most important is timing services, the ability to initiate timers to either operate as a 'one-shot' or 'persistent' ones which trigger a flag, or a user callback at specified intervals. This also include services for accessing the CEENBoT's ADC (Analog-to-Digital) subsystem for connecting analog devices such as photoresistors for providing additional sensing capability for robotic tasks and line-following sensors.
For this reason, the CEENBoT-API is more of a monolithic middleware (or microkernel) API, because it is dual function. It provides a simplified interface for programming the robot, but also provides some basic services that are typically furnished by operating systems of 'sufficient functionality'.
A key significant reason behind the existence of the CEENBoT-API is to support the Mobile Robotics course at the University of Nebraska-Lincoln (Omaha) campus.
If you want to write C programs that make use of the CEENBoT-API you must be able to fulfill the following requirements:
Use of the CEENBoT-API 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 IDE 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 in which case you would need a USB-To-Serial cable (with gender changer) instead of the AVR-ISP cable. Further information can be found here.
In 2016 Atmel was purchased by Microchip. As a result, any attempt to visit Atmel's website in the the atmel.com domain will redirect you to Microchip's website, even though links to Atmel will appear on the web. What this means for Atmel's product line and their software tools is unknown, but as of Jan. 9, 2018, you can still download Atmel Studio version 7.
The general steps you should carry out to get started with the CEENBoT-API is as follows, provided, of course, that you meet all the requirements:
Below you will find download links to the latest version of the CEENBoT-API static library along with any pertinent documentation that exists for it. Under the Download Link column, right-click and select "Save As...", or something along those lines.
Please note that there's an UN-OFFICIAL source of the CEENBoT-API's source code that has been posted here. These updates were neither supervised, supported, nor sanctioned by me. The source is NOT up to date and does not constitute the latest revision of the API. The individuals involved in this project have released API revisions with revision numbers that collided with internal [and official] development. You are cautioned against using it in production/field work. I do hope to get the official source code to be made available soon if time allows.
Please read the Things You Should Know Before You Use the API section further below before you proceed with experimenting with the API.
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-API static library v2.06.000R||ZIP||v2.06.000R||209KB||3/12/2017||Download|
|CEENBoT-API: Getting Started Guide (Atmel Studio 6/7)||1.5||2.8MB||1/11/2019||Download|
|CEENBoT-API: Getting Started Guide (AVR Studio 4) [Old]||1.08||2.8MB||7/4/2015||Download|
|CEENBoT-API: Programming Fundamentals||1.12||237KB||1/10/2016||Download|
|CEENBoT-API: Programmer's Reference||1.14||1.5MB||1/10/2016||Download|
|CEENBoT v2.23 Platform 324 Schematics||2.23||409KB||7/4/2015||Download|
|CEENBoT v2.21 Platform 324 Schematics||2.21||1.4MB||7/4/2015||Download|
|Original v2.2x CEENBoT Platform 324 Factory Firmware (for ATmega324P)||HEX||1.104R||74KB||1/18/2019||Download|
|Original v2.2x CEENBoT Platform 324 Factory Firmware (for secondary MCU ATtiny48)||HEX||1.104R||6KB||1/18/2019||Download|
The schematics were created by the makers of the CEENBoT, and are provided here for convenience. The original source is located here. Be cautioned that these links may be removed at any time as the schematics are the property of CEENBoT, Inc.
The original CEENBoT's Factory Firmware is provided here also for convenience. The original files are located here. However since CEENBoT, Inc's site seems to be 'changing', I feel compelled to make a bonafide good faith effort to make sure the firmware remains available in case the original web source is no longer available. Please note that the original 'factory' firmwares are the property of CEENBoT, Inc. For battery-charging purposes, the factory firmware for the ATmega324P MCU is what you're after. Make sure to right-click and select "Save As..." since browsers tend to just want to display the HEX file as text, even though that's not the intention here. Version v1.104R is the last official version thus far released by CEENBoT, Inc. Please do make an effort to visit CEENBoT, Inc's site first when seeking the factory firmware, before choosing to download from the link in the above table.
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-API Program' are completely separate and distinct pieces of firmware.
When you write CEENBoT-API programs and you flash up and overwrite the contents of FLASH memory of your CEENBoT to run your API program, that 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. And to be clear, even if you didn't do a 'chip erase' the previous firmware is overwritten by flashing up a new one. In either case, and 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 an API program 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:
So, please keep in mind the following points:
If your CEENBoT shows symptoms of a low battery while running API programs, 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!
Now that we have that out of the way, go and head over to the 'Downloads' section and start downloading.
There's a suit of software tools called the CEENBoT Bootloader Package. This contains a bootloader and a program loader that runs on the CEENBoT, which gives you the ability to upload multiple CEENBoT-API programs, and to simply call up a program by RESETTING the CEENBoT and selecting which program you'd like to load by selecting one from the little menu shown on the CEENBoT's display (LCD), which is very convenient. This also includes having IMMEDIATE access to the factory firmware, that is necessary for charging your battery. For more information see the 'The CEENBoT Bootloader' section of The CEENBoT Portal.