logo home3D CAD designReverse EngineeringPrototypingCarbon forming

Algemene VoorwaardenContact
NL EN

Free Software Projects

These free software projects are a side-activity from MyVoice.
All files from this page are to be used at your own risk. There is no warranty on any of these projects, use at your own risk!

Device drivers for the LPCXpresso modules

The examples given by NXP at their support pages are not as good as we like. Surely the examples are not at a production level and a recent discussion at the LPCXpresso forum triggered me to look at some of these drivers.
Resulting code is available below.

The first driver investigated is the I2C driver. I decided to fix some bugs, clean up the code for readability and to add handling for situations where a NACK is received instead of an ACK. Also the I2CEngine function now returns the result of the I2C transaction.
I did some testing on a 24LC08 EEPROM device; write and read after write (using a restart) transactions work. If the device returns a NACK on the slave address this is returned as a separate cause of an aborted transaction.

Here is an image of the logic analyzer output showing the write transaction together with the "Acknowledge polling" (sending of the address, followed by a NACK from the slave) and the read transaction from a 24LC08 EEPROM (click on the image for large view).

Download i2c_driver_v1.10.zip

LPCXPresso USB Keyboard

This is an example software project for the LPCXpresso board with USB interface.
It uses an lpc1343 module with a baseboard from EmbeddedArtists to show a possible implementation of a specific device sending keyboard keys (or macros) to the host. This demo shows how the rotary encoder and the joystick switch on the baseboard can be used to create key event towards the host.
This could be used as a basis for a USB based pendant for a CNC system.

The project archive can be imported into a newly created workspace in the LPCXpresso development environment. Both a Release and a Debug configuration are available.
Use the "import archived projects" function from the Quickstart view to import all project from the archive.
Build, Download and connect a USB cable to the USB interface connector (X1) on the baseboard. Open Notepad (or any other text editor) and play with the rotary encover and the joystick.

Sorry, due to license restrictions with the Keil USB stack this example has been taken off line.
It will be replaced with a version containing another USB stack without those restrictions as soon as I have time to convert and test this.
Get LPCXpresso boards from Embedded Artists.

LPCXPresso USBCNC Pendant v 0.1

The USBCNC Pendant is a MyVoice product in development.
A CNC-Pendant is a hand-held device used to operate a CNC machine. It usually contains a handwheel plus some switches to control the axis of operation and select the speed (fine/coarse).

Goal of this project is to create a pendant to control most of the actions that are needed to control the CNC machine: Moving the axes, homing, setting the zero coordinates of a workpiece (including touch off), selecting the coordinate system (G54..G59.3), probing, move to park position, move to workpiece home coordinate.

The start of a pendant for USBCNC using an lpc1343 LPCXpresso module.
v 0.1 is a mere copy of the USB Keyboard with the only changes being the USB descriptor and the addition of a STEC11B04 ALPS rotary encoder (available from Conrad in the Netherlands as partnumber 700698)

v 0.2 supports both the rotary encoder on the Embedded Artists baseboard, has improved key handling (buffering multiple keys) and uses real USBCNC hotkeys to control the PWM value by using the rotary encoder. The button function of the joystick is used to enable the pendant.

The project archive can be imported into a newly created workspace in the LPCXpresso development environment. Both a Release and a Debug configuration are available.
Use the "import archived projects" function from the Quickstart view to import all project from the archive.
Build and Download the Pendant project and connect a USB cable to the USB interface connector (X1) on the baseboard. Open Notepad (or any other text editor) and play with the rotary encover and the joystick.

Get LPCXpresso boards from Embedded Artists.

Sorry, due to license restrictions with the Keil USB stack this example has been taken off line.
It will be replaced with a version containing another USB stack without those restrictions as soon as I have time to convert and test this.