I recently participated in a few livestreams (Crowd Supply Teardown #16, Hackster Cafe and BlitzCityDIY) leading up to the launch, so I wanted to take a dive deep into a few of the questions that were asked during those streams.
Q: Thoughts on integration with Home Assistant or ESPHOME?
We would love to build integrations to Home Assistant, ESPHOME, and other open-source and commerical home integration platforms. But, we don’t have the manpower to fully replicate our firmware for each platform; our plan is to build a library of examples that the community can use as "building blocks".
Our hope is that Matter (the new industry standard being adopted by most home automation platforms) will accelerate our ability to build those code examples. Matter is targeted for release in mid 2022, so maybe we’ll have an example or two ready by the time Newt ships to backers.
Q: Does Newt use the ESP32-S2 ULP to send a 1 Hz signal to the VCOM pin of the Sharp Memory Display?
First, let’s provide some context before answering this question.
ESP32-S2 Technical Reference Manual - ULP Diagram
ULP stands for Ultra Low Processor. The ESP32-S2 comes with two processors: the "main" processor (a Xtensa single-core, 32-bit LX7 processor that controls all the main board functions) and a ULP (Ultra Low Power) processor. From the Espressif documentation: The ULP (Ultra Low Power) coprocessor is a simple FSM (Finite State Machine) which is designed to perform measurements using the ADC, temperature sensor, and external I2C sensors, while the main processors are in deep sleep mode.
1HZ and VCOM: The Sharp Memory Diplay requires a 1-60 Hz refresh rate to display content. This can be accomplished via software (using
display.refresh()) or hardware (via the VCOM pin on the Sharp Display).
Most microcontrollers do not have a ULP; therefore hardware refreshes are preferred. It’s one less thing for the microcontroller to do and allows the microcontroller to stay in deep sleep longer. On the Newt, we use a real time clock (RV-3028) to generate a 1 Hz refresh.
We could have used the ULP on the ESP32-S2 to perform the display refresh, however, we opted against that choice for simplicity of use. Programming the ULP is very tricky - impossible to do in CircuitPython and very difficult in Arduino. We wanted to make the Newt easy for both experienced makers and new hobbyists to use.
Q: How do you plan to test Newt?
Newt has debugging and programming pads on the back. We’ll use these to test the following features:
We’ll most likely use a Raspberry Pi for testing and programming. The goal is for the PCB assembly manufacturer to test the boards after assembly (in order to handle rework). I’ll do a spot check on 20% of the boards prior to sending to Crowd Supply for final distribution.
One final note: It’s been just under a week since our launch, and we’re already at 60% of target. Woohoo! Thanks to everyone for your support.