ANAVI Info uHAT Manufacturing Progress

Thanks to the support of all backers at Crowd Supply, ANAVI Info uHAT has been successfully funded and has hit all stretch goals so we proceed with manufacturing. This week we received from the local factory the first batch of almost fully assembled boards. Only the EEPROM is missing. We will flash and solder it in-house.

The printed circuit boards still on panels before adding the EEPROM

The printed circuit board of ANAVI Info uHAT has a green solder mask and a gold surface finish. There are a few steps more to complete the manufacturing process. An EEPROM has to be flashed and soldered on each board. It will contain software description of the add-on board following Raspberry Pi Foundation’s HAT (Hardware Attached on Top) specifications. After that each board will go through a quality assurance, and finally each kit will be packaged in a recyclable cardboard box.

Panels with ANAVI Info uHAT

Low-volume manufacturing is not an easy task nowadays, especially during a global chip shortage. As usual we will keep you updated. Thank you again for supporting ANAVI Info uHAT!

Exploring I2C buses on ANAVI Info uHAT

I2C stands for Inter-Integrated Circuit, pronounced eye-squared-C, and alternatively known as IIC. It is a synchronous, multi-controller/multi-target (controller/target), packet switched, single-ended, serial communication bus. This protocol is suitable for devices wired at short distances, no more than 2-3m. We use I2C in pretty much all our open source products: Internet of Things, mechanical keyboards and Raspberry Pi HATs.

Anavi Info uHAT
I2C sensor modules attached to ANAVI Info uHAT

I2C was originally developed in 1982 by Philips. While that makes it 40 years old, it is still a very convenient and widely used bus. There are many I2C sensors and peripherals. It is in pretty much every smartphone, embedded electronics, microcontroller, personal computer and of course Raspberry Pi.

ANAVI Info uHAT with 4 slots for I2C sensors and mini OLED dsiplay

Actually, since the introduction of the famous 40-pin header in 2014, Raspberry Pi single board computers have not one but two I2C buses! We use them both on ANAVI Info uHAT and our other HATs. Th first I2C bus is on pins 3 and 5. On the ANAVI Info uHAT, it is used for the three I2C slots for sensors and the 4th dedicated slot for the mini OLED display.

The I2C bus on ANAVI Info uHAT in KiCad’s Schematic Layout Editor.

The second I2C bus is on pins 27 and 28 of the Raspberry Pi and is reserved exclusively for attaching an ID EEPROM. The ID EEPROM contains a software description of the hardware so the operating system on your Raspberry Pi can automatically identify the add-on board.

The EEPROM on ANAVI Info uHAT attached on the 2nd I2C bus

The I2C bus consists of two signals: SDA (Serial Data) is a data signal, SCL (Serial Clock) is a clock signal. I2C modules also need power, so the dedicated I2C connectors on the ANAVI Info uHAT and our other open source hardware provide two additional pins for VCC and GND. Typically, the VCC for the I2C connectors on our add-on boards for Raspberry Pi are 3.3V.

The I2C bus drivers are “open drain”, which means they can only pull the corresponding signal line at low level. They cannot drive it high. To restore the signal to high when no device is asserting it low, a pull-up resistor has to be added to each signal line. For example, on the ANAVI Info uHAT, we have 4.7K pull-up resistors R4 and R5 connected to SDA and SCL.

Resistor selection varies depending on the devices attached to the bus. In some specific use cases, further adjustment of the resistance value might be required. For systems with lots of devices or longer wires, smaller resistors are better.

How to Enable I2C on Raspberry Pi OS

Raspberry Pi OS, previously known as Raspbian, is the default and recommended Linux distribution for all models and versions of the Raspberry Pi single board computer. By default, I2C is not enabled. There are several ways to enable it, but probably the easiest is using the command-line tool raspi-config to perform few basic commands:

  • Open a terminal or login remotely via SSH to your Raspberry Pi and type in the following command: sudo raspi-config
  • Select Interfacing Options > I2C and enable it
  • Reboot the board

More details are available in the user’s manual for the ANAVI Info uHAT.

I2C Addresses

Each I2C device must have a unique address. The I2C reference design has a 7-bit address space, although rarely it might be used with a 10-bit extension. The 7-bit addresses range from 0 to 127 (0 to 0x7F hexadecimal). This is a limitation because it is not possible to have two I2C devices with the same address on the same I2C bus. For example, the I2C address on the mini OLED display included in all ANAVI Info uHAT kits is 0x3C. From the software side, this address is used in the example Python 3 script to access the display.

Python3 script controlling the mini OLED display over I2C on ANAVI Info uHAT

