Week Review 10/13/2023

PBS Nova Interview

Matty Harris, Zach Bertocchi, Noah Gibson and I had an interview with PBS Nova. Similarly to the other interviews that we did it was very fun to get to look behind the scenes of how the news is made. The people at Nova were great to work with. They let us take the interview in the direction we were interested in, and did not try to spin the narrative at all.

They were not able to tell us exactly when our segment was going to become available, but they think it will come out sometime in November.

Working on Float Code

Working with WiFi on the Adafruit QT Py ESP32-S2 was very simple. It has been very reliable and I have generally been satisfied with it. I have had trouble working with the GPIO on the board. The SEEED Boards use a special version of MicroPython that when I flash on it I cannot get an output out of. I think this special version of MicroPython is designed to enable to unconventional pinout of this board.

image of board

Because there are so few GPIO pins they are all extremely multifunctional. This would explain why the default Expressif firmware works for communication but not for the GPIO pins.


I have been trying to flash the special version of MicroPython since I realized this might be the cause of the issue. I could not get it to work in Thonny, so I tried to use raw esptool through the command line. When this did not work I used a live Linux USB to try using both Thonny and esptool on Linux.

pinout for SEEED Xiao

After testing those different methods of flashing firmware on the board I am reasonably certain that the issue with either with the board or firmware, not the flashing process.

Looking through the SEEED Xiao’s documentation I found a pinout table.

Pin GPIO Xiao Pin Name IRQ ADC
2 PA02 0 2 0
4 PA04 1 4
10 PA10 2 10 18
11 PA11 3 11 19
8 PA08 4 * 16
9 PA09 5 9 17
40 PB082 6 8 2
41 PB09 7 9 3
7 PA07 8 7 7
5 PA05 9 5 5
6 PA06 10 6 6
18 PA18 RX_LED 2 *
30 PA30 SWCLK 10 *
31 PA31 SWDIO 11 *
19 PA19 TX_LED 3 *

I checked the pins in the pinout table associated with each number using a multimeter, and did not have any luck. Just to be safe I set a pin to change from high to low every second, then checked every pin on the board with a multimeter. I could not find any pin with a changing value.

I am planning on testing weather I can get the GPIO working on the board using the Arduino IDE. Arduino likely gets more development time at the company making the board, so it would make sense for that to work more reliably.

Contingency Plan

If I cannot get the GPIO working with the Arduino IDE I plan on using a breakout board that can do WiFi with a mainline Arduino. Although it is likely possible for the board QT Py to work, I think the time might be better spent elsewhere.

We already have functioning breakouts in the shop so it would not be wasting any money to try them out.