Can I do this with Arduino Uno ?

I have a new project to think about.
Essentially an RF module, connected to & controlled by an I2C bus. I’m really asking you forum experts (and I’m not one!) could an Arduino Uno form the heart of my modules ‘slave controller’.

I’ve seen the article by Wayne Truchsess “step by step guide on making an I2C slave device with an Arduino”, and Nick Gammon’s posts, so although I don’t understand everything, things looking positive.

The ‘Uno’ based controller will need to ….

• Monitor analog voltages, and report (over the I2C) if requested
• Provide up to 14 logic outputs, derived from I2C control byte(s), An algorithm may possibly need to be written to derive the required 14bit logic from 130K+ possible control setting codes. Not sure what other ways there are to decode this huge number of input setting codes. CPLD perhaps ?
• Monitor internal temperature, and report (over the I2C) if requested
• Report module specific data i.e. serial number (over the I2C) if requested
• Perform a firmware upgrade for this controller (over the I2C) if requested, fail safe of course.

Maybe this is a tall order for an Arduino Uno (I don’t know), so would appreciate some honest guidance prior to kicking off a hardware definition. I’m new to Arduino, so please excuse my inexperience. Regards.

Think arduino UNO can do it all except the last one, definitely NOT.
• Perform a firmware upgrade for this controller (over the I2C) if requested, fail safe of course.

So you should just design your firmware right the first time :wink: