simon-jouet / ESP32Controller

ESP32-based 3D printer controller
120 stars 29 forks source link

Request for BOM #3

Closed vivian-ng closed 5 years ago

vivian-ng commented 5 years ago

Hi, do you have a BOM? I am trying to figure out what are the specifications of the inductor, mosfets, microSD card shield, diodes, transistors, etc. that you are using in your design.

simon-jouet commented 5 years ago

Hi @vivian-ng, I've seen some of your messages, sorry for not getting back to you the last few months have been very hectic and I had very little time to dedicate to this. I don't have a proper BOM list yet but I have records of everything i've used.

The rest should be just normal 805 or 603 passives so pretty much anything will do. If you are putting your own boards together would be great if you could keep a BOM on your end as well might be good to have that on the git at some point

vivian-ng commented 5 years ago

@simon-jouet Thank you for giving the links! This will really help me in sourcing for the items.

lkvapil commented 5 years ago

Hi,

could you share your BOM @vivian-ng ?

Thank you Lukas

simon-jouet commented 5 years ago

Guys if you are building one of those boards you can now ignore the ADS1015 and C16. I've figured out a way to get good temp measurements directly from the ADC on board of the ESP32 (especially if you use a revision 1).

I wanted to get rid of the ADS1015 anyway, it's not super cheap and it's a pain to solder (at least the ones I got, half of them didn't work) + we need custom support in marlin.

If you just want to get started with the ESP32 you can also ignore the GPIO expander + supporting circuitry for now. I still haven't added the support in marlin for that (but I will - this gpio expander is very nice, just a bit of a PITA to solder).

Would be great if you could get your own boards - I've been printing with mine for about 50 hours (maybe more considering the number of calibration cubes i've printed). I will try to work on marlin in the coming weeks to add support for some stuff ("eeprom", adc improvements, servo?), once the software is more mature and based on the feedbacks let's design a R2

vivian-ng commented 5 years ago

@simon-jouet Thanks for the update! I am in the process of putting together a minimalist ESP32 board based on your design, without the GPIO expanders and such as they are not supported in Marlin. Just 4 motors, 1 hotend, 1 print fan, 1 heatbed. Have you tried @luc-github ESP3D-adapted branch on his Marlin fork? I think it is quite promising for a bare minimal ESP32, since it allows the ESP32 to be controlled via WiFi, given that it doesn't have enough pins to support an LCD controller. Of course, I am going to break out the TX/RX pins so someone with a MKS TFT can easily use it. But ESP32 running on a ESP3D-enabled Marlin firmware just sounds cool. Meanwhile, while designing the minimalist board, I am waiting for the mosfets to arrive (ordered on Aliexpress) so that I can try a jury-rigged setup.

For EEPROM support... that was one of the things that I realized too when I compiled @luc-github fork. This article has a link to an Arduino library for emulating EEPROM on ESP32.

luc-github commented 5 years ago

I think EEPROM no need to be added there is a space on flash of 4KB for such purpose and as now ESP3D for Marlin use nvs partition instead of EEPROM partition to store settings, this space is fully free

vivian-ng commented 5 years ago

@luc-github Yes that is basically why I pointed out that article. Arduino Core already has libraries to use ESP32's flash memory as "EEPROM" and this article has an improved version of such a library which I think can be considered for use by any who wants to add "EEPROM" support for ESP32. I was scanning through Marlin and I think the EEPROM-related code is all in one file inside the HAL subdirectory of the respective platforms.

simon-jouet commented 5 years ago

For the screen you could use an ssd1306 oled screen I think I tried at some point and it works, I might give it another shot though. Still it doesn't really solve the extra pins necessary if you want a rotary encoder or you might just make it with no pins to spare. My current setup is very similar to yours just a prusa i3 clone with 5steppers (2 for z in parallel) and the usual hotend, part cooling fan and heatbed with an inductive probe.Just a word of caution with your setup, it's what I did at the beginning but make sure you have a clean ground between all the components and try to plug everything (USB host + psu) on the same socket or you might have ground loops.

For the EEPROM emulation, called PersistentStore in marlin, I'm not sure yet if I want to use nvs or spiffs. The marlin api is much more similar to a file seek+write than the blob of nvs and I would rather not use too many write cycles of the flash, anyway I will have a look at that soon.

lkvapil commented 5 years ago

Hi @simon-jouet,

are you still developing new version or it's in the states, that everything is working ?

Thank you

simon-jouet commented 5 years ago

Hi @lkvapil,

Yeah I will probably make a second revision of the board at some point, but at the moment it does enough to port Marlin and things might change depending on what can and can't be done in software, so I'm not rushing for a new hardware revision and instead spend some time on the software (even though time has been very limited recently)

At the moment the board and Marlin works well enough to print (it's has been the fulltime board on one of my printers for about 6 months) but there are a lot of features that needs to be implemented and tested. I was hoping to have some people helping with the Marlin HAL but it seems that a lot of people have been focusing on STM32 boards instead (not too sure why, I think the ESP32 is superior in many ways although the number of IOs is a bit of an issue). Anyway, if you want to test the ESP32 for printing either get the current board and it will work or do a makeshift one like @vivian-ng and that should work too.

I'm also open to feedback on the second revision of the board (there is another issue about that). I really like the big 7.68mm connectors I used for power and mosfets because they deal with the high current without issues and you can use crimps which makes everything much nicer. Not sure everybody likes it though. I want to change the fuses to something smaller either micro automotive fuses or go for the 1208 SMD fuses (but then it's hard to swap)... One of the "main" block for a second revision right now is to get the GPIO expander to play ball with Marlin which might change some of the GPIOs allocation and therefore would need another revision of the board. I don't think it's that bad to do, just didn't really had time to work on that

