diff --git a/src/System/Hardware/Streamdeck.hs b/src/System/Hardware/Streamdeck.hs
--- a/src/System/Hardware/Streamdeck.hs
+++ b/src/System/Hardware/Streamdeck.hs
@@ -1,4 +1,7 @@
+{-# LANGUAGE OverloadedStrings #-}
+
 module System.Hardware.Streamdeck ( Deck
+                                  , serialNumber
                                   , solidRGB
                                   , openStreamDeck
                                   , enumerateStreamDecks
@@ -9,6 +12,8 @@
                                   , sendRaw
                                   ) where
 
+import Data.Maybe (fromMaybe)
+
 import qualified Data.Bits            as B
 import qualified Data.ByteString      as BS
 import qualified Data.Word            as DW   (Word16, Word8)
@@ -199,3 +204,9 @@
     in do
     _ <- drawPage newDeck
     return newDeck
+
+-- KNOWN BUG: some versions of the Stream Deck firmware do not report
+-- SerialNumber as part of the HID handshake (but can be coerced to report the
+-- S/N via special request).  Leaving this bug for another day.
+serialNumber :: HID.DeviceInfo -> String
+serialNumber = show . fromMaybe "" . HID.serialNumber
diff --git a/streamdeck.cabal b/streamdeck.cabal
--- a/streamdeck.cabal
+++ b/streamdeck.cabal
@@ -2,8 +2,9 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                streamdeck
-version:             0.0.1
+version:             0.0.2
 synopsis:            Control library for the Elgato Stream Deck
+description:         Support (via System.HIDAPI) for Elgato Stream Deck hardware
 homepage:            https://github.com/wuest/haskell-streamdeck
 bug-reports:         https://github.com/wuest/haskell-streamdeck/issues
 license:             BSD3
