Argonne National Laboratory

Experimental Physics and
Industrial Control System

EPICS Codeathon 2021

ESS will host the 2021 Virtual EPICS Codeathon and Documentathon from Monday March 8th to Friday March 12th, to work on some of the items on the EPICS To Do lists. Attendees should be prepared to select (or propose) and work on one or more EPICS-related development or documentation projects, and must provide their own computing resources with all necessary development software.

By having developers focus on specific EPICS development tasks they will learn more about how the core software works and should become more profficient at using it. A lab that is looking to both improve their EPICS expertise and to give something back to the collaboration might find this an appropriate way to do both at the same time.

What Happens?

Coding Marathons, also called Code Sprints or Hackathons are popular in many open source projects as a way of making progress on certain development efforts, clearing up bug reports and introducing new developers to the project internals. They usually involve design discussions between developers, coding (individually or using techniques like Pair Programming), code testing and debugging, writing documentation, and coaching for developers who are new to the code-base.

Previous EPICS Codeathons have attracted between 8 and 34 attendees from many different labs/sites, and have resulted in many useful advances for EPICS. There are always core developers present to help newcomers get started and suggest answers to any questions that arise. We will also be asking attendees to test and review each others' projects as well as working on their own, further broadening their experience.

Virtuality in reality

This year the event will be virtual, meaning that there will be a Zoom session for whole-group sessions, which we will run multiple times to allow attendees in different timezones to join without having to work at unusual hours. Outside of the group sessions the Zoom channel will be available for small group meetings and one-on-one discussions with core developer mentors to help with specific project issues.

We are open to the use of any other internet communications technologies that you have access to such as private Zoom channels, Google Meet, MS Teams, BlueJeans, SLAC channels, IRC, or even regular email to facilitate technical conversations — use whatever works for the people who need to be involved in the conversation. The core-talk mailing list might be an appropriate venue for some kinds of discussions.

If none of the sessions in the timetable below occur at reasonable times for you please let us know when you register and we will see if we can add additional sessions for your timezone — previous Codathons have not had representatives from the Asia-Pacific regions.

Who’s invited?

EPICS Codeathons are intended for EPICS users who wish to contribute towards the future of EPICS, either by writing code or working on various documentation tasks. They are generally not suitable for those just starting to learn EPICS unless you have considerable experience in a related software field and are a self-starter. Several core developers wlll be available to act as mentors, including members of the team responsible for developing and maintaining the epics-controls website.

It isn't necessary to attend all 5 days, but please try to make it for enough time that you'll be able to finish at least one project. You don't have to be a C or Java programmer, we will have some tasks that involve writing and updating the EPICS documentation, although most tasks will require some understanding of EPICS, C/C++ or Java coding and/or Linux scripting.

How to register?

The registration website opens on February 15th and will remain open until March 1st.

