Sunday, 28 June 2020

I2S microphones on ESP32- how high can it go?

I know it's been a long while since anything got posted - way too long! However, I've been playing a bit with the ESP32 using an I2S digital microphone, and that got me thinking - just how high a frequency can such a microphone actually pick up? To answer that question, I felt I needed to do some digging into how we go from the microphone to a digital signal. I also delved into overclocking a microphone!

Sunday, 22 July 2018

Batteries, PICkit2 and ATmega328 (Pro Mini)

I've had a need to reprogram the fuses on an Arduino Pro Mini clone, as I'm intending to use it on battery power. Running on a couple of AA batteries means the highest voltage the device is going to see is 3v, rather than the 5v the device is expecting. This is going to mean a few modifications in order to make this all work! Just in case you thought that wasn't stacking things up enough, I'm going to be using my PICkit2 to program the Pro Mini clone. 

Friday, 28 April 2017

Carlsbro Suzz / Wah-Wah teardown / minor repair

I recently stumbled on an old Carlsbro suzz / wah-wah guitar effect pedal that I was given at some point in the 1990s. A quick google revealed it doesn't appear to be a particularly common pedal but interestingly it appears the two halves were available as individual pedals and there is a touch more information about them. Anyway, here is my two-in-one.


Thursday, 27 April 2017

H bridges, minor failure and troubleshooting

When I left off last time, I was raring to go with some sample PID code that allowed me to test out a basic movement between two points. I realised I hadn't included any wiring, and that's important for this post. Suffice to say, the code didn't work quite as I had intended, but not for obvious reasons. By that, I mean I spent hours trying to debug what was going on without success. Instead, I had to break out the oscilloscope and measure to find out what was really happening.


Wednesday, 26 April 2017

Motion control - H bridges and movement

In my last post I was talking about getting the feedback mechanism from a printhead carriage up and working. This enabled me to track how much relative movement of the carriage had occurred, but didn't enable me to make the thing move! That comes in this part. In order to get motion happening, I need something that can handle the voltages/currents the motor needs - a job for an H bridge!


Monday, 24 April 2017

Arduino, Motion Control and Encoders

I took a failed Canon Pixma all-in-one inkjet apart in order to see how it was engineered. I also extracted some of the mechanics so I could learn a bit more about motion control in the real world. This post is about that exploration. I was primarily interested in the printhead carriage, as it has a feedback loop to provide information back about the speed of the carriage and which direction it is travelling in.

The printhead carriage itself is little more than some mechanics in the form of a sliding assembly that holds the printhead, a DC motor driving a belt, an optical strip and a pair of optical sensors and an LED.


Thursday, 22 December 2016

TL866 + MiniPro under Linux

I've long been a fan of the extremely useful and affordable TL866 despite its lack of support for a bunch of TSOP flash chips I've recently been looking at.



A mild inconvenience though is the dependency on Windows. For ages I've kept an old netbook around pretty much entirely for the TL866 but I've recently discovered you can run the device quite happily from Linux thanks to the efforts of a couple of guys who've posted their code on github.

Wednesday, 5 October 2016

Ciseco Slice of Radio, SRF and AT commands.

If you've used a Slice of Radio or any of the Ciseco RF modules like the SRF or RFu328, then you might be sad to hear that Ciseco/WirelessThings are no more. Unfortunately, that also means that the documentation doesn't exist any longer either, as their web presence disappeared.  While I don't have much documentation, I did create a list of AT commands that the SRF and XRF radio modules accept.

Wednesday, 18 May 2016

Fellowes 99ci repair part 1

I picked up a reconditioned Fellowes 99ci shredder a while ago as it was significantly cheaper than a brand new model. For a while it worked well enough but as shredding isn't something I do particularly often by the time it started to have issues it was of course out of warranty.


Thursday, 12 May 2016

MX150 board issues

If you're one of the people who has downloaded the MX150 board files I uploaded earlier, please accept my apologies. I realised that I've managed to break the PPS mapping on the board definition files which makes working with the board more frustrating than it should be. Once I've fixed the problem and tested it thoroughly, I will make the files available again and put up a new post.

The bootloader itself is not affected by this, so any chips you've flashed it to will be fine.

Tuesday, 10 May 2016

MX150 "board"

I said that I would publish the bootloader, board definition files and pinout map for the PIC32MX150B chip within the MPIDE environment, and here it is. You can find the hex file for programming a blank chip, the source for the bootloader, and the three board files ready to go. The part I've been using these with looks like this so far:
Minimal PIC32MX150 setup!

Toying with PIC32MX150

