Blog

Ferrex FBT-CRT004B Rotary Tool …. aka the “aldi dremel”

Not to be confused with a couple of other “sku’s” ….

I managed to loose the charger for mine.  It wouldn’t matter, except I was trying to be cheap when I bought this and I still want to be cheap.  Since I’m using this to grind tungsten for tig welding …. I don’t expect the front end bearings to last forever.  So I have a few options now:

  1. Order a replacement charger through Ferrex … except they don’t exist.
  2. Order a replacement battery and charger …. except they don’t exist.
  3. Replace the rotary tool with a comparable one from Hyper Tough, who manages to make surprisingly decent tools, except that would cost $35.
  4. Do a bunch of research and see if I can’t play some games.

The purpose of this post is to document the internals of this battery pack and maybe help another fellow out who also chunked the charger.  This is the tucchus end of the tool. That is not the part number of the battery but the part number of whole dang thing. Thanks Aldi.  The Art.-Nr. 836994 is the Aldi sku?  Even though Aldi has a manual section on their website, this thing doesn’t come up.  Thanks to the EU, everything’s gone to USB-C charging but this (as shown per the date code) was made before that EU Ruling. Also, screw you EU for picking an awful connector. But I digress.

As it turns out there’s 3 #2 philips head screws holding the top to the bottom. Remove those, pull the base and the can apart and you get this tidy package.  It’s a set of 18650 li-ion cells in series.  This give a nominal-ish 12 VDC.  Technically it’s nominal voltage is 10.8 VDC.  On top is a tidy BMS, charge port, and the clips that connect the battery to the tool.  The red and green wire on the side are balance leads, so that also helps to confirm that there’s an onboard BMS.


The charger is a 6.3mm x 3.0mm barrel plug.  Center positive.  I used a 12.6v 2A wall wart to charge the battery.  I didn’t actually have a wall wart that fit, so I picked up this adapter pack off of Scamazon.  The output voltage of the battery maxed out at 12.08 volts.  Even with the charger plugged in, the battery pack only output 12.08 volts so I don’t know that using a higher voltage output would actually get you anywhere.

 

Know more?  Leave it in the comments.


Putting a kickstarter on the TW200

Yes, I bought a motorcycle.  I got bored.  Decided I wanted to learn how to ride a motorcycle.  Thanks autism!

The Yamaha TW200 is kind of a weird motorcycle today.  It’s literally a relic of the past, a platform that hasn’t changed much since it was introduced in 1987.  1988 they changed it from using an AC electrical system to a DC system.  Little things changed here and there but it’s mostly been the same.  As a side note, if anyone has an 89 they’d like to donate the color scheme is awesome.

Maybe it was growing up in the 90s, but motorcycles should have a kickstarter.  And Yamaha apparently agreed up until the 2001 model year release.  What’s interesting is the 20 years later, the parts from a 2000 drop right into the 2020. Pictured below is the parts list for the kickstarter.

And here’s a PDF of all the pictures and things I found on various places online that helped when I installed mine. As a side note, the clutch springs are torqued to I believe 6 ft lbs, which is a really low number. I highly recommend not using a standard torque wrench and instead using a torque screwdriver. Mine is the older, uh, analog version but the point still stands. Snapping a screw in a $366 (tonight, at rocky mountain atv) clutch basket sucks. New tool day always rocks, right?

Not that I recommend using facebook, but if you’re into that kind of masochism then there’s a great little group over there dedicated to the TW200.


Is He Dead? No, I’m still alive much to the chagrin of others

Well, one of these things true. I’m recognizing that the world has gotten so much more unfriendly such covid. Honestly, I don’t blame any president, blue or red. I could talk about politics, and I use to love it. It felt good to be aware of the world, able to apply knowledge and logic and come to what seemed to be a reasonable conclusion. To look at “conspiracy theories” and try to figure out what part if any was right. At the time, writing a post like this seemed controversial but not downright dangerous. Now, I’m not so sure.  But hell, I’m still here.  Much to others chagrin.


