Click for enlarged pictures     ELMB103 Software Resources     Click for ELMB distribution kit

NOTE:
- the documentation and software on this page mostly is for the ELMB103 only; for ELMB128 stuff follow the link below.
- the documentation and software provided on this page comes 'as-is' and without any warranty.

Please send questions, remarks, comments to Henk Boterenbrood)

All ELMB embedded programs and source code provided below have been developed using the Imagecraft ICCAVR Integrated Development Environment for ATMEL AVR microprocessor application development. The full toolset can be downloaded and used for free for up to 30 days. Click here to download the Imagecraft ICCAVR toolset.
A license for the standard version costs $199. Support is very good in my experience.

for ELMB128 resources click here
The ELMB128 module with ATmega128 microcontroller is a pin-compatible upgrade of the ELMB103 module with ATmega103 microcontroller. The ELMB128 does not have the second onboard processor (AT90S2313) like the ELMB103 and a few other (minor) hardware modifications.

ELMBio
CANopen
firmware
ELMBio36mb3.hex
A ready-to-download Intel-HEX file of the ELMBio v3.6 application with the 64-channel ELMB onboard 16-bit ADC, 8 to 16 digital inputs, 8 to 16 digital outputs and 64 analog output channels (using the ELMB DAC).
This one runs on ELMB Motherboard version 3 only.
Compared to older versions it has improved radiation tolerance (register and variable refresh from Flash and/or EEPROM) and ADC access overhead decreased by almost a factor of 2.
See the Release Notes V3.6 for more details.
For old Motherboards only: ELMBio35mb1.hex
For all Motherboards: ELMBio35mba.hex

Sources of ELMBio36
The complete source code of the ELMBio v3.6 application firmware. Serves as an application framework for developers who have to extend and/or modify the firmware to serve their specific requirements.
Several compile options are available to configure the code, e.g. for different ADC configurations.
Make sure to read the accompanying application notes (also included in the zip file) before using the code.

ELMBio User Documentation v1.7
User manual for the ELMBio application: the mapping of the ELMB I/O pins, what the PDOs contain, a list of Emergency objects, an overview of the Object Dictionary in a series of tables. (For some more background information look here).

ELMBmon
CANopen
firmware
(for Slave micro)
ELMBmon15a.hex
Intel-HEX file of the ELMBmon v1.5 application for the ELMB's AT90S2313 microcontroller: implements the Master (ATmega103) Watchdog function and provides the Master-firmware-download-via-CAN capability.
This version does not take control at power-up.

ELMBmon15b.hex
In this version the Slave always takes control of the ELMB at power-up but releases it to the Master after 4 s unless a CAN-message was received within those 4 s;
control is also handed over to the Master after a CANopen NMT Reset-Node message.

Sources of ELMBmon15
The complete source code of the ELMBmon v1.5 application firmware, including an ICCAVR project file. (Release notes)

Some C-code
examples
The examples below use the ELMB's RS232 interface (9600 baud, 8-N-1) to display some results, so the ELMB programming/adapter must be connected in order to see the output.

CRC
Cyclic Redundancy Checksum calculation: a CCITT CRC-8 and a CRC-16 routine demonstrated in a small program.

I2C-bus
A working set of I2C-bus functions (in i2c.c, i2c.h) and a testprogram (in i2ctst.c) in which a number of I2C devices are being read out.
This document describes how I2C-buses could be handled by the ELMB in a CANopen environment.

JTAG
A set of JTAG functions (in jtag.c, jtag.h) and a testprogram (in jtagtst.c) demonstrating how the JTAG functions could be used to determine the number of TAPs and the length of the data chain.
This document describes how JTAG could be handled by the ELMB in a CANopen environment.

Real Time Clock
Some code to demonstrate how the ELMB is used to implement a Real-Time-Clock.

Host software OPENhost V2.7 (for NICAN v1.5 and newer)
A WIN command-window tool to monitor CANopen bus traffic and to interactively compose and send CANopen messages; can be used to interact with the ELMB at the CANopen message level.
This version works with the National Instruments PCI-CAN interface with NI-CAN software version 1.5 and newer.
(Versions for VECTOR and IXXAT CAN-interfaces are available on request).

OPENhost.exe V2.4 (for NICAN v1.4 and older)

ELMBmldr V2.2 (for NICAN v1.5 and newer)
A PC command-window tool to download programs to one or more ELMBs via the CAN-bus.
This version works with the National Instruments PCI-CAN interface with NI-CAN software version 1.5 and newer.
With command-line options (Type 'ELMBmldr -h' to get a list of options).
Versions for KVASER, VECTOR and IXXAT CAN-interfaces are available on request.
(A version with a GUI is under development, but with very low priority...).

ELMBldr.exe V1.4 (for NICAN v1.4 and older)

PonyProg
The only ISP programming tool that works for me under Windows NT.
The user interface is not very good, but at least it works...
I use it like this: connect the ELMB programmer interface with the STK300 programmer dongle plugged into your PC's parallel port. In PonyProg in the 'Options' menu go to 'Setup', choose 'Parallel I/O' with 'AVR ISP I/O'; clicking 'Probe' should result in a little pop-up window with the text 'Test ok'. (If it fails try any combination of 'Parallel I/O' and protocol until the 'Test ok' appears, then use these settings).

Other ELMB
applications
ELMB PID-controller (framework) (user manual, draft)
Describes the software framework for an ELMB-based multi PID-controller with CANopen interface. The complete source code (for the ICCAVR development toolset) can be found here.

FLOWsCAN CANopen Gas Flow Meter Read-Out System (user manual)
ELMB application, developed for the CERN Gas Group, serving as a front-end to a Gas Flow measurement system for the LHC experiments.

MDT-DCS CANopen Module (user manual)
ELMB application that takes care of local monitoring tasks on the Muon Drift Tube (MDT) chambers, part of the ATLAS detector; monitoring includes T-sensors, B-sensors and frontend-electronics.

ELMBio version for radiation tests
Documentation additional to the ELMBio document (see above) describing the special features added to ELMBio for the radiation tests with the ELMB.

DAC
for the ELMB
User Manual (v1.0).
More info to be found on this webpage.