Abbott Analytical Products

Open Source Technologies

  1. CNC: Comupter Numeric Control
  2. CAD/CAE: Computer Aided Design/Engineering
  3. Complete 3D Design to Milling Example
  4. Arduino
  5. Android
  6. Bluetooth
  7. Serial:

CNC: Computer Numeric Control

Abbott currently supports four axis (xyza) milling operations. For questions regarding machining throat capabilities or capacity, please contact us.

To send an email to us regarding a comment or question, click here.

CAD/CAE: Computer Aided Design/Aided Engineering:

Abbott currently employs OpenSCad (scad model file, stl models, svg, dxf, etc.), pyCAM/ HeeksCAD/CNC (milling gcode), and Slic3R (extruder gcode) to render conceptual designs to physical reality. See the design article at Linux.COM for a high level "how-to".

To send an email to us regarding a comment or question, click here.

Concept to Milling: Carbon Fiber Feature

OpenSCAD: Receiver Magazine Cut

OpenSCard: Receiver Magazine Cut

pyCAM: Receiver Magazine Cut

Reality: Part Milled in Assembly

Conceptual Views in CAD/CAE: Other Examples

OpenSCad: PCB Layout

OpenSCad: Landscape Drainage

Serial Communication

Communication Breakout Box

An experimental RS232 breakout box has been create in software to faciliate creation of the interface between exercise equipment and a PC. The software design was executed in Java. Two following images depict the level of maturity in the project.

To send an email to us regarding a comment or question, click here.

Telephone Answering Machine

A project was undertaken to replace the Classic Phone (Windows) with an Ubuntu mgetty/vgetty style system. The appropriate ATT command set was strings with guidance from MGETTY Setup for Dialin. Once satisfactory communication is established from a spawned mgetty/vgetty session, the Telephony tab of the "Communication Breakout Box" will be expanded to setup answer machine behavior, message setup, and recall of incoming messages, etc.2

To send an email to us regarding a comment or question, click here.


The Arduino controller platform first appeared on our horizon a couple of years ago then we were looking for a light sensor controller. A couple of months ago we found the mBot and Starter by Makeblock. They offerred an easy learning environment IDE called mBlock. On-sale you can purchase the mBot hardware platform for around $70US. The mBot and the Starter/Ultimate are really dressed-up Arduino UNO. The mBlock IDE is drag and drop. But it has access to an Arduino IDE. By using the mBlock IDE you can obtain a "rough" first cut of whant you think you want. Then you can switch to the Arduino mode. That allows you to view the Arduino code behind the mBlock program you wrote. Typically, at that point you can click the "Edit with Arduino" to enter the the Arduino IDE. If you save this as an Arduino project you can then dress it in any number of different suits depending on any supporting libraries you downloaded and installed. You might want to stop first here at GITHUB.

Try the Arduino MEGA2560 for grins. Adding shields to it will greatly increase your knowledge quickly.

aapMbot Library


  1. aapBase: Provides key definitions for Arduino boards.
  2. aapHappyBirthDay: Provides unique support for playing the tune.
  3. aapIRRemote: Provides pin definitions and setup/play/loop function declarations.
  4. aapMbot: Brings the AAP modules together under one library component
  5. aapPitches: Defines the frequency of the typical array of musical notes.
  6. aapShave_Haircut: Provides unique support for playing the tune.
  7. aapTwinkle: Provides unique support for playing the tune.


    Arduino: mBot - UNO
  1. PlaysTune_Goes - Responds to the IR Contrller by playing multiple selectable tunes and navigates.
  2. IRrecvDump - Gathers details of IR codes for active TV and other IR controllers.
  3. Bluetoot_Ultrasonic - Commandeers the ultrasonic pin assignment for usage by Bluetooth.

  4. Arduino: (mega2560/UNO: selectable at design time)
  5. TFT LCD Combination Lock - Provides a keypad entry access functionality.
  6. LCD Analog Clock - Displays time as an analog minut/hour hands style clock.
  7. TFT LCD Oscillascope - Under development.

To send an email to us regarding a comment or question, click here.


  1. Digitial Camera Data OTG - USB Storage
  2. We started looking at using the Android instead of the iPhone iOS as a means to transfer digitial camera pictures to a mobile storage device while traveling to regions with unknown/slow access to the Internet or the Cloud. We expected to accumulate in excess of 4,000 pictures. We needed to saveguard the pcitures from theft and out-right Act-of-God type loses. So the intent was to create transfer the pictures daily from the camera to multiple thumb drives.

    We discovered that the Samsung Galaxy S2 Tablet supported the OTG (On-The-Go) feature. That permited using the OTG and any number of USB storage devices. (We have had as many as seven connected at one time connected. But the preferred, low pressure one USB device at a time worked best in the field.)

    We began to generate apps to support the manual upload from the camera to the tablet to the USB storage device.

  3. Bluetooth Controller
  4. We sought to use the Samsun Galaxy S2 Tablet to control various electronin devcies such as RC vehicles, preadtor/varment detectors, solar switches, etc.

    Smart device technology caught-up with our need. SanDisk has a storage transfer device. It can serve the same purpose as the OTG cable for a much better price. It only allows one USB straoge device at a time. But that is okay when you are traveling.

    To send an email to us regarding a comment or question, click here.

    AAP Android App


    1. usbHost_1b
    2. otgHost
    3. otgExternalFileIO
    4. otgUSBList

  5. Bluetooth Remote Control
  6. Click here to go to further discussion of our Bluetooth efforts with Android.

Bluetooth: Android-Arduion=Robotic Device:

This example uses a Galaxy S2 Tablet (Android) to communicate with a mBot
(Arduino UNO) robot via Bluetooth. In its present state the following
instructions will allow the user navgate an mBot using an Android tablet.
These are my breadcrumb notest to help me travel the same coding path.
Enjoy but use at your own risk.
To send an email to us regarding a comment or question, click

1> Go to the Arduino IDE
1.1> Under Tools.Boards: select the Arduino/Genuino Uno
1.2> Set the Port to your specific PC.
  For my Ubuntu PC it is ttyUSB0.
 For my PC Winodws10 it is COM10
2> Download and install the MakeBlockDrive libragy from GITHUB
3> Open the File.Examples. Selct the MakeBlockDrive.Firmware_for_Starter.BlueTooth_Ultrasonic
4> Save the projects as BlueToot_Ultrasonic_00
5> Manual setup state for mBot and Bluetooth
5.1> For Starter/Orion/MeOrion
 For mBot add #include MeMCore.h //causes buzzerOn/Off issues which can be fixed using
   comment-out //#include MeOrion.h
5.2> #define __MK_bluetooth__
5.3> Locate the section of code where the declarations are being made for "MeUltrasonicSensor us" and insert
 #ifdef __MK_bluetooth__
 MeBluetooth us(PORT_3);
 MeUltrasonicSensor us(PORT_3);
5.4> Locate the fucntion definnition "void ultrCarProcess()" and change the "distance = 9;" to read as:
 #ifndef __MK_bluetooth__
 distance = us.distanceCm();
 distance = 9;
5.5> Set value to a defined 999
 Find the "void readSensor(int device)" function
 Locate the case ULTRASONIC_SENSOR:
 Change From "value = us.distanceCm();"
 To read
  #ifndef __MK_bluetooth__
  value = us.distanceCm();
  value = 999;
6> Slect the Sketch.Verify/Compile to check handy work.
7> If all went well select Sketch.Upload
8> Once the upload is done, disconnect USB cable and turn the mBot off.
9> Powerup the mBot using the battery pack and switch. The Bluetooth module should be blinking.
10> Download and install the MakeBlock apk applicaiton
10.1> From
10.2> From other:
10.3> Try the MBOT or Makeblock applicaitons.(apk)
11> From your Android insure pairing between the mBot and the Android
11.1> Insure the Android has the Bluetooth On. Then pair/unpair until
 a message appears giving a pairing identifier. Okay it and the Makeblock
 devcies appears paired.
11.2> When your mBot is online with the Android the blinking Bluetooth module light
 will continuously lit.
11.3> Assuming the mbot apk is installed
 The Manual mode should be the default (left hand panel showing mode options)
 Use the circle joy-wheel to move the mbot.
 The buzzer and lights will remain OFF until you convert them to mBot (MeMCore.h).
 The mode can be changed using hte panel of icons in the left panel.
11.4> Assuming the makeblock apk is installed
 Use any of the three selections or create your own project. The
 "joystick wheel" will work for any of the projects.
11.5> Used the Android Makeblock app and selected mBot
 Port 1 Slot 1: Setup tempertrue sensor to display "this" on Android
 Port 2: Attempted to install Seven Segment display to read Light Sensor readings.
 Port 3: Reserved for Bluetooth
 Port 4: Ran the RGB Led flashing on then off with half second waits
12 Things To-Do Arduino side
12.1 Add the __MK_Bluetooth__ define to aap library
12.2 Add ifdef to assign MeOrion or MeMCore then working the buzzer for Orion and playtone for mBot
13 Learn how to autosave the Makeblock New Projects and Edits. Then add modules for display, RGBLed,
  Thermal sensor, etc.

Please send comments or questions using e-mail. (Last update: January 12, 2018 tar)