Puking up a Code Sample in Python

I hate python, it’s not friendly to my eyes.  That being said the compiler is super helpful.  And yes, I’m still alive despite the best efforts of …. myself.

I’m throwing together a raspberry pi zero powered uptime checker and an i2c backpack lcd display. I didn’t want to write my own library, and I wanted this to get thrown together as fast and easily as possible. Thus, I followed this guide using python. Python, ick.

But I’m not posting this to hate on anything. If I post more info on this, then I’ll share my logic for things. Anyway, one of the reasons for this display is an easy was to check the status of my DMR repeater. Here is the basic code I banged together to use the Project Halligan API that Brandmeister provides to check the status of my repeater.

Of note: Brandmeister does not provide an API call that tells you if the repeater is up or down. The website checks the last seen time and if it’s been more then 15 minutes it assumes that repeater is down. Checking against “status” or “status_text” will not tell you if the repeater is up or down merely what timeslots are linked – whether the repeater is connected or not.


import urllib.request, json
from datetime import datetime, timezone, timedelta
from email.utils import formatdate

try:
	url = urllib.request.urlopen("https://api.brandmeister.network/v2/device/313051")
except urllib.error.URLError as e:
	ResponseData = e.reason
	print (ResponseData)
else:
	lastSeen= (json.load(url)['last_seen'])
	print (lastSeen)
	timeOutTime = datetime.now(timezone.utc) - timedelta(minutes=15)
	timeOutString = timeOutTime.strftime("%Y-%m-%d %H:%M:%S")
	print (timeOutString)

	if timeOutString < lastSeen:
		print ("Repeater up")
	else:
		print ("Repeater Down")

This code isn't pretty but it does work, on my machine at least. The post however, is most certainly honest.


Radioddity DB25-D “Review”

I wanted an inexpensive DMR radio for one of my vehicles so somehow I ended up with the Radioddity DB25-D.  From what I saw it was about the best wattage for the least money once I shopped around and found it on a flash sale.  I paired the radio with an inexpensive Retevis antenna from amazon.

At the moment, my one word review is ….. “don’t.”  It’s a weird little radio with a particularly offensive “flaw” which I’ll discuss in a moment.  Otherwise, the purpose of use was to monitor my DMR repeater and to test its range in the area.  It seems as though it will suffice in that application.

So, “the issue.”  When I first set up the DMR talkgroups, I couldn’t hear anything come back – it was like the radio was muted.  But I could hear analog stations just fine.  Then I reset the radio, it set the radio to “promiscuous” which is a DMR term for hearing all talk groups being broadcast by the repeater.  Which made the issue more confusing.

What I finally determined was that unless you set an Rx group, you will hear nothing.  The solution is to create an Rx group for each talkgroup and then only add that talk group to the rx group.  It’s stupid and madness and not what the CPS guide says. Update: This was changed in the 2023-0706 firmware this was changed to a more sensible behaviour.

Another item on the list of complaints is though this is Radioddity’s radio and I bought it from them … it came with outdated firmware.

On to other issues: the CPS is windows only.  It’s possible to use MM7DBT’s codeplug editor in linux by using wine to run the program.  On Fedora 37 I also needed to install winetricks, then use winetricks to install dotnet47.  This will install the needed libraries and you can then run the codeplug editor.  The installer worked fine, but when attempting to run the codeplug editor I got a weird error about mono libraries.  Installing dotnet47 also install mono.

It looks like there’s ways to use serial ports in linux through wine, but a forum post led me to a python script that doesn’t work.  It’s definitely not the fault of @davidmpye as Radioddity has likely changed enough of the codeplug format so that it’s no longer compatible with the rt73.

I did find out that I can program on Fedora Linux with the Radioddity CPS.  First I needed to add myself to the dialout user group. Then I did the registry addition described here. Then, log out & in.

For posterity:

Configure the port–if the device is seen at /dev/ttyUSB0, and you want it to appear to WINE on COM1, edit HKEY_LOCAL_MACHINE\Software\Wine\Ports to have a new string entry named COM1 with value /dev/ttyUSB0

That’s all I have for now.


bass thoughts

So, I decided that I wanted to play an instrument and that I would try to teach myself to play the bass guitar. IDK, I need more hobbies like I need holes in my head (21 apparently).

I bought a used bass, and tried to set it up myself. It worked well enough, but I knew there was a ton of stuff wrong with the more I fiddled and played. The intonation kept drifting and I had a lot of buzzing from the strings hitting things. One of the first things I would need to fix was the worn nut. Tooling for that was about $150 so instead I decided that the best thing was to buy a new bass. I still want to fix the old one, but now I can learn how a properly set bass should behave instead of second guessing myself and spending more in time and effort then a replacement.

Like a few other items on the blog, these are some notes for me to self reference that I thought someone else could find useful.

Things to read

How to adjust the truss rod & action, after which you should set the intonation.

If your instrument sounds out of tune as you get further down the neck, you need to set the intonation.

Equipment I recommend

One thing that I’ve found is cheaper is not better, or necessarily versatile.

  • Fender Mustang Micro Headphone Amp. This unit can connect to your bluetooth device as a speaker. So you can play along to bass tabs from youtube or music on your phone and not worry about ground loops. As an added bonus, the amp connects to laptop via USB-C as a sound card. And I believe the music being played over the bluetooth connection streamed out to the soundcard as well.
  • Pedal Tuner. Seems to work well enough However, it isn’t the best for intonation, and you need a battery and cable.
  • Stroboscope tuner is the standard for intonation (and with a price tag to match). But you may as well put the $30-$75 for a cheap tuner towards this and be done.
  • Bass strap. I just liked how this one looked.

Equipment I Hate

Other Misc Stuff

Have I mentioned I don’t really know anything about playing or working on the bass? I’ll figure it out.


Historical Evidence for Asking Questions

Over the last few years I’ve heard a lot about how we need to “trust the science,” “trust the government,” etc.  Here is a compendium of reasons from reasonable sources (or well cited) that we should always ask questions.  I’m not saying that in every case below people were purposefully acting maliciously, although the Tuskegee Syphilis experiments definitely qualify, but if no one had challenged and questioned …. what would have happened?

I would like to point that as a child I was taught that science never solved anything.  And that by questioning the tests you strengthened the results.

The cases below are offered for your perusal, interpretation, and consideration into “asking questions,” which is not always the same as challenging authority.  The constitution and law has given us a process to challenge authority and it should be followed.

  1. https://en.wikipedia.org/wiki/Buck_v._Bell
  2. https://en.wikipedia.org/wiki/Agent_Orange#U.S._veterans
  3. https://www.cdc.gov/tuskegee/timeline.htm Tuskegee Syphilis experiments
  4. https://helix.northwestern.edu/article/thalidomide-tragedy-lessons-drug-safety-and-regulation. Thalidomide was a “wonder drug” for babies, and then they started being born short limbs.
  5. https://en.wikipedia.org/wiki/Catholic_Church_sexual_abuse_cases
  6. https://en.wikipedia.org/wiki/Operation_Mockingbird
  7. https://www.businessinsider.com/army-sprayed-st-louis-with-toxic-dust-2012-10
  8. https://www.smithsonianmag.com/history/spoonful-sugar-helps-radioactive-oatmeal-go-down-180962424/
  9. https://www.nhregister.com/news/article/Shocking-medical-experiments-are-part-of-U-S-11573849.php
  10. https://www.cidrap.umn.edu/news-perspective/2002/11/gao-military-anthrax-shots-caused-many-reactions-prompted-some-pilots-quit. As a side note, review this. It states, “About 20 percent of those infected will develop difficulty breathing and a bloodstream infection that causes death. If treated with antibiotics, less than 2 percent of infected persons will die.” This is not for inhaled anthrax but for blood infection anthrax. The risk profile is so low that mass vaccination is not recommended. If anthrax becomes a used bioweapon the threat profile would change, though thankfully the vaccine appears to protect (per the Children’s Hospital of Philadelphia link above) against inhaled anthrax as well. This is why military personnel heading into a high threat profile are vaccinated.
  11. https://www.atomicheritage.org/history/human-radiation-experiments. Plutonium injections into 18 individuals, who were not informed of the injections.
  12. Kellog’s Asthma Relief
  13. COINTELPRO, illegal wiretapping and alleged assassinations. COINTELPRO style operations are alleged to continue into today according to the article.
  14. Ruby Ridge, combined with WACO which forced the United States government into “compliance” with their own laws – funny how that works.
  15. While it might be unfair to say that the government poisoned drinks during prohibition, they did add poison to various alcohols not intended for consumption.  An allegory would be adding laxatives to Scope mouthwash.  https://www.usatoday.com/story/news/factcheck/2020/06/30/fact-check-u-s-government-poisoned-some-alcohol-during-prohibition/3283701001/

This will be a rolling post, updated as I feel relevant. 


Dutch Apple, Please

Let’s start by recapping my experience with the models and operating systems to frame the discussion.  I’ve actually dealt the majority of the models, and my opinion is much the same on all of them.

Version Comments Operating Systems
2B+ I experienced stability issues and burned up two usb wireless cards.  I worked with the Pidora OS primarily, but eventually gave up and switched to Raspbian.  This did not make it any better as I can remember. Pidora & Raspbian
3A/B The only one I actually “like.”  Excellent for RetroPie and Octopi.  I haven’t used the Raspbian base OS. Retropie, Octoprint
4B I really hate the Pi 4.  Its not much of an specifications improvement over the 3B as far as I can tell.  I haven’t worked with mine enough to know though.  However,  I’ve already corrupted (and destroyed) one SD are a result of the power supply issues present in every single iteration of Raspberry Pi.  That leads to my main complaint about the Pi 4.  Why implement USB-C but not have it negotiate to any of the higher voltage options? Retropie
Zero W Its okay.  The SD cards seems to get corrupted often but they aren’t often destroyed.  Overclocking seems to work different on every single board I’ve bought.  Also, my first ZeroW would segfault when I tried to use the wireless connection. Retropie, Pi-KVM, PiStar
Zero W<2/td>

A very welcome update to my Retroflag GPi. Sadly, since its a new system I set up and clean install and by then I was done playing with. I will say though, I wish I had bought 2 of them. It seems stable enough, and I need to take the time to play with it more.

 

My main beef with the Pi family is that needing a 5.1 volt USB power supply defeats the purpose of using USB to power them.  Add in the awful time I had with the 2B (and the Alfa Alfa AWUS036H that it ate) I’m not really thrilled with them  I’m sure someone will say that by using a properly rated power supply all my problems could be solved.  However, I would argue that if you need a “special” voltage spec, then use a 9VDC or 7.5VDC barrel jack and step down the voltage on the board.

What prompted my post about this an article posted on Hackaday about modify the pi to try to help with the voltage warnings.  My opinion is this: Pi’s are not USB devices.  A wide variety are arguments were made in the article’s comments.  They’re enlightening, but ultimately I think you know the ones that I agree with this.  The Pi5 should feature a barrel jack instead of a USB.  There are a bunch of ways to try to help with the problem but at the end of the day if you put a USB connector in people will use whatever USB they have handy.  The legrand USB outlet I installed at my desk provides 4.87 volts which is with the USB power specification.  It can power a pi zero, and usually a 3B.  However it will completely kill an SD card on the Pi 4.  Even the USB-C charger (that will auto negotiate to 9VDC or 12VDC) cannot power my Pi4.

