Commit Graph

55 Commits

Author SHA1 Message Date
EspoTek 3d5c2b0b0a Mode 1 Up
Mode 1 moved to the new system.  Same notes as mode 0.
2016-12-16 14:23:06 +11:00
EspoTek 23741ceecb One packet per sample glitch gone!!!
From the looks of things, anyway.
This fix came with a cost:
- All modes apart from 0 are broken.
- Randomly, the DMA write and USB read may access the same half of
isoBuf.  This is determined on boot, and doesn't seem to desynchronise
and resynchronise over time.

The good news is that both of these have a fix.  Give it another day of
coding...
2016-12-15 13:52:44 +11:00
EspoTek 5769288a11 Triple endpoints working in SW now
Added triple endpoint support for the Desktop interface.
Should be possible to fix the one-packet-per-sample glitch easily, now.
Even if it isn't, the device now only needs to reserve 768 bytes/frame,
not 1023!!!!
2016-12-15 09:52:43 +11:00
EspoTek 880303ed09 3 Iso Endpoints
Have moved from one big (1023 byte) iso endpoint to 3x 256 byte ones.
This will fix the error where Labrador is picky about which port it's
connected to, and *should* fix the one-sample-per-packet error.
2016-12-13 10:46:13 +11:00
EspoTek 88ddd41c8d 3 lines changed
Just to make debugging easier on the one-packet-per-frame-dropped error.
2016-12-08 10:44:42 +11:00
EspoTek 0b1d5c5ec2 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	Desktop Interface/Labrador.pro.user
2016-12-08 08:40:29 +11:00
EspoTek d3054d9707 Sped up serial decode dramatically
Swapped an append to a replace with an ADT designed to return fast
pointers to char[] blocks.

Worked out that the one-corrupt-sample-per-packet bug was definitely not
fixed.  I must have been looking at a 1kHz wave before.
2016-12-08 08:39:22 +11:00
EspoTek 3bcf78e4c4 Changed default search directory
functionGenControl and espoComboBox now use QCoreApplication::
applicationDirPath().  This is to fix deploys on Mac.  It’s possible
but unlikely that it broke Windows/Linux.
2016-11-30 10:58:34 +11:00
EspoTek 644359d1a2 Code cleanup
Added comments and a folder structure.  No functional changes.
2016-11-29 09:56:21 +11:00
EspoTek b32392b525 Added more #defines to code
These #defines are located in desktop_settings.h and allow you to edit
how many samples are discarded per packet.  The idea was to use this to
test the MCU-side code and ensure that it doesn't corrupt a packet per
frame, but this seems to have magically disappeared (???).

I remember queueing USB transfers a long time ago, but can't remember
this having any success.  It's more likely to just be a random clock
skew issue that only appears on some boards - and it's only "fixed" on
the one particular test board I have in hand now.  I think.
2016-11-28 10:38:14 +11:00
EspoTek 1c6201a7f3 Plotted and done
Made up the silkscreen layers, put down the stabiliser pin and it's all
ready to be sent off now!
2016-11-23 12:16:40 +11:00
EspoTek 0964cc7e6a FInished the board.
Just need to position balange pins.  Design seems tight, with really low
power supply distances.
2016-11-22 21:06:41 +11:00
EspoTek b521416f48 Redoing the board
Signal gen and PSU wired in.  Very happy!
2016-11-22 14:01:56 +11:00
EspoTek edf9c8904b Swapped all components to SMD
Board too dense.  Going to start again.
2016-11-22 10:03:11 +11:00
EspoTek a1e508cc1a More board work.
It's a bit dense; some would say unnecessarily so.  Might see what I can
do with it in the morning but there's a reasonable chance it'll become
unworkable.
2016-11-20 21:17:47 +11:00
EspoTek f0fa88c473 PSU in place
First attempt, anyway.  Far shorter grounding than last rev!  Very
happy!
2016-11-20 18:39:26 +11:00
EspoTek 59c472fedb Named headers
Also there's now an empty kicad_pcb file.
2016-11-20 17:35:25 +11:00
EspoTek c5408e5c1b Error fix from last eschema
Accidentally set 2x4 headers rather than 1x4.  This has been fixed.
2016-11-20 17:31:44 +11:00
EspoTek 3dde628793 Another Eschema Update
Have changed pinout of scope.
Still haven't added SMD pads for inductor/diode since the Element14 is
not playing ball.
2016-11-20 17:29:05 +11:00
EspoTek 059d5cbe65 New Eschema
- Reverted the dual transistor IC back to a single transistor (TSM
thingo)
- Added PSU indicator LED
- Added PSU control/expansion header.

