cchs-melbourne / iotuz-esp32-hardware Goto Github PK
View Code? Open in Web Editor NEWProject for the InternetOfTuz (LCA2017 Open Hardware Mini-Conference)
License: Other
Project for the InternetOfTuz (LCA2017 Open Hardware Mini-Conference)
License: Other
Reset button might be unreliable.
Might be made more reliable by shorting R13 (470R) on input to switch. Testing needed.
Looking at the top right of the first page of https://github.com/CCHS-Melbourne/iotuz-esp32-hardware/raw/master/Circuit/Resources/IoTuz-Schematic.pdf (took me a while to locate them :) ), they do not seem to have any cap.
https://learn.adafruit.com/adafruit-neopixel-uberguide/individual-neopixels says
"It’s very strongly recommended that each NeoPixel have an accompanying 0.1 μF capacitor between +V and ground. This prevents communication problems due to brownout of the on-pixel driver logic. It’s occasionally sufficient to have one capacitor between pairs of pixels; some of our NeoPixel rings work that way."
Is that an issue for the design in this board?
More generally has anyone managed to talk to them with the neopixel library?
So far I have
#include "Adafruit_NeoPixel.h"
#define RGB_LED_PIN 23
#define NUMPIXELS 2
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, RGB_LED_PIN, NEO_GRB + NEO_KHZ800);
pixels.begin();
pixels.setPixelColor(0, pixels.Color(255, 0, 0));
pixels.setPixelColor(1, pixels.Color(0, 255, 0));
pixels.show();
And nothing happens.
I've also noticed that sometimes (rarely) when you boot/power the board, the LEDs come with a different color, meaning that noise comes to them and get taken as a command.
Forgot this exceptionally crucial little modification for v1.0. Use a 12k pull-up on EN pin 3.
Along with instructions, GitHub URL, etc.
To my hands the B & A buttons are too close to the edge. They are about the right height. Suggest move left 5mm and down maybe slightly.
Like #18, SENSOR_VP cannot be used as GPIO, only as input (untested).
Not sure why just yet.
Move 100uF decoupling SMD close to ESP32, place 220-440uF additional C on 3v3 line.
Should solve occasional brown-out issues.
Make sure to put keepouts on the MP THs, especially to keep off pours underneath screw heads.
The existing alligator connector has some empty pins and some pin assignments that don't make sense.
Redesign it so that all pins are in use and so that there are more "large" pins available.
Test & maybe swap IO15 from rotary encoder A to where IO26 is now - 1/10 battery level should effectively pull IO15 low to disable boot-debugging on UART TXD.
A 30 degree bevel on the alligator connector would help if a board connector was ever made. This would be handy for mass-production test jig if ever the project got to that level.
Make sure this is the case and specify no component replacement for this item in future.
Power LED blinks out, indicating temporary short to ground. Does not occur with button press.
For speaker (just fits).
For rotary encoder (doesn't fit signal pins)
APA106 (increase spacing)
Designators on all components need to be on the top overlay.
Put it back.
Add logos, text
Under ADXL should be keepout.
@rdpowers, the back of the board mentions: 0x20 and 0x40
The spec sheet seems to imply (from what I read) that if 0x20 is the write port, 0x21 is the read port, and yet the version we have seem to work with a single I/O port, or at least does not have 2 IO ports that I was able to find from any scan or anything else.
Assuming that indeed that expander only has a single IO port, the other one should be removed from the back of the board
If this is going to continue to be on the board, we need to add attribution on board for Tania.
It's also been proposed to be removed to make LCA-exclusive boards.
Cutout isn't perfectly clean around arcs for v1.0. Need to talk with production house about that in further runs.
Hasn't seemed to be a problem, but better practice can be found.
Version 1.0 has incorrect pinout for microphone.
Increase the distance between screen and joystick.
On top and bottom overlay where possible.
It is currently .1W
Pull-up on IO2 (R10) to rotary encoder prevents auto-reset to UART programming. Move off of IO2 to IO19.
To fit over the alligator connectors.
Not strictly necessary as internal pull-ups suffice for operation, but might be the more technically correct arrangement.
Somewhere, and having 8- and 7-bit addresses would be handy.
Some other implementations have in-line resistors for impedance matching. Not sure if this is an issue or not, but worth placing some 0-ohms in next revision for testing if i2s has problems.
hanging it over the edge, but it ruins the nice clean lines....
Is missing.
We can't use VDET2 (GPIO35) or VDET1 (GPIO34) as outputs. They can function as inputs in normal operation though (tested). GPIO35 is currently wired as output for LCD_CS.
From:
http://www.esp32.com/viewtopic.php?t=187
Well, they belong to the RTC power domain, which means that the devices that fall under the RTC can control them. It means e.g. that they can be used as ADC pins and that the ULP coprocessor can read them. Apart from that, they can also be used as normal GPIOs and when the CPU is on, they can be routed as inputs to most peripherals over the GPIO mux. They can't be outputs though, input only.
Overlay should have a mod box. Possibly QC box as well.
Current value of 4k7 might not be optimal. Timing issues being investigated.
Minor oversight in pinout of joystick. X pins are Y pins and Y pins are X pins.
I've compiled graphicstest.ino and it fails to build
/home/merlin/Arduino/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp: In member function 'void Adafruit_ILI9341::spiwrite(uint8_t)':
/home/merlin/Arduino/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp:113:3: error: 'mosiport' was not declared in this scope
*mosiport |= mosipinmask;
^
In Adafruit_ILI9341.cpp:96, I added a single define to select the correct code, and then everything works:
#define ESP8266
#if defined(ESP8266) || defined (ARDUINO_ARCH_ARC32)
I used the arduino installer for the lib and installed lib 1.0.1 and it didn't work until I patched it.
Not sure if the board file for ESP32 is supposed to define ESP8266 or if the adafruit lib is supposed to detect a #define ESP32
U201, R23, R24 weren't on the assembly BOM for v1.0.
Someone changed the schematic pinout in the library. Pins 5 & 6 got swapped and now perform the wrong function as v1.0 schematic has them wired. This is why you never use someone else's parts library.
Not sure if that's the correct title - I mean that the board won't turn on (screen remains off) if I plug the board into a USB charger with no battery inserted.
Plugging it into a PC or laptop works fine
USB connector can be moved slightly closer to edge to overhang properly. As is, it sits on the lip a little and could cause production issues.
It says
Touch_CS P5
Touch_IRQ P6
If I follow https://github.com/CCHS-Melbourne/iotuz-esp32-hardware/raw/master/Circuit/Resources/IoTuz-Schematic.pdf those two pins are assigned the other way around
Can anything be done in software to initiate reboot and code run after programming finishes? At current, reset is required after programming.
The iotuz board as delivered at LCA is missing the mic and I asked for some documentation on how to hack it on and was told to submit an issue and this is that issue.
Although I don't normally approve of binary files in version control, having a pdf of the circuit schematic improves the readability of the project.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.