For a project I'm toying with, I've needed a microcontroller with three comparators onboard. In this case, I've been playing with 28 pin PIC32 device, specifically the PIC32MX150F128B. Admittedly, this is mostly because I already have a few in the parts box! In a nutshell, you get 128K of FLASH, 32K of RAM, 5 PWM pins, 2 UARTs, 2 SPI/I2S interfaces, 20 GPIO pins, a charge time measurement unit and a 1Msps ADC with a 10 input mux, and no need for a crystal. In this post, I'm going to run through the PIC32-avrdude-bootloader, and MPIDE setup I needed to do to get this part up and running.

Friday, 17 April 2015

Upcycling an edit controller

Some time ago (2013!), I picked up an old Panasonic edit controller (VW-EC300) that no longer worked. This edit controller originally controlled  a couple of Panasonic VCR decks, and let you build up an edit list and write it out to videotape. These days, we tend to use computers rather than VCRs, so it's time to see if we can make it talk USB!

Wednesday, 11 March 2015

Sunluxy DVR mkII - telnet & root password

Just a quick update on the Grain Media supplied firmware for the new Sunluxy DVR. Unsurprisingly for a cheap bit of kit like this, the security is rather wanting. Everything runs as root and of course telnet is available.

Escape character is '^]'.

GM login: root
Password:
Welcome to

    _____    __      ___       __     ___       _     _    _
   |  ___|  /  \    / __ \    /  \   |  _ \    /  \   \ \ / /
   | |___  / /\ \  | /__\ \  / /\ \  | | \ |  / /\ \   \ V /
   |  ___|| |__| | |  _   / | |__| | | | | | | |__| |   \ /
   | |    |  __  | | |  \ \ |  __  | | |_/ / |  __  |   | |
   |_|    |_|  |_| |_|   \_\|_|  |_| |___ /  |_|  |_|   |_|

For further information check:
http://www.faraday.com/


Sunday, 1 March 2015

Sunluxy DVR mkII - quick firmware mod investigation

The last post in this series saw the firmware being dumped from the device. This post looks at the format of the data and some annoyances that were encountered while trying to write a modified image back to the device.

One of the first thing I tend to do whenever I'm investigating a file is to generate an entropy plot. This habit developed from years of reverse engineering malware samples where a simple entropy plot would give you a lot of information about the next steps you'd probably be taking. For instance, packed executables would look significantly different to non-packed samples and files with appended data (think self-extracting archives or tools such as AutoIT) would have the interesting functionality contained in appended data (data that resides outside of the section tables). These are just two basic examples, but I can't stress how useful these graphs can be.

Back to the task at hand, the dumped firmware. The entropy plot looks like this:


Saturday, 28 February 2015

Reflashing an Intel Galileo

If you're the lucky owner of an Intel Galileo board then you'll probably know that the device has an 8MByte flash chip, which contains the BIOS and a Linux boot image (even the ones that MS shipped apparently). Sadly, it is possible to accidentally trash the contents of flash chip rendering the device unbootable. The good news is that it is possible to recover the device if you have hardware that talks SPI. That could be a BusPirate, a BusBlaster, a PICKit2 (Linux only) or one of the many FT2232 SPI or JTAG boards. 

Tuesday, 17 February 2015

New Sunluxy DVR

A while ago I picked up a cheapo Sunluxy DVR but quickly discovered that it had a couple of nasty security issues. The device actually worked reasonably well as a DVR so I was keen to try and patch the issues by modifying the OS. Sunluxy didn't offer any firmware updates so modifying an existing update wasn't an option.

Cutting a long story short, I basically ended up breaking the device by manually writing to (apparently the wrong bit of) flash. U-boot is available so there is still a chance to recover the situation if I can find the correct flash image.


Wednesday, 3 December 2014

Trying to read from a linear CCD

I found some more time to play with the linear CCD that Billy had sent me. If you remember last time, I'd managed to get a working clock signal and I could "see" the output on an oscilloscope. In some ways, that was the easy bit! Actually getting the output into a digital form is harder than it looks.

Thursday, 30 October 2014

Dead ScoutGuard & bargain Bushnell

Any plans I had for hacking the ScoutGuard came to an abrupt end recently when this happened:


Yes, I managed to not only lift the track off the PCB but also break the pin off the PIC. The camera was misbehaving quite badly before this incident anyway and I was getting close to calling it a day but this is one of those annoying mistakes that forced my hand. There is still sufficient track left to tap into, it is the minimal pin leg on the PIC that is the real issue.

Friday, 10 October 2014

(Ab)using CurrentCost dev boards - code

This is something that I've been meaning to do for a while. I put together a "framework" to deal with the common tasks with the CurrentCost digital development boards, such as transmitting and pairing. I've also provided an example of handling a DHT22 temperature and humidity sensor.