Smoke Testing a Smart Response XE

I needed a hardware sanity test for the surplus Smart Response XE devices aquired from channels such as ebay: I found code already written.

Similar projects worth following
My software project consists of just modifying a few lines of code from the Tindie project:

The author, Bradan Lane, wrote the codebase,, to be used with VSCode and PlatformIO, but I wanted it compatible with ArduinoIDE 1.8.19 and IDE 2.1.1 which meant just a bit of hacking magic to the main.c code to create a smoketest.ino file for the ArduinoIDE.


The original code by Bradan Lane is written for Visual Studio + PlatformIO.  However, while I have used these products, all of my published Arduino programs are written to be used with the 1.8.x IDE or the 2.x IDE to make it easier for the average Arduino programmer to duplicate.

The modifications to the original files eliminates the main.c source file and replaces it with a file named smoketest.ino which must be located underneath the \smoketest\ directory.  The ZIP file attached will create the appropriate folder structure.

I utilized SparkFun's hardware board files:

And I used an Arduino UNO for the ISP programmer:

I am going to use this particular Smart Response XE for development, so I went ahead and made some internal modifications to the unit to bring out the ISP signaling:

I have made a pogo-pin programming adapter, but it can sometimes be annoying when I try and align the pogo-pins, press and hold them inplace, and operate the PC mouse all at the same time.  Dupont jumpers seem to the the overall best method of keeping myself from getting contorted.

The original main.c is:

#include "smoketest.h"

int main() {
    smoketest(true);    // true means 'forever'
    while (1) {}
    return 0;

and my change made to create smoketest.ino shown below:

#include "smoketest.h"      // the main program and the includes for required libraries

void setup() {}

void loop() {
    smoketest(true);        // true means 'forever'

Under Arduino, the smoketest.ino will compile as:


Sketch uses 14824 bytes (11%) of program storage space. Maximum is 126976 bytes.

Global variables use 1105 bytes (6%) of dynamic memory, leaving 15279 bytes for local variables. Maximum is 16384 bytes.

Note: Remember that you should select ArduinoIDE option: Sketch/Upload Using Programmer

A standard Arduino "multi-tab" project which will compile under the Arduino IDE 8.1.19 and the IDE 2.1.1

x-zip-compressed - 153.81 kB - 07/19/2023 at 19:12


View project log

Enjoy this project?



Ray Burne wrote 07/21/2023 at 03:34 point

My personal use of SDCC was to target 'C' to the TI CC2533 uC.  As the Smart Response XE is an Atmel chip, GCC would be the desired compiler.  However, I am aware of this post

Looking at Alan's prebuilt ports of fuzix, looks like only the CISC chips are targeted:


  Are you sure? yes | no

zyndram wrote 07/20/2023 at 12:14 point

is possible run fuzix or other system with cc compiler?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates