Squashed commit of the following:

commit 95c9eb09fb95bb65e6d8836f908ff551fd66b4a8
Author: Tom <thomas.hodson@ecmwf.int>
Date:   Fri Apr 4 22:48:31 2025 +0100

    New post
This commit is contained in:
Tom 2025-04-04 22:48:59 +01:00
parent f4c5314f7c
commit 4b473c4bf3
10 changed files with 287 additions and 27 deletions

@ -0,0 +1,44 @@
---
title: RARA Elegoo Printer Notes
layout: post
excerpt: Notes for the 3D printer at my co-working space.
exclude_from_rss: true
assets: /assets/blog/rara-elegoo-printer-notes
thumbnail: /assets/blog/rara-elegoo-printer-notes/thumbnail.jpg
social_image: /assets/blog/rara-elegoo-printer-notes/thumbnail.jpg
alt: A photo of the main circuit board in this 3D printer.
---
---
| Printer | Elegoo Neptune 2 |
| Control Board | ZNP Robin Nano V1.3 [Schematic of similar board](https://github.com/makerbase-mks/MKS-Robin-Nano-V1.X/blob/master/hardware/MKS%20Robin%20Nano%20V1.3_002/MKS%20Robin%20Nano%20V1.3_002%20SCH.pdf) |
| Microcontroller | STM32F407VET6 |
| Extruder / Hotend combo | [BIQU H2V2](https://biqu.equipment/products/biqu-h2-v2-0-extruder) |
| Original Firmware | [ZNP-Robin-Nano-V1.2-V1.3](https://github.com/NARUTOfzr/ZNP-Robin-Nano-V1.2-V1.3/tree/master/ZNP_Robin_Nano_V1.2%20Firmware) |
| Current Firmware | [Original Board Firmware](https://github.com/NARUTOfzr/ZNP-Robin-Nano-V1.2-V1.3/tree/master/ZNP_Robin_Nano_V1.2%20Firmware)
| Z Probe | [BLTouch](https://www.antclabs.com/_files/ugd/f5a1c8_d40d077cf5c24918bd25b6524f649f11.pdf) |
| Manual | [General Guide](https://github.com/oinosme/elegoo-neptune2-2s-guide) |
| PDF Manual | [PDF]({{ page.assets }}/Neptune 2 & Neptune 2S User Guide (EN).pdf) |
| Default config.cfg for Klipper | [Default config.cfg](https://github.com/Klipper3d/klipper/blob/master/config/printer-elegoo-neptune2-2021.cfg) |
| Currentish config.cfg | [Current config.cfg](/assets/blog/rara-elegoo-printer-notes/klipper_config.cfg)|
| Microcontroller Datasheet | [Datasheet]({{ page.assets }}/micro_datasheet.pdf) |
---
<figure>
<img src="{{ page.assets }}/mainboard_connectors.png">
</figure>
<figure>
<img src="{{ page.assets }}/micro_pinout.png">
</figure>
<figure>
<img src="{{ page.assets }}/pcb.png">
</figure>
<figure>
<img src="{{ page.assets }}/hotend.png">
</figure>

Binary file not shown.

After

(image error) Size: 460 KiB

@ -0,0 +1,163 @@
# This file is originally from https://github.com/Klipper3d/klipper/blob/master/config/printer-elegoo-neptune2-2021.cfg
# Paste here and save your klipper configuration
# This file contains standard pin mappings for the stock Elegoo Neptune 2 with a
# ZNP Robin Nano (v 1.2 and v1.3) board.
# For the 1.2 board:
# - Compile with the processor model STM32F103.
# - Enable "extra low-level configuration options"
# - Select the 28KiB bootloader,
# - Select (Serial (on # USART3 PB11/PB10) for the communication interface.
# Note that the "make flash" command does not work with ZNP Robin boards. After
# running "make", run the following command:
# ./scripts/update_mks_robin.py out/klipper.bin out/elegoo.bin
#
# For the 1.3 board:
# - Compile with the processor model STM32F407.
# - Enable "extra low-level configuration options"
# - Select the 32KiB bootloader,
# - Select (Serial (on # USART3 PB11/PB10) for the communication interface.
# Note that the "make flash" command does not work with ZNP Robin boards. After
# running "make", run the following command:
# cp out/klipper.bin out/elegoo.bin
#
# Copy the file out/elegoo.bin to an SD card and then restart the printer with
# that SD card.
# See docs/Config_Reference.md for a description of parameters.
[bltouch]
sensor_pin: ^PC4
control_pin: PA8
z_offset: 3.1
x_offset: -35
y_offset: -1
stow_on_each_sample: false
probe_with_touch_mode: true
[stepper_x]
step_pin: PE3
dir_pin: PE2
enable_pin: !PE4
microsteps: 16
rotation_distance: 40
endstop_pin: PA15
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: PE0
dir_pin: PB9
enable_pin: !PE1
microsteps: 16
rotation_distance: 40
endstop_pin: PA12
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: PB5
dir_pin: !PB4
enable_pin: !PB8
microsteps: 16
rotation_distance: 8
endstop_pin: PA11
position_endstop: 0.7
position_max: 250
[extruder]
max_extrude_only_distance: 100.0
step_pin: PD6
dir_pin: PD3
enable_pin: !PB3
microsteps: 16
rotation_distance: 3.433 # https://biqu.equipment/products/biqu-h2-v2s-extruder-for-b1-bx-ender-3-3-v2-5-6-cr6-10
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC1
# tuned for stock hardware with 210 degree Celsius target
control: pid
pid_Kp: 29.056
pid_Ki: 1.628
pid_Kd: 129.664
min_temp: 0
max_temp: 260
[filament_switch_sensor filament_sensor]
pause_on_runout: True
switch_pin: PA4
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
# tuned for stock hardware with 60 degree Celsius target
control: pid
pid_Kp: 70.857
pid_Ki: 1.221
pid_Kd: 1028.316
min_temp: 0
max_temp: 110
# cools the control board and hotend cooler fans
# enabled whenever any of the stepper controllers are active
[heater_fan hotend_fan]
pin: PB0
heater: extruder
heater_temp: 50.0
# controls the part cooling fan
[fan]
pin: PB1
[mcu]
serial: /dev/ttyUSB0
restart_method: command
[bed_screws]
screw1: 32.5, 32.5
screw2: 32.5, 202.5
screw3: 202.5, 32.5
screw4: 202.5, 202.5
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[bed_mesh]
speed: 120
horizontal_move_z: 7
mesh_min: 40, 40
mesh_max: 200, 200
probe_count: 4, 4
[static_digital_output display_reset]
# the FSMC touchscreen isn't supported, so we'll just disable it
pins: !PC6, !PD13
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.105000, 0.125000, 0.060000, 0.037500
#*# 0.060000, 0.102500, 0.142500, -0.105000
#*# 0.017500, 0.110000, 0.152500, -0.132500
#*# 0.022500, 0.115000, 0.097500, -0.085000
#*# tension = 0.2
#*# min_x = 40.0
#*# algo = lagrange
#*# y_count = 4
#*# mesh_y_pps = 2
#*# min_y = 40.0
#*# x_count = 4
#*# max_y = 199.99
#*# mesh_x_pps = 2
#*# max_x = 199.99

Binary file not shown.

After

(image error) Size: 546 KiB

Binary file not shown.

After

(image error) Size: 81 KiB

Binary file not shown.

After

(image error) Size: 332 KiB

Binary file not shown.

After

(image error) Size: 136 KiB

@ -14,32 +14,53 @@ img:
<style>
header {
display: flex;
height: 100vh;
justify-content: unset;
font-size: min(3vw, 3vh);
}
.profile-pic-name {
.pic-name-text {
display: flex;
flex-direction: column;
justify-content: space-around;
height: 60vh;
padding: 1rem;
}
.pic-name {
display: flex;
gap: 1em;
margin-bottom: 1em;
}
.card-container {
height: 30vh;
}
p {
font-size: min(7vw, 3vh);
font-size: 1rem;
}
.pic {
border-radius: 50%;
padding: 5px;
border: 1px solid var(--theme-text-color);
transition: border-color var(--night-mode-fade-time) ease-in-out;
width: 40vw;
height: 40vw;
}
img.qr {
width: 50vw;
height: 50vw;
--dimension: calc(0.6 * min(50vw, 100vh));
width: var(--dimension);
height: var(--dimension);
z-index: 1;
}
.avatar {
width: 40vw;
height: 40vw;
}
header h1 {
font-size: 15vw;
margin-left: 5vw;
font-size: 3rem;
margin:0;
}
.professional-links {
@ -55,25 +76,19 @@ header h1 {
}
.card {
background: var(--theme-bg-color);
padding: 20px;
position: relative;
display: flex;
display: inline-flex;
place-content: center;
place-items: center;
overflow: hidden;
border-radius: 25px;
position: absolute;
top: 100%;
left: 50%;
transform: translate(-50%, calc(-100% - 50px));
}
.card::before {
content: '';
position: absolute;
width: 100px;
width: 30%;
background: var(--theme-highlight-color);
height: 150%;
animation: rotBGimg 7s linear infinite;
@ -98,16 +113,48 @@ header h1 {
inset: 10px;
border-radius: 15px;
}
#mastospan {
text-wrap: nowrap;
}
svg#svg1826 {
display: inline;
}
@media (orientation: landscape) {
header {
flex-direction: row;
}
.card-container {
width: 50vw;
}
.pic-name-text {
width: 50vw;
height: 100vh;
}
.pic-name {
align-items: center;
}
.pic {
--dimension: calc(0.6 * min(50vw, 100vh));
width: var(--dimension);
height: var(--dimension);
}
}
</style>
</head>
<body class = "">
<header class="h-card">
<div class="profile-pic-name">
<div class="pic-name-text">
<div class="pic-name">
<img
src="/assets/images/avatar.jpeg"
class="u-photo avatar"
class="u-photo pic"
alt="A picture of me."
height="175"
width="175"
@ -128,14 +175,15 @@ header h1 {
>@TomHodson {% include icons/github.svg %}</a
>
<a href="https://tech.lgbt/@Tomhodson" rel="me" class="u-url"
>tech.lgbt/@Tomhodson {% include icons/mastodon.svg %}</a
><span id="mastospan">tech.lgbt/@Tomhodson</span> {% include icons/mastodon.svg %}</a
>
</p>
</div>
</div>
<div class="card-container">
<a href = "/">
<div class = "card">
<img
src="/assets/badge/qr.svg"
class="qr invertable"
@ -145,6 +193,7 @@ header h1 {
/>
</div>
</a>
</div>
<div class="user-toggle">

@ -20,6 +20,7 @@ layout: none
{% for post in site.posts limit:20 %}
{% if post.draft == false or jekyll.environment == "development" %}
{% unless post.exclude_from_rss %}
{
"id": "{{ post.url | prepend: site.baseurl | prepend: site.url }}",
"url": "{{ post.url | prepend: site.baseurl | prepend: site.url }}",
@ -30,6 +31,7 @@ layout: none
"date_published": "{{ post.date | date_to_rfc822 }}",
"date_modified": "{{ post.last_modified_at | date_to_rfc822 }}"
}{% unless forloop.last %},{% endunless %}
{% endunless %}
{% endif %}
{% endfor %}
]

@ -16,9 +16,10 @@ layout: none
<atom:link href="{{ site.url }}/{{ page.path }}" rel="self" type="application/rss+xml" />
<lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
<language>en-gb</language>
{% assign feed_items = site.feed.post_limit | default: 10 %}
{% for post in site.posts limit:feed_items %}
{% assign feed_items = site.feed.post_limit | default: 10 %}
{% for post in site.posts limit:feed_items %}
{% if post.draft == false or jekyll.environment == "development" %}
{% unless post.exclude_from_rss %}
<item>
<title>{{ post.title | xml_escape }}</title>
<dc:creator>Tom Hodson</dc:creator>
@ -37,11 +38,12 @@ layout: none
<pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
<link>{{ site.url }}{{ post.url }}</link>
<guid isPermaLink="true">{{ site.url }}{{ post.url }}</guid>
<!-- {% if post.social_image %}
<!-- {% if post.social_image %}
<media:thumbnail width="250" height="250" url="{{ site.url }}{{ post.social_image }}"/>
{% endif %} -->
</item>
{% endunless %}
{% endif %}
{% endfor %}
{% endfor %}
</channel>
</rss>