Conversation
|
I took the switch circuit from the ephys test board without thinking enough about it, my bad |
- Went to 4 layers - Simplified GPIO interface and remove power connections since they are a recipe for disaster - Independent SPI busses to each stimulator to allow simultaneous control
|
From filcarv:
|
This button can be held while power cycling the rp mcu in order to enter the bootloader |
|
I addressed filcarv's feedback. Below are some notes on that feedback.
We've decided not to do this on stimjim revB.
I updated PCB from schematic. Even immediately after doing so, you'll probably get a bunch of lines with the designators of the parts that KiCAD is going to attempt to update. You can try again and see if the same thing occurs. Everything else in the ten points provided were changed. Here are the new panels btw:
Btw, the BNC PN is different but the old ones should still fit in the panel cutout. |
|
@filcarv With respect to point 4, the decoupling serves no purpose. This is because the Shield and ground or shorted inside the cable itself. So, if anything, the FED3's connection should be updated.
|
|
jon said remove "rev. B" from the PCB panels. Those aren't rev. B, the inner PCB is. |
I think to make changes minimal, I suggest simply marking the terminal block as DNP, removing it from the panel, and providing the above adapter with the device instead.
https://www.mouser.com/ProductDetail/PEM/SMTRAM3-7-5ET?qs=l4Gc20tDgJIyk%252Bzis07rYw%3D%3D |
- Mark parellel push terminals as DNP and remove openings from front panel - Update panel designs - Add M3 mouting block for electrically connecting panel and case to PCB
They were like 0.15mm misaligned on the y-axis
- Sent to fab - Lots of manufacturability changes - BOM consolidation - Repo layout changed a bit to remove redundant information. e.g. datasheet links are embedded in schematic. BOM information embedded in schematic. etc
|
This is now in production. Since this device is already distributed, I would suggest we don't merge this PR until the hardware has been verified and firmware has to be created to support it. I did create a release targeting f08c5cb since this version of the hardware will exist internally |
- I would rather not put them on the same PCB separated by v-cuts or mouse bites since the milling quality matters for panels
|
Use black enclosure instead of silver |
|
And look at #7. |
|
Panels:
|
- Fix and move LED footprints - Move bar code sticker - Add op-amp unity voltage follower to ADC input - Remove screw terminals - Made panel screw holes bigger both panels (3.2mm -> 3.7mm) for 3.4mm screws - Create cutout for mounting rail on panels - Delete the file with both back and front panels - Update all footprints (except rp2354b so that its thermal vias pass DRC) - Add component class and custom rule for USB-C footprint - Indicate M3 screw in schematic + Add to BOM - Improve adherence to ADC/DAC datasheets: - Move high speed signals out from under ADC (put MISO in +5V layer under ADC) - Add 10uF decoupling caps to ADC/DAC - Change enclosure part number to black enclosure - Add some more GND vias to isolated GND planes
|
This is my attempt to fix most the problems with rev B (with verbal feedback from @jonnew as well as my own comments), but the following items remain:
|
|
The firmware contained in #6 provides enough proof-of-concept to help verify stimjim rev c before ordering it. I think there are basically three things that need to be true: the rp-stimijim must send accurate pulse trains (i.e. meeting pulse timing constraints and amplitude accuracy), and remove the ADC ripple. stimjim paper for reference. Accuracy of pulse timingsThe stimjim paper specifies 20us stage duration. Also:
The 20us pulse timing constraint and the IPI/PW standard deviations specification are both met in the screenshot below and can be further improved with changes to the firmware: Accuracy of voltage/current output and measurement
In the far extremes of +/-10V range, the error that I measured exceed the error specified in the paper. The following screenshots show data and a plot of the error across the entire range of the stimjim. Each screenshot contains two error measurements:
These measurements were taken by connecting the BNC output of channel 0 to an oscope input. The measurements for the second and third screenshots also include a 3k Ohm resistor between ch0's positive and negative terminals. Channel 0 has a bodged op-amp which serves as a unity voltage follower to reduce the ADC ripple (as discussed in the next section). For each row of the table, I used the "V" command followed by an "E" command to set the output of the channel and to measure the output of the channel respectively. I also recorded an averaged value from oscope. Voltage measurements, no load besides the 1MOhm oscope input impedance. Voltage measurements, 3k Ohm load Current measurements, 3k Ohm load here's a link to the data that produced the above screenshots. ADC RippleThere is already a report for this in #7. d1b0eda implements the op-amp unity buffer mentioned as described in that issue. |






















From this first commit, some parts might need to be rotated in the CPL file. JLCPCB was displaying many parts with incorrect orientation in their representation of parts populated on the PCB.
fix #2