MVM-VC
Jump to navigation
Jump to search
Links
- https://edev-group.triumf.ca/hw/ventilator-controller/rev0 - TRIUMF altium project
- https://edev-group.triumf.ca/hw/ventilator-controller/rev0/-/blob/master/Altium/COVID19%20-%20Ventilator/Project%20Outputs/Schematic%20PDF/COVID19%20-%20Ventilator%20Control%20SCHEMATIC.pdf - board schematics
- https://edev-group.triumf.ca/hw/ventilator-controller/rev0/-/blob/master/Altium/COVID19%20-%20Ventilator/Project%20Outputs/Board%20PDF/COVID19%20-%20Ventilator%20Control%20BOARD.PDF - board layout
- https://gitlab.triumf.ca/mvmdev - TRIUMF git repository
- https://github.com/NuclearInstruments/MVMFirmware - Milano git repository
- https://github.com/MVMSoftware/gui - GUI git repository
- ESP32 - ESP32 information: adafruit HUZZA32 and ESP-WROOM32 modules
General information
- external power supply: 24 VDC screw terminals
- regulated down to 5V USB power (+5V_USB) which is
- regulated down to 3.3V (+3V_CPU)
- 4 channels of relay drivers
- 2 screw terminals (CPU_BUZZ/BUZZ and CPU_AUX/AUX1)
- 2 screw terminals (CPU_LED1/AUX2 and CPU_LED2/AUX3)
- connection for "featherwing 2.4in" display
- 7 screw terminals for I2C (I2C 0..6)
- 1 screw terminal for SPI (EXT_SPI_CS0)
- 1 pressure sensor
- 3 sites for microcontroller (only 1 at a time): Adafruit HUZZA32, NanoPi, RaspberryPi
Switches and Jumpers
- JMP3/JMP4 - select +3V_CPU from our regulator or from ESP32 internal regulator
- SW1/SW2/SW3/SW4 - select I2C power +3V_CPU or +5V_USB
- JMP1_DRV1/JMP2_DRV1 (DRV1..DRV4) - select relay driver
Test plan
Done:
- ESP32 I2C communication with pressure sensor (standalone): [done BS 2020apr2].
Pending:
- board powered 24V: date done [...]
- ESP32 runs date done [...]
- RaspberryPi runs date done [...]
- NanoPi runs date done [...]
- control and readback of relays: ESP32 [...], RPi [...], NanoPi [...]
- SPI communication: ESP32 [...], RPi [...], NanoPi [...]
- I2C communication: ESP32 [...], RPi [...], NanoPi [...]
- Pressure sensor readout (I2C): ESP32 [...], RPi [...], NanoPi [...]
- external I2C: ESP32 [...], RPi [...], NanoPi [...]
- BUZZ, AUX1, AUX2, AUX3: ESP32 [...], RPi [...], NanoPi [...]
- featherwing display: ESP32 [...], RPi [...], NanoPi [...]
- flow meter readout (TBD)
- proportional valve control and monitor (TBD)
System configurations permitted by hardware
- "Italian model": MVM-VC = ESP32 ---- usb-serial ---- RPi3 = GUI ---- wifi or cat5 or SD/USB flash for data collection
- "one ESP32": MVM-VC = ESP32 = small LCD = mini-GUI ---- wifi for data collection (no cat5, no SDflash)
- "one Pi": MVM-VC = RPi = GUI ---- wifi or cat5 or SD/USB flash for data collection
- "two Pi": MVM-VC = RPi/NanoPi ---- cat5 ---- RPi = GUI ---- wifi or SD/USB flash for data collection
- "three Pi": MVM-VC = RPi/NanoPi (control) ---???--- RPi = GUI (local control) ---???--- RPi = GUI (remote control)
- "2.5 Pi": MVM-VC = ESP32 --- usb-serial --- RPi = GUI (local control) ---- cat5 ---- RPi = GUI (remote control)
RPi3/4 connections
AAA
NanoPi connections
AAA
ESP32 connections
- ESP32 power: per https://learn.adafruit.com/adafruit-huzzah32-esp32-feather/power-management, last "not recommended" option: "Connect an external 5V power supply to the USB and GND pins"
- Pinouts Rev 2020mar31
ESP32 - WROOM32 - HUZZA32 - header - baseboard - function "bottom row" GPIO21 - IO21 - 21 - JP1-1 - A1 - CPU SPI CS (SPI) U0TXD - TXD0 - TX/17 - JP1-2 - A2 - FTHR CPU TX - N/C U0RXD - RXD0 - RX/16 - JP1-3 - A3 - FTHR CPU RX - N/C GPIO19 - IO19 - MISO/19 - JP1-4 - A4 - CPU MISO (SPI) GPIO18 - IO18 - MOSI/18 - JP1-5 - A5 - CPU MOSI (SPI) GPIO5 - IO5 - SCK/5 - JP1-6 - A6 - CPU SCK (SPI) GPIO4 - IO4/A2_0 - ADC2/A5/4 - JP1-7 - A7 - CPU DRV STAT4 SENSOR_VP C16/270pF - IO36/SEN_VP/A1_0 - ADC1/A4/36 - JP1-8 - A8 - CPU DRV STAT3 SENSOR_VN C17/270pF - IO39/SEN_VN/A1_3 - "input only" ADC1/A3/39 - JP1-9 - A9 - CPU DRV STAT2 VDET_1 - I34/A1_6 - "input only" ADC1/A2/34 - JP1-10 - A10 - CPU DRV STAT1 GPIO25 - IO25/DAC1/A2_8 - ADC2/A1/DAC1/25 - JP1-11 - A11 - N/C GPIO26 - IO26/DAC2/A2_9 - ADC2/A0/DAC2/26 - JP1-12 - A12 - CPU BUZZ none - none - GND - JP1-13 - A13 - GND none - none - NC - JP1-14 - A14 - N/C none - none - "3V" - JP1-15 - A15 - "+3V_CPU2" none - none - RST - JP1-16 - A16 - CPU RESET - N/C "top row" none - none - BAT - JP3-1 - B1 - N/C none - none - EN - JP3-2 - B2 - N/C none - none - USB - JP3-3 - B3 - "+5V_USB" MTCK - IO13/A2_4 - "red LED" ADC2/13/A12 - JP3-4 - B4 - CPU_LED1 MTDI - IO12/A2_5 - "internal pulldown, output only" ADC2/12/A11 - JP3-5 - B5 - CPU_LED2 GPIO27 - IO27/A2_7 - ADC2/27/A10 - JP3-6 - B6 - CPU DRV CH1 32K_XN - IO33/A1_5/X32N - ADC1/33/A9 - JP3-7 - B7 - CPU DRV CH2 MTDO - IO15/A2_3 - ADC2/15/A8 - JP3-8 - B8 - CPU DRV CH3 32K_XP - IO32/A1_4/X32P - ADC1/32/A7 - JP3-9 - B9 - CPU DRV CH4 MTMS - IO14/A2_6 - ADC2/14/A6 - JP3-10 - B10 - CPU DRV RSTn (output board reset) GPIO22 - IO22 - SCL/22 - JP3-11 - B11 - CPU SCL (I2C) GPIO23 - IO23 - SDA/23 - JP3-12 - B12 - CPU SDA (I2C) not on header, internally connected on HUZZA32: VDET_2 - I35/A1_7 - ADC1/35/A13 - N/C - VBAT voltmeter (through divider) not clear what function: GPIO0 - IO0/A2_1 - GPIO0 - serial RTS GPIO2 - IO2/A2_2 - GPIO2 - serial DTR (looks like mistake on schematic) GPIO16 - IO16 - IO16 - not connected? GPIO17 - IO17 - IO17 - not connected? CHIP_PU - EN - RESET - push button WROOM32 flash memory connection ("U3"): SD_DATA_2 - SD2 - n/c SD_DATA_3 - SD3 - n/c SD_CMD - CMD - n/c SD_CLK - CLK - n/c SD_DATA_0 - SD0 - n/c SD_DATA_1 - SD1 - n/c