The key question to me is 'how embedded'? On smaller embedded microcontrollers there is a 'main' with "for(;;)", and you have to manually schedule various tasks. Arduino makes it very easy to get started with this level of embedded.<p>However, if you're after incremental steps on top of dd-wrt, set up a cross-compile toolchain for arm and start by just rebuilding the dd-wrt firmware you've already flashed. After you get that, make a "hello world" for the home router that blinks a light and outputs via serial. It'll give you a good feel for certain aspects of embedded development.<p>Have you tried to add USB to a home router? Certain models of router make this a relatively doable task, and there is usually at least a minimal bit of help (over doing it from scratch yourself), but you may already have most of the hardware to do it, possibly making it easier to start on.