Giter Club home page Giter Club logo

iotuz-esp32-hardware's People

Contributors

firnsy avatar jonoxer avatar mage0r avatar marcmerlin avatar projectgus avatar rdpowers avatar thaytan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iotuz-esp32-hardware's Issues

Reset Button

Reset button might be unreliable.

Might be made more reliable by shorting R13 (470R) on input to switch. Testing needed.

Are APA106 LEDs missing recommended cap? Has anyone gotten them to work?

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.

EN needs pullup.

Forgot this exceptionally crucial little modification for v1.0. Use a 12k pull-up on EN pin 3.

Move buttons B & A

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.

Bulk Caps

Move 100uF decoupling SMD close to ESP32, place 220-440uF additional C on 3v3 line.

Should solve occasional brown-out issues.

Change pins on alligator connector

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.

IO15 Strapping

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.

Bevel alligator connector

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.

Bigger drills

For speaker (just fits).
For rotary encoder (doesn't fit signal pins)
APA106 (increase spacing)

Designators

Designators on all components need to be on the top overlay.

io expander is listed as having 2 IO ports on the back of the board

@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

Tuz logo attribution/removal

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

Cutout isn't perfectly clean around arcs for v1.0. Need to talk with production house about that in further runs.

Move Joystick

Increase the distance between screen and joystick.

IO2 Strapping

Pull-up on IO2 (R10) to rotary encoder prevents auto-reset to UART programming. Move off of IO2 to IO19.

Pull-up On IO0?

Not strictly necessary as internal pull-ups suffice for operation, but might be the more technically correct arrangement.

i2s Impedance Matching?

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.

Recess IR LED

hanging it over the edge, but it ruins the nice clean lines....

GPIO35 is not GPIO

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.

Mod box, QC

Overlay should have a mod box. Possibly QC box as well.

i2c Pull-up Values

Current value of 4k7 might not be optimal. Timing issues being investigated.

Adafruit_ILI9341.cpp doesn't work without patch

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

MCP6002 Pinout Wrrrrrong.

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.

Board doesn't turn on with power-only USB

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

Overhang on USB

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.

Reset after programming

Can anything be done in software to initiate reboot and code run after programming finishes? At current, reset is required after programming.

Missing Mic

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.

PDF of schematic

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.