If you have questions about projects or EPICS development you are welcome to email the core-talk list with them (you don't have to join that list, the moderators will approve such messages and will CC you on any replies).

Where will it be held?

Online using Zoom, email, GitHub, Launchpad and other technologies as needed.

Where to stay?

In the comfort of your own home. If you really want to travel you could always rent a room in a favorite hotel that has good internet connections and work from there, but you'll have to fund the cost of doing that yourself (or persuade your boss to pay for it, good luck!). Please follow all recommended precautions against COVID-19.


We expect to have attendees from all around the world working in their own timezones, so we will run at least 2 introductory and wrap-up sessions, maybe more if we get enough registrants from the Asia/Pacific region. We expect you to take breaks as you need them and where possible to follow your normal working hours. If you get pulled into support activities at your site or have meetings or other tasks to attend to during these hours we completely understand and don't expect you to make up any such time.

We will have core developers online from several timezones so we will try to have someone available on the conference chat to help for as long as we can, but you might have to wait a few hours for help in some cases.

The session times below are preliminary and may be adjusted as necessary.

Day Time PST Time CST Time EST Time UTC Time CET Session
Monday 01:00 - 02:00 03:00 - 04:00 04:00 - 05:00 09:00 - 10:00 10:00 - 11:00 Introductions, project selection for Europe
02:00 - 08:00 04:00 - 10:00 05:00 - 11:00 10:00 - 16:00 11:00 - 17:00 Work; European mentors available
09:00 - 10:00 11:00 - 12:00 12:00 - 13:00 17:00 - 18:00 18:00 - 19:00 Introductions, project selection for Americas
10:00 - 15:00 12:00 - 17:00 13:00 - 18:00 18:00 - 23:00 19:00 - 00:00 Work; American mentors available
Tuesday 00:00 - 08:00 02:00 - 10:00 03:00 - 11:00 08:00 - 16:00 09:00 - 17:00 Work; European mentors available
08:00 - 08:30 10:00 - 10:30 11:00 - 11:30 16:00 - 16:30 17:00 - 17:30 Joint progress session (optional)
08:00 - 15:00 10:00 - 17:00 11:00 - 18:00 16:00 - 23:00 17:00 - 00:00 Work; American mentors available
Wednesday 00:00 - 08:00 02:00 - 10:00 03:00 - 11:00 08:00 - 16:00 09:00 - 17:00 Work; European mentors available
08:00 - 08:30 10:00 - 10:30 11:00 - 11:30 16:00 - 16:30 17:00 - 17:30 Joint progress session (optional)
08:00 - 15:00 10:00 - 17:00 11:00 - 18:00 16:00 - 23:00 17:00 - 00:00 Work; American mentors available
Thursday 00:00 - 08:00 02:00 - 10:00 03:00 - 11:00 08:00 - 16:00 09:00 - 17:00 Work; European mentors available
08:00 - 08:30 10:00 - 10:30 11:00 - 11:30 16:00 - 16:30 17:00 - 17:30 Joint progress session (optional)
08:00 - 15:00 10:00 - 17:00 11:00 - 18:00 16:00 - 23:00 17:00 - 00:00 Work; American mentors available
Friday 00:00 - 07:00 02:00 - 09:00 03:00 - 10:00 08:00 - 15:00 09:00 - 16:00 Work; European mentors available
08:00 - 13:00 10:00 - 15:00 11:00 - 16:00 16:00 - 22:00 17:00 - 23:00 Work; American mentors available
07:00 - 08:00 09:00 - 10:00 10:00 - 11:00 15:00 - 16:00 16:00 - 17:00 Wrap-up for Europe
13:00 - 14:00 15:00 - 16:00 16:00 - 17:00 21:00 - 22:00 22:00 - 23:00 Wrap-up for Americas

Work Projects

We have been developing lists of development projects that we would like to see implemented and bugs that could be fixed, of varying levels of complexity. These cover work on EPICS Base, CS-Studio and related services, and areaDetector. You can also suggest your own project ideas, but please try to discuss them on core-talk before the event if you can.

We will devise some way for attendees to indicate that they want to work on a specific project before they start, so we don't have two or more people doing the same project. We'll explain how to do that in the introductory session.

How to Prepare

What can/should you do in advance in order to make life at the event itself easier for you and the other participants? Here are some suggestions, if you have other ideas that you think would help let me know and I'll add them here.

  • Make sure your computer(s) are prepared for the kind of work that you want to contribute with any necessary software installed. EPICS development is probably easiest on Linux or MacOS, but if you are a Windows power user or are already using EPICS on your Windows laptop that should be fine too. You should have all of the necessary compilers and other tools to build and debug the software you're working on, and in most cases you will need a copy of the Git DVCS software installed.

    You can also sign up for a free account at either GitHub or Launchpad, to allow you to push your code changes to a public Git repository on one of those sites. Instructions for checking out a local copy of EPICS Base can be found on the EPICS 7.0 Release Series page.

  • Look through the lists of suggested work projects and try to identify some that you might be interested in and capable of working on. You could examine the existing code to try and get a feel for what might need to be done. If you have additional project ideas of your own, it is worth posting a message to core-talk describing them in advance of the event.

    This type of preparation work isn't the same as starting early. It's more a matter of getting your brain ready to sit down and tackle some problems. Rather than spending half a day deciding what to do, you'll already have a bit of an idea about where you could do some work and what the bigger picture looks like in that area.


The following well-known EPICS developers are expected to attend and will be available for consultation:

  1. Andrew Johnson (Argonne/APS)
  2. Kunal Schroff (Brookhaven/NSLS-2)
  3. Timo Korhonen (ESS)
  4. Ralph Lange (ITER)
  5. Michael Davidsaver (Osprey DCS)
  6. Mark Rivers (UChicago/APS)

Last updated: 2021-02-14

ANJ, 14 Feb 2021 · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·