For Linux distributions, including Raspberry Pi OS, there is a package with a heterogeneous set of I2C tools called i2c-tools. To install it on Raspberry Pi OS, open a terminal and execute: sudo apt install -y i2c-tools. Once you have it installed, you can list attached I2C devices by their addresses with i2cdetect. For example, if the HTU21 temperature and humidity sensor module is attached to the Raspberry Pi, the output will be:

pi@raspberrypi:~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

I2C Sensors and Peripherals

I2C Sensors and Peripherals

ANAVI Info uHAT officially supports the following I2C devices:

  • Mini OLED SSD1306 0.96″ display
  • HTU21D sensor for temperature and humidity
  • BH1750 sensor for light
  • BMP180 sensor for barometric pressure

Some of the other popular I2C sensor modules in maker community include:

  • APDS-9960 sensor for RGB color and gesture detection
  • BME680 for temperature, humidity, pressure and gas sensor
  • MCP9808 for temperature
  • MPL115A2 for barometric pressure
  • ADT7410 for temperature
  • MPU-6050 for triple axis acccelerometer and gyroscope

Which is your favorite I2C device? Join the discussion and let us know on Twitter!

ANAVI Info uHAT Demo at the Technical University of Berlin

On 29th June, we had the opportunity to present and demonstrate the ANAVI Info uHAT add-on board for Raspberry Pi and some of our other open source hardware gadgets at the Technical University of Berlin for an event called “Open Source Hardware: Tools and Collaborations for A Better (Product) Future”.

OPENNEXT agenda on 29 June 2022

The event was organized by OPENNEXT. This is an organization that aims to bring together SMEs and makerspaces across the European Union (EU) to develop new hardware products based on open-source principles. The event brought together representatives of the Technical University Berlin, the Grenoble Institute of Technology, the University of Bath, the DDC – Danish Design Center, and many more organizations involved with open source software and hardware. Lukas Hartmann, the creator of the open source DIY laptop MNT Reform, was also a panel speaker at the event.

Panel discussion during OPENNEXT event in the Technical University of Berlin

This event was a great opportunity to show off the ANAVI Info uHAT with a mini OLED I2C display attached to the top of a Raspberry Pi and controlled using a Python3 script with the luma.oled library. The source code is available in GitHub. In the meantime, we are also improving the ANAVI Info uHAT user’s manual which is also available in GitHub.

Last but not least, don’t forget to check and support the crowdfunding campaign for ANAVI Info uHAT at Crowd Supply.

ANAVI Info uHAT is a Certified Open Source Hardware

ANAVI Info uHAT has now officially been certified as open source hardware by the Open Source Hardware Association (OSHWA). OSHWA, a non-profit entity registered in the US, organizes the annual Open Hardware Summit and also maintains the Certified Projects Directory.

ANAVI Info uHAT with mini OLED I2C Display

OSHWA runs the certification program ensures that the definition of “open source hardware” used by a specific project matches the community’s definition of open source hardware. They provide a unique indentification (UID) for each version of the certified hardware based on the country code and a serial number. For example, the UID for ANAVI Info uHAT is BG000081. The prefix BG is the country code for Bulgaria, because the Info uHAT is made in my hometown of Plovdiv. The serial numbers show that now there are 81 open source hardware devices from Bulgaria.

OSHWA certified ANAVI Info uHAT with UID BG000081

As a fully open source project, we also use only free and open source software has been used to design the printed circuit board, the stickers, the source code examples, and to write the documentation.

ANAVI Info uHAT printed circuit board in KiCad

The crowdfunding campaign at Crowd Supply is still going on and we hope more people will jump in and order ANAVI Info uHAT.

ANAVI Info uHAT – an open hardware Raspberry Pi add-on board with a mini OLED display, buttons, and slots for sensors

Together with Crowd Supply we recently launched a new crowd funding campaign for ANAVI Info uHAT – an open hardware Raspberry Pi add-on board with a mini OLED display, buttons, and slots for sensors.

Thanks to early backers ANAVI Info uHAT was successfully funded and hit its first stretch goal in a just a couple of days. So we’ll be adding some awesome KiCad and ANAVI Technology stickers. KiCad is the free and open source software we used to design this and other Anavi printed circuit boards.

As a small open source project, ANAVI Info uHAT relies on the community of passionate open source makers. We are near our second stretch goal of $1,000. If we hit it, we will make more video tutorials for all supported sensors.

There is still more than a month until the end of the crowdfunding campaign and we hope more people will jump in and order ANAVI Info uHAT!

VisualStudio Keymap for ANAVI Macro Pad 8

Many thanks to Efthimios Iosfidis, an open source engineer, maker and developer from Greece. Efthimis added a QMK keymap with VisualStudio shortcuts for ANAVI Macro Pad 8.

ANAVI Macro Pad 8
ANAVI Macro Pad 8