Note that this is only in eschema, not pcbnew!
2016-11-20 15:52:25 +11:00
EspoTek 2696688130 Undid PCB revert
I don't want to deal with KiCAD's library management again.  The first
time was bad enough.
2016-11-19 18:20:44 +11:00
EspoTek bf98f0796f Reverted PCB files to initial upload
Going to have a final attempt now!
2016-11-19 17:42:15 +11:00
EspoTek c9c98b0295 Slight change to terminology
Changed things like "Aplitude" to "Amplitude (peak-peak)".
Just to make things a bit less confusing for the user.
2016-11-19 17:29:41 +11:00
EspoTek 2f4d8f928b Update README.md 2016-11-17 11:40:13 +11:00
EspoTek d69bbf8e68 Added a single #define
That's it.  Literally a single #define that determines how many
milliseconds the OS waits before reconnecting.  Fixed an error with
Windows not reading it on new mobo, hopefully fixes it under OS X as
well.
2016-11-10 17:39:40 +11:00
EspoTek 8d0f6dbeeb Pushing Windows
Going to revert and compare.
2016-11-10 15:50:34 +11:00
EspoTek b7e0035896 Mac OS X build running
May have accidentally broken Linux (untested, I wasn’t being shotgunny
but equally wasn’t being super careful).  Seems to randomly fail on
launch.  Probably a race condition on the mutex?
2016-11-09 16:21:00 +11:00
EspoTek c1355d0862 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	Desktop Interface/Labrador.pro.user
2016-10-26 10:33:16 +11:00
EspoTek 6731cfb7f1 PCB update 2016-10-26 10:31:04 +11:00
esposch 047450f858 Added some comments.
Also cleaned up the USB drivers a bit; moved more stuff to
genericUsbDriver.
2016-10-24 12:40:06 +11:00
esposch 8b99289369 Linux version up and running, with autorecover!
Hopefully the Windows compile hasn't been broken.  Fingers crossed!
2016-10-24 11:27:19 +11:00
esposch 4509c31f55 Iso working, but can't get libusb_handle_events() to run in another
thread.
2016-10-21 13:10:42 +11:00
esposch ea47ae4133 Oh, it's just like .dlls but they call it something different on Linux.
Fair enough.

USB Control working.  Iso still WIP, but if it works first time it
should be up and running tomorrow!
2016-10-20 17:16:09 +11:00
esposch a7da94f957 And committing and trying to build a sample because I don't know how to
link to libusb under Linux.  Shame, shame puppy shame.
2016-10-20 13:56:09 +11:00
EspoTek 10a09fdf50 More changes for multiplatform build
.pro file now works with both Windows and Linux.  Have fixed up some
header names to have capital letters.  Windows doesn't mind, but Linux
cracks the shits.  Hop to have it runnning in Ubuntu ASAP.
2016-10-20 12:54:05 +11:00
EspoTek 539832ae66 And updated isoDriver
So it no longer uses winusbDriver
2016-10-18 09:48:18 +11:00
EspoTek bd8480541c Subclassed winUsbDriver
Created a genericUsbDriver class and then subclassed winUsbDriver to it.
2016-10-18 09:44:58 +11:00
EspoTek ddda840a5e New PCB
New version of PCB for the "shape the dev" folks
2016-10-18 08:52:34 +11:00
EspoTek fb964d0f71 Added back in recovery
Sadly, it only functions about half a dozen times before failing.  I
suspect something isn't being released; perhaps another call needs to be
made to the .dll?
2016-10-17 12:53:44 +11:00
EspoTek 5c01c3c5a9 Quick bugfix
Fixed the "pause bug".  It was actually a feature that I deliberately
coded in, but apparently it's really annoying.
2016-10-14 10:53:05 +11:00
EspoTek 4ae84d893c NEW DRIVER CODE WORKING!!!
WOOO!!!!!

(Just make sure not to change the FPS.  It's still nowhere near
perfect.)
2016-10-14 10:27:17 +11:00
EspoTek be1668ba46 Literally just shoved new driver into old code
Complete with file I/O rather than actual communication.
2016-10-14 09:17:00 +11:00
EspoTek c720b6ee39 Removed autorecover
Now crashes instead.  Will put back properly when new driver done.
2016-10-14 08:46:24 +11:00
EspoTek 2e8277c392 New driver (not working)
Committing before revert.
Not worth going through after a shotgun debugging sesh.
2016-10-14 08:19:02 +11:00
EspoTek ce0d5b8bb1 Bugfix
Quick bugfix in AVR code.  Prevents CH1 accidentally controlling sample
number on CH2.
2016-10-13 11:28:39 +11:00
EspoTek ae34eaf692 Proper fix for bug
Never sets device mode to 5 now, preventing frequency from changing when
scope disabled.
2016-10-05 10:17:53 +11:00
EspoTek 3602d0fb92 "Record"
Now converts samples to voltages before saving them.  Still outputs an
obscene amount of data.
2016-09-28 10:15:18 +10:00
EspoTek 7f40f04ef9 Board update and start of CSV export
Some CSV export features implemented - dump everything (in a stream -
750ksps!!) or just dump what's visible in screen.  Stream doesn't dump
actual voltage readings but raw sample data.

Board software has been updated to fix DMAnot transmitting the correct
data for signal gen CH1 in modes 4 and 5
2016-09-26 14:17:41 +10:00
EspoTek 80b928cc27 Some more UI features for Scotty
Two new ways of changing range:
- Press Z to snap to cursors, or M to open a dialog and enter manually.
- The frequency boxes now scroll in a more sane way - round down to the
nearest multiple of 10, then divide by 10 to find out the increment.
For example, at 2kHz, the next value will be 2.1kHz (2000 + 1000/10)
rather than 2.001Hz (2000 + 1).
2016-09-19 12:24:10 +10:00
EspoTek 749bf8d4a7 Hotfix for ScottC
Mode 4 (Logic Analyzer CH1 and CH2) code has been rewritten and a
third(!!!) pause button has been added to allow pausing while scope is
diabled.
Two of them should disappear in the next commit.  :)
2016-09-17 15:09:59 +10:00