Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Embedded software (firmware) for the laser system and components, including configuration files
C++ C Makefile
Latest commit ccec756 @jrv jrv Merge pull request #56 from matthijskooijman/debug
Add instructions for using openocd / gdb to README
Failed to load latest commit information.
config homespeed is in ustep/sec (fixes issue #45)
iotest_board Added network test + new binary iotest
laser Option to disable runtime cancel button checking.
mbed @ d1b1a93 updated mbed libraries, added CHANGELOG
.gitignore Add .gitignore file to ignore GCC generated files and .DS_Store OS X …
.gitmodules Added mbed libs as submodule
CHANGELOG added support for longer step pulses Add instructions for using openocd / gdb to README
iotest-2015-09-16.bin Added network test + new binary iotest
laoslaser-2012-08-12.bin Renamed binary files
laoslaser-2012-09-09.bin Renamed binary files
laoslaser-2012-09-14.bin Renamed binary files
laoslaser-2012-12-05.bin Renamed binary files
laoslaser-2012-12-08.bin Renamed binary files
laoslaser-2012-12-29.bin Renamed binary files
laoslaser-2013-06-02.bin Renamed binary files
laoslaser-2014-01-03.bin Renamed binary files
laoslaser-2014-05-14.bin Renamed binary files
laoslaser-2014-05-22.bin Renamed binary files
laoslaser-2014-08-12.bin Renamed binary files
laoslaser-2014-10-26.bin Renamed binary files
laoslaser-2014-11-14.bin Renamed binary files
laoslaser-2015-02-23.bin Renamed binary files
laoslaser-2015-03-18.bin updated mbed libraries, added CHANGELOG
laoslaser_LPC1768.bin latest working firmware

Embedded software (firmware) for the laser system and components, including configuration files.

Build setup, using MBED library sources

(No GCC4MBED required)

Get your compiler

Download from: (or use the one that comes with your distribution: apt-get install gcc-arm-none-eabi ). On Ubuntu 14.04 64 bit, you need to install libc6:i386.

Download LaosLaser source:

git clone --recursive

Patch mbed libraries:

cd Firmware/mbed/
patch -p1 < ../laser/mbed.patch

Set your GCC path

Set the path to the gcc compiler in a workspace_tools/ file. Make sure you end with the bin folder. For example using:

echo 'GCC_ARM_PATH = "home/usr/gcc-arm-none-eabi-4_8-2014q1/bin/"' > workspace_tools/

Build MBED libraries:

python workspace_tools/ -m LPC1768 -t GCC_ARM -r -e -u -c

You might need to install the python-colorama package for this to work.

Link LaOSlaser as an mbed example project

cd libraries/tests/net/protocols/
ln -s  ../../../../../laser .
cd ../../../..

Build LaosLaser:

python workspace_tools/ -m LPC1768 -t GCC_ARM -n laser

Link IOtest as an mbed exmaple project

cd libraries/tests/net/protocols/
ln -s ../../../../../iotest_board/ iotest
cd ../../../..

Build IOtest:

python workspace_tools/ -m LPC1768 -t GCC_ARM -n iotest

Attach debugger for step-by-step debugging

arm-none-eabi-gdb build/test/LPC1768/GCC_ARM/laser/laser.elf --eval-command \
    'target remote | openocd -c "gdb_port pipe" --file /usr/share/openocd/scripts/interface/cmsis-dap.cfg --file /usr/share/openocd/scripts/target/lpc1768.cfg -cinit -chalt'

This starts gdb and lets gdb start openocd to connect to the board. It seems you can only attach after startup. Normally, you can also use -c 'reset halt' to reset the board and start debugging from the start, but since the startup procedure uses "semihost" calls to read config.txt from the flash, this generates dozens of SIGTRAP interrupts, making debugging effectively useless.

Read for more info

Something went wrong with that request. Please try again.