diff --git a/README.md b/README.md
index 10f1184c5ebe8f37f4b1e053cf7edb1cdcd3a61a..2120976beb2abf35f3b6c752def0b105a0fd6e28 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ If everything worked, a line should be added to skyglow.log:
 	#date				moon[mlx] moon[dmx]		lightpollution[mlx]
 	2020-07-21 15:00:00 	0.05	11	[15, 54, 4, 19, 0, 1, 5, 0, 40, 12, 123, 123]
 ```
-The indices of the list containing the lightpollution valus refer to the number of the ecounits.
+The indices of the list containing the lightpollution values refer to the number of the ecounits.
 
 ##Setup##
 
diff --git a/ola_recv_dmx.py b/ola_recv_dmx.py
new file mode 100644
index 0000000000000000000000000000000000000000..6f1abdf100152a7c7d2e34ae562bbc9e11647963
--- /dev/null
+++ b/ola_recv_dmx.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Library General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# ola_recv_dmx.py
+# Copyright (C) 2005 Simon Newton
+
+"""Receive DMX data."""
+
+import getopt
+import textwrap
+import sys
+from ola.ClientWrapper import ClientWrapper
+
+__author__ = 'nomis52@gmail.com (Simon Newton)'
+
+
+def NewData(data):
+  print(data)
+
+
+def Usage():
+  print(textwrap.dedent("""
+  Usage: ola_recv_dmx.py --universe <universe>
+
+  Display the DXM512 data for the universe.
+
+  -h, --help                Display this help message and exit.
+  -u, --universe <universe> Universe number."""))
+
+
+def main():
+  try:
+      opts, args = getopt.getopt(sys.argv[1:], "hu:", ["help", "universe="])
+  except getopt.GetoptError as err:
+    print(str(err))
+    Usage()
+    sys.exit(2)
+
+  universe = 1
+  for o, a in opts:
+    if o in ("-h", "--help"):
+      Usage()
+      sys.exit()
+    elif o in ("-u", "--universe"):
+      universe = int(a)
+
+  wrapper = ClientWrapper()
+  client = wrapper.Client()
+  client.RegisterUniverse(universe, client.REGISTER, NewData)
+  wrapper.Run()
+
+
+if __name__ == "__main__":
+  main()