Free Software Projects
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
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.zipLPCXPresso 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
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.