Auto code creation for I2C devices @robdobsn

Rob Dobson has been spending a bit of time in Soho in New York City and enjoying messing around with I2C breakout boards, some of which are made by Adafruit only a few hundred yards away.

Following on from my post about auto identification of I2C devices which handles the scanning and polling of I2C devices, I’ve been working on a mechanism to auto-generate C++ (and other language) code to decode data from many different I2C devices.

This is proving to be very effective and I can even generate optimised code for more complex devices like the MAX30101 heart-rate monitor module which has a FIFO buffer and can store 32 Red/IR/Green measurements without interaction from the main microcontroller. To maximise flexibility for handling varied devices I’ve devised a simple pseudo-code language which is easy to parse and convert into languages including C++, Python and Typescript.

A JSON document is used to define each device. This is the same document as used for scanning and polling and Rob has extended the section which describes the device’s “attributes” (values that are measured / reported by the device). This now enables code-generation using two alternatives:

  • simple data conversion rules (data types, bit masks, shift, division and addition operations)
  • custom pseudo-code (for more complex scenarios)

See more in the post here.


Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 38,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

CircuitPython – The easiest way to program microcontrollers – CircuitPython.org


New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — New Products 11/15/2024 Featuring Adafruit bq25185 USB / DC / Solar Charger with 3.3V Buck Board! (Video)

Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: A New Arduino MicroPython Package Manager, How-Tos and Much More! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

Adafruit IoT Monthly — The 2024 Recap Issue!

Maker Business – Adafruit Daily — Apple to build another chip at TSMC Arizona

Electronics – Adafruit Daily — SMT Tip – Stop moving around!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !


No Comments

No comments yet.

Sorry, the comment form is closed at this time.