I loved my 3B retropie setup and in general I’ve been satisfied with the Pi3 devices I’ve deployed.  Using octoprint has been fantastic – I can now monitor my 3d printers remotely from work.  But I’m not sold on the other models.  Here are a few other tips for a less frustrating Raspberry Pi experience.

  • Don’t back up your home directory or configuration files.  Create a complete image the card using dd or follow HowToGeek’s instructions (I don’t run windows in that capacity).  If the SD card dies you flash a new one and go.
  • Don’t use a Pi’s when what you mean to use is a microcontroller.  Arduino, teensy, atiny85 are all more stable (and less money).
  • Don’t use pi’s when you could run a virtual machine instead.  You may even find it useful to spin up a copy of Fedora or Ubuntu server on an old machine.
  • Don’t use them for “mission critical” tasks.  Setup a “hot swap spare”.  $35 for the pi & imaging an SD card over is nothing.

Long and short, if I need to deploy a pie make mine a dutch apple.  By that I mean be cognizant of the limitations and strange requirements of the system and don’t try to get outside of them.  If I use a pi I know exactly what I want and why.

Update 20220417: Comment on the ZeroW2


Trials and Tribulation of my Anet A8 Back Online

Backstory ….

I bought this thing in early 2017, and was never quite able to get it running.  At the time, it was mostly do to my inexperience with 3d printers.  I ended up buying a Monoprice Mini on Black Friday, and there’s quite a few projects on the blog detailing my usage.  At the beginning of the year, I started having trouble with my monoprice. I was thinking about getting a prusa mini, but decided to that it would be a better idea to bring this back online.  I already had the Anet (just never quite got it functioning) and it had a much bigger bed.  What could go wrong, I asked myself.

So, my “process”

The biggest issue with the Anet A8 as I purchased it was that the bed didn’t stay flat.  So, I built a wood cube to both store it in and help keep the flat down.

In the anet OEM firmware, when a thermistor dies the firmware turns the heaters on to try to ramp the temperature up.  This could result in the printer trying to burn your house down.  So, I tried to install the marlin firmware following this guide from all3dp. I had trouble compiling the firmware, but in the process of trying to update the firmware I managed to wipe the board.  So, I had to figure out how to recover the firmware.

A brief guide to recovering the firmware on the anet board

Anet doesn’t burn the bootloader to the board, so to be able recover/upgrade the stock firmware you’ll need and ISP programmer.  While ISP programmers with specific headers are available at various places, I wanted this now at 1AM on Saturday. You can press an Arduino Nano into service as an ISP programmer: http://www.martyncurrey.com/arduino-nano-as-an-isp-programmer/

One modification I made was to put a 1PDT switch inline with the 5 volt power line of ISP programmer so that I could isolate the Arduino (and this my computer) from the Anet’s board.  You could use the switch, or make sure that you aren’t powering the board from the wall while burning the firmware.  Make sure you tie the reset pin on the arduino to GND with a capacitor otherwise you’ll get a weird error that means nothing – in my case one of the three checksums would be correct but the rest would fail.

The design is kind of overkill, but I always seem to get myself into trouble and need random things like this.  Next was to build an ISP header to match my board to the anet ISP header.  I found image below on instructables.

 

After that, connect the arduinoISP to the isp header.  Start the Arduino IDE, and use the “Burn Bootloader” function in the IDE.

I still couldn’t compline the marlin firmware (compilation errors), but wanted to get the printer up and running so I decided to reinstall the oem firmware which is/was available at the Anet website.  Anet distributes a hex file, so off to the command line to flash the firmware

~/arduino-1.8.12/hardware/tools/avr/bin/avrdude -c arduino -P /dev/ttyUSB0 -p m1284p -b 115200 -U flash:w:A8_chuchang20160525.hex a -C ~/arduino-1.8.13/hardware/tools/avr/etc/avrdude.conf -v -v -v -v

Can I print yet?

