I know I'm a bit late in following up on this, but better late than never! 
I got caught up in life and other projects as usual.

I've put up some more photos and videos, plus some preliminary schematics 
in this google album: https://photos.app.goo.gl/dzu7QLQbDr4ameMr8


Best regards

On Saturday, December 23, 2023 at 2:10:19 AM UTC+1 Max Di Noi wrote:

> Actually, that code works well! I had a typo on a pin config. Seems to 
> work well! Very pleased. I hope you find that snipped of code useful.
>
>
> On 22 Dec 2023, at 17:58, Max DN <flata...@gmail.com> wrote:
>
>
> Jörg,
>
> This is the code that I am using with DAC 4822 (similar to 4922 but with 
> internal ref.). I can generate some nice sinewaves with 1V or 2V amplitude 
> with the Teensy 4.1 powered by USB data cable and output displayed on my 
> Rigol oscilloscope.
>
> And of course, I can draw a circle.
>
> I think the code is as slim as can be, see below. However when I plug it 
> in the scope clock code, It doesn't seem to work well... I need to figure 
> it out.
>
>
> //code
> #include <SPI.h>
>
> //typedef unsigned int mcp4xxx_register; // 16-bit MCP48XX/MCP49XX 
> register for a single channel and 12-bit data
> //
> //const mcp4xxx_register mcp4xxx_channel_a =  0B0000000000000000; // for 
> all MCP4XXX
> //const mcp4xxx_register mcp4xxx_channel_b =  0B1000000000000000; // for 
> MCP4XX2 only
> //const mcp4xxx_register mcp4xxx_buffer_off = 0B0000000000000000; // for 
> all MCP4XXX
> //const mcp4xxx_register mcp4xxx_buffer_on  = 0B0100000000000000; // for 
> MCP49XX only
> //const mcp4xxx_register mcp4xxx_gain_two =   0B0000000000000000;
> //const mcp4xxx_register mcp4xxx_gain_one =   0B0010000000000000;
> //const mcp4xxx_register mcp4xxx_output_off = 0B0000000000000000;
> //const mcp4xxx_register mcp4xxx_output_on  = 0B0001000000000000;
> //
> //
> //const mcp4xxx_register mcp4822_channel_a = mcp4xxx_channel_a | 
> //                                           mcp4xxx_buffer_off | 
> //                                           mcp4xxx_gain_one | 
> //                                           mcp4xxx_output_on;
> //
> //const mcp4xxx_register mcp4822_channel_b = mcp4xxx_channel_b | 
> //                                           mcp4xxx_buffer_off | 
> //                                           mcp4xxx_gain_one | 
> //                                           mcp4xxx_output_on;
>
> const unsigned int  steps = 512;
>
> unsigned int sines_of_steps[steps]; // sine values scaled to 0 ... 4095 
> (2^12 - 1)
>
> const byte          DACCSPin   = 10;
>
> void setup()
> {
>    int i;
>
>    for (i = 0; i < steps; i++)
>    {
>       sines_of_steps[i] = round((sin(TWO_PI / steps * i) + 1) * 2047.5);
>    }
>    
>    pinMode(DACCSPin, OUTPUT);
>    digitalWrite(DACCSPin, HIGH);
>
>    SPI.begin();
> }
>
> void loop()
> {
>    unsigned int  i;
>    for (;;)
>    {
>          for (i = 0; i < steps; i++)
>          {
>             SPI.beginTransaction(SPISettings(20000000, MSBFIRST, 
> SPI_MODE2));
>
>             digitalWrite(DACCSPin, LOW);
>             SPI.transfer16(0B0011000000000000 | sines_of_steps[i]);
>             // bits: DAC channel A, buffer off, gain 1x 
> (Vout=VRef*D/4096), output on, 12-bit data (D)
>             digitalWrite(DACCSPin, HIGH);
>             
>             digitalWrite(DACCSPin, LOW);
>             SPI.transfer16(0B1011000000000000 | sines_of_steps[steps - 1 - 
> i]);
>             // bits: DAC channel B, buffer off, gain 1x 
> (Vout=VRef*D/4096), output on, 12-bit data (D)
>             digitalWrite(DACCSPin, HIGH);
>
>            SPI.endTransaction();
>          }
>                    
>    }
> }
> Il giorno mercoledì 22 novembre 2023 alle 08:55:55 UTC jörg ha scritto:
>
>> Pretty nice photos.
>> I like it too, to disable blanking and to see the painting beam.
>> I did some tests with the MCP4922, too, but it was too slow for me.
>> Mabe you've found a better way (code) driving it. If you don't mind, I'm 
>> intersted in a code snipped and which lib you have used.
>> I ended up in a AD5344, which works pretty well for me on the 
>> teensy40/41). So maybe I will give the 4922 a second try.
>> And I'm curious about your powersupply approach. Especial the +-5V and 
>> noise. I'm using a switched one, which is too noisy.
>> Last, I'm in the same problem, getting a sharp image an tweaking with 
>> focus, astig etc. 
>> So, if you get good results with the emitter follower, please share your 
>> experience.
>> Cheers
>> Jörg
>>
>>
>>
>> On Monday, November 20, 2023 at 9:37:35 PM UTC+1 GDR GDR wrote:
>>
>>> wow! while the technical details are all "greek" to me, the images look 
>>> amazing. I love the "artifacts" in them. I dont know how you took these, 
>>> but it looks awesome! I like it as it is! not sure how this looks like in 
>>> "motion" but looks great in the stills... can you post some more? cheers
>>>
>>> On Sunday, November 19, 2023 at 4:25:50 PM UTC-6 Anders Mikkelsen wrote:
>>>
>>>> I recently started playing with scope clocks again, after seeing 
>>>> David's circle graphics clock the better part of two decades ago and 
>>>> having 
>>>> had it in the back of my mind since. This was prompted by Teensy 4.1 
>>>> becoming available again on the market, and the official port of the SCTV 
>>>> codebase for this platform. I got it up and running, and explored some 
>>>> aspects around the design, I thought I'd share some info with the group in 
>>>> case anybody else can benefit from it.
>>>>
>>>> Firstly, off-the-shelf flyback transformers for low power auxiliary 
>>>> supplies work very well in Baxandall oscillators to make the required 
>>>> voltages at minimal cost and complexity, without using any custom parts. I 
>>>> used a Wurth 750310787, but many others are available. A buck converter 
>>>> can 
>>>> be wrapped around the circuit to get good line and load regulation, and 
>>>> the 
>>>> resulting BOM cost is less than 5 bucks. An off-the-shelf gate drive 
>>>> transformer can be used to drive the filament, providing the required 
>>>> isolation and power handling for a few bucks more, making a very simple 
>>>> and 
>>>> cheap design. 
>>>>
>>>> Secondly, the LT DAC in the design can be replaced by a much more 
>>>> affordable (and easy to solder) MCP4922, without taking a hit on the DAC 
>>>> update rate. A comparison of the two parts would suggest that the 20 MHz 
>>>> maximum SPI rate of this part would significantly impact performance, but 
>>>> in practice it ends up working at around 500 KSPS as well. The issue with 
>>>> the original part is that it relies on 24 bit SPI transfers, which are 
>>>> again implemented as an 8 bit and a 16 bit transfer, and the overhead from 
>>>> reconfiguring the SPI peripheral and waiting for the receive buffer to 
>>>> fill 
>>>> is significant. The MCP allows native 16 bit operation of the peripheral, 
>>>> and use of the transmit FIFO to make the transfers without any 
>>>> intervention 
>>>> from the firmware once a set of XY coordinates are passed. I also 
>>>> experimented with porting the code to run on an RP2040, which works well 
>>>> so 
>>>> far. I haven't assembled the RTC part yet, but everything else seems to 
>>>> work with minimal changes to the code. The biggest effort was figuring out 
>>>> how to do efficient SPI transfers, which required some raw register 
>>>> access, 
>>>> and clock tree reconfiguration for synchronous operation of the SPI 
>>>> peripheral (which is not the case with the Arduino default clock frequency 
>>>> for this board). 
>>>>
>>>> Thirdly, I did struggle a lot with getting a sharp image without having 
>>>> a lot of interaction between focus, brightness and astigmatism. Part of it 
>>>> came from feeding the cathode from a high impedance point in the divider, 
>>>> but a major factor turned out to be the source impedance of the anode 
>>>> drive. Most circuits I've seen drive the anode from a potentiometer fed 
>>>> from the deflection design. Most CRTs seem to draw an anode current that's 
>>>> significantly higher than the screen current, often by an order of 
>>>> magnitude, and this current causes the anode voltage to drift around as 
>>>> the 
>>>> brightness is adjusted. I initially used the high value of 1 Mohm for the 
>>>> pot, which exaggerated this issue a bit as well. In electrostatic CRTs, 
>>>> the 
>>>> final anode together with the first set of deflection plates forms a 
>>>> cylindrical lens, that affects both image geometry and beam focus. I 
>>>> looked 
>>>> at some oscilloscope schematics, and found some that use an emitter 
>>>> follower to buffer the output of the astigmatism pot to deal with this, 
>>>> and 
>>>> I'm just waiting for some parts in order to try this out in my design. 
>>>>
>>>> I tried it with a range of old CRTs, and most of them struggle with 
>>>> getting a sharp dot near the edges of the screen. I suspect this is partly 
>>>> due to my sagging voltages, but I'll see if the improvements address it. 
>>>> Does anybody know what to expect in terms of corner spot size for typical 
>>>> non-PDA electrostatic CRTs in the range of 30 - 100 mm screen diameter? 
>>>> This is at 1200 V, and with enough beam current to make the scope clock 
>>>> image readable in a room with normal indoor lighting.
>>>>
>>>> Some pictures attached in order to compensate for all the words.
>>>>
>>>> AM
>>>>
>>>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "neonixie-l" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to neonixie-l+...@googlegroups.com.
>
> To view this discussion on the web, visit 
> https://groups.google.com/d/msgid/neonixie-l/23535526-26bb-432a-b809-8c3e83918727n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/neonixie-l/23535526-26bb-432a-b809-8c3e83918727n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"neonixie-l" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neonixie-l+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/neonixie-l/9c598879-fd77-47c3-8511-43ee0f6f54b8n%40googlegroups.com.

Reply via email to