Here I demonstrate how to use a single microcontroller pin to generate action-potential-like waveforms. The output is similar my fully analog action potential generator circuit, but the waveform here is created in an entirely different way. A microcontroller is at the core of this project and determines when to fire action potentials. Taking advantage of the pseudo-random number generator (rand() in AVR-GCC’s stdlib.h), I am able to easily produce unevenly-spaced action potentials which more accurately reflect those observed in nature. This circuit has a potentiometer to adjust the action potential frequency (probability) and another to adjust the amount of overshoot (afterhyperpolarization, AHP). I created this project because I wanted to practice designing various types of action potential measurement circuits, so creating an action potential generating circuit was an obvious perquisite.
I was presented with a need to rapidly develop a pulse generator to take a TTL input and output a programmable output (for now 0.1 ms pulses at 20 Hz for as long as the input is high). I achieved this with a one-afternoon turnaround and the result looks great! This post documents the design and fabrication of this prototype device, with emphasis placed on design considerations and construction technique.
[Sverd Industries] have created a pretty cool bench power supply integrating soldering helping hands into the build. This helps free up some much-needed bench space along with adding that wow factor and having something that looks quite unique.
The build is made from a custom 3D printed enclosure (Thingiverse files here), however if you have no access to a 3D printer you could always just re-purpose or roll your own instrument enclosure. Once the enclosure is taken care of, they go on to install the electronics. These are pretty basic, using a laptop PSU with its output attached to the input of a boost/buck module. They did have to change the potentiometers from those small PCB mounted pots to full size ones of the same value though. From there they attach 4mm banana sockets to the output along with a cheap voltmeter/ammeter LCD module. Another buck converter is attached to the laptop PSU’s output to provide 5V for a USB socket, along with a power switch for the whole system.
Where this project really shines though is the integrated helping hands. These are made from CNC cooling tubes with alligator clips super glued to the end, then heat shrink tubing is placed over the jaws to stop any accidental short circuiting while using them.
This isn’t a life changing hack but it is quite a clever idea if space is a hot commodity where you do your tinkering, plus a DIY bench power supply is almost a right of passage for the budding hacker.
In this tutorial, you will learn how to write your first ULP in Eagle CAD to add a new capability to your CAD tool.
User Language Program (ULP) is a set of extensions for Eagle CAD users to either facilitate a routine job in an automated way or do a job that can’t be done without a ULP’s help. For example, the only way to import an image to your PCB design is by using the command import-bmp ULP. Auto-placement, exporting BOM, and renumbering parts in a schematic are all routine jobs with which ULP can help.
In this video Hugatry shared detailed instructions of how to use the STM32F103C8T6 as an USB device with virtual serial port:
Cheap STM32F103C8T6 development board
Blue STM32F103C8T6 development boards, also known as “BluePill”, are cheap way to get started with 32bit ARM microcontrollers. The STM32 development board can sometimes be bought for less than $2 and ST-LinkV2 compatible programmer and debugger doesn’t cost much more than that either.
The STM32F103C8T6 has nice amount of flash and RAM, runs at 72MHz and best of all: It has built-in USB. It is possible to program these STM32 boards to act as an USB devices, without “FTDI chip”. In this post and in the embedded video I will teach step by step how to use the STM32F103C8T6 as an USB device, in particular a virtual serial port.
Zx Lee shared detailed instructions of how to display the Arduino measurements using LabVIEW:
To get started, I will explain what is actually going on in Arduino. In this project, I am using an Arduino Nano to acquire signals and send the data to PC. As mentioned earlier, two analog input channels (A0 & A1) will be used to measure input signals. To ensure an accurate measurement is performed at fixed sample rate, the Arduino is configured to wait the predefined interval before taking a measurement and send to PC serially. The concept used is similar to the BlinkWithoutDelay example in Arduino. The benefit of using this method is that there is a while loop that always checks if it has crossed the desired interval. If it is reached, it will take the measurement, else it will skip and you can make it to work on other task.