Technically, yes by running an SD card I could print.  However, I’ve started to really like printing with OctoPrint in control.  Remote control, better file management, onboard webcam.  Mix in a relay to control power to the board (which I had to modify to use a car relay because the anet uses more amps then the stock relay on the board).

setup octoprint to control the relay by some custom mixing in the yaml file

Originally, I had the camera mounted to the ceiling of the cube, but I couldn’t tell if a print was lifting or not. I also had an issue where the filament bound and I wasn’t able to detect an issue from the ceiling.  So, I made an from some 3/32″ tig wire so that as the z axis rises through the layers, the camera maintains a view of the nozzle. Depending on how fast the nozzle is moving I can get some shaking in the camera but I’m not trying for an instagram quality video feed.

I was still having a problem with the print lifting off the bed.  At that time in the basement, start up temps are 5/6°C (42°F).  While the bed and nozzle maintain temp, the rest of the print doesn’t.  I added a panel to the back of the cube, and a door to the front.  This seems to have solved the lifting problem.

I also built a hanger for the filament spool in the cabinet.  So far, its working great.

But can I print yet?

I did run a number of prints.  However, one night I again experienced trouble with getting the bed up to temp.  And here is what I discovered:

The bed connectors are technically rated for the load, but have gone bad. So, the printer is once again trying to burn my house down.  So, off to Grainger for a suitable replacement. I went with these screw terminal connectors.

We’ll see how these work out.

So you can print now, right?

Yes, but I still want to get the marline firmware installed on the board. However, I think I’ll put that in a new blog post once I manage to accomplish that.

Final thoughts:

I should have bought the prusa.


A Useful Gadget

The problem though with developing on an arduino is there’s not a real good way to debug it, other then lots of printing to the serial port.  So, not a “problem” – unless you can’t get a computer near what you’re working or you want to air gap your very expensive laptop from the arduino.  How to solve this?

JeeLabs has developed firmware for the esp-12s to turn it into a wifi serial platform.  I think its out of active development at this point, but it still works – and pretty well at this point.  So, I built a breakout to the esp-link.  And feature creep occured.

This isn’t something I really want to sell or build or what have you.  But I decided today while I was debugging the “LazyVac 31” with this that I would share it for everyone, for free.  Because I can – and because I think its that useful.  Since this post is for the developer amongst my readers I won’t deep dive to much.  Instead, I’ll link the relevant components and share the schematics, stl, and some pictures of the finished project.  If you need more details, feel free to ask in the comments.

The Finished Project. Yes, Full Rebel XS + Macro Lense Resolution

Cura View of the Carrier

Top View of the Board

Bottom Side of the Board

Schematic Diagram

Carrier STL

Additional Notes

  • The USB A on board is for power only.  I have a breakout board that plugs into a USB power supply so it makes sense to be able to power the breadboard.
  • From what I can tell, the esp12-s is meant to run on 3.3VDC.  So, since I had to include a 3.3VD rail it makes sense include a screw terminal for 3.3VDC powering.
  • I added the silicone wire and clips after I built the schematic.  I found out that being able to hook up the two wires with the test clips made my life super easy.
  • I generally use my phone to connect to the esp-12s’ wireless access point and then connect to the serial terminal via JuiceSSH.
  • The extra holes on the top of the carrier are meant to have 12mm magnets pressed in for retaining a cover but I’ve never needed the cover enough to design one.

Components

Flashing the Firmware

This is the command I used to flash the firmware via my frog pin programmer.  You’ll need to download the esptool package for your platform to flash the firmware.  Its much easier then tying to get the Arduino IDE to flash the firmware via the programmer.

esptool-2.8/esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash -fs 4m -ff 40m 0x00000 esp-link-v3.0.14-g963ffbb/boot_v1.6.bin 0x1000 esp-link-v3.0.14-g963ffbb/user1.bin 0x7C000 esp-link-v3.0.14-g963ffbb/esp_init_data_default.bin 0x7E000 esp-link-v3.0.14-g963ffbb/blank.bin

esp-link Firmware