Run length limited (RLL) codes are used in visible light communication (VLC) to avoid flicker and to support different dimming ranges such that communication is not affected by the variation in light intensity. In this paper, we propose a low complexity split phase code as RLL code in serial concatenation with the convolutional code as a forward error correcting code (FEC) for VLC. The split phase code can be represented by a two-state trellis-like code which can provide an iterative gain in FEC-RLL serial concatenation. We also use the extrinsic information transfer (EXIT) chart to explain the iterative decoding behavior of the proposed serial concatenated scheme. Furthermore, we use puncturing and compensation symbols to support various dimming range in VLC.