1
Messages
This section allows you to view all Messages made by this member. Note that you can only see Messages made in areas you currently have access to.
Messages - Markus Gritsch
2
Project logs / Re: PIC24 Bedside Table Alarm Clock
3
Project logs / Re: RC Boat with NRF24L01+ and Arduino
In nRF24_multipro.ino define a second servo object around line 36 so that it reads:
#include <Servo.h>
Servo servo;
Servo servo2;
Around line 158 attach some appropriate free pin to this second servo object
servo.attach( 2 );
servo2.attach( <yourPinHere> );
Then in Bayang.ino around line 209 use the pitch/yaw/throttle variable to write a value to servo2:
servo2.write( pitch / 1023.0 * 180 );
4
Project logs / RC Boat with NRF24L01+ and Arduino
I and my little son built a small electric boat from a kit. However, the kit only offered turning on the motor with a switch, and let the boat cruise wherever fortune it may take.
I thought why not improve it a bit by adding some RC capability. I had some left over toy quad copter remote controls, and decided to use them by building the receiver side out of an 3 $ Arduino mini knock off and the popular NRF24L01+ chip.
[attachment=3]
rcgroups.com forum user bikemikem added some receiver functionality [1] to the popular nrf24-multipro project by goebish [2]. I made some small adjustments, and the final firmware is attached to this post.
The wiring between the Arduino and the NRF board is shown below. The motor is PWM driven with some random FET, and the whole thing is powered by some old phone battery underneath the connection board. A single servo is used for steering.
[attachment=1]
The "Bayang" protocol is used by a lot of different models. The following picture shows a few:
* Eachine H8 Mini (top left)
* Bayangtoys X9 (top right)
* Floureon H101 (bottom left)
* Devo 7E with Deviation [3] and NRF module
[attachment=2]
Here is a short YouTube video: https://youtu.be/VLFMQFPwuEg
Have fun,
Markus
[1] https://github.com/bikemike/nrf24_multi ... 4_multipro
[2] https://github.com/goebish/nrf24_multipro
[3] http://www.deviationtx.com/
5
Project logs / Re: ESP8266 Wireless SID Project
No, but the numbers can vary quite a bit. If you have a look at "Fanta in Space" using ACID 64 again, you will see that it has an update rate of 15639 Hz. Further, ACID 64 does not simply send the register values and that's it. To be cycle exact, it also adds the clock count (i.e. timestamp) when a specific value should be written to a specific register. This also adds some overhead.
Since data transfer rate can vary, you should buffer the data coming from ACID 64 and write the SID registers according to the included timestamps at the precise moment. Maybe you should have a look at the ACID 64 network protocol.
Cheers,
Markus
6
Project logs / Re: ESP8266 Wireless SID Project
Since you also sent me a PM about this, I will try to give my 2 cents here, but don't expect too much :)
Bit-banging the I/O lines to get a 1 MHz clock is definitely not the way to go. Even if you could achieve 1 MHz (which you can't) there would be no time to do anything else.
In my SID player project over here viewtopic.php?f=56&t=2197 I used a counter of the PIC32 together with output compare which toggles a pin at 985248 Hz (PAL) or 1022727 HZ (NTSC). I don't know if the ESP8266 has such a pheripheral.
Another thing to investigate is the maximum sustained data rate you can stream to the ESP8266 over WiFi. Some digi-tunes like 'Fanta in Space' or 'Pollycracker' require 100+ kByte/s sustained data rate.
Cheers,
Markus
7
Project logs / Re: Bubble Display Alarm Clock
8
Project logs / Re: Hybrid SID Player
currently ACID 64 does not allow configuring host and port. It just uses localhost:6581, which works for jsiddevice.exe and also the Python script I use to send the network data to the serial port for my hardware player.
Some time ago I suggested to Wilfred Bos that it would probably make sense to make the host and port configurable. Maybe you tell him about your project, and that you would need them being configurable. I found him being very helpful and nice.
Cheers,
Markus
P.S.: And post back about your progress implementing it on an ESP8266 :)
9
Project logs / Re: USB Volume Knob
[attachment=2]
[attachment=1]
The firmware (attached below) smoothly cycles the LEDs through all colors in about one minute. On activation (turning the knob to change the volume, pressing it to mute/unmute the sound), the volume knob briefly flashes brightly white and fades back to the current color. Temporal dithering is done to prevent intensity steps being visible, especially at lower intensity values.
A short video can be seen here: https://www.youtube.com/watch?v=r7PtrN89fg4
And as always, have fun!
Markus
10
Project logs / Re: USB Volume Knob
[attachment=5]
I also wanted the base of the knob to be more heavy. I experimented with some kind of self made mold
[attachment=4]
but the results turned out to be less than optimal
[attachment=3]
[attachment=2]
So I settled on some lead from a shot gun round, which the kind guy from a local hunting equipment store sold me by opening the round for me :)
[attachment=1]
Pouring a lot of super glue on top of it fixes everything in place.
[attachment=0]
11
Project logs / USB Volume Knob
It uses the TrinketHidCombo library [2], but on a Digispark board, to have one more I/O pin which I use to drive a WS2812 LED ring. The code to bit bang the LEDs was taken from one of Josh's excellent articles on WS2812 LEDs [3]. I also experimented with other WS2812 libraries (NeoPixel, light_ws2812, FastLED), but they consumed either quite a lot of flash, or prevented the USB part from functioning.
Curiously the fuse setting of my purchased board were set to use the NRES pin as reset instead of an additional I/O line, so I installed the ArduinoISP example on a spare Arduino UNO to set the fuse bits to the correct values:
[tt:]C:arduino-1.6.5-r2hardwaretoolsavrbinavrdude -C C:arduino-1.6.5-r2hardwaretoolsavretcavrdude.conf -v -p attiny85 -c stk500v1 -P COM7 -b 19200 -U lfuse:w:0xf1:m -U hfuse:w:0x5f:m -U efuse:w:0xfe:m[/tt:]
I also like the Micronucleus bootloader [4] approach taken by the Digispark, which I replaced by the micronucleus-1.11-entry-jumper-pb0-upgrade.hex which gets rid of the 5 second delay when plugging the device in, but requires pressing the button when connecting to the computer to enter bootloader mode. (This requires that the push button of the rotary encoder is connected to PB0.)
[1] http://www.instructables.com/id/Digispa ... e-Control/
[2] https://github.com/adafruit/Adafruit-Tr ... etHidCombo
[3] http://wp.josh.com/2014/05/13/ws2812-ne ... know-them/
[4] https://github.com/micronucleus/micronucleus/tree/v1.11
As an enclosure I found a small cream tin made from plastic:
[attachment=5]
I dremeled away part of the PCB to get its USB micro connector closer to the outside.:
[attachment=4]
Hot glue holds everything together:
[attachment=3]
The LED ring
[attachment=2]
neatly fits inside the enclosure and is also held in place by a bit of hot glue:
[attachment=1]
To give the moving part of the knob a more solid feeling, I added some big washers inside it:
[attachment=0]
12
Project logs / Re: PIC24 Bedside Table Alarm Clock
13
Project logs / Re: PIC24 Bedside Table Alarm Clock
http://www.pollin.de/shop/dt/ODQ4ODc4OT ... Digit.html
14
Project logs / Re: PIC24 Bedside Table Alarm Clock
Prototyping on a bread board:
[attachment=3]
Since the filling of the 7 segment display is concave,
[attachment=2]
it leaves enough room to place the common anode MOSFETs beneath it:
[attachment=1]
Who needs an ICSP connector when using a PDIP package :)
[attachment=0]
15
Project logs / PIC24 Bedside Table Alarm Clock
It can be seen in action in this YouTube video: https://youtu.be/I8K4sLvQby4
Friendly green digits :)
And of course it has a LiFePO4 battery on its back, being charged every few years using my new USB charger [4].
A photo transistor is also included to dim the display in the dark. Much nices to the eyes when checking what time it is in the middle of the night.
Here's a picture from the front side:
[attachment=3]
And here is the wiring on the back side:
[attachment=2]
A crude schematic:
[attachment=0]
As always, please find the source code attached.
Have fun,
Markus
[1] viewtopic.php?f=56&t=2126
[2] viewtopic.php?f=56&t=2784
[3] viewtopic.php?f=56&t=6592
[4] viewtopic.php?f=56&t=7467