Need to quickly toggle or read some logic signals without the hassle of writing a quick program? [Thor_x86], aka [Eric], built an Arduino sketch that does just that — and he threw in the ability to send (or receive) serial messages, too. This is a neat idea — kind of a simplified Bus Pirate.
We should warn you that this is an early release, and there are a few minor issues which we are sure [Eric] will iron out soon. We discovered the function
strtol() was misspelled in
cmd_send.cpp, and there are some configuration
#defines which need to be sorted out in file
parsePin.cpp, depending on which Arduino module you are running. We got it running on an Arduino Leonardo the quickest, because it has support for
Don’t be discouraged by these glitches in this rev 0 deployment — [Eric] has really made quite a nice tool here. Check his GitHub repository for updates (or submit corrections yourself). All in all, it’s a good addition to your digital tool box. On a completely unrelated note, we really like [Eric]’s USB cable with the right-angle micro connector, grungy though it may be.
Besides the standard tools like Bus Pirate, GreatFET, FTDI modules, etc., are there any similar tools you like to use for bit banging and serial testing? Let us know in the comments below.
Sometimes, a good hack is about using less rather than more. That’s the case with this neat tutorial from [Rahul.S] on driving a 7-segment LED display with an FT232. By using this cheap USB to serial controller, [Rahul.S] was able to drive the display directly without using a microcontroller, which keeps the component cost down.
He’s bit banging an octal buffer connected to the display. You may be surprised to find that the FT232 chips do have enough outputs to make this work. Rather than send serial data number to the display and have a controller convert this into a set of signals that make the number, this conversion is done by the PC, which then sends a signal that directly illuminates the appropriate parts of the LED. By using all of the available output lines of the FT232 (including ones like the RTS/CTS line that are usually used for signalling), [Rahul.S] was able to drive all seven of the elements and the decimal point.
Of course, cynics may argue that it would be simpler to use a cheap serial LCD display. That is true, but there is always something to be said for knowing how to do something yourself rather than letting others do it for you… Continue reading “Driving A 7 Segment LED Display From An FT232”
[Cnlohr] just published an ingenious but dangerous way to send Ethernet packets using an ATTiny85. The ATtiny directly drives one pair of differential TX wires of a standard Ethernet cable. Doing so will force the TX signal ground to be the same as the ATTiny’s and in some cases may put 48V on your AVR if your cable is plugged into a Power Over Ethernet switch… which may be a problem.
In the video embedded below [cnlhor] explains that the microcontroller is clocked at 20Mhz to bit-bang the Manchester encoded electrical signals. Using a neat trick his home switch will detect his platform as a 10MBit Ethernet switch which can then send hard-coded packets to his computer. As you can guess, each of this packets takes quite a bit of space inside the ATTiny’s flash memory: 2+Kbytes. All of the code used may be downloaded on the creator’s GitHub repository, though he constantly warned us that it shouldn’t be used for real life applications.
Edit: One of our readers also let us know of a similar awesome project called the IgorPlug-UDP. Make sure to check it out!
Continue reading “Bit-banging Ethernet On An ATTiny85”
[Pesco] won one of Dangerous Prototypes’ PCB giveaways a few months ago. He opted for a CPLD breakout board. He just needed to put in a parts order and populate the components himself. But then what? He needed a JTAG programmer to work with the chip. Like any good autodidact he choose to make his own rather than buying one. He absorbed the JTAG specification and coded a bit banging programmer using an Arduino.
We’ve used JTAG many times to program ARM chips. But until now we never took the time to figure out how the specification works. If you’ve got an IEEE subscription you can download the whitepaper, but [Pesco] was also able to find one floating around on the interwebs. The flow chart on the left is the cheat sheet he put together based on his readings. From there he wrote the Arduino sketch which implements the programming standard, allowing him to interact with a chip through a minicom terminal window.
[via Dangerous Prototypes]
If you’ve ever looked into low-level parallel port access you may have learned that it only works with actual parallel port hardware, and not with USB parallel port adapters. But here’s a solution that will change your thinking. It borrows from the way printers communicate to allow USB to parallel port bit banging without a microcontroller (dead link, try Internet Archive).
Sure, adding a microcontroller would make this dead simple. All you need to do is program the chip to emulate the printer’s end of the communications scheme. But that’s not the approach taken here. Instead the USB to RS232 (serial) converter also pictured above is used as a reset signal. The strobe pin on the parallel port drives an inverter which triggers a thyristor connected to the busy pin. Thyristors are bistable switches so this solution alone will never clear the busy pin. That’s where the serial connection comes into play. By alternating the data transmitted from the computer between the bit-bang values sent to LP0 and 0xF0 sent to the serial connector the eight parallel data bits become fully addressable. See the project in action in the clip after the break.
If you’ve got some favorite electronic device that includes an SD card slot but doesn’t have a video out port you may be able to push VGA signals through the card reader conductors. That’s exactly what’s going on above with the Ben NanoNote, a sub-$100 Linux device which we’ve seen using its SD card slot as general I/O before.
The hardware to capture the signals includes a breakout board for the card slot. Free-formed on the other end of that connector card is a gaggle of resistor which handle level conversion for the VGA color signals, with a VGA cable taking it from there to the monitor. The software that makes this happen is a dirty hack, blocking all other functions while it displays a still image. But we’re sure that it can be cleaned up somewhat. Just don’t hold out hopes for full-motion video, this little guy just doesn’t have it in him.
[via Dangerous Prototypes via Slashdot]