Furthermore Efthimis modifed the hardware a little bit and raised the keypad 15 degrees from the back side with metal stand-offs. As you can see on the photos the result is pretty cool!

ANAVI Macro Pad 8 with modified enclosure

More details about the new keymap and the modification of the enclosure are available as a Crowd Supply field report submitted by Efthimios Iosfidis.

Efthimis, well done and thank you again!

By the way, “field report” is a program by Crowd Supply to highlight talented creators by publishing their projects, spreading the word among the community and also giving a $25 Crowd Supply credit. So if you are using any of our open source hardware products available at Crowd Supply don’t think twice and submit a Crowd Supply Field Report now 🙂

Building an Air Quality Monitor with ANAVI Infrared pHAT and MH-Z19

Takuya Matsuyama, a developer from Japan making a Markdown note-taking app called Inkdrop, published a wonderful tutorial how to build an air quality monitor using Raspberry Pi Zero W, ANAVI Infrared pHAT and MH-Z19B NDIR infrared gas module.

How to build an air quality monitor using Raspberry Pi Zero W + ANAVI Infrared pHAT

MH-Z19B is an intelligent infrared CO2 module which interacts with the Raspberry Pi using UART (universal asynchronous receiver-transmitter). Takuya uses the UART port on ANAVI Infrared pHAT to attach MH-Z19B. The rest of the sensor modules for his setup are included in ANAVI Infrared pHAT Advanced kit: HTU21D for temperature and humidity, BMP180 for barometric pressure and BH1750 for light.

By the way, initially we had published open source examples for using HTU21D, BMP180 and BH1750 in the C programming languages using the library wiringpi. Takuya also based his setup on wiringpi. However, wiringpi is now deprecated therefore we have replaced it with another library called libi2c-dev. Furthermore we added examples written in Python 3.

AI-Thinker – a Trusted Supplier During the Global Chip Shortage

AI-Thinker is a leading supplier of IoT wireless products and solutions, including antennas, modules and RF lab service. Since 2017 we have been using AI-Thinker ESP-12E modules with ESP8266 in many of our open source hardware products, including ANAVI Fume Extractor, ANAVI Gas Detector, ANAVI Thermometer, ANAVI Light Controller and ANAVI Miracle Controller.

AI Thinker modules with ESP8266

Now, despite the hard times of global chip shortage, AI-Thinker keeps manufacturing and delivering high-quality modules on time. As a trusted supplier through the years, recently we have purchased from AI Thinker enough ESP-12E modules do fulfill the demand and keep making our open source hardware products.

AI Thinker modules with RISC-V microcontroller

Furthermore we stocked ESP-C3-12F modules with Espressif Systems ESP32-C3 Wi-Fi microcontroller based on the open standard instruction set architecture (ISA) RISC-V. ESP-C3-12F are pin to pin compatible with ESP-12E.

AI Thinker ESP32

AI-Thinker is based in Shenzhen, China. The company was founded 10 years ago, in 2012. They also provide LoRaWAN, NB-IoT, Bluetooth and other Wi-Fi modules.

ANAVI Gardening uHAT: Safety First

Earlier in January all ANAVI Gardening uHAT kits were delivered to the Crowd Supply warehouse and soon after that Crowd Supply team sent them to their final destination: our valuable and trusting crowdfunding backers! Thank you again for the support.

ANAVI Gardening uHAT Developer Kit
ANAVI Gardening uHAT Developer Kit

ANAVI Gardening uHAT is a versatile development board, so please follow the instructions below for safe use:

  • ANAVI Gardening uHAT should only be connected to a compatible Raspberry Pi with 40-pin header.
  • Do not expose it to water or moisture, and do not place it on a conductive surface whilst in operation.
  • Do not expose it to heat from any source; it is designed for reliable operation at normal room temperatures.
  • Take care while handling the board to avoid mechanical or electrical damage to the printed circuit board and connectors.
  • Avoid handling ANAVI Gardening uHAT while it is powered on. Only handle by the edges to minimize the risk of electrostatic discharge damage.

In the meantime, there is a work in progress going on the user’s manual which is available at GitHub. We will soon update it. As usual, GitHub pull requests with improvements and fixes to the documentation or the source code examples are always welcome.

ANAVI Gardening uHAT: Shipping Soon

At the beginning of January all ANAVI Gardening uHAT kits were shipped to the Crowd Supply warehouse. We are happy we managed to do it ahead of schedule. Even Tux, the mascot of the Linux kernel, helped out with the transportation.

In the coming weeks, the crowdfundng orders will be prepared for shipment to backers. A tracking number when the order ships.

ANAVI Gardening uHAT
ANAVI Gardening uHAT

Thanks for your patience and support for this open source hardware project! We hope you will enjoy and have a lot of fun with ANAVI Gardening uHAT!