Don's BX-24 Projects


After several years of using BasicX and the BX-24, I decided to build an advanced stamp-format microcontroller. The new microcontrollers, the ZX-24, ZX-40, ZX-44 and ZX-1281, are much more powerful and easier to use as is the programming language ZBasic. You can read about these powerful new microcontrollers at the ZBasic website.

BX-24 Ethernet Project

I've been working on a project to enable a BX-24 to communicate on a LAN and the Internet. This is a bit of a challenge given the limited resources of the BX-24 microcontroller but it's progressing well. The link above will take you to a page describing the project and its status.

Indexing Head Controller

Another application for the BX-24 that I been working on is a controller for positioning a machine tool called an indexing head. I mounted a stepper motor on the head and wrote the software to control the stepper thus allowing precise rotary position of a workpiece for a machining operations. The user interface is a hierarchical menu system with a numeric keypad for entering data and pushbuttons for menu navigation. The link above will take you to a page describing the project.

BasicX Tools

Menu Compiler

When developing the indexing head controller, I needed a way to specify the menu structure in a manner that would be easy to modify and which could be translated into an internal representation usable by the BX-24. The solution was a tool called a menu compiler that reads a menu description and produces a data file usable by the Source method of the ByteVectorData class. If you think that this tool might be useful to you or you're interested in knowing more about it, send me an email.

Ramalyzer

For both of the applications above, utilization of available RAM space was a significant problem. To aid in predicting total RAM usage and to help in determining the worst contributors to stack usage, I wrote a tool that I call the Ramalyzer. It uses information in the map file (.mpp) generated by the BasicX compiler along with static analysis of the source code itself to estimate the maximum RAM usage of all subroutines and functions. The information produced is very helpful to discover which routines might be productive candidates for further work in reducing RAM usage.

Some sample output, generated from the temperature measurement sample program T_Meas1.Bas (including I2C.bas and SerialPort.bas), is available here.

You may download a Zip file with the beta-level Win32 console application (.exe) and a short readme file here (about 30K). Current version: v0.7.

Update: I have been working with Mike Perks to develop a disassembler/analyzer for BX-24 object code. In addition to the ability to produce a more human readable rendition of the output of the BasicX compiler, the program incorporates a ram use analysis similar to, but more accurate than that produced by Ramalyzer. I encourage you to use the new program which you can download at no charge from: here. Mike has also produced a series of articles that describe in detail how the BX-24 works. The articles may be found here.

Links

Yahoo Group for BasicX | NetMedia BasicX