vivian-ng commented 5 years ago

@simon-jouet Just an update. I put together a Morpheus board and used that to test out the Marlin branch which @luc-github is working on. One thing I realized was the Morpheus board did not have a pull-up resistor for MOTOR_ENABLE, which caused the motors to spin when the ESP32 starts up.

Anyway, I am designing a basic ESP32 printer board (no GPIO extender, etc.) based on the Morpheus design, this ESP32Controller, and RAMPS (plus a few other 32-bit boards with schematics found online). Once the design has been confirmed to be working, I will share it on Github.

vivian-ng commented 5 years ago

@simon-jouet @luc-github The schematic for my ESP32-based board is now on Github. This is the first version which I feel comfortable with sharing, looking forward to feedback.

v0.1 was a total failure. Don't ask. v0.2 didn't have the pull-up on MOTOR_ENABLE, and uses the 7.62mm pitch terminals given by @simon-jouet above. But I find them taking up too much space, so I went with 5.08mm pitch terminals like those found on MKS boards (which I own, and have no issues so far with the terminals) for v0.3.

v0.3:

Any feedback is welcome so that I can make the necessary changes before sending this for a test fabrication.

misan commented 5 years ago

Having 24V available, why don't you use it too for powering the motor drivers? You would get more torque at faster speeds, which is good.

On Mon, Dec 10, 2018 at 6:31 AM vivian-ng notifications@github.com wrote:

@simon-jouet https://github.com/simon-jouet @luc-github https://github.com/luc-github The schematic for my ESP32-based board https://github.com/vivian-ng/Hardware/blob/master/MRR_ESP_3DP/Schematic_MRR_ESP_3DP_v0.3.pdf is now on Github. This is the first version which I feel comfortable with sharing, looking forward to feedback.

v0.1 was a total failure. Don't ask. v0.2 didn't have the pull-up on MOTOR_ENABLE, and uses the 7.62mm pitch terminals given by @simon-jouet https://github.com/simon-jouet above. But I find them taking up too much space, so I went with 5.08mm pitch terminals like those found on MKS boards (which I own, and have no issues so far with the terminals) for v0.3.

v0.3:

  • Basic, just ESP32 with a CH340 so that it can be accessed via USB.
  • 5.08mm pitch terminals
  • Pull-up on MOTOR_ENABLE
  • AUX1 connector, in case anyone wants to connect to a MKS TFT, since there simply aren't enough pins for a Reprap LCD or any other type of controller using a rotary encoder.
  • Design consideration is to fit this within 100mm by 100mm (currently, I am working on the PCB layout) so that people can take advantage of cheap PCB production (there is a site which offers 10 PCBs at $2 if the size is within 100mm by 100mm).
  • TODO: rename all "+12V" to "VIN" and "+24V" to "VBED" which to me is largely cosmetic, but probably an important detail to real PCB designers.

Any feedback is welcome so that I can make the necessary changes before sending this for a test fabrication.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/simon-jouet/ESP32Controller/issues/3#issuecomment-445692929, or mute the thread https://github.com/notifications/unsubscribe-auth/AAccyIbwAUdyxzPToFoslZIg0HmbCAyzks5u3fG7gaJpZM4YNGWa .

vivian-ng commented 5 years ago

@misan

Having 24V available, why don't you use it too for powering the motor drivers? You would get more torque at faster speeds, which is good.

Which is why I think a professional PCB designer will likely say my naming conventional is very poorly done. I used "+12V" and "+24V" to differentiate between two inputs, both of which can be 12V to 24V.

The way to read "+12V" is "12V to 24V". The way to read "+24V" is also "12V to 24V", just connected to another part of the circuit.

I really need to get around to renaming it.

That said, I am also a bit uncertain about how much power the stepper drivers and motors will draw. The terminal for the heat bed is going to be passing a lot of current, and one of the reasons why I didn't connect VMOT to the "+24V" rail is because I don't want too much current through that terminal.

misan commented 5 years ago

Consider each motor can draw around 1A.

El lun., 10 dic. 2018 9:43, vivian-ng notifications@github.com escribió:

@misan https://github.com/misan

Having 24V available, why don't you use it too for powering the motor drivers? You would get more torque at faster speeds, which is good.

Which is why I think a professional PCB designer will likely say my naming conventional is very poorly done. I used "+12V" and "+24V" to differentiate between two inputs, both of which can be 12V to 24V.

The way to read "+12V" is "12V to 24V". The way to read "+24V" is also "12V to 24V", just connected to another part of the circuit.

I really need to get around to renaming it.

That said, I am also a bit uncertain about how much power the stepper drivers and motors will draw. The terminal for the heat bed is going to be passing a lot of current, and one of the reasons why I didn't connect VMOT to the "+24V" rail is because I don't want too much current through that terminal.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/simon-jouet/ESP32Controller/issues/3#issuecomment-445734706, or mute the thread https://github.com/notifications/unsubscribe-auth/AAccyG8R_hz6C9aHlg6nM8bDsAiu82Uuks5u3h6hgaJpZM4YNGWa .

vivian-ng commented 5 years ago

I have changed the inputs to VIN and VBED instead of +12V and +24V, plus added a prelim PCB design. Uploaded here. All feedback welcome. Will be sending this for fabrication soon, so that I can give it a test.

Also, I created a thread on the repo itself for further discussion on my board, so that I don't hijack this repo, which is for Simon's board.

simon-jouet commented 5 years ago

closing this, the BOM is now in #8 and you have the thread on your repo