Academic
This commit is contained in:
parent
d3b176aeef
commit
3fd9b8599c
|
@ -2,26 +2,14 @@ image: ariejan/dockerized-hugo:latest
|
||||||
|
|
||||||
test:
|
test:
|
||||||
script:
|
script:
|
||||||
# Compile
|
|
||||||
- hugo
|
- hugo
|
||||||
|
|
||||||
# Compress CSS
|
|
||||||
- yui-compressor public/css/style.css -o public/css/style-min.css
|
|
||||||
- mv -f public/css/style-min.css public/css/style.css
|
|
||||||
|
|
||||||
# Mogrify thumbnails
|
|
||||||
- mkdir -p public/img/thumbs
|
|
||||||
- cd public/img
|
|
||||||
- mogrify -format png -path thumbs -thumbnail 724 *.png
|
|
||||||
- mogrify -format jpg -path thumbs -thumbnail 724 *.jpg
|
|
||||||
|
|
||||||
except:
|
except:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
pages:
|
pages:
|
||||||
before_script:
|
before_script:
|
||||||
# Setup SSH keys
|
- mkdir -p ~/.ssh
|
||||||
- mkdir -p ~/.ssh # Setup SSH
|
|
||||||
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
|
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
|
||||||
- chmod 600 ~/.ssh/id_rsa
|
- chmod 600 ~/.ssh/id_rsa
|
||||||
- whoami
|
- whoami
|
||||||
|
@ -32,27 +20,17 @@ pages:
|
||||||
- ssh -vv -i ~/.ssh/id_rsa ariejan@mail.devroom.io exit; echo $?
|
- ssh -vv -i ~/.ssh/id_rsa ariejan@mail.devroom.io exit; echo $?
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# Compile
|
|
||||||
- hugo
|
- hugo
|
||||||
|
|
||||||
# Compress CSS
|
|
||||||
- yui-compressor public/css/style.css -o public/css/style-min.css
|
|
||||||
- mv -f public/css/style-min.css public/css/style.css
|
|
||||||
|
|
||||||
# Mogrify thumbnails
|
|
||||||
- mkdir -p public/img/thumbs
|
|
||||||
- cd public/img
|
|
||||||
- mogrify -format png -path thumbs -thumbnail 724 *.png
|
|
||||||
- mogrify -format jpg -path thumbs -thumbnail 724 *.jpg
|
|
||||||
|
|
||||||
# Deploy
|
|
||||||
- cd "$CI_PROJECT_DIR"
|
- cd "$CI_PROJECT_DIR"
|
||||||
- rsync -az4 -e 'ssh -i ~/.ssh/id_rsa -l ariejan' --stats --delete-after public/* mail.devroom.io:/home/ariejan/www/devroom.io/
|
- rsync -az4 -e 'ssh -i ~/.ssh/id_rsa -l ariejan' --stats --delete-after public/* mail.devroom.io:/home/ariejan/www/devroom.io/
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- public
|
- public
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
name: production
|
name: production
|
||||||
url: https://www.devroom.io
|
url: https://www.devroom.io
|
||||||
|
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "themes/academic"]
|
||||||
|
path = themes/academic
|
||||||
|
url = https://github.com/gcushen/hugo-academic
|
400
config.toml
400
config.toml
|
@ -1,52 +1,364 @@
|
||||||
|
# Configuration of Academic
|
||||||
|
# Documentation: https://sourcethemes.com/academic/
|
||||||
|
#
|
||||||
|
# This file is formatted using TOML syntax - learn more at https://learnxinyminutes.com/docs/toml/
|
||||||
|
# Each configuration section is defined by a name in square brackets (e.g. `[outputs]`).
|
||||||
|
|
||||||
|
# The URL of your website.
|
||||||
|
# End your URL with a `/` trailing slash, e.g. `https://example.com/`.
|
||||||
baseurl = "https://www.devroom.io/"
|
baseurl = "https://www.devroom.io/"
|
||||||
builddrafts = false
|
|
||||||
canonifyurls = true
|
# Title of your site
|
||||||
contentdir = "content"
|
|
||||||
languageCode = "en-US"
|
|
||||||
layoutdir = "layouts"
|
|
||||||
publishdir = "public"
|
|
||||||
theme = "cocoa-eh"
|
|
||||||
title = "ariejan de vroom"
|
title = "ariejan de vroom"
|
||||||
copyright = "Ariejan de Vroom"
|
|
||||||
disqusshortname = ""
|
|
||||||
pluralizelisttitles = false
|
|
||||||
|
|
||||||
PygmentsCodeFences = true
|
# Your copyright notice - appears in site footer.
|
||||||
pygmentsuseclasses = false
|
# To display a copyright symbol, type `©`.
|
||||||
pygmentsstyle = "pastie"
|
copyright = "Copyright © 1999 - 2019 Ariejan de Vroom"
|
||||||
|
|
||||||
[author]
|
theme = "academic"
|
||||||
name = "Ariejan de Vroom"
|
enableEmoji = true
|
||||||
|
footnotereturnlinkcontents = "<sup>^</sup>"
|
||||||
|
ignoreFiles = ["\\.Rmd$", "\\.Rmarkdown$", "_files$", "_cache$"]
|
||||||
|
preserveTaxonomyNames = true
|
||||||
|
paginate = 10
|
||||||
|
canonifyurls = true
|
||||||
|
|
||||||
[permalinks]
|
|
||||||
blog = "/:year/:month/:day/:slug/"
|
|
||||||
electronics = "/:year/:month/:day/:slug/"
|
|
||||||
|
|
||||||
[taxonomies]
|
# Enable comments by entering your Disqus shortname
|
||||||
category = "categories"
|
disqusShortname = ""
|
||||||
tag = "tags"
|
|
||||||
|
# Enable analytics by entering your Google Analytics tracking ID
|
||||||
|
googleAnalytics = "UA-60089-16"
|
||||||
|
|
||||||
|
# Default language to use (if you setup multilingual support)
|
||||||
|
defaultContentLanguage = "en"
|
||||||
|
hasCJKLanguage = false # Set `true` for Chinese/Japanese/Korean languages.
|
||||||
|
defaultContentLanguageInSubdir = false
|
||||||
|
|
||||||
|
# Get last modified date for content from Git?
|
||||||
|
enableGitInfo = true
|
||||||
|
|
||||||
|
[outputs]
|
||||||
|
home = [ "HTML", "CSS", "RSS", "JSON" ]
|
||||||
|
section = [ "HTML", "RSS" ]
|
||||||
|
|
||||||
|
# Configure BlackFriday Markdown rendering.
|
||||||
|
# See: https://gohugo.io/getting-started/configuration/#configure-blackfriday
|
||||||
|
[blackfriday]
|
||||||
|
hrefTargetBlank = true # `true` opens external links in a new tab.
|
||||||
|
fractions = true # `false` disables smart fractions (e.g. 5/12 formatted as a fraction).
|
||||||
|
smartypants = true # `false` disables all smart punctuation substitutions (e.g. smart quotes, dashes, fractions).
|
||||||
|
extensions = ["backslashLineBreak"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
dateform = "2 Jan, 2006"
|
# AUTHOR SETUP
|
||||||
dateformfull = "Mon 2 Jan 2006 15:04:05 MST"
|
|
||||||
description = "a blog by ariejan de vroom about software engineering and electronics."
|
# Your details.
|
||||||
copyright = "Copyright © 1996 - 2019 Ariejan de Vroom"
|
name = "Ariejan de Vroom"
|
||||||
copyrightUrl = "https://creativecommons.org/licenses/by/4.0/"
|
role = "Software Engineer and Electronics Tinkerer"
|
||||||
logofile = "img/logo.png"
|
|
||||||
faviconfile = "favicon.ico"
|
# Organizations/Affiliations.
|
||||||
highlightjs = false
|
# Separate multiple entries with a comma, using the form: `[ {name="Org1", url=""}, {name="Org2", url=""} ]`.
|
||||||
progressively = false
|
#organizations = [ { name = "Kabisa", url = "https://www.kabisa.nl" }, {name="deVroom Audio", url=""} ]
|
||||||
share = true
|
organizations = [ ]
|
||||||
latestpostcount = 7
|
|
||||||
github = "ariejan"
|
gravatar = true # Get your avatar from Gravatar.com? (true/false)
|
||||||
email = "ariejan@devroom.io"
|
avatar = "portrait.jpg" # Specify an avatar image (in `static/img/` folder) or delete value to disable avatar.
|
||||||
linkedin = "ariejan"
|
|
||||||
twitter = "ariejan"
|
# Details for the Contact Widget
|
||||||
facebook = ""
|
email = "ariejan@devroom.io"
|
||||||
social_banner = "img/banner.png"
|
address = "Son en Breugel, The Netherlands"
|
||||||
usesmallsummarycard = true
|
office_hours = ""
|
||||||
posts_navigation = true
|
phone = ""
|
||||||
# issoHost = "comments.domain.tld:1234"
|
skype = ""
|
||||||
# githubRepo = "githubUsername/repositoryName"
|
telegram = ""
|
||||||
small_banner_logo = false
|
keybase = "adevroom" # Your keybase.io username.
|
||||||
book_recommendations = false
|
|
||||||
|
# Enter an optional link for booking appointments (e.g. calendly.com).
|
||||||
|
appointment_url = ""
|
||||||
|
|
||||||
|
# Discussion link (e.g. link to a forum, mailing list, or chat).
|
||||||
|
# Uncomment line below to use.
|
||||||
|
# discussion = { name = "Discuss", url = "https://discourse.gohugo.io" }
|
||||||
|
|
||||||
|
# Enable/disable map in Contact widget.
|
||||||
|
# To show your address on a map in the contact widget, you need to enter your latitude, longitude and choose
|
||||||
|
# a map provider below.
|
||||||
|
# To use Google Maps, set `map = 1` and enter your API key that can be obtained here:
|
||||||
|
# https://developers.google.com/maps/documentation/javascript/get-api-key
|
||||||
|
# To use OpenStreetMap tiles, set `map = 2`.
|
||||||
|
# To use OpenStreetMap on a high traffic site, set `map = 3` and enter your API key that can be obtained here:
|
||||||
|
# https://www.mapbox.com/studio/account/tokens
|
||||||
|
# To get your coordinates, right-click on Google Maps and choose "What's here?". The coords will show up at the bottom.
|
||||||
|
#
|
||||||
|
# Map provider:
|
||||||
|
# 0: No map
|
||||||
|
# 1: Google Maps
|
||||||
|
# 2: OpenStreetMap (Mapnik)
|
||||||
|
# 3: OpenStreetMap (Mapbox)
|
||||||
|
map = 0
|
||||||
|
map_api_key = ""
|
||||||
|
latitude = "51.513487"
|
||||||
|
longitude = "5.505905"
|
||||||
|
zoom = 5
|
||||||
|
|
||||||
|
# SITE SETUP
|
||||||
|
|
||||||
|
# Color theme.
|
||||||
|
# Choose from `default`, `ocean`, `forest`, `dark`, `apogee`, `1950s`, `coffee`, `cupcake`.
|
||||||
|
# color_theme = "default"
|
||||||
|
color_theme = "ocean"
|
||||||
|
|
||||||
|
# Enable users to switch between day and night mode?
|
||||||
|
day_night = true
|
||||||
|
|
||||||
|
# Font style.
|
||||||
|
# Choose from `default`, `classic`, or `playfair`.
|
||||||
|
font = "default"
|
||||||
|
|
||||||
|
# Description for social sharing and search engines. If undefined, author role is used in place.
|
||||||
|
description = ""
|
||||||
|
|
||||||
|
# Default image for social sharing and search engines. Place image in `static/img/` folder and specify image name here.
|
||||||
|
sharing_image = ""
|
||||||
|
|
||||||
|
# Twitter username (without @). Used when a vistor shares your site on Twitter.
|
||||||
|
twitter = "ariejan"
|
||||||
|
|
||||||
|
# Diplay a logo in navigation bar rather than title (optional).
|
||||||
|
# To enable, place an image in `static/img/` and reference its filename below. To disable, set the value to "".
|
||||||
|
logo = ""
|
||||||
|
|
||||||
|
# Date and time format (refer to https://sourcethemes.com/academic/docs/customization/#date-format )
|
||||||
|
# Examples: "Mon, Jan 2, 2006" or "2006-01-02"
|
||||||
|
date_format = "2 Jan 2006"
|
||||||
|
# Examples: "3:04 pm" or "15:04"
|
||||||
|
time_format = "15:04"
|
||||||
|
|
||||||
|
# Show estimated reading time for posts?
|
||||||
|
reading_time = true
|
||||||
|
|
||||||
|
# Display comment count? Requires commenting to be enabled.
|
||||||
|
comment_count = true
|
||||||
|
|
||||||
|
# Display next/previous section pager?
|
||||||
|
section_pager = false
|
||||||
|
|
||||||
|
# Enable global LaTeX math rendering?
|
||||||
|
# If false, you can enable it locally on a per page basis.
|
||||||
|
math = false
|
||||||
|
|
||||||
|
# Highlight.js options
|
||||||
|
# highlight
|
||||||
|
# Enable global source code highlighting? If false, you can
|
||||||
|
# override it for a particular page in that page's preamble.
|
||||||
|
#
|
||||||
|
# Example: highlight = true
|
||||||
|
#
|
||||||
|
# highlight_languages
|
||||||
|
# Add support for highlighting additional languages. Support for
|
||||||
|
# languages mentioned here will be included in all pages.
|
||||||
|
#
|
||||||
|
# Example: highlight_languages = ["go", "lisp", "ocaml"]
|
||||||
|
#
|
||||||
|
# highlight_style
|
||||||
|
# Choose a different CSS style for highlighting source
|
||||||
|
# code. Setting this option in a page's preamble has no
|
||||||
|
# effect.
|
||||||
|
#
|
||||||
|
# Example: highlight_style = "github-gist"
|
||||||
|
#
|
||||||
|
# For the list of supported languages and styles, see:
|
||||||
|
# https://cdnjs.com/libraries/highlight.js/
|
||||||
|
#
|
||||||
|
# For more info on the highlighting options, see:
|
||||||
|
# https://sourcethemes.com/academic/docs/writing-markdown-latex/#highlighting-options
|
||||||
|
highlight = true
|
||||||
|
highlight_languages = ["go", "ruby", "yaml", "apache", "arduino", "bash", "cpp", "css", "dns", "dockerfile", "elixir", "erb", "haml", "gherkin", "http", "java", "javascript", "json", "markdown", "nginx", "openscad", "pgsql", "php", "plaintext", "scss", "sql", "tex", "vim", "xml" ]
|
||||||
|
highlight_style = "ir-black"
|
||||||
|
|
||||||
|
# Enable native social sharing buttons?
|
||||||
|
sharing = true
|
||||||
|
|
||||||
|
# Privacy pack
|
||||||
|
# Show a cookie consent message to visitors
|
||||||
|
# Anonymize IP in Google Analytics (if enabled)
|
||||||
|
privacy_pack = false
|
||||||
|
|
||||||
|
# Link custom CSS and JS assets
|
||||||
|
# (relative to /static/css and /static/js respectively)
|
||||||
|
custom_css = []
|
||||||
|
custom_js = []
|
||||||
|
|
||||||
|
# Publication types.
|
||||||
|
# Used to categorize publications.
|
||||||
|
# The index of the publication type in the list is used as its unique numerical identifier.
|
||||||
|
# The numeric ID is used in a publication's frontmatter to categorize it.
|
||||||
|
# The language can be edited below.
|
||||||
|
# For multilingual sites, `publication_types` can be copied to each language section at the end of this file and
|
||||||
|
# translated.
|
||||||
|
publication_types = [
|
||||||
|
'Uncategorized', # 0
|
||||||
|
'Conference paper', # 1
|
||||||
|
'Journal article', # 2
|
||||||
|
'Manuscript', # 3
|
||||||
|
'Report', # 4
|
||||||
|
'Book', # 5
|
||||||
|
'Book section' # 6
|
||||||
|
]
|
||||||
|
|
||||||
|
[permalinks]
|
||||||
|
post = "/:year/:month/:day/:slug"
|
||||||
|
|
||||||
|
# Configuration of talk pages.
|
||||||
|
[params.talks]
|
||||||
|
# Show talk time?
|
||||||
|
time = true
|
||||||
|
|
||||||
|
# Configuration of publication pages.
|
||||||
|
[params.publications]
|
||||||
|
# Date format (refer to https://sourcethemes.com/academic/docs/customization/#date-format )
|
||||||
|
# Examples: "Mon, Jan 2, 2006" or "2006-01-02"
|
||||||
|
date_format = "January, 2006"
|
||||||
|
|
||||||
|
# Configuration of project pages.
|
||||||
|
[params.projects]
|
||||||
|
# List publications and talks related to the project?
|
||||||
|
list_children = true
|
||||||
|
|
||||||
|
# Post list format.
|
||||||
|
# 0 = Simple
|
||||||
|
# 1 = Detailed
|
||||||
|
# 2 = Stream
|
||||||
|
post_format = 2
|
||||||
|
|
||||||
|
# Publication list format.
|
||||||
|
# 0 = Simple
|
||||||
|
# 1 = Detailed
|
||||||
|
# 2 = APA
|
||||||
|
# 3 = MLA
|
||||||
|
# 4 = Stream
|
||||||
|
publication_format = 4
|
||||||
|
|
||||||
|
# Talk list format.
|
||||||
|
# 0 = Simple
|
||||||
|
# 1 = Detailed
|
||||||
|
# 2 = Stream
|
||||||
|
talk_format = 2
|
||||||
|
|
||||||
|
# Social/Academic Networking
|
||||||
|
#
|
||||||
|
# Icon pack "fab" includes the following social network icons:
|
||||||
|
#
|
||||||
|
# twitter, weibo, linkedin, github, facebook, pinterest, google-plus,
|
||||||
|
# youtube, instagram, soundcloud
|
||||||
|
#
|
||||||
|
# For email icon, use "fas" icon pack, "envelope" icon, and
|
||||||
|
# "mailto:your@email.com" as the link.
|
||||||
|
#
|
||||||
|
# Full list: https://fontawesome.com/icons
|
||||||
|
#
|
||||||
|
# Icon pack "ai" includes the following academic icons:
|
||||||
|
#
|
||||||
|
# cv, google-scholar, arxiv, orcid, researchgate, mendeley
|
||||||
|
#
|
||||||
|
# Full list: https://jpswalsh.github.io/academicons/
|
||||||
|
|
||||||
|
[[params.social]]
|
||||||
|
icon = "envelope"
|
||||||
|
icon_pack = "fas"
|
||||||
|
link = "#contact" # For a direct email link, use "mailto:test@example.org".
|
||||||
|
|
||||||
|
[[params.social]]
|
||||||
|
icon = "twitter"
|
||||||
|
icon_pack = "fab"
|
||||||
|
link = "https://twitter.com/ariejan"
|
||||||
|
|
||||||
|
[[params.social]]
|
||||||
|
icon = "github"
|
||||||
|
icon_pack = "fab"
|
||||||
|
link = "https://github.com/ariejan"
|
||||||
|
|
||||||
|
# Link to a PDF of your resume/CV from the About widget.
|
||||||
|
# To enable, copy your resume/CV to `static/files/cv.pdf` and uncomment the lines below.
|
||||||
|
# [[params.social]]
|
||||||
|
# icon = "cv"
|
||||||
|
# icon_pack = "ai"
|
||||||
|
# link = "files/cv.pdf"
|
||||||
|
|
||||||
|
# Navigation Links
|
||||||
|
# To link a homepage widget, specify the URL as a hash `#` followed by the filename of the
|
||||||
|
# desired widget in your `content/home/` folder.
|
||||||
|
# The weight parameter defines the order that the links will appear in.
|
||||||
|
[params.menus]
|
||||||
|
# Align the main menu to the right of the page? (true/false)
|
||||||
|
align_right = true
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Home"
|
||||||
|
url = "/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Posts"
|
||||||
|
url = "#posts"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Projects"
|
||||||
|
url = "#projects"
|
||||||
|
weight = 40
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Contact"
|
||||||
|
url = "#contact"
|
||||||
|
weight = 60
|
||||||
|
|
||||||
|
# Link to a PDF of your resume/CV from the menu.
|
||||||
|
# To enable, copy your resume/CV to `static/files/cv.pdf` and uncomment the lines below.
|
||||||
|
# [[menu.main]]
|
||||||
|
# name = "CV"
|
||||||
|
# url = "files/cv.pdf"
|
||||||
|
# weight = 7
|
||||||
|
|
||||||
|
# Search.
|
||||||
|
[params.search]
|
||||||
|
# Search provider:
|
||||||
|
# 0: No search engine
|
||||||
|
# 1: Built-in (Fuse)
|
||||||
|
# 2: Algolia (https://www.algolia.com)
|
||||||
|
engine = 1
|
||||||
|
|
||||||
|
# Configuration of Algolia search engine.
|
||||||
|
# Paste the values from your Algolia dashboard.
|
||||||
|
[params.search.algolia]
|
||||||
|
app_id = ""
|
||||||
|
api_key = ""
|
||||||
|
index_name = ""
|
||||||
|
show_logo = false
|
||||||
|
|
||||||
|
# Taxonomies.
|
||||||
|
[taxonomies]
|
||||||
|
tag = "tags"
|
||||||
|
category = "categories"
|
||||||
|
publication_type = "publication_types"
|
||||||
|
|
||||||
|
# Languages
|
||||||
|
# Create a [languages.X] block for each language you want, where X is the language ID.
|
||||||
|
# Refer to https://sourcethemes.com/academic/docs/language/
|
||||||
|
|
||||||
|
# Configure the English version of the website.
|
||||||
|
[languages.en]
|
||||||
|
languageCode = "en-us"
|
||||||
|
|
||||||
|
# Uncomment the lines below to configure your website in a second language.
|
||||||
|
#[languages.zh]
|
||||||
|
# languageCode = "zh-Hans"
|
||||||
|
# title = "Chinese website title..."
|
||||||
|
# [languages.zh.params]
|
||||||
|
# name = "Your name in Chinese..."
|
||||||
|
# role = "Your role in Chinese..."
|
||||||
|
# [[languages.zh.menu.main]]
|
||||||
|
# name = "Wo"
|
||||||
|
# url = "#about"
|
||||||
|
# weight = 1
|
|
@ -1,69 +0,0 @@
|
||||||
+++
|
|
||||||
date = "2016-01-12"
|
|
||||||
title = "Denon PMA-560 Repair Log - Update"
|
|
||||||
tags = ["ohmexpress", "repair", "audiorepair"]
|
|
||||||
categories = [ "Audio Repair" ]
|
|
||||||
description = "Replacement parts for the Denon PMA-560 have arrived. Let's get to work!"
|
|
||||||
slug = "denon-pma-560-repair-log-update"
|
|
||||||
+++
|
|
||||||
|
|
||||||
Last week I diagnosed a Denon PMA-560 Integrated Stereo Amplifier. The device worked fine
|
|
||||||
since its production in 1990, but had lost output on the left channel. My diagnosis, as
|
|
||||||
you can [read in the previous repair log][repair-log] was a defect in the A-Channel
|
|
||||||
relay.
|
|
||||||
|
|
||||||
## There and back again
|
|
||||||
|
|
||||||
It sounds straightforward: just replace the A-channel relay. And it is. But does require
|
|
||||||
a bit of work and careful deconstruction of the unit.
|
|
||||||
|
|
||||||
![Original Relays of the Denon PMA-560](/img/denon-pma-560-situation.jpg)
|
|
||||||
|
|
||||||
Those are the original relays. On the left you can see some metal pins connected to the
|
|
||||||
PCB, those are the speaker terminals that you can see protrude out the back. This PCB is,
|
|
||||||
on one side, firmly pressed against the back panel of the case and other the other side
|
|
||||||
wedged in by the big transformer. The PCB itself is held in place by three white plastic
|
|
||||||
pins. Can you spot them?
|
|
||||||
|
|
||||||
To remove the PCB, as I need to do some soldering work on the bottom side, I'd need to
|
|
||||||
remove the back panel, which amounts to 15 screws. After that, the PCB comes loose and
|
|
||||||
the soldering iron can be heated up.
|
|
||||||
|
|
||||||
## Replacement
|
|
||||||
|
|
||||||
The first problem is that the schematic in the service manual sports two RL602 devices.
|
|
||||||
I've marked the three relays in green. RL601 and RL602 are for the A and B speaker channels.
|
|
||||||
The second relay also RL602 in the schematic is for the headphones. Luckily this relay
|
|
||||||
has different size and shape and is correctly marked as RL603 on the PCB silkscreen.
|
|
||||||
|
|
||||||
![Error in the schematic](/img/denon-pma-560-schematic-2.png)
|
|
||||||
|
|
||||||
The relay has six pins, which are soldered to the PCB. Using my soldering iron and
|
|
||||||
desoldering pump I first removed most of the solder and then wiggled the relay free
|
|
||||||
while quickly heating up each pin.
|
|
||||||
|
|
||||||
![Relay removed](/img/denon-pma-560-removed-relay.jpg)
|
|
||||||
|
|
||||||
Next up, insert new relays and solder it to the PCB.
|
|
||||||
|
|
||||||
![Relay replaced](/img/denon-pma-560-replaced-relay.jpg)
|
|
||||||
|
|
||||||
Here is the new relay in place. As you can see it's the same make and model as
|
|
||||||
it's malfunctioning predecessor.
|
|
||||||
|
|
||||||
Let's get the PCB back in, re-attach the back plate and hook the unit up to some speakers
|
|
||||||
and input.
|
|
||||||
|
|
||||||
## Moment of truth
|
|
||||||
|
|
||||||
Yes. It worked. Turn on some music, select the correct input, select A-channel speaker output
|
|
||||||
and slowly turn up the volume to the voice of Adele.
|
|
||||||
|
|
||||||
After this I did a double-check that I reconnected all wires and put the device back
|
|
||||||
together (including the 15 screws on the back, not counting the three for the top cover).
|
|
||||||
|
|
||||||
Here is the restored Denon PMA-560 Integrated Stereo Amplifier, fully tested and working.
|
|
||||||
|
|
||||||
![Denon PMA-560](/img/denon-pma-560-project-completed.jpg)
|
|
||||||
|
|
||||||
[repair-log]: /2016/01/07/denon-pma-560-repair-log/
|
|
|
@ -1,43 +0,0 @@
|
||||||
+++
|
|
||||||
date = "2017-10-16"
|
|
||||||
title = "Signal 1 - DIY Audio Signal Generator (Part 1)"
|
|
||||||
tags = ["audio", "design", "electronics", "signal-1"]
|
|
||||||
description = "This is part 1 in a series of posts showing you how I build a digitally controlled audio signal generator based on the AD9833."
|
|
||||||
slug = "signal-1-diy-signal-generator-part-1"
|
|
||||||
+++
|
|
||||||
|
|
||||||
**Signal 1** is the name for my first _signal generator_ project. The goal for this project
|
|
||||||
is to create a device that can output clean sine waves in the 10 Hz - 100 kHz range for testing
|
|
||||||
audio equipment.
|
|
||||||
|
|
||||||
This is what I'm looking for:
|
|
||||||
|
|
||||||
* 10 Hz - 100 kHz frequency range sine waves
|
|
||||||
* Stereo Line level output (100-600 Ohm output impedance; 2Vpp) to feed directly into an amp
|
|
||||||
* Display of frequency and other settings
|
|
||||||
* Frequency presets or 'zero' at 1kHz
|
|
||||||
* Adjustable amplitude (e.g. volume control; 5mVpp - 2Vpp)
|
|
||||||
* Digitally controlled
|
|
||||||
|
|
||||||
Bonus features:
|
|
||||||
|
|
||||||
* Reverse RIAA circuit
|
|
||||||
* Frequency sweep
|
|
||||||
|
|
||||||
There are at this point two pieces of hardware I have selected:
|
|
||||||
|
|
||||||
**AD9833 Programmable Waveform Generator** is a nice chip that can more than handle my simple needs. If
|
|
||||||
it can go up to a 16Mhz square wave, that'd be great, but not necessary. It's also inexpensive when bought
|
|
||||||
from China as a breakout board. I'm not usually a fan of there boards, but to for prototyping they should
|
|
||||||
be fine. The AD9833 communicates for SPI, so I'll need a microcontroller to handle that.
|
|
||||||
|
|
||||||
![The AD9833 Breakout Board](/img/signal-1-ad9833-breakout.jpg)
|
|
||||||
|
|
||||||
**Arduino Nano**. I was going to go for an onboard ATMega328 and program it directly using
|
|
||||||
_Atmel Studio_. However, there's so much good stuff out there for Arduino that I'll start out
|
|
||||||
by just plugging in an Arduino Nano and program that. The upside is that it alread contains
|
|
||||||
USB/Serial so it's be rather easy to make this devise computer controlled later on. That said,
|
|
||||||
for the final build I might op to integrate the Arduino Nano components on my PCB anyway :-)
|
|
||||||
|
|
||||||
For now, I've ordered a few AD9833 breakout boards from China and I'll start working on a block diagram
|
|
||||||
of the entire system soon, which you can read about in Part 2 of this series.
|
|
|
@ -1,100 +0,0 @@
|
||||||
+++
|
|
||||||
date = "2014-11-26"
|
|
||||||
title = "VoltMeister 100: Bench Power Supply - Part 2"
|
|
||||||
tags = ["electronics", "voltmeister", "power supply"]
|
|
||||||
categories = [ "Electronics" ]
|
|
||||||
description = "In Part 1 of this series I discussed how an ATX power supply can be usedto create a poor man's bench power supply. In Part 2 I'll show you howI managed to fit the ATX power supply, my control board and everythingelse neatly into a single box."
|
|
||||||
slug = "voltmeister-100-atx-bench-power-supply-part-2"
|
|
||||||
+++
|
|
||||||
In [Part 1](https://ariejan.net/2014/11/24/voltmeister-100-atx-bench-power-supply-part-1/) of
|
|
||||||
this article I've discussed the design and PCB layout for my _VoltMeister 100_ project.
|
|
||||||
I've converted an ATX power supply to a safe-to-use bench power supply. Although not ideal
|
|
||||||
for anything serious, it's a great way to actually get started and complete a project.
|
|
||||||
|
|
||||||
This is Part 2 of a two part write-up of how I designed and built my first bench
|
|
||||||
power supply.
|
|
||||||
|
|
||||||
* [Part 1 - Design, schematic and PCB](https://ariejan.net/2014/11/24/voltmeister-100-atx-bench-power-supply-part-1)
|
|
||||||
* [Part 2 - Enclosure and finished build](https://ariejan.net/2014/11/26/voltmeister-100-atx-bench-power-supply-part-2)
|
|
||||||
|
|
||||||
## The enclosure
|
|
||||||
|
|
||||||
I think that in a professional design process there is some tension between the PCBs you design, the
|
|
||||||
components you use and the enclosure you need to all fit it in. I tried to be smart and opted to buy a
|
|
||||||
'universal enclosure' that would fit my ATX power supply and leave some room for a small PCB.
|
|
||||||
|
|
||||||
Because of the dimensions of the ATX power supply (roughly 140x50x80mm), I needed something that would fit that.
|
|
||||||
Note that most dimenstions specified when shopping for enclosures are _outside_ dimensions.
|
|
||||||
|
|
||||||
In the end I opted for a nice Hammond enclosure, large enough to fit my power supply snugly and not
|
|
||||||
too expensive. It even has nice aluminium front and back panels. For those wondering, it's
|
|
||||||
the [1598ESGY](http://octopart.com/1598esgy-hammond-46506) from Hammond.
|
|
||||||
|
|
||||||
![](/img/hammond-enclosure.jpg "Hammond Universal Enclosure")
|
|
||||||
|
|
||||||
Another thing I learned is to take a detailed look at the specification drawings.
|
|
||||||
|
|
||||||
![](/img/hammond-inside.png "Inside the enclosure")
|
|
||||||
|
|
||||||
Notice the two supports circled in red? Yeah, those are used to screw the top and bottom parts of
|
|
||||||
the enclosure together. And guess what, my ATX power supply does _not_ fit between those
|
|
||||||
two supports and is now protruding about 10mm from the back. Booh!
|
|
||||||
|
|
||||||
This is really a problem. I don't want to have an ATX power supply hanging out of the back.
|
|
||||||
|
|
||||||
At first I thought of just buying a larger case, but I would not be that easily defeated.
|
|
||||||
|
|
||||||
Because I'm curious by nature, I opened up my ATX power supply to see what's inside and
|
|
||||||
remove some of the cables I would not need.
|
|
||||||
|
|
||||||
The PCB for the ATX supply is pretty tightly packed, but I noticed that transformer on the side was
|
|
||||||
not mounted on the PCB. There was a nice cutout on the PCB to allow room for the transformer.
|
|
||||||
|
|
||||||
Putting one and one together I decided to remove the ATX enclosure and see if I could fit
|
|
||||||
the PCB in my small Hammond case. The transformer could be moved just a bit so it would
|
|
||||||
not interfer with the support inside the case.
|
|
||||||
|
|
||||||
This worked brilliantly. All I had to do was make cutouts for the powercord and 120/230V
|
|
||||||
selector.
|
|
||||||
|
|
||||||
The only reason I did this is because there is a clear separation between the high
|
|
||||||
voltage parts of the supply and the control (for the fan, I presume). Because the
|
|
||||||
orientation was just right, it would also shield my own PCB nicely.
|
|
||||||
|
|
||||||
## The build
|
|
||||||
|
|
||||||
Here you can see the inside of my bench power supply.
|
|
||||||
|
|
||||||
![](/img/case-inside.jpg "Inside the case")
|
|
||||||
|
|
||||||
The bottom half is filled with the ATX PCB. You can see the ground wire floating around,
|
|
||||||
this has been connected properly tot he front and back panels.
|
|
||||||
|
|
||||||
The transformer is leaving a bit of a gap and has been placed just on the other
|
|
||||||
side of the support.
|
|
||||||
|
|
||||||
On the top you can see my PCB with the ATX connector attached to it and wires going
|
|
||||||
out to the LEDs, the power switch and the different output voltages.
|
|
||||||
|
|
||||||
## The result
|
|
||||||
|
|
||||||
And, this is the end result. Suffice it to say that my precision drilling skills need
|
|
||||||
some more love. But other than that, I'm quite happy with how it turned out. It's my
|
|
||||||
first project, after all.
|
|
||||||
|
|
||||||
![](/img/voltmeister-100.jpg "VoltMeister 100 in all it's glory")
|
|
||||||
|
|
||||||
## Conclusion
|
|
||||||
|
|
||||||
Building an ATX-based bench power supply like this is nice. If you need
|
|
||||||
a stable and reliable power supply, you're probably better off buying a cheap
|
|
||||||
linear power supply online for like € 50.
|
|
||||||
|
|
||||||
I did this project to learn something. And I did. I learned how to SMD solder components,
|
|
||||||
I learned what to look out for when selecting an enclosure for your project. I also learned
|
|
||||||
about ATX power supplies and how you don't want to mess with them. These units handle
|
|
||||||
pretty beefy currents. If you don't know what you're doing you could end up hurting yourself.
|
|
||||||
|
|
||||||
What's next? The VoltMeister 200, of course!
|
|
||||||
|
|
||||||
|
|
29
content/home/about.md
Normal file
29
content/home/about.md
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
+++
|
||||||
|
# About/Biography widget.
|
||||||
|
widget = "about"
|
||||||
|
active = true
|
||||||
|
date = 1980-10-17T00:00:00
|
||||||
|
|
||||||
|
# Order that this section will appear in.
|
||||||
|
weight = 5
|
||||||
|
|
||||||
|
# List your academic interests.
|
||||||
|
[interests]
|
||||||
|
interests = [
|
||||||
|
"Software Engineering",
|
||||||
|
"Electronics repair, design, and manufacturing"
|
||||||
|
]
|
||||||
|
|
||||||
|
# List your qualifications (such as academic degrees).
|
||||||
|
[[education.courses]]
|
||||||
|
course = "B.Sc. Software Engineering"
|
||||||
|
institution = "Fontys University of Applied Sciences"
|
||||||
|
year = 2007
|
||||||
|
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Biography
|
||||||
|
|
||||||
|
Ariejan de Vroom is a senior software engineer at [Kabisa](https://www.kabisa.nl). His interests include test-driven software development and rock-solid backend engineering. He leads teams of software developers as scrum master or product owner in web development projects.
|
||||||
|
|
||||||
|
In his free time Ariejan likes to tinker with electronics by repairing _"vintage"_ audio equipment or designing, programming, and manufacturing small batch electronics projects.
|
22
content/home/contact.md
Normal file
22
content/home/contact.md
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
+++
|
||||||
|
# Contact widget.
|
||||||
|
widget = "contact"
|
||||||
|
active = true
|
||||||
|
date = 1980-10-17T00:00:00
|
||||||
|
|
||||||
|
title = "Contact"
|
||||||
|
subtitle = ""
|
||||||
|
|
||||||
|
# Order that this section will appear in.
|
||||||
|
weight = 70
|
||||||
|
|
||||||
|
# Automatically link email and phone?
|
||||||
|
autolink = true
|
||||||
|
|
||||||
|
# Email form provider
|
||||||
|
# 0: Disable email form
|
||||||
|
# 1: Netlify (requires that the site is hosted by Netlify)
|
||||||
|
# 2: formspree.io
|
||||||
|
email_form = 2
|
||||||
|
+++
|
||||||
|
|
55
content/home/experience.md
Normal file
55
content/home/experience.md
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
+++
|
||||||
|
# Experience widget.
|
||||||
|
widget = "experience" # Do not modify this line!
|
||||||
|
active = true # Activate this widget? true/false
|
||||||
|
|
||||||
|
title = "Experience"
|
||||||
|
subtitle = ""
|
||||||
|
|
||||||
|
# Order that this section will appear in.
|
||||||
|
weight = 8
|
||||||
|
|
||||||
|
# Date format for experience
|
||||||
|
# Refer to https://sourcethemes.com/academic/docs/customization/#date-format
|
||||||
|
date_format = "January 2006"
|
||||||
|
|
||||||
|
# Experiences.
|
||||||
|
# Add/remove as many `[[experience]]` blocks below as you like.
|
||||||
|
# Required fields are `title`, `company`, and `date_start`.
|
||||||
|
# Leave `date_end` empty if it's your current employer.
|
||||||
|
# Begin/end multi-line descriptions with 3 quotes `"""`.
|
||||||
|
[[experience]]
|
||||||
|
title = "Senior Software Engineer"
|
||||||
|
company = "Kabisa"
|
||||||
|
company_url = "https://www.kabisa.nl"
|
||||||
|
location = "Weert, The Netherlands"
|
||||||
|
date_start = "2007-08-06"
|
||||||
|
date_end = ""
|
||||||
|
description = """
|
||||||
|
Provide software engineering consultancy with a focus on Ruby on Rails web applications and software integration.
|
||||||
|
|
||||||
|
Responsibilities include:
|
||||||
|
|
||||||
|
* Writing rock-solid Ruby on Rails applications
|
||||||
|
* Manage development teams as either Scrum Master or Product Owner
|
||||||
|
* Manage relations with stakeholders and customers
|
||||||
|
* Train colleagues on software craftsmanship and testing practices
|
||||||
|
* Supervise software engineering interns and graduate students
|
||||||
|
* Organize and speak at meet-ups and conferences
|
||||||
|
"""
|
||||||
|
|
||||||
|
[[experience]]
|
||||||
|
title = "Lecturer / Software Engineer"
|
||||||
|
company = "Fontys University of Applied Sciences"
|
||||||
|
company_url = "https://www.fontyx.nl"
|
||||||
|
location = "Eindhoven, The Netherlands"
|
||||||
|
date_start = "2004-09-01"
|
||||||
|
date_end = "2007-07-31"
|
||||||
|
description = """
|
||||||
|
Responsibilities include:
|
||||||
|
|
||||||
|
* Lecture on Open-Source software, Linux and provide LPI training courses
|
||||||
|
* Manage groups of students on software engineering projects
|
||||||
|
"""
|
||||||
|
|
||||||
|
+++
|
26
content/home/posts.md
Normal file
26
content/home/posts.md
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
+++
|
||||||
|
# Recent Posts widget.
|
||||||
|
# This widget displays recent posts from `content/post/`.
|
||||||
|
widget = "posts" # Do not modify this line!
|
||||||
|
active = true # Activate this widget? true/false
|
||||||
|
weight = 40 # Order that this section will appear.
|
||||||
|
date = 1980-10-17T00:00:00
|
||||||
|
|
||||||
|
title = "Recent Posts"
|
||||||
|
subtitle = ""
|
||||||
|
|
||||||
|
# Number of recent posts to list.
|
||||||
|
count = 5
|
||||||
|
|
||||||
|
# List format.
|
||||||
|
# 0 = Simple
|
||||||
|
# 1 = Detailed
|
||||||
|
# 2 = Stream
|
||||||
|
list_format = 2
|
||||||
|
|
||||||
|
# Filter posts by tag or category.
|
||||||
|
# E.g. to only show posts tagged with `Academic`, set `filter_tag = "Academic"`
|
||||||
|
filter_tag = ""
|
||||||
|
filter_category = ""
|
||||||
|
+++
|
||||||
|
|
52
content/home/projects.md
Normal file
52
content/home/projects.md
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
+++
|
||||||
|
# Projects widget.
|
||||||
|
widget = "projects"
|
||||||
|
active = true
|
||||||
|
date = 2016-04-20T00:00:00
|
||||||
|
|
||||||
|
title = "Projects"
|
||||||
|
subtitle = ""
|
||||||
|
|
||||||
|
# Order that this section will appear in.
|
||||||
|
weight = 50
|
||||||
|
|
||||||
|
# Content.
|
||||||
|
# Display content from the following folder.
|
||||||
|
# For example, `folder = "project"` displays content from `content/project/`.
|
||||||
|
folder = "projects"
|
||||||
|
|
||||||
|
# View.
|
||||||
|
# Customize how projects are displayed.
|
||||||
|
# Legend: 0 = list, 1 = cards, 2 = showcase.
|
||||||
|
view = 2
|
||||||
|
|
||||||
|
# Widget layout
|
||||||
|
# Legend: 0 = two columns (default), 1 = single column
|
||||||
|
widget_layout = 0
|
||||||
|
|
||||||
|
# For Showcase view, flip alternate rows?
|
||||||
|
flip_alt_rows = false
|
||||||
|
|
||||||
|
# Filter toolbar.
|
||||||
|
|
||||||
|
# Default filter index (e.g. 0 corresponds to the first `[[filter]]` instance below).
|
||||||
|
filter_default = 0
|
||||||
|
|
||||||
|
# Add or remove as many filters (`[[filter]]` instances) as you like.
|
||||||
|
# To show all items, set `tag` to "*".
|
||||||
|
# To filter by a specific tag, set `tag` to an existing tag name.
|
||||||
|
# To remove toolbar, delete/comment all instances of `[[filter]]` below.
|
||||||
|
# [[filter]]
|
||||||
|
# name = "All"
|
||||||
|
# tag = "*"
|
||||||
|
#
|
||||||
|
# [[filter]]
|
||||||
|
# name = "Deep Learning"
|
||||||
|
# tag = "Deep Learning"
|
||||||
|
#
|
||||||
|
# [[filter]]
|
||||||
|
# name = "Other"
|
||||||
|
# tag = "Demo"
|
||||||
|
|
||||||